ヒルベルト変換および瞬時周波数
ヒルベルト変換で推定されるのは,単一成分の信号の瞬時周波数のみです。単一成分の信号は,単一の“リッジ”によって時間-周波数平面に表されます。一連の単一成分信号には単一の正弦波とチャ,プのような信号が含まれます。
1 kHzで2秒間サンプリングしたチャプを生成します。初期周波数が100hzで,1秒後には200hzに増加するようにチャプを指定します。
Fs = 1000;T = 0:1/fs:2-1/fs;Y = chirp(t, 100,1200);
関数pspectrum
に実装された短時間フ,リエ変換を使用して,チャ,プのスペクトログラムを推定します。信号は,各時点の単一のピ,ク周波数によって明確に表されます。
pspectrum (y, fs,的谱图)
瞬時周波数を測定するために解析信号を計算して位相を微分します。導関数をスケ,リングすることで有効な推定が得られます。
Z = hilbert(y);Instfrq = fs/(2*pi)*diff(unwrap(angle(z)));CLF plot(t(2:end),instfrq) ylim([0 fs/2])
関数instfreq
は,1ステップで瞬時周波数を計算し,表示します。
instfreq (y, fs,“方法”,希尔伯特的)
信号が単一成分ではない場合は,メソッドが失敗します。
1023赫兹で2秒間サンプリングされた周波数60 Hzと90 Hzの2つの正弦波の和を生成します。スペクトログラムを計算してプロットします。各時点で2の成分の存在が示されます。
Fs = 1023;T = 0:1/fs:2-1/fs;X = sin(2* *60*t)+sin(2* *90*t);pspectrum (x, fs,的谱图)蜱虫([60 90])
解析信号を計算し,その位相を微分します。正弦波の周波数を囲む領域でズムンします。解析信号により,正弦波周波数の平均である瞬時周波数が予測されます。
Z = hilbert(x);Instfrq = fs/(2*pi)*diff(unwrap(angle(z)));Plot (t(2:end),instfrq) ylim([60 90]) xlabel(“时间(s)”) ylabel (的频率(赫兹))
関数instfreq
は,平均の推定も行います。
instfreq (x, fs,“方法”,希尔伯特的)
時間の関数として両方の周波数を推定するには,光谱图
を使用して,パワ,スペクトル密度とtfridge
を探し,2のリッジを追跡します。tfridge
で,周波数の変更に対してペナルティを0.1に設定します。
[s,f,tt] = pspectrum(x,fs,的谱图);Numcomp = 2;[冰箱,~,lr] = tfridge(s,f,0.1,“NumRidges”, numcomp);pspectrum (x, fs,的谱图)举行在plot3 (tt、冰箱、abs (s (lr)),“线宽”, 4)从yticks ([90])