例: Hilbert 変換
hilbert 関数を使用して、解析信号の離散フーリエ変換が負周波数でマグニチュードゼロになるように、実際の信号の Hilbert 変換を作成します。
1.
sin 関数と
cos 関数を使用して、入力信号を定義します。
rnd 関数を使用して、ランダムノイズを付加します。
2. 入力信号をプロットします。
3. hilbert 関数を使用して、入力信号の Hilbert 変換を計算します。
4. Hilbert 変換信号をプロットします。
5. 複素信号を構築してプロットします。
以降の手順では、解析信号のマグニチュードが元の信号の複素エンベロープであることを示します。
6.
dft 関数を使用して信号
z1 のスペクトルを求めます。
7. スペクトルの絶対値をプロットします。
ベクトルの場合、dft 関数と廃止された CFFT 関数の間のスケール係数は 1/N になります。
8. 同じグラフに 4 つの信号すべてをプロットします。
Hilbert によって作成された新しい信号は、次の方法によって変換領域内で入力信号に関連付けられています。
ここで、H は Hilbert 変換器と呼ばれる、次のような周波数応答を返すフィルタです。
H はフィルタ設計の手順と関数を使用して構築できます。
理想 Hilbert 変換器
Rabiner/Gold 共著 (Theory and Application of Digital Signal Processing, Prentice-Hall, Inc.) に、理想 Hilbert 変換器の係数が掲載されています。以下に示す例は、Stearns/David 共著 Signal Processing Algorithms (Prentice-Hall) のセクション 14.4 に掲載されている処理に基づいています。理想フィルタの係数のウィンドウ処理とシフトが行われ、長さが奇数 L の因果性フィルタが求められます。
1. 長さと中心を定義します。
2. ウィンドウ処理されていない係数 h を定義します。
3.
hamming 関数を使用し、
vectorize 演算子を使用して
h とウィンドウを要素ごとに掛け合わせて、係数を Hamming ウィンドウ処理します。
4.
gain 関数を使用して、周波数
f での係数
h のフィルタのゲインを計算します。
5. ゲインと周波数をプロットします。
周波数はサンプリング周波数 = 1 に正規化されています。
6.
exp 関数と
arg 関数を使用して、フィルタの位相シフトを計算します。
このフィルタには C の遅延があり、この遅延信号を基準にしてフィルタの位相シフトを計算します。遅延の変換関数は次のとおりです。
7. 位相シフトを度数の単位でプロットします。
シフトは周波数レンジほぼ全体で -90 度です。
フィルタのテスト
1. 信号のパラメータを定義します。
2. exp 関数を使用して、新しい信号を作成します。rnd 関数は、低周波ノイズを付加します。
rnd にカーソルを置いて F5 キーを押すことで再計算すると、別のランダム信号 T を取得できます。
3. これらの要素の共役を最後の 200 カ所に配置することで、逆変換によって現実的な結果が得られるようにします。
新しいベクトルには 1001 個の成分があり、成分 1 から 200 には元のベクトル T が、成分 801 から 1000 には T の共役が含まれています。各成分間は 0 に設定されています。
4. 信号 T のフーリエ変換を求めます。
Re 関数を使用して、虚部の小さな切り捨て誤差を除去します。ノイズはその変換 T を構築することで生成され、これには 1 個目から 200 個目の成分のランダム位相と単位マグニチュードが使用されます。
5. 変換後の信号をプロットします。
6.
response 関数を使用して、
HamL をフィルタするためのベクトル
ZT の応答を取得します。
7. ZT の最初の 800 成分と R の最後の 800 成分を使用して、複素信号 z2 ·を作成します。
フーリエ変換ベクトル ZT の最初の 800 成分·をベクトル a2 に保存します。
応答ベクトル R の最後の 800 成分をベクトル b2 に保存します。
複素信号 z2 を定義します。
8. dft 関数を使用して、信号 z2 の離散フーリエ変換を計算します。
ベクトルの場合、dft 関数と廃止された CFFT 関数の間のスケール係数は 1/P になります。
9. 信号 z2 の離散フーリエ変換の絶対値をプロットします。
変換領域内の信号の生成に使用された元の 200 個の点がここに示されています。スペクトルの上半分は実質的にゼロなので、Hilbert 変換器フィルタはその役割を果たしました。
式をコピー