月別アーカイブ: 2008年6月

DSD2S/PDIF デシメーション・フィルタの波形観測

ほとんど機能が完成していますので、実際にDENONのSACDディスクを再生して正弦波を見てみましょう。

比較としてPS3のSACD光デジタルOUTを同じDACで受けた出力も見てみます。実はPS3の最近のファームではSACDでも44.1kHz/16bitで光デジタル出力が可能になっています(そのせいかどうか、ハイブリッドディスクにおいてCDレイヤーがXMB上に現われなくなってしまったので困っていますが、それは置いておいて…)。

同じDACをつないで出力レベルがPS3と同じですので、PS3もSACDの0dBがPCMのフルスケールになるようにDSDからPCMへ変換していると考えられます。

 まずはPS3、上から1kHz, 10kHz, そして15kHzの正弦波(44.1k/16bit)です。サムネールではわからないので画像をクリックして大きなサイズで見てください。遷移先の画像ファイルはブラウザできちんと100%表示にしてご覧ください。そうでないと正弦波が歪んで見えてしまいます。

 

 

 

 

 

 

 

 

 

 

 

 

結構ノイズ・シェーピングのノイズが漏れているように見えます。

 続いてデシメーション基板の波形です。まずはfs=88.2kで、上から1kHz, 10kHz, 15kHz, そして30kHzです。SACDテストディスクなので30kHzの正弦波も入っています。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ノイズ・シェーピングのノイズはかなりきれいに取りきっています。30kHzでは3dB程度レベルがダウンしており、このあたりがカットオフ周波数になっているといえます。

次はfs=176.4kで、上から1kHz, 10kHz, 15kHz, そして30kHzです。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

高域特性を伸ばすためのトレードオフというか、ノイズ・シェーピングのノイズもfs=88.2kHzの場合と比べて、少し増えています。

DSD2S/PDIF デシメーション・フィルタの仕様

結局、フィルタの仕様は下記のようにしております。おそらくこれでFIXです。

[1] 88.2kHzモード

  • 通過帯域  0-24kHz
  • 阻止帯域  56kHz以上
  • リジェクション性能   -145dB
  • TAP数   512

[2] 176.4kHzモード

  • 通過帯域  0-24kHz
  • 阻止帯域  99kHz以上
  • リジェクション性能   -150dB
  • TAP数   256

24kHzから阻止帯域の下限まではなだらかに落としていくという感じになります。本来であれば、サンプリング周波数の半分の周波数を阻止帯域として、 それ以上の帯域で-150dBなり、というようにしたいところですが、リジェクション性能を稼ぐには、阻止帯域を少し高い方へずらした方がフィルタ係数の設計上都合が良いようです。 ちなみに、こういったフィルタ設計に良くつかわれる手段としてREMEZアルゴリズムという方法でフィルタ係数を算出しています。

当然、0-24kHzまではフラットを狙っています。浮動小数点演算などの効果もあって24bit精度は楽に超えています。

物理的な仕様としては、

  1. 2.8224MHz(64fs)のDSD_BCK(ビットクロック)
  2. DSD_BCKに同期したL/RそれぞれのDSD信号(パルス密度変調されたオーディオ信号)
  3. DSD_BCKに位相ロックした33.8688MHz(768fs)のDSD_MCK(マスタクロック)

の合計4本の信号を88.2kHzか176.4kHzのS/PDIF(光と同軸)出力に変換する変換機ということになります。

 

DSD2S/PDIF デシメーション・フィルタの検討 その3

フィルターの係数データを40bit浮動小数点相当でROMに格納し、かつ、演算を40bit浮動小数点相当で行い、丸め(最後に24bitにまとめるとき)にノイズシェーパを使ってみたところ、可聴帯域でもともとのDSDの特徴がはっきりとわかるほどに、更にS/Nが改善されました。

まずは、fs=88.2kHzのリニア周波数軸、対数周波数軸表示

 

続いて、fs=176.4kHzのリニア周波数軸、対数周波数軸表示

これで、十分満足できるフィルタ性能になったと思います。

 

