Signal Processing Toolbox | ![]() ![]() |
Hilbert変換
ツールボックスの関数hilbert
は、実数入力列x
のHilbert変換を計算し、その結果を同じ長さの複素数で出力します。
y = hilbert(x)
ここで、y
の実数部はオリジナルの実数データ、虚数部は実際のHilbert変換です。y
は、場合によっては、連続時間解析信号に関連して解析的信号と呼ばれます。離散時間解析的信号の主な特性は、そのz変換が単位円の下半分で、ゼロになることです。解析信号の応用例の多くは、この特性と関係があります。たとえば、解析信号は通過帯域サンプリング操作のエリアジングの影響を回避するのに役立ちます。解析信号の大きさは、オリジナルの信号の複素包絡線となります。
Hilbert変換は、90度の位相のシフトによる実際のデータと関係があり、正弦は余弦となり、逆もまた同様です。データの一部分(実線)とそのHilbert変換(点線)をプロットするには、つぎのようにします。
t = (0:1/1023:1); x = sin(2*
pi*
60*
t); y = hilbert(x); plot(t(1:50),real(y(1:50))), hold on plot(t(1:50),imag(y(1:50)),':'), hold off
解析的信号は、時系列の任意の点の瞬間的属性を計算するのに有効です。入力列の瞬間的な振幅は、解析的信号の振幅です。入力列の瞬間的位相角は、解析信号の(プリワープを適用していない)角度であり、瞬間的周波数は瞬間位相角の変化の時間速度です。オンラインの MATLAB ドキュメント に記述されているように、diff
を用いて瞬間周波数を
計算することができます。
![]() | 離散コサイン変換 | 参考文献 | ![]() |