ディジタル信号処理による信号発生とエイリアス(5)
前のプログラムで作成した wave ファイルは (→こちら) に置きました。
「saw2.wav」をループ再生して、オシロスコープで観測した写真を下に示します。
下のトレース (ch 2) が wave ファイルの右チャンネルの、フーリエ級数による方法の波形で、ジッタも少なく、安定しています。 この ch 2 でトリガをかけています。
上のトレース (ch 1) が wave ファイルの左チャンネルの、エイリアスを含んだ波形で、1 サンプリング周期分のジッタが生じています。
波形編集ソフトで「saw2.wav」の左チャンネルの波形を見たものが、下の図です。
1024 サンプルで、のこぎり波が 93 周期ですが、上の図では中央に位置している、12 サンプルで1周期を構成している波形が1つだけあり、残りの 92 周期は 11 サンプルで構成されています。
この 11 サンプルと 12 サンプルの波形の混在がジッタの原因となっています。
理想のこぎり波の周波数は 4359.375 Hz ですから、その 11 倍波のエイリアスの周波数は
4359.375 × 11 = 47953.125 = 48000 - 46.875
となって、ベースバンドの 46.875 Hz に落ち、そのレベルは、基本波の 1/11 になります。
同様に計算すると、22 倍波のエイリアスは、ベースバンドの 93.75 Hz の成分となって、そのレベルは基本波の 1/22 になります。
この、ベースバンドに落ちたエイリアスの周波数と、レベルを表にすると、
n 倍波 | 周波数 [Hz] |
相対レベル |
---|---|---|
11 | 46.875 | 1/11 = (1/1)*(1/11) = -20.83 dB |
22 | 93.750 | 1/22 = (1/2)*(1/11) = -26.85 dB |
33 | 140.625 | 1/33 = (1/3)*(1/11) = -30.37 dB |
44 | 187.500 | 1/44 = (1/4)*(1/11) = -32.87 dB |
55 | 234.375 | 1/55 = (1/5)*(1/11) = -34.81 dB |
と続いていき、結局、ベースバンドの DC 付近に落ちたエイリアスは、
- 周波数 = 46.875 Hz
- レベルが元の波形の 1/11 = -20.83 dB
の、のこぎり波となることが分かります。
この低周波成分は、wave ファイルの再生音を耳で聞いても、はっきりと分かります。
「saw2.wav」を FFT にかけて、DC 近傍と、のこぎり波の基本波の付近のレベルを表にすると、下のようになります。
周波数 [Hz] |
L ch [dB] |
R ch [dB] |
---|---|---|
0.000 | -69.91 | -121.17 |
46.875 | -20.83 | -109.56 |
93.750 | -26.84 | -124.80 |
140.625 | -30.36 | -113.87 |
187.500 | -32.84 | -121.22 |
234.375 | -34.77 | -120.78 |
281.250 | -36.33 | -126.74 |
328.125 | -37.65 | -117.09 |
375.000 | -38.78 | -121.32 |
... | ... | ... |
4218.750 | -30.61 | -118.24 |
4265.625 | -27.23 | -111.79 |
4312.500 | -21.58 | -132.94 |
4359.375 | 0.00 | 0.00 |
4406.250 | -20.00 | -121.72 |
4453.125 | -26.44 | -115.24 |
4500.000 | -30.09 | -121.69 |
左チャンネルの計算結果は、上の理論値と良く一致していることが分かります。
右チャンネルのエイリアスのレベルは -100 dB より小さいレベルで、16 ビットサンプルのダイナミック・レンジが 96 dB であることを考えれば、演算誤差のレベルで、実質ゼロと考えられます。