信号的时频分析MATLAB,[转载]时频特性分析(Matlab)
最近瞅了一些關于時頻分析工具箱的matlab函數使用方法,總結一下吧.
我使用的是2011a的matlab,貌似沒有自帶的時頻分析工具箱,可以到網上下載,google一搜就能搜到,安裝后就可以使用了(所謂安裝就是把工具箱的目錄包含到matlab工作目錄中即可).
下面說一些時頻工具箱函數的用法(由于我下的工具箱沒有html版的幫助,所以只能使用help
funname的方法查看幫助信息).
AMGAUSS
Generate gaussian amplitude modulation.
Y=AMGAUSS(N,T0,T) generates a gaussian amplitude modulation
centered on a time T0, and with a spread proportional to T.
This modulation is scaled such that Y(T0)=1
and Y(T0+T/2) and Y(T0-T/2) are approximately equal to 0.5 .
產生高斯幅值調制信號,其以信號點數為N,中心為T0,傳播0.5的比例到T,即Y(T0)=1,Y(T0+T/2) =
Y(T0-T/2) = 0.5。 T0默認為N/2,T默認為2*sqrt(N)。
如z=amgauss(160,90,40); plot(z);
FMCONST
Signal with constant frequency modulation.
[Y,IFLAW] = FMCONST(N,FNORM,T0) generates a frequency
modulation
with a constant frequency fnorm.
The phase of this modulation is such that y(t0)=1.
產生一個固定頻率的頻率調制信號。N為產生信號的點數,FNORM為標準化頻率(默認為0.25),T0表示此時刻為正幅值(默認為round(N/2)),相當于規定了相位。IFLAW為設置的頻率變化情況,這里就是一個常數。
如z=fmconst(128,0.05,50); plot(real(z));
FMLIN
Signal with linear frequency modulation.
[Y,IFLAW]=FMLIN(N,FNORMI,FNORMF,T0) generates a linear
frequency
modulation.
The phase of this modulation is such that Y(T0)=1.
產生一個線性調頻信號。N為信號的點數,FNORMI為開始標準頻率(默認為0.0),FNORMF為結束標準頻率(默認為0.5),相位由T0規定,即Y(T0)=1。IFLAW為設置的頻率變化情況,這里就是一個線性變化的直線。
如[z, f]=fmlin(128,0.05,0.3,50); plot(real(z));figure,
plot(f)
以上是比較常用的產生信號的函數。
下面說一些時頻分析常用的分析方法,主要有短時傅里葉變換STFT、Wigner-Ville分布WVD、偽Wigner-Ville分布PWVD等,其他還有很多分析方法,都有相關函數,具體可以查看幫助。
短時傅里葉變換STFT
功能:計算時間序列的短時離散傅里葉變換,得到瞬時頻率。
格式:
[tfr, t, f] = tfrstft(x) %
計算時間序列x的短時傅里葉變換,參數tfr為短時傅里葉變換系數,t為系數tfr對應的時刻,f為歸一化頻率向量
[tfr, t, f] = tfrstft(x, t) % 計算對應時刻t的短時傅里葉變換
[tfr, t, f] = tfrstft(x, t, n) % 計算n點對應時刻t的短時傅里葉變換
[tfr, t, f] = tfrstft(x, t, n, h) % 參數h為歸一化頻率平滑窗
[tfr, t, f] = tfrstft(x t, n, h, trace) % trace顯示算法進程
說明:
x--信號
t--時間(缺省值為1:length(x))
n--頻率數(缺省值為length(x))
h--頻率滑窗,h歸一化為單位能量(缺省值為hamming(n/4))
trace--如果非零,顯示算法的進程(缺省值為0)
tfr--時頻分解(為復值),頻率軸觀察范圍為-0.5~0.5
f--歸一化頻率
如
sig=[fmconst(128,0.2);
fmconst(128,0.4)]; % 產生由兩個常值調頻信號(即正弦信號)的組合信號
tfr=tfrstft(sig);
subplot(211); imagesc(abs(tfr)); % 瞬時頻率
subplot(212); imagesc(angle(tfr)); % 瞬時相位
Wigner-Ville時頻分布圖
功能:計算時間序列的Wigner-Ville時頻分布圖,得到瞬時頻率
格式:
[tfr, t, f] = tfrwv(x)
[tfr, t, f] = tfrwv(x, t)
[tfr, t, f] = tfrwv(x, t, n)
[tfr, t, f] = tfrwv(x, t, n, trace)
說明:
x--信號
t--時間(缺省值為1:length(x))
n--頻率數(缺省值為length(x))
trace--如果非零,顯示算法的進程(缺省值為0)
tfr--時頻分解(為復值),頻率軸觀察范圍為-0.5~0.5
f--歸一化頻率
如
sig=fmlin(128,0.1,0.4);
tfrwv(sig);
偽Wigner-Ville時頻分布圖
功能:計算時間序列的偽Wigner-Ville時頻分布圖,得到瞬時頻率
格式:
[tfr, t, f] = tfrpwv(x)
[tfr, t, f] = tfrpwv(x, t)
[tfr, t, f] = tfrpwv(x, t, n)
[tfr, t, f] = tfrpwv(x, t, n, trace)
說明:
x--信號
t--時間(缺省值為1:length(x))
n--頻率數(缺省值為length(x))
trace--如果非零,顯示算法的進程(缺省值為0)
tfr--時頻分解(為復值),頻率軸觀察范圍為-0.5~0.5
f--歸一化頻率
如
sig=fmlin(128,0.1,0.4);
tfrpwv(sig);
還可以設置成三維顯示,如下
其他時頻分析
fmt
計算時間序列的快速梅林變換
ifmt
計算快速梅林逆變換。
tfrbj
生成時間序列的Bord-Jondan時頻分布圖,得到瞬時頻率。
tfrbud
生成時間序列的Butterworth時頻分布圖,得到瞬時頻率。
tfrcw
生成時間序列的Choi-Williams時頻分布圖,得到瞬時頻率。
tfrgrd
生成時間序列的廣義矩形時頻分布圖,得到瞬時頻率。
tfrmh
生成時間序列的Margenau-Hill時頻分布圖,得到瞬時頻率。
tfrmhs
生成時間序列的Margenau-HillP譜圖時頻分布圖,得到瞬時頻率。
tfrsp
計算時間序列的頻譜圖分布,得到瞬時頻率。
tfrscalo
計算時間序列的尺度圖時頻表示,即連續小波變換的幅值的平方。
tfrrsp
計算時間序列的時頻分布和它的重排形式,得到瞬時頻率。
friedman
計算時間序列的瞬時頻率密度。
ridges
從時間序列的重排時頻分布中提取瘠。
tfrideal
計算給定時間序列的瞬時頻率規律的理想時頻表示。
以上給了很多函數,但常用的基本就是短時傅里葉變換STFT、Wigner-Ville分布WVD、偽Wigner-Ville分布PWVD和提取瘠ridges、得到理想時頻表示tfrideal。
總結
以上是生活随笔為你收集整理的信号的时频分析MATLAB,[转载]时频特性分析(Matlab)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css页面布局
- 下一篇: shell统计指定目录下所有文件类型及数