入力シーケンスXの高速ヒルベルト変換を計算します。


icon

入力/出力

  • c1ddbl.png X

    Xはデータ配列の要素の数を指定します。

  • i1ddbl.png ヒルベルト{X}

    ヒルベルト{X}は入力シーケンスの高速ヒルベルト変換です。

  • ii32.png エラー

    エラーは、VIからのエラーまたは警告を返します。エラーは「エラーコードからエラークラスタ」VIに配線して、エラーコードまたは警告をエラークラスタに変換できます。

  • 関数x(t)のヒルベルト変換は、以下のように定義されます。

    フーリエの公式を使用すると、x(t)のヒルベルト変換のフーリエ変換は以下のように表せます。

    h(t) ⇔ H(f) = - j sgn(f) X(f)となります、

    ここで、 x(t)⇔ X(f)はフーリエ変換ペアであり

    高速ヒルベルト変換 VI は、 h(t) ⇔ H(f) のフーリエ変換ペアに基づき、FFT ルーチンを用いてヒルベルト変換を離散的に実行するもので、以下の手順で実行されます。

    1. 入力シーケンス Xをフーリエ変換する。

      Y = F{X}

    2. DC成分をゼロにする

      Y0 = 0.0

    3. 配列 Yが 偶数サイズの場合、ナイキスト成分をゼロにする

      YNyq = 0

    4. 正の高調波に-jを乗算する。

    5. 正の高調波にjを乗算する。という形の新しい配列を Hと呼びます。

      Hk =-jsgn(k)Yk

    6. Hに逆フーリエ変換を実行して、Xのヒルベルト変換を求める。

    詳細は、FFT VIの複素FFTインスタンスの出力形式を参照してください。

    ヒルベルト変換を使って瞬時の位相情報を抽出し、シングルサイドバンドスペクトルを得る、振動する信号のエンベロープを得る、エコーを検出する、サンプリングレートを下げる、などですね。

    出力シーケンス Y = 逆FFT [X] は複素数であり、1つの複素配列Y = (Yre,Yim)として返されます。

    メモ 入力シーケンスの要素数が偶数の場合、「高速ヒルベルト変換」VIはDC成分とナイキスト成分をゼロに設定するため、逆ヒルベルト変換を使用することで必ず元の信号を回復できるとは限りません。ヒルベルト変換は、DC成分とナイキスト成分を除外するバンドパスが制限された信号と効率的に動作します。

    サンプルプログラム

    LabVIEWに含まれている以下のサンプルファイルを参照してください。

    • labview\examples\Signal Processing\Transforms\Echo Detector.vi