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

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

分享到微博請遵守國家法律
新沂市| 伊通| 左贡县| 托克逊县| 延津县| 饶河县| 黄龙县| 财经| 雅江县| 原平市| 将乐县| 定结县| 大兴区| 崇礼县| 东乡| 甘谷县| 大厂| 尼玛县| 金寨县| 崇左市| 益阳市| 芜湖市| 内江市| 湖南省| 广元市| 宜黄县| 海南省| 西华县| 鹤岗市| 永兴县| 尤溪县| 荣昌县| 桐城市| 鞍山市| 昌吉市| 仙桃市| 宝坻区| 蕉岭县| 高淳县| 宣城市| 九台市|