SH-2A 基板 (13)

シリアル経由で PC とデータのやりとりができるようになったので、プログラムでサンプリングレートコンバータのインパルス応答を求めて PC に送り、周波数特性を求めてみました。
SH-2A/FPU コアですから、FPU は内蔵されており、マイコン側で FFT を計算するのもそれほど非効率的ではありませんが、今のところは PC 側で FFT を計算することにします。
出力サンプリング周波数 48 kHz、入力サンプリング周波数 8 kHz の設定の場合のインパルス応答を下に示します。

インパルス応答のピーク位置を 0 とすると、48 kHz サンプリングで数えて -190 サンプルから 190 サンプルまでの間にゼロでない応答があり、それ以外の領域では応答はゼロになります。
合計で 381 サンプリング・ポイントとなりますから、窓関数なしで 512 ポイントの FFT を施して周波数特性を求めたのが下のグラフです。

阻止域の減衰量は 80 dB 以上取れており、ハードウェア・マニュアル pp.28-1 の「SNR : 80 dB 以上」という記述を満たしています。 入出力データは 16 ビットなので、フィルタの特性が良くても、ノイズフロアは量子化誤差である-96 dB 以下のレベルにはならないと思います。
下に通過域のリプルのグラフを示します。

リプルは ±0.0005 dB 程度のレベルであることが分かります。
出力サンプリング周波数は 48 kHz で、入力サンプリング周波数 8 kHz のちょうど 6 倍の整数比になっており、サンプリングレートコンバータでは、入力サンプル 1 個を読み込み、出力サンプル 6 個を吐き出す形になります。
出力サンプル 6 個のうち 1 個は入力サンプルをそのまま出力し、残りの 5 個は「補間」によって出力します。
この補間動作はすべての入力サンプルに対して同様に行われ、インパルス入力のピークがどの位置にあっても、出力のインパルス応答の形は 1 種類しかありません。
一方、44.1 kHz → 48 kHz の変換では、周波数比が 160/147 という有理数になります。
入力と出力の位相関係は、入力側の 44.1 kHz サンプリングで数えると 147 サンプルで 1 周期、出力側の 48 kHz サンプリングで数えると 160 サンプルで 1 周期となります。
したがって、位相関係の違いにより、出力で観測されるインパルス応答は 147 種類あることになります。 (対称性による重複を考えず単純に数えた場合)
インパルス応答の全体像をとらえるには、これらのインパルス応答を集め、再構成しなければならないので、44.1 kHz 系から 48 kHz 系への変換の特性を求めるのは今後の課題とします。