DSD2S/PDIF デシメーション・フィルタの検討 その2

ここで、AUDIOチェックディスクという性格から、このSACDに含まれる正弦波テスト信号の品質は、DSPなどの演算性能のチェックに使用できるほど高いS/Nを有するものではないだろうと判断し、自前でテスト用のDSD正弦波を作ることにしました。

詳細は書きませんが、零点シフト、極シフト、7次ノイズシェーパという方法で、PCMの正弦波をPDM(パルス密度変調)、つまりDSDに変換し、ご参考(解凍してExcelなどの折線グラフ表示)FPGAの設計データへ食わせます。

その結果、FPGA(の設計データ)が吐き出した出力を適当なプログラムを組んで.wavに変換し、WaveSpectraで観測した結果を示します。

fs=88.2kHzだけですが、リニア周波数軸、対数周波数軸の順で、

やはり、そこそこ満足できる性能のフィルタがすでにできていたのです。

 

DSD2S/PDIF デシメーション・フィルタの検討 その1

昨年末にリリースされたDENONのAUDIO CHECK SACDの中に、DSDによる正弦波信号などが含まれていて、デシメーション・フィルタの検討に使えそうです。

それまでは、SACDライセンス契約を結んでいるハードウェア設計企業向けにPHILIPSからリリースされた「SACD DACテスト用SACD」にしかテスト信号の含まれたソフトは存在しなかったようです。

信号レベルが-16dBSACDと低いのが難点ですが、これを使って設計したデシメーション・フィルタの特性を確認してみます。

 

 

まずは、オリジナルの設計状態でSACDの-16dB、1kHz正弦波を24bitのPCM信号に変換した結果です。周波数軸をリニア表示にした、fs=88.2kHzのPCMへの変換結果です。

 

続いて、周波数軸を対数表示にして見てみます。

 

次に、同じ条件でfs=176.4kHzの場合のチャートを2枚続けて示します。

正直、想定していたような高性能なフィルタではありません。2ステップではなく、1ステップ一括でフィルタをかけるアルゴリズムの採用によって、変換誤差を最小に抑えているはずですが・・・。

続く

 

SACD

「無線と実験」を立ち読みしていたら、WadiaのSACDプレーヤー581i seという製品が紹介されており、この製品の特筆すべき特長として、SACD再生時に88.2kHzでS/PDIF出力が出せるということを知りました。

SACD再生時のS/PDIF出力は何らかの規制で禁止されていると思っていましたが、そうでもないようです。

また、SONYのPS3では、16bit/44.1kHzと制限付きながらSACD再生時に光デジタル出力が可能になっています(16bit/44.1kHzならOKで、88.2kHzや176.4kHzがNGというのはご都合主義としか思えませんが)。

一方、私の手持ちのユニバーサルプレーヤーの名器、DV-S757AはSACDが再生可能ですが、高級単体SACDにも数多く搭載されている、知る人ぞ知るCXD2753RというSACDのLSIが載っており、しかもコネクタからDSD信号が簡単に取り出せるようになっています。

ライセンスの関係からでしょうか、LSIの仕様は闇の中ですが、DV-S757AならばこのLSIからDSD信号を容易に引き出すことができますので、信号を24bitのPCM信号に変換してS/PDIFとして外へ出してみたくなりました。

信号自体は暗号化やコピーガードされているということもないですので、いわゆる「技術的保護手段の解除」には当たらず、不正競争防止法に抵触するということも無いと判断します。

近年、DSDをHDMI(HDCP)に載せて出力するというのが標準になっていることもあり、DSDを直接引き出すのはまずいかなと思いますが、PCM変換後に引き出すのであれば、上記のように前例がありますし・・・。

 自作DACファンとしては、高音質なソース機器がHDMI(HDCP)でしかデジタル出力できないというのは危機感を覚えます。

 FPGAを使ってデシメーション・フィルタ(間引きフィルタ)を構成し、1bitであるDSD信号を24bitのPCM信号に変換してみることにします。サンプリング周波数は88.2kHzや176.4kHzあたりでしょうか。