PSoC 4200 Prototyping Kit (26)

2015 年 3 月 2 日付けの記事 (→こちら) に示したように、LPF 出力で観測した 2 次高調波のレベルは基本波のレベルの -40 dB 〜 -60 dB 程度となっています。
アナログ部分を色々いじると高調波のレベルも変動するので、この特性はシグマデルタ変調 DAC のディジタル部の特性ではなく、アナログ部の特性と考えられますが、確証はありませんでした。
そこで、DAC の 1 ビット・ディジタル出力をホスト PC で「ビット・パーフェクト」にキャプチャし、ホスト PC 上のプログラムで FFT をかけて特性を観測しました。
この「ビット・パーフェクトなキャプチャ」は、いつものように 48 kHz サンプリングの S/PDIF 信号を利用して実現しています。
その結果、ディジタル部分では大きなレベルの高調波は観測されず、アナログ部分で高調波ひずみが発生していることが確定しました。
また、LPF 回路はそのままで、単に OP アンプだけを高価で高性能なものに交換すると特性が改善するという、極めて当たり前の結果が得られました。
シグマデルタ変調 DAC 出力を S/PDIF でキャプチャするためのブロック図を下に示します。


SDMDAC16 の出力は、本来は 24 MHz のレートで出力されていますが、48 kHz の S/PDIF でキャプチャするために、DAC クロックを
32 fs = 32 × 48 [kHz] = 1.536 [MHz]
まで下げています。
目的は 1 ビット・ディジタル値のシーケンスをキャプチャすることなので、そのビット列の実際のクロック・スピードは重要ではありません。
S/PDIF のトランスミッタは外付けの IC を使っています。 PSoC4 には DMA 機能がないので、「自前」でソフト S/PDIF を実現することはできません。
S/PDIF TX チップのマスター・クロックとして
384 fs = 384 × 48 [kHz] = 18.432 [MHz]
を使っており、それを PSoC4 の EXTCLK ピンに入力して PSoC4 のシステム・クロックとしても使っています。 PSoC4 には PLL はないので、CPU も 18.432 MHz で動作することになりますが、重い処理をさせるわけではないので問題ありません。
キャプチャした 1 ビット・シーケンスを FFT した結果を下に示します。

周波数は本来の値を表示しています。 正弦波の周波数は約 239 Hz です。
FFT の窓関数は Blackman-Harris を使っており、2 次高調波の 478 Hz 付近は、そのメインローブに隠されていますが、少なくとも -40 dB とか -60 dB のようなレベルでないことは分かります。
1 kHz 付近から高い周波数にかけてノイズ・フロアが上昇しているのは、1 次のシグマデルタ変調による 1 次ノイズ・シェーピングの効果によるものです。
48 kHz 以上の領域で 4 本ピークが見えているのは、239 Hz のエイリアスによるものです。
正弦波波の発生は 48 kHz のレートで行なっており、アップサンプリングせずに 1 次ホールドした形で DAC に供給しているので、レベルが高域ほど減衰する 48 kHz 間隔のスペクトルとなります。
実際には
n × fs ± 239 [Hz]   (n = 1, 2, 3, ... )
の位置に 2 本ペアになって存在しているのですが、上の図のスケールでは重なって 1 本ずつに見えています。
2015 年 3 月 2 日付けの記事とは違って、LPF を下の図のような 3 次のものに変更して測定を行いました。

3 次では入力段の 12 kΩ と 1 nF のパッシブ・ネットワークで高周波成分がある程度減衰してから OP アンプに入力される形になります。
また、もともとの 24 MHz DAC クロックでは周波数が高すぎるので、
128 fs = 128 × 48 [kHz] = 6.144 [MHz]
に落としています。
OP アンプに NJM7043 (JRC 製) を使った場合の WaveSpectra による測定結果を下に示します。

2 次高調波のレベルは -60 dB 程度、歪率は 0.08 % 程度で、これでも良い部類に属します。
秋月価格で 1 個 200 円の AD8656ARMZ を使用した場合の結果を下に示します。

2 次高調波のレベルは -80 dB 程度、歪率は 0.02 % 程度で、OP アンプを差し替えただけで改善が得られました。
これは、おそらく、AD8656 はゲインバンド幅が 28 MHz と広く、高い信号周波数まで反応するためと思われます。
Sallen-Key トポロジのアクティブ・フィルタでは、その構成上、OP アンプ出力側への信号の「フィード・スルー」が多いので、フィード・スルーの少ない「多重帰還型」の構成のフィルタを試してみようと思っています。