国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
灵宝市| 内江市| 奉新县| 肃南| 密山市| 鸡泽县| 宁波市| 巴林左旗| 鄂尔多斯市| 台南市| 六盘水市| 泰宁县| 香河县| 比如县| 上高县| 松潘县| 丹东市| 丹巴县| 和龙市| 玛多县| 崇仁县| 蒲城县| 齐齐哈尔市| 隆安县| 阿克| 信丰县| 富源县| 卓资县| 茶陵县| 山东省| 柞水县| 三台县| 东宁县| 芜湖县| 九龙坡区| 金昌市| 西林县| 锦屏县| 夏河县| 普洱| 佛教|