2016年3月23日水曜日

Raspberry Pi のI2S信号を見てみる つづき2

 49.152MHzのクロックを使っているのは、ES9023を積んでいる
DAC-24192-ULN, 24Bit/192KHz DAC, I2S Input, Ultra Low Noise Regulator Circuit

クロックは
HPRC-331: High Precision & Low Jitter Audio Clock with Ultra Low Noise Circuit
の組み合わせ。


 今日はpicoScorpeを使った。

 サンプリング周波数176.4kHzの1kHz。メインの正しいらしい周波数に対して、少しのずれた周波数の2種類の周波数が観測できる。


サンプリング周波数192kHzの1kHz。複雑。










サンプリング周波数176.4kHzの1kHz。時間軸を広げた。こちらのほうがはっきりわかる。低い周波数が一つ見える。


サンプリング周波数192kHzの1kHz。時間軸を広げた。メインの周波数自体を少し偏移させている。前の波形を見れば、さらに数Hz離れた複数の周波数にもずらすという、複雑な波形だと推測できる。

昨日の観測の推定から一歩進んだ。


  •  サンプリング周波数の整数倍のMCKのクロックを使うときは、メインの周波数以外に数Hzずれた周波数を数分の1の確率で発生させる。
  •  サンプリング周波数の整数倍でないMCKのクロックを使うときは、メインの周波数以外に数Hzずれた周波数を複数、数分の1の確率で発生させる。メインの周波数自体をすごく狭い範囲で偏移させる。


 サンプリング周波数の整数倍かそうでないかで、波形の作り方が大きく異なる。整数倍の時のほうが生理的には受け入れられるが、多くの人が入手しているのは、整数倍のクロックのDACではない。

 この実験の根本的な部分が間違っているのかな。最初に用意した1kHzが正しくない?
 WaveGeneの波形を見た。すると、トリガのかかり方によって、二つの波形が見えてしまう。でも、これは、トリガが、正弦波に乗っているノイズによって、安定にかかていないためだと思われる。 離れたところに出るので、上記の「サンプリング周波数176.4kHzの1kHz。時間軸を広げた。こちらのほうがはっきりわかる。低い周波数が一つ見える。」とかいたが、同じ理由であれば、

  •  サンプリング周波数の整数倍のMCKのクロックを使うときは、正しい波形だけが出る。


ということになる。


 しごく当然の結論。
 測定は難しい。リアルタイムに正しいトリガをかけるには、トリガにローパスフィルタをつけないと、このノイジーな波形に対処できないかも。
 逆か。ノイジーな波形をそうでないように対策してから測定すればいいのかな。
大体、この汚い波形をだれも見たことないから、対策をしている人を見かけない。。。いるのかな。
 さかのぼれば、BCKやLRCKにはMCKがもろに乗っているし、LRCKにはBCKが乗っている。192kHzのBCKはひどいオーバシュートが出ている。みんな何とかしないといけない問題。ディジタルデータとしては処理されるが、結局アナログ出力に、それらのノイズ成分が漏れているからこんな汚い波形になるのだろうと思う。
 ラズパイの信号からES9023への信号の途中にはダンピング抵抗が入っている。でも、すごくレベルの高いMCKの漏れは、取り切れていない。フェライトビーズで対策をすればいいのかな。

 で、オシロは、そういう状況でも正しい波形を観測しなくちゃいけない。リアルタイムでなくてもいい。そう、今のオシロはみんな蓄積型だ。keysightにはバッチ型の解析ソフトがあったような。買えないけど。
 Picoもデータは吐き出せる。Matlabのデータも吐き出せる。解析に持っていけそうな気はするが、気力がない。

 これらの結論は、測定器を正しく操作しているかどうかで変わってくるので、うのみにしないで。。。

PS. 176.4kHzは 発振器が50MHz、40MHz、49.152MHzいずれであっても、キレイは一つの周波数が観測できるような気がする。192kHzはノイジーになったり偏差のある周波数に動き続けているような感じ。

1 件のコメント:

  1. はじめまして。
    全くの的外れかもしれませんが、これは関係ないでしょうか?
    ・Volumio でジッターを無理やりなくしてみる
    http://horliy.seri.gr.jp/mt/horliy-blog/2015/02/volumio-1.html

    返信削除