五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ù)的評論 (共 條)

分享到微博請遵守國家法律
彭泽县| 方山县| 綦江县| 牙克石市| 肥西县| 塔城市| 哈巴河县| 炉霍县| 蓝山县| 皋兰县| 眉山市| 青岛市| 洛阳市| 连云港市| 阜阳市| 长垣县| 阿拉善左旗| 资兴市| 怀远县| 太和县| 崇左市| 政和县| 芜湖市| 赤壁市| 湾仔区| 高密市| 横峰县| 漳浦县| 营口市| 蓬溪县| 山西省| 遂溪县| 新河县| 罗田县| 湘西| 丰城市| 阳高县| 鱼台县| 麟游县| 忻州市| 寻乌县|