时频分析:短时傅里叶变换实现(2)
目錄:
文章目錄
- 補充
#前言
之前講了時頻分析的原理,現在來講講它在matlab里面的實現。
想要復習原理的同學,可以參照一一下這篇: 短時傅里葉分析
本次講解中階的函數,基礎的可以參見前面的: 短時傅里葉實現(1)
后續的請參見下篇。
#實驗環境
本文的所有實驗都是在matlab2016a下通過的。
#Matlab spectrogram函數
譜圖函數:使用短時傅里葉變換化成短時傅里葉變換的譜圖。
##1語法 s = spectrogram(x,window,noverlap,nfft,Fs)
##2使用說明
s = spectrogram(x,window,noverlap,nfft,Fs)
返回輸入信號的短時傅里葉變換,該函數和之前的返回結果有所不同,它的時間軸和頻率軸發生了變化
詳細說明:
返回輸入信號x的譜圖,結果存儲在矩陣s中,其他參數的設置和之前一樣,Fs是采樣頻率,單位為Hz,如果Fs是[]的話,它默認是1Hz,如果Fs沒有定義的話,將使用歸一化的頻率。
s的每一列都是x短時局部鎖定的頻率成分,時間軸從左至右,頻率軸從下至上。
如果x是長度為NX的復信號,s是一個有NFFT行的復矩陣,以及fix((nx-noverlap)/(length(window)-noverlap))列。對于實信號,如果NFFT是偶數則s的行數是(NFFT/2+1),如果NFFT是奇數,則行數為(NFFT+1)/2.
##3代碼如下:
###3.1坐標軸變換
使用Blackman窗代替漢寧窗,將重疊點下降到60個,畫出時間軸,它的軸是逆轉的。
如圖所示
###3.2鳥聲信號的功率譜密度
####3.2.1平方鳥聲信號
計算并展示一個分段鳥聲信號的功率譜密度,開始時是100hz,并在1秒時變成了200hz。采樣率為1000hz,分段的每一段長度為128點,每一段有120個點重合,使用128點的離散傅里葉變換和默認的海明窗
如圖所示
####3.2.線性鳥聲信號
計算并展示一個線性鳥聲信號每一段的功率譜密度,開始時是直流,并在t=1s時達到150hz。
信號設置,采樣率1khz,每一段的長度為256個點,每一段的重疊是250個點,使用默認的海明窗和256點離散傅里葉變換。
如圖所示
####3.3對數鳥聲信號
計算并展示一個對數鳥聲信號每一段的功率譜密度,開始時是20hz,并在t=1s時達到60hz。
信號設置,采樣率1khz,每一段的長度為256個點,每一段的重疊是250個點,使用默認的海明窗和256點離散傅里葉變換。
如圖所示:
在這張圖里,當你使用對數頻率軸時,圖像會變成一條直線
代碼如下:
這也展示對坐標軸的設置會影響展示效果。
補充
如果還是有不會的,可以掃碼關注這個公眾號:博主會在24小時內回復
#參考:
mathworks
總結
以上是生活随笔為你收集整理的时频分析:短时傅里叶变换实现(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java程序设计简单程序分类_3 Jav
- 下一篇: adb native raact 夜神_