最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

強大的MATLAB2019——短時傅里葉變換stft函數(shù)

2019-11-08 20:48 作者:不妙脆角  | 我要投稿

MATLAB最新版本2019b,推出了一個超好用的函數(shù)——stft。它能非常方便地為你實現(xiàn)加窗傅里葉變換。

什么是加窗傅里葉變換呢,簡單來說就是把一段時間信號切成一段一段的,再給每一段分別進行傅里葉變換,可以想見,只要你切得足夠細,就能得到頻率隨時間的變化規(guī)律。

加窗傅里葉變換的動畫演示可以查看本人視頻

加窗傅里葉變換演示

當然這里有些講究。首先切信號不能直接像切面條似的把信號截出來,而是應該用兩端為0的時窗去截,否則會產(chǎn)生吉布斯現(xiàn)象,即在截斷附近出現(xiàn)大的信號跳變,造成原始信號畸變。

矩形時窗的吉布斯現(xiàn)象

其次呢,我們不能像切面條一樣把信號切成一段一段不重疊的段,而是應該互相有所重疊,否則的話,萬一你切段的位置正好切在信號上怎么辦呢。


明確這兩點,我們就來看一下MATLAB的stft函數(shù)吧!

例子1:

產(chǎn)生兩秒鐘的壓控振蕩器輸出,該輸出由以10 kHz采樣的正弦波控制。

fs = 10e3;?

t = 0:1/fs:2;?

x = vco(sin(2*pi*t),[0.1 0.4]*fs,fs);

計算并繪制信號的STFT。使用長度為256且形狀參數(shù)β?=?5的Kaiser窗口。指定重疊的長度為220個樣本,DFT的長度為512點。用默認的顏色圖和視圖繪制STFT。

stft(x,fs,'Window',kaiser(256,5),'OverlapLength',220,'FFTLength',512);

看一下各個參數(shù),

Window后面可以選擇時窗,這個時窗的定義呢就和濾波器里時窗的定義方式一樣~

OverlapLength就是重疊寬度,也就是相鄰兩個的重疊寬度。

FFTLength就是每個小段的長度。

也可選用另一種Hamming時窗。

stft(x,fs,'Window',hamming(128,'periodic'),'OverlapLength',50);


時頻圖

如果我們想看震撼的立體效果怎么辦呢,我們只要將視角調(diào)成俯視就好啦!

view(-45,65) colormap jet


時頻俯視圖

接下來用我自己生成的do re mi fa so la xi(40號音?到?51號音)七個音去算短時距傅里葉,得到很清晰的結(jié)果~


C4 to B4
C4 to B4 俯視圖

注意到我的音色函數(shù)是寫了泛音列(基音的整數(shù)倍)呢。泛音列的原理可以看我的視頻呦?

基音和泛音列


那么如何根據(jù)stft函數(shù)得到每一段的頻率數(shù)值呢,也很簡單。

令s=stft(參數(shù)),得到一個時窗長度×n的矩陣,每一列就是每個時窗里的fft變換結(jié)果。

和由FFT結(jié)果畫幅值頻譜圖一樣,取出某一列畫圖就行了。

abs(s[:,m]);

就能生成這個時間段的幅值頻譜圖啦!


參考資料:

https://ww2.mathworks.cn/help/signal/ref/stft.html


強大的MATLAB2019——短時傅里葉變換stft函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
太湖县| 绵竹市| 黔东| 和田县| 建宁县| 北海市| 确山县| 昭通市| 绍兴市| 姜堰市| 崇义县| 文登市| 台湾省| 昌黎县| 开原市| 商都县| 额济纳旗| 昌江| 彩票| 巴青县| 西乌珠穆沁旗| 合作市| 武威市| 特克斯县| 北辰区| 兰坪| 建阳市| 陆良县| 阳原县| 安宁市| 兴海县| 玉林市| 贵溪市| 巴林右旗| 塘沽区| 鞍山市| 咸阳市| 越西县| 合江县| 德昌县| 甘谷县|