asrc1

ASRCによる弊害と実益


ASRC=Asynchronous Sample Rate Converter、いわゆるサンプルレートコンバータですが、非同期のサンプルレートコンバータの話です。

このASRCですがジッター対策に効果的という話で一時期有名な製品でも使われていました。しかしそれ以降データ自体が書き換わってしまうという精神衛生的な理由でどうも嫌われ役になっていた印象がありました。ですがさらに最近はES9018とAK4137の普及以降はよく採用されている例を見かけるので、ASRCがそこまで嫌われるイメージでもなくなったのかなと感じています。

こちらのサイトでもSRCによる差分は聞こえないという記事をアップしました。これは静的な処理ですが固定サンプルレートコンバートによる変化はわずかというお話です。

ただしSRCとASRCは違いがありましてASRCではアナログ時間を扱うためにどうしても固定SRCと違って理想的ではない部分があります。ですから実際にASRCを使う場合にはそこをどう対策していくかが重要になります。

今回はそのASRCの理想的ではない部分について主に紹介します。

ASRCによる弊害と実益については意外と細かいところまで知られていないようなのでここで一度まとめておきたいところです。こういう内容をまとめた記事は国内では見たことがありません。皆さんなんとなくASRCを使っているのでしょうか。ですが実は測定上で大きく劣化してしまうケースがあるので設計にはその部分の配慮が必要だったりします。

ただし個別課題の詳細な解決方法についてはあえて紹介しませんので、是非ここにある情報をもとに色々考えてみてほしいと思います。どうしたらよいかはここに書いた情報で判断できるかと思います。

実益1 ジッター除去効果

まず実益ですがやはりASRCの最大の利点はジッターを実測で排除できる点にあります。このジッター除去能力がなければASRCは必要ではありません。

そのあたりの内容は過去の自分の記事にまとめてあります。測定上のノイズフロア抑圧効果とスプリアスの削減で違いが見られます。これはASRC以外の方法でも達成可能ですがCS2000程度の性能のICならばASRCのほうがジッター抑圧には効果的のようです。

デジタルレシーバとDACジッタ測定
http://community.phileweb.com/mypage/entry/1641/20120412/30198/

SRCとCS2000のジッター抑圧特性の比較
http://community.phileweb.com/mypage/entry/1641/20140303/41537/

実際にはジッター除去以外のアップサンプリングで周波数が上がること自体には音質的に大した意味はありません。アップサンプリングで音が変わる理由はデジタル領域よりもDAC素子の消費電力増大やクロックノイズが大きくなる影響のほうが大きいと思います。

例えばあまりに高い周波数(768k等)はデジタル信号自体が50Mhzなどの高周波になってしまうので、漏洩もしやすくなりそれがマスタークロックラインやアナログ回路に入り込むリスクが上がるので、よほどうまく設計しない限り測定上で劣化が見られることがあります。

弊害1 ASRCによるクリッピング

最近ES9038&ES9028の調査をしていたらこのようなデータを見つけました。フルスケール矩形波を入力すると内部フィルターの影響でクリップしてしまうというものです。

es9028pro010

ES9028ではASRCを経由していることと、内部ヘッドルーム=デジタル的な余裕がないために0dB以上のデータが表現出来ないようです。ES9018も同様の例がありましたので、おそらくES9038も同様です。

ak4497sslow0sd1slow0

AK4497ではこのような問題が起きていませんが、これはAK4497が優秀というわけではなくて、AK4497にASRCが内蔵されていないだけです。違いはASRCを経由しているかどうかで、原因はASRCによって発生したインターサンプルピークです。

インターサンプルピーク
http://www.g200kg.com/jp/docs/dic/intersamplepeak.html

もともとDACに入力される44.1kHzなどのデジタルデータは飛び飛びの値です。それをDAC側でオーバーサンプルを行う際、フィルタ処理によっては元々の44.1kのデジタルデータ上に存在しない場所に新たなピークが出現し、それが0dBを超えてしまうことでこの問題が起きます。(デジタル的に0dBが最大値のためクリップ波形になってしまう)

intersamplepeak

上記の点がデジタルで記録されたデータですが、オーバーサンプルによって赤色の部分が生成されるので、ここでデジタルデータには存在しない高いレベルの波形が出現します。この部分が表現できないのです。

これはES9018~ES9038だけの問題ではなく、ASRCを使った場合に共通の課題です。今までに色々な環境でテストを行いましたが、大抵のASRCではフルスケールの矩形波を入力すると同じ現象は起きます。AK4137でもCS8421でも同じです。

最近のDACではフルスケール矩形波を入れてもオーバーサンプル時にクリップしないようになっていますが、ASRCはこの部分の対策をしているものは見たことがないのでASRC外で別途対策が必要です。対策を行えば回避可能です。

弊害2 条件によってスプリアスが付加される

次の画像を見てください。これはAK4137を使用した場合に付加されたスプリアスの実測例です。入力された信号は理想的な1kHzサイン波なので、アナログ的な高調波以外=中途半端な周波数のスプリアスはすべてASRCによって現れたものです。

AK4137_48to384

条件を変えるとASRCを使ってもこのように高調波のみのきれいなデータが取れる場合もあります。

AK4137_441to384

実はASRCを使った設計でこのスプリアスが多い組み合わせで設計していることが意外と多いように見えます。注意深く測定していればすぐに気づく問題のはずですが、歪率だけではわからない部分です。FFTで測定していないために問題に気づいていないかもしれません。

もちろんASRCチップが乗っていなくてもES90X8系の内蔵ASRCを使っている場合には、同じように設計に注意が必要な部分です。

この違いはどこにあって、何が原因でしょうか。ここで一つの資料を紹介します。例によってBruno氏の資料です。このなかにASRCについての記述があります。

asrc2

asrc3

入出力周波数を変更したテスト結果です。ここからわかることはスプリアス成分の発生は周波数比と関係がありそうだということです。イメージ的には次の図のような感じです。

実は自作キットの実装を見るとわざわざスプリアスが発生してしまうような組み合わせで設計している場合が多いと思います。一度お使いのキットや自作基板を見直して見たほうが良いと思います。

asrc4

同資料からの引用です。英語だとよくわからないところもあるので意訳してみます。

見出し

  • ASRCは入力ジッタを大きく減衰させます…

本文

  • …しかしそれを行う前に自分のジッタをたくさん追加します!
  • 残された部分をデータにエンコードします!
  • 信号劣化は不可逆的です
  • ASRCは完全なデジタルプロセスではありません!
  • 周波数は物理量=アナログ
  • 独立したオシレータ間の比率=アナログ

重要なのはASRCの良いところと悪いところを理解し、良いところを活かし悪いところを目立たなくすることだと思います。ジッターに対する万能の解決策がない以上は少なくともそれを通す意義がある程度の実装をしなければASRCを載せる意味がありません。

ASRCを通過することによる余計な付帯音は本当にASRCが原因ですか?こういうところの対策をせずにASRCの音は悪いと言われてもそれはASRCが悪いのではなく実装が悪いということです。

参考までに当方のAK4495-DACではAK4137-ASRCを使っていますが上記弊害はどちらも対策済みです。