dsPIC33FJ64GP802 (20) --- 周波数シフター (4)

 ヒルベルト変換器を通すと、すべての周波数成分の位相が 90° 遅れるので、単一周波数の正弦波以外の一般の信号では、入力信号とは違った波形になります。
 のこぎり波 / 方形波 / 三角波に対する出力波形を観測し、「理論値」と比較してみました。
 まずは単一周波数 (250 Hz) の正弦波の場合を示します。

 周波数シフターをゼロ・オフセット・モードで使い、周波数シフトされずにヒルベルト変換器出力がそのまま出るようにしています。
 上側 (L ch) がヒルベルト変換器への入力波形 (解析信号の実部) で、下側 (R ch) がヒルベルト変換器の出力波形 (解析信号の虚部) です。
 入力波形の生成は WaveGene を用い、48 kHz サンプリングの USB DAC から出力しています。
 その波形を外付けの 48 kHz サンプリングの I2S ADC を介して dsPIC へ取り込んでいます。
 当然のことながら、ヒルベルト変換器の出力は入力と同じ周波数、同じ振幅で位相だけが 90° 遅れた正弦波となっています。
 次はのこぎり波の場合を示します。

 I2S ADC に含まれている直流カットのための IIR HPF による低域での位相回りのせいで、入力波形の直線部が少し曲がっています。
 オーバーサンプリング USB DAC → オーバーサンプリング I2S ADC の接続により、20 kHz 以上の成分は減衰を受けています。
 出力波形は、鋭いピークを持つ正負非対称な波形となっており、ピーク・ツー・ピーク値が大きいので入力信号のレベルを絞らないと、出力波形がクリップしてしまいます。
 続いて、方形波の場合です。

 この場合も、I2S ADC の HPF の影響により入力波形に「サグ」が生じています。
 出力波形は、上下に鋭いピークを持つ、正負対称の波形となっています。
 次は、三角波の場合です。

 この場合、出力波形には鋭いピークは現れず、ずんぐりとした正弦波のような形になっています。
 出力波形の振幅も、入力の三角波より小さくなっています。
 最後に、「理論値」として、元の信号波形のフーリエ展開の式から、各周波数成分の位相を 90° 遅らせて合成した波形のグラフを示します。

 青色のトレースは、入力の信号波形 (のこぎり波/方形波/三角波) を原点に関して「奇対称」な位置に配置してフーリエ展開の係数がコサイン関数の項はすべてゼロとなるようにして、基本波から 79 次高調波までのサイン成分を合成したものです。
 基本波の周波数を 250 Hz とすると、20 kHz は 80 次高調波に相当するので、その一つ前の奇数次高調波の 79 次までを加算しています。
 赤色のトレースは、入力信号のフーリエ展開の係数値はそのままに、全周波数成分のサイン関数の位相を一斉に 90° 遅らせて合成したものです。
 実際の波形の観測値と良く一致しています。
 次回は、「理論値」をフーリエ展開の公式から眺めてみたいと思います。