时频分析:短时傅立叶变换实现(5)
目錄:
- 前言
- 實(shí)驗(yàn)環(huán)境
- Matlab spectrogram函數(shù)
- 1語法
- 2使用說明
- 3代碼如下
- 3.1譜圖聚集和門限設(shè)置
- 參考:
前言
之前講了時(shí)頻分析的原理,現(xiàn)在來講講它在matlab里面的實(shí)現(xiàn)。
想要復(fù)習(xí)原理的同學(xué),可以參照一下這篇:短時(shí)傅里葉分析
本次講解終階的函數(shù)使用,
基礎(chǔ)的可以參見前面的:短時(shí)傅里葉實(shí)現(xiàn)(1)
中階的可以參見前面的:短時(shí)傅里葉實(shí)現(xiàn)(2)
高階的可以參見前面的:短時(shí)傅里葉實(shí)現(xiàn)(3)
進(jìn)階的可以參見前面的:短時(shí)傅里葉實(shí)現(xiàn)(4)
實(shí)驗(yàn)環(huán)境
本文的所有實(shí)驗(yàn)都是在matlab2016a下通過的。
Matlab spectrogram函數(shù)
譜圖函數(shù):使用短時(shí)傅里葉變換化成短時(shí)傅里葉變換的譜圖。
1語法
標(biāo)準(zhǔn)函數(shù)引用方式如下:
[___] = spectrogram(___,freqrange) [___] = spectrogram(___,spectrumtype) [___] = spectrogram(___,'MinThreshold',thresh)2使用說明
[] = spectrogram(,freqrange)
返回由frequencge確定范圍的功率譜密度或者功率譜估計(jì),正確的選項(xiàng)有單邊(oneside),雙邊(twoside),中心(centered)。
[] = spectrogram(,spectrumtype)
返回功率譜估計(jì)。如果使用psd參數(shù)。返回能量,如果使用power參數(shù)
[] = spectrogram(,’MinThreshold’,thresh)
將門限值之以下的信號(hào),ps 10log10log10(ps) ≤≤ thresh .設(shè)置為0.
3代碼如下
3.1譜圖聚集和門限設(shè)置
%產(chǎn)生一個(gè)信號(hào),采樣頻率是1khz,采樣時(shí)間是兩秒 nSamp=2048; Fs=1024; t=(0:nSamp-1)'/Fs; %在第一秒,信號(hào)包含一個(gè)400hz的正弦和凹二次鳥聲信號(hào),鳥聲信號(hào)關(guān)于間隔中點(diǎn)是對(duì)稱的,起始和結(jié)束為250hz, %包%含一個(gè)最小的150hz信號(hào) t1=t(1:nSamp/2); x11=sin(2*pi*400*t1); x12=chirp(t1-t1(nSamp/4),150,nSamp/Fs,1750,'quadratic'); x1=x11+x12; % 信號(hào)的剩余部分包含兩個(gè)線性衰落鳥聲成分,一個(gè)鳥聲的初始頻率是250hz最后降到100hz,其他線性鳥聲有一個(gè)出聲頻率400hz,并減到250hz。 t2=t(nSamp/2+1:nSamp); x21=chirp(t2,400,nSamp/Fs,100); x22=chirp(t2,550,nSamp/Fs,250); x2=x21+x22; %給信號(hào)添加高斯白噪聲,信噪比為20db,設(shè)置隨機(jī)數(shù)生成器,為了可重復(fù)的結(jié)果。 SNR=20; rng('default') sig=[x1;x2]; sig=sig+randn(size(sig))*std(sig)/db2mag(SNR); %計(jì)算并繪制信號(hào)的譜圖,長度為63的kaizer窗,形狀參數(shù)17,10個(gè)左右重疊值,FFT長度為256. nwin=63; wind=kaiser(nwin,17); nlap=nwin-10; nfft=256; spectrogram(sig,wind,nlap,nfft,Fs,'yaxis')如圖所示
%任何能量值小于噪聲(SNR)的信號(hào)都被設(shè)置為0
spectrogram(sig,wind,nlap,nfft,Fs,’MinThreshold’,-SNR,’yaxis’)
%將譜功率密度估計(jì)值壓縮到能量中心的位置
spectrogram(sig,wind,nlap,nfft,Fs,’reassign’,’yaxis’)
結(jié)果如圖所示:
%對(duì)集中能量譜的信號(hào)設(shè)置閾值,每個(gè)元素能量值低于SNR的被設(shè)置為0
spectrogram(sig,wind,nlap,nfft,Fs,’reassign’,’MinThreshold’,-SNR,’yaxis’)
如圖所示:
函數(shù)相關(guān)功能展示完畢,大家可以根據(jù)自己需要,選擇參數(shù)
參考:
mathworks
總結(jié)
以上是生活随笔為你收集整理的时频分析:短时傅立叶变换实现(5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 时频分析:短时傅立叶变换实现(4)
- 下一篇: data fastboot 擦除_fas