SRCについて
SRCの中でスペック上は最高スペックを誇るのはTIのSRC4192/4193です、両者の違いはコントロール方法で2はH/W、3はSPIです。
内部構成的には入力を16倍でインターポレーションした後、出力周波数の16倍の周波数で非同期サンプルレート変換し、単純間引きまたはデシメーションフィルタで1/16に間引きして出力すると言うものになっています。
入力周波数≦出力周波数の時は単純間引き、入力周波数>出力周波数の時はデシメーションを使う必要があります。
またH/Wコントロールの4192ではデシメーションフィルタのみです。デシメーションフィルタを使わなければ演算回数を一回少なくすることができるので再度量子化誤差が少なくなると考えられます。
今回はディジタルフィルタの代わりまたは増強に使うと言うことを目的にしていますので、インターポレーション→単純間引きと言う処理について考えます。
各種ICと信号のスペック(振幅方向)
各種ICと信号のスペックを表記しておきます。
周波数特性はサンプリング周波数によってほぼ決まるので振幅方向の特性について示します。全ての値はフルスケール時のものです、また実際のICではTHD+Nはサンプリング周波数によって変化しますのでテスト条件も一緒に記入してあります。
- CD
- S/N=ダイナミックレンジ=THD+N=96dB
- 24ビットPCM
- S/N=ダイナミックレンジ=THD+N=144dB
- PCM1704
- S/N=120dB ダイナミックレンジ=112dB(Kグレード) THD+N=102dB(fs=768KHz)
- PCM1792/4
- SN=ダイナミックレンジ=132dB THD+N=96.5dB(fs=192KHz入力、内蔵フィルタ使用)
細かいデータはデータシートを直接見てください。
基本的にDACの性能はCDの16ビット信号と24ビット信号内に入っています。
PCM1792はサンプリング周波数が低いうちのTHD+Nは素晴らしいですが、サンプリング周波数が高くなってくるとPCM1704より悪くなります。
PCM1782・4は内部で8fsでオーバーサンプリングを行った後に64fsのアドバンスドセグメント変換を行います、どのサンプリング周波数でも8倍されるのでPCM1704と比べる場合には96KHzの値で比較した方がいいのかもしれません(PCM1704用のDF1706は192KHz入力の時は4倍しかしない)。
入力が96KHzの時のTHD+Nは102dBでPCM1704とほぼ等価です。
PCM1704はfs=768KHz、すなわちもっとも悪い条件での計測なのでこれ以上は悪くなることはないと考えられます。
・・・PCM1704のデータシートにはfs=768KHzの時の値しか書いてないのでなんともいえないのですが、THD+Nの値がPCM1792/4のようにサンプリング周波数が上がるほど悪化するのだったらわざわざSRC入れる必然性って無いんじゃ・・・
44.1KHzの時は352,8KHzで余裕があり、それ以上ではほぼ限界まで使用できるわけですから・・・
- 結論
- SRCとDF1706をカスケード接続すると言う前回の案はあまり意味を成さない。
フィルタ特性
カスケード接続をするのは意味がないという結論が前の項で出たので使用するとすればどれか一つと言うことになります。
すなわちDF1706を使うか、SRCをディジタルフィルタ代わりに使うか、または内蔵フィルタを使うか(PCM1792/4)と言う選択肢になります。
ディジタルフィルタの特性としては通過帯域、遮断帯域、通過帯域のリップル、遮断帯域の減衰、群遅延が上げられます。
また取り扱える入出力の最大周波数も問題となります。
それでは各ICのスペックを見ていきましょう。
DF1706(シャープロールオフ)
- 通過帯域
- 0.454fs
- 遮断帯域
- 0.546fs
- 通過帯域のリップル
- ±0.00005dB
- 遮断帯域の減衰
- -115dB
- 群遅延
- 45.125/fs
- 最大入力周波数
- 192KHz
- 最大出力周波数
- 768KHz
- オーバーサンプリング比
- 8xまたは4x
スローロールオフは聴感上はともかく、特性としてみれば悪いので比較には用いません。
群遅延からは多段フィルタなのか、一段フィルタなのか推測できません。
フィルタの特性によって群遅延が変化しないので同じタップ数で係数を切り替えているものと思われます。
PCM1792/4内蔵フィルタ(シャープロールオフ)
- 通過帯域
- 0.454fs
- 遮断帯域
- 0.546fs
- 通過帯域のリップル
- ±0.00001dB
- 遮断帯域の減衰
- -130dB
- 群遅延
- 55/fs
- 最大入力周波数
- 192KHz
- 最大出力周波数
- 外部出力不可、内部的には1536KHz
- オーバーサンプリング比
- 8x
内蔵のくせに完全に性能は外付けのDF1706を凌駕しています。
こちらはフィルタ特性によって群遅延が変化します。
SRC4192/3のインターポレーションフィルタ
- 通過帯域
- 0.4535fs
- 遮断帯域
- 0.5465fs
- 通過帯域のリップル
- ±0.007dB
- 遮断帯域の減衰
- -144dB
- 群遅延
- 102/fs(ノーマルモード)
- 最大入力周波数
- 192KHz
- 最大出力周波数
- 216KHz
- オーバーサンプリング比
- 最大16倍、ただし最大出力周波数で制限される。
SRCは遮断帯域の減衰以外はディジタルフィルタに劣っています。
もっと痛いのは出力周波数の制限です、内部的には16倍まで可能とは言え出力は216KHzに制限されます。
DF1706の8倍で44.1KHzをオーバーサンプリングすると352.8KHzになりますが、SRCはこの周波数を出力することが出来ません。
4倍なら出力できますが、サンプリング周波数が96KHz、192…と上がっていくと2倍、ついには1倍になってしまいます。
これでは何のためのフィルタだか分かりません。
もともとがサンプリングレート変換用なのでこんな使い方をするのが悪いのですが・・・
- 結論
- SRCをDF1706の代わりに使うのは意味を成さない
結局
- カスケード接続は意味が無い
- DFの代わりにSRCを使うのは意味が無い
→DF1706または内蔵フィルタのみを使う。
…長々と書いてきて結局こうなるのか…
私がSRCを用いるとしたら1:1の変換をやる(ジッタ吸収用)ぐらいになりそうです。
それにしたってPLLの方がよさそうですが。