サンプルレートコンバータってデータが変わるから音質悪いんでしょって思う方は先にこちらを見てください。
1.AK4137のスペック
昨日こちらのICを入手して早速試してみました。実は大分前から代理店の方にサンプル入手の相談をしていたのですが、連絡がないままDigikeyでリリースされてしまったのでDigikeyで購入しました。まずはICのスペックについて、公式サイトより製品の紹介文を引用します。
AK4137EQは、新世代フラッグシップVERITA 32-bit サンプリングレートコンバーターです。入力された8kHz~768kHzの範囲にあるサンプリングレートのオーディオソースを8kHz~768kHzのサンプリングレートに変換して出力します。マスタモード、TDMデータインタフェースへ対応し、非同期な複数のステレオデータの同時入力へも対応します。また音質の調整を可能とした4種類のディジタルフィルタを内蔵します。
●PCM/DSDコンバート機能
AK4137EQは、PCMとDSDを双方向に変換して出力することが可能です。
- 最大サンプリング周波数/分解能:PCM768MHz/32-bit, DSD256(11.2MHz)/1-bit
- ダイナミックレンジ(DR):188dB
- 歪み(THD+N):-150dB
- サウンドカラーディジタルフィルター:4種類
とはいえ従来からも同様のSRC機能を持つICは各社から出ていましたが、どれも192k、24bitのPCM信号専用でした(AD1896、SRC4192、CS8421等)。しかしこのAK4137はPCMとDSDの相互変換機能を持ち、サンプリング周波数も768kHz/DSD256まで対応、さらには従来では変更することが出来なかった内蔵のデジタルフィルタも変更ができるという、まさに最新スペック全部入りのSRCです。
というわけで自作派の方なら非常に注目していたICだったのではないかとおもいます。
2.CT7301のスペック
もう一つ、768k ASRCでPCMとDSDに対応しているものとしてCom true 社のCT7301というICもあります。こちらはかなりマイナーだと思われますがこれも最新スペックに対応している面白いICです。こちらのICも入手済みですので使用感含めて一通りテスト済みです。
- SPDIF support up to 384 KHz / 32 bits mode.
- I2S support up to 768 KHz / 32 bits mode.
- SRC / ASRC fully support 32 KHz ~ 768 KHz.
- DSD support 1x/2x/4x mode.
- DOP support 1x/2x/4x mode, over I2S.
- DOP support 1x/2x mode, over SPDIF.
- DSD / DOP to PCM converter.
- I2S Rx standard / left justified slave mode. I2S Tx standard / left justified master mode.
- Basic auto De-pop function.
- Hardware / software mode support.
- Software Power Down feature.
- Crystal reference clock / MCLK / DOP / Mute status output.
- Auto De-emphasis 32 KHz / 44.1 KHz / 48 KHz.
- I2C interface. / Interrupt function.
- Volume control with fading in/out.
- SRC / ASRC 32 bits dynamic range.
- SRC / ASRC THD+N better than 24 bits.
3.測定特性の比較 矩形波応答と広帯域分布
まずはPCM再生の特性をひととおりチェックしてみました。ここでは画像を中心に進めたいと思います。現状ではPCM768kHz、DSD出力の検証はまだ出来ていませんがあとから追加する予定です。DSDtoPCMはチェック済みですがDSDのテスト用シグナルデータがないため測定が難しいです。
測定条件
- 使用DAC AK4495(SRCの特性を測るためにDAC側フィルタはNOS設定にしてあります)
- デジタル信号源 WaveGene Ver1.50 、Amanero Combo384
- オシロ&FFT PicoScope 5244
なお広帯域の周波数応答はデジタル領域だけじゃなく、DACのアナログフィルタ設計によっても変わってきます。ここで使用したAK4495のアナログフィルタ構成は残留ノイズ抑圧よりも矩形波応答の綺麗さに注力した設計になっています。
図1-1 CT7301内蔵フィルタ 192kHz to 384kHz PCM 5kHz矩形波
図1-2 AK4137 SharpFIR 192kHz to 384kHz PCM 5kHz矩形波
図1-3 AK4137 SlowFIR 192kHz to 384kHz PCM 5kHz矩形波
図1-4 AK4137 SharpIIR 192kHz to 384kHz PCM 5kHz矩形波
図1-5 AK4137 SlowIIR 192kHz to 384kHz PCM 5kHz矩形波
図1-6 CT7301内蔵フィルタ 384kHz to 768kHz PCM 5kHz矩形波
768kへアップサンプリングする場合、300kHz近辺にあった残留成分がより高域へシフトするようです。
図1-7 AK4137 全フィルタ共通 384kHz to 384kHz 5kHz矩形波
AK4137は384kHz以上を入力した時、どのタイプのフィルタを選択しても同様の周波数分布、応答でした。この波形は44.1kの矩形波入力+NOSモードでもほとんど同じ矩形波応答なので、384k以上を入力した時は限りなくNOSに近い動作になっているようです。波形に見られる若干のオーバーシュートはDAC出力側のアナログフィルタ特性に依存しています。
4.測定特性の比較 その2 周波数応答
ホワイトノイズを入力して大まかなフィルタ応答をチェックしてみました。ストップバンド付近はノイズフロアに埋もれてしまっていますのでこの方法では測定できませんが、有効帯域を簡単に調べるだけならこれでも大丈夫です。デジタルでの入力が44.1kHz、DAC出力の観測は88.2kHzで行っています。デジタル出力があればアナログの有効S/Nに制限されることもないのでストップバンドまで観測が出来るかと思います。
図2-1 CT7301
図2-2 AK4137 SharpFIR & SharpIIR
図2-3 AK4137 SlowFIR & SlowIIR
シャープロールオフ特性はCT7301もAK4137も大差はありません。ストップバンドのスペックも両者-140dB付近なのでほとんど違いがありません。ですがAK4137のスローロールオフフィルタの応答特性は問題があります。最初あまりにも音が悪いのでなにか壊れているんじゃないかと思って測定したことがきっかけでこの問題に気付きました。
図2-3では44.1k再生では可聴帯域を大きく割る程度の再生帯域しかないことがわかります。大体12kHzで-20dBも減衰してしまっていますので、これは若い人じゃなくてもハッキリとわかるレベルのハイ落ち特性です。音を聞いてみてもこれは実用レベルとは思えない音質です。これでは矩形波応答がいくら綺麗でも44.1kHzでは実用には使えません。
ここで比較のためにAK4495の内蔵フィルタのスローロールオフ特性を見てみます。
図2-4 AK4495内蔵SlowFIR特性
同様に信号源は44.1kHzなのですが、DAC内蔵のスローロールオフでは図2-4のような特性になります。実際には22kHz以上の成分は22kHz以下の折り返し成分が出ているだけですが、少なくとも20kHzまでの周波数応答はこちらのほうが綺麗です。
SRCでは途中の演算でこの折り返しノイズの影響が可聴帯域に強く出てしまうのでしょう。だからAK4137のスローロールオフフィルタの応答は20kHz付近でストップバンドに到達する必要があったのだと思われます。おそらくですがもともと仕組み的にSRCでスローロールオフをどんな条件でも実用レベルにするのは無理があったという話なのかもしれません。このスローロールオフ設定は88kHz以上で使わないとまともな音にはならないと思います。
だとしたらこれは技術サイドじゃなくて営業サイドの判断で追加した機能ってことでしょうかね。はじめから機能として実装することが決まっていたものの、まともな特性を出すにはここまで可聴帯域を削るしかなかったとか。わかりませんが。
5.測定特性の比較 その3 歪率ノイズ
すべての条件を列挙するとものすごい量になってしまうので、問題があった箇所だけ載せておきます。
図3-1 AK4137 48kHz to 384kHz サイン波1kHz
こちらが問題の測定結果です。48kHzからアップサンプリングした時に謎のスプリアスノイズ成分が出現します。デジタルフィルタ特性には依存せずどのような設定でも同じです。一見するとこれってSRCによってデータが劣化しているのかと思うのですが、実はアナログ特有の要因の可能性もあります。
CT7301の場合にも同様の問題があるのですが実はデジタル領域でSRC後のデータを拾ってFFT観測するとデジタル的には全く劣化していなかったということがあったので、おそらくこれもアナログ領域の問題でしょう。データシートでもデジタル領域の測定ではTHDの劣化はほとんどないということになっています。こういう問題は原因と対策の特定が非常に困難です。
図3-2 AK4137 44.1kHz to 384kHz サイン波1kHz
44.1kHzから変換したときには48kHzで見られたような余計な成分は出現しません。こちらは非常に綺麗です。以前CS8421やCS8422を使った時にはこのような症状は一切ありませんでした。これはもしかしたらAK4137には基本的なSRC性能に問題があるのではないでしょうか?この問題についてはもう少し調査してみたいと思います。
2015/9/13追記 原因ははっきり特定出来たわけではないですが確実な対策方法を一つ見つけました。ただし方法はノウハウということでこちらでは伏せます。対策をすると44.1k系でも48k系でもこのようなスプリアスノイズ発生の問題は起きなくなりました。原因はCT7301の出力とAK4137の相性の可能性もあるので他のデジタルレシーバではこのような劣化は起きないかもしれません。
比較対象のCT7301で48kHzから768kHzに変換した場合の結果も載せておきます。
図3-3 CT7301 44.1kHz to 768kHz サイン波1kHz
図3-3では768kHzですが、実際に384kHzで測定しても結果に変わりはありません。CT7301ではAK4137のようなひどいノイズではありませんが、図のようにAK4137では見られなかったような別のスプリアス成分が出ます。しかもCT7301は再起動のたびにこのスプリアス成分の分布と量が変わります。そのスプリアスはCT7301周辺のノイズを拾ったものが変調されてMCLKやBCKへ出力してしまうという問題があります。
AK4137を768k出力で動作させる方法
AK4137は普通に24.576Mhzを入れて動かすと384kHzアップサンプリングの動作になります。スペック上は768kまで対応していますがデータシートを読んでも768kにする方法がわかりにくいので、こちらでの実際に動作確認した方法を書いておきます。
方法は非常に簡単で24.576Mhzの倍の49.152Mhzクロックを使うだけです。動作を見る限りOMCLK inputが64FSOの時はマスタークロックの1/64が出力周波数ってことみたいです。24.576Mhzなら384kというわけです。そしてこの設定のときはDSDは64fsまでしか対応できないようです。
DSD出力のとき特性が劣化する?
AK4137のこちらの表を見るとDSDを経由するとPCMよりも劣化があるようです。特に気をつけたいのはDSD出力時のダイナミックレンジです。PCM出力では問題になっていませんがDSD出力の場合はDSD128で119dBですから、これは現代のハイエンドDACチップのダイナミックレンジを下回っています。
ということはDSD出力にするとDACからの出力も本来のスペックよりも劣化する可能性が高いです。これを見ると安易にAK4137でPCM to DSDすれば高音質!ってのは少し待ったじゃないでしょうか?これはあとで実測してみたいと思います。
ここからわかることは特性重視なら出力はDSD出力にはしないほうが良さそうだということです。DSD256だけはDACのスペックに近いダイナミックレンジですが、AK4137のDSD256出力はPCM入力なら176kHz以上にしないと有効になりませんので、制約が厳しく殆どの場合にDSD256出力は使えません。
ということで特性面でも実用面でもAK4137に万能なPCM to DSDを期待すると実はかなり期待はずれのような気がします。そもそもDSDの最大の利点は過渡応答の速さにありますが、PCMであっても384kHz以上になると今度はDAC出力段のアナログフィルタによって過渡応答が制限されてしまいます。実質DSDも384k-PCMも最終出力での過渡応答はあまり変わらないといえそうです。
この図のDXDはPCMで352kHz/32bitらしいので384kHzになるともうほとんどDSDと変わらないでしょう。実際の測定でも、このページの上の方にある図1-7のように過渡応答重視のアナログフィルタを使っても384kHzが立ち上がりの限界で、NOSと384kでほとんど同じ過渡応答です。これ以上アナログフィルタを弱くする=過渡応答を改善することは可能ですが、今度は100kHz以上の残留高周波ノイズシェーピングノイズの問題が起きます。
ということで384k対応のDACを接続する場合はAK4137の出力をDSDにするべき理由はなさそうです。DSD出力はもともと低レートでしか入力できないDAC-ICの過渡応答改善用か、フィルタ一発で音声を取り出すとか特殊用途用でしょうか。しかしアナログフィルタでDSDから音声を取り出す設計はDSD128程度のレートでは小規模のアナログ回路でまともなS/Nになりません。以前にDSD原理基板を試したことがありますが、面白いけれども正直まともな音じゃないと思いました。本来出てはいけない音が出る、原音には存在しない音が聞こえるからです。
実際世界のハイエンド設計で原理基板に近いものを見ると100Mhz付近までDSDアップサンプリングしないとアナログフィルタで特性を稼げるほどDSDのシェーピングノイズ帯域が音声帯域と離れていない(ノイズを取るために急峻なフィルタが必要)ようです。これはDSD2048とかの世界です。
DSD相互変換のテスト
上にデータシート上劣化するとか色々書きましたが、ようやく相互変換のテストを行いましたので各種測定結果を載せておきたいと思います。1Mhz以上の測定上の残留ノイズが今回より消えていますがプローブのGND点をより良い場所へ変更したからです。
DSD to PCM
図4-1.AK4137 DSD64 to PCM 矩形波5khz (20kHzLPF)
図4-2.AK4137 DSD64 to PCM 矩形波5kHz (100kHzLPF)
図4-2.AK4137 DSD64 to PCM サイン1kHz (TASCAM hi-res editor)
これを見るとSNが非常に悪いのですが、AK4137によるものではなく変換されたDSDデータが原因と思われます。ここではTascamのPCM – DSD変換を使ってみましたが、実はこのあたりの精度が高くないようです。Foobar2000の内蔵変換機能でDSD64にしたものは問題ありませんでしたので、これ以降はFoobarによるDSD変換を掲載します。
図4-3.AK4137 DSD64 to PCM サイン1kHz (foobar2000 plugin)
図4-4.AK4137 DSD128 to PCM 矩形波5khz (40kHzLPF)
図4-5.AK4137 DSD128 to PCM サイン1kHz (foobar2000 plugin)
図4-6.AK4137 DSD256 to PCM 矩形波5kHz (LPF 100k)
図4-7.AK4137 DSD256 to PCM サイン1kHz (foobar2000 plugin)
入力がDSD256または内蔵LPF100kHzの設定はPCM出力であっても十分な高レートPCMなら過渡応答はDSD並で理想的になるようです。これは先に書いた予想通りの結果で、高レートPCMならDSDの過渡応答も内包できるという結果です。理論上の理想が実現できるAK4137のDSD to PCMはかなり優秀と言えそうです。
次にCT7301内蔵のDSD to PCM機能によるデータです。CT7301はAK4137よりもキツイフィルタでDSDのシェーピングノイズを除去しているようです。フィルタの設定を変更すること等は出来ないので、CT7301では残念ながらPCMへの変換でDSDの過渡応答を再現することは不可能です。
図4-8.CT7301 DSD64 to PCM 矩形波5kHz
図4-9.CT7301 DSD64 to PCM 矩形波5kHz NOS
PCM to DSD
現在検証中ですがレートの動作が当初想定したものと違うようです。このモードはかなり動作の制約がキツく、ほとんどすべての設定を見なおさなければならないので何でも自由に設定して使えるようにするのは難しそうです。さらに現在出ている測定結果はあまり好ましくありません。とりあえず現状のものは貼り付けておきます。
図4-8.AK4137 192kPCM to DSD64 矩形波5khz SharpIIR
過渡応答が異常に遅く、波形にノイズも見えます。DSD64への変換はしないほうがいいでしょう。クロックを交換して出力レート比を変更すればもっとましになる可能性はありますが、そこまでする価値はなさそうです。
図4-8.AK4137 192kPCM to DSD128 矩形波5khz SharpIIR
こちらも本来のPCM192kの過渡応答が出ていません。これだけで判断するのは早計ですがAK4137ではPCM to DSDは過渡応答特性に問題があるように見えます。これだとDSDでもPCM以下でDSDの良さは全然ないんじゃないかと思います。これを見るとなんでもDSDに変換すれば高音質みたいな思い込みはちょっと注意した方がいいでしょう。
またAK4137は各種初期設定を変更しないと想定したレートで出力ができないので手間がかかる割に測定値もイマイチという結果です。AK4137のDSD256変換は44.1kからの変換が出来ない?(データシートによれば)ので、一番音源の多い44.1kでのサポートを考えるとDSD256での運用は保証外での動作となりそうです。こちらではこれはテスト自体していません。
結論
色々とわかったこともありますので以前のものは一度削除します。全ての検証が終わった後でもう一度書き直します。