« 2020年10月 | トップページ | 2021年1月 »

2020年12月

2020年12月18日 (金)

8倍スーパーサンプリング+AK4490 評価

Ssdacyak4490pcb
写真1.SSDAC基板(右)と、AK4490およびPCM5120の外部I2S_DAC基板(左)

データ間をスプライン関数で補間するSSDAC(スーパーサンプリングD/Aコンバータ)について、今回は8倍スーパーサンプリングデータを8倍アップサンプリングデータとしてAK4490に入力する検証を行った。

結論を先に言うと、今回のAK4490も、前回評価したPCM5102と同じく、8倍の352.8kにアップサンプリングした信号を入力するとNOSDACとして振る舞うようで、相乗的な効果は見られなかった。つまりマルチプライングDAC(DAC8820)の出力とほぼ同じ結果となった。

元データを44.1kHz16bitデータとし、これに8倍スーパーサンプリング処理をして352.8kHz24bitとしてAK4490のI2Sに入力した。

Ak4490_8xss
図1.1kHz矩形波8Xアップサンプリング→AK4490
AK4490のフィルタ設定に依存せず、すべて同じ結果となった。


Ak4490_8xss_saw2k
図2.2kHzのこぎり波8Xアップサンプリング→AK4490
AK4490のフィルタ設定に依存せず、すべて同じ結果となった。

Ak4490_8xss8k
図3.8kHzサイン波8Xアップサンプリング→AK4490
AK4490のフィルタ設定に依存せず、すべて同じ結果となった。


Ak4490_8xss16k
図4.16kHzサイン波8Xアップサンプリング→AK4490
AK4490のフィルタ設定に依存せず、すべて同じ結果となった。


Ak4490_8xss20k
図5.20kHzサイン波8Xアップサンプリング→AK4490
AK4490のフィルタ設定に依存せず、すべて同じ結果となった。


というわけで、スーパーサンプリング処理を行なったあとに、市販のDACを介して出力するという方法では、特筆すべき効果は得られなかった。まとめると次のようになる。

・オーディオ用I2S DACデバイスに対してアップサンプリングして入力する方法では、8倍スーパーサンプリング(384kHz)が限度
・出力波形はマルチプライングDACを使った場合と同等
・マルチプライングDACによる出力では現在128倍まで可能なので、音質的には8倍よりも128倍のほうが有利
・オーディオ用DACに入力する方法では、ΔΣのデバイスを使うとマルチプライングDACよりもノイズ面で有利
・マルチプライングDAC(DAC8820)よりも市販オーディオ用DACを使う方がコストが安い

つまり、
●スーパーサンプリング8倍でΔΣ方式の市販オーディオDACデバイスで妥協すると、ノイズ面とコスト面で有利
●スーパーサンプリング128倍でマルチプライングDACを使用し音質を優先すると、コスト高で、ノイズでやや不利になる
●ただし、DAC8820はビット分解能が16Bitであり、市販I2S DACでは24Bitであることを加味すると、数字的には市販I2Sか。

ということだ。
ぼくならマルチプライングで128倍を選ぶが、これは人によって判断がちがうと思う。

 

| | コメント (0)

2020年12月17日 (木)

8倍スーパーサンプリングデータをPCM5102で処理する

前回の記事で予告した、スプラインによる8倍スーパーサンプリングデータを市販品のオーディオDACデバイスPCM5102に入力する実験を行ったところ、おもしろい結果が得られたので、速報でお送りする。

いきなりだが、まずは再生波形を見てほしい。8kHzサイン波だ。

8x5102nos
図1.8kHzサイン波NOS(上:DAC8820マルチプライングDAC、下:PCM5102)


8x5102ss
図2.8kHzスーパーサンプリング
(上:128倍スーパーサンプリングDAC8820出力、下:8倍スーパーサンプリングPCM5102出力)


図1はNOS(オーバーサンプリング処理なしの生データ)だが、PCM5102へは8倍のI2S信号つまり352.8kHzサンプリングにアップサンプリングした状態で入力している。見たところ、DAC8820とPCM5102は同じくNOSDACとして振る舞っている。
PCM5102は最大384kHzサンプリングに対応し、最大8倍のオーバーサンプリングを行うデバイスで、44.1kや48kのデータは8倍オーバーサンプリングするが、352.8kや384kはオーバーサンプリングなし、つまりNOSとして振る舞う。データシートを読めばあたりまえのことだ。

図2は128倍スーパーサンプリングしてマルチプライングDAC、DAC8820で出力したものと、8倍スーパーサンプリングしてPCM5102で出力したものだ。
このときPCM5102はNOSとして振る舞っているので、同じスーパーサンプリングで128倍と8倍では勝負にならない、ということになる。

だとすれば、現状で最大128倍スーパーサンプリングしてマルチプライングDACで出力したものに対して、市販のDACデバイスの前処理にスーパーサンプリングを行う場合、使用するデバイスは8倍(384kHz)で入力してもなお少なくとも16倍オーバーサンプリングできる実力がないと勝負にならないということになるのではないか。

ちょうど昨日、実験に使おうと発注していたAK4490が届いたので、さっそく準備に取りかかろうと思う。
AK4490は最大768kHzサンプリング、256倍オーバーサンプリングのデバイスなので、上のPCM5102と同じ計算ならば、スーパーサンプリング8倍 x オーバーサンプリング32倍、ということができるのではないだろうか。

| | コメント (0)

2020年12月15日 (火)

128倍スーパーサンプリングDAC試作(128x Super Sampling DAC)

128xssdac
写真1.今回試作した128倍スーパーサンプリングDAC
今回は以前製作会で頒布した基板を使用した。FPGAのMAX10が直接実装されている。外付けI2S用の端子を引き出している

前回から引き続き、SSDACの試作検討をしている。
SSDACはオーディオDACの新手法で、サンプル点間を3次自然スプライン関数で補間する技術だ。
トランジスタ技術2018年10月号で発表され、試作回路やソースコードは同11月号に収録されている。
このとき収録されキット販売されたものは64倍スーパーサンプリング、すなわちサンプル点間を63点のスプライン関数で補間し、マルチプライングDAC(16ビットパラレル)DAC8820で出力するものだった。

前回は4倍スーパーサンプリングしたものをアップサンプリングデータとして市販のI2S入力DAC、PCM5102で再生する実験を行った。

今回はスーパーサンプリングレートを128倍に引き上げて、上記と同じDAC8820で出力する実験を行った。

64倍スーパーサンプリングの場合、I2S信号のSCLKがサンプリングクロックとしてそのまま使える。つまり、LRCLKが44.1kHzのときSCLKが2.8224MHzなので、

2.8224MHz / 44.1kHz = 64

となり、1データあたりちょうど64倍になっているのでこれに同期してスーパーサンプリングデータを出力すればよい。

今回はさらに倍の128倍スーパーサンプリングの実験を行った。128倍の場合はSCLKの2倍の周波数なのでMCLK(11.2896MHz)を分周して128倍のクロック(44.1Hkzの場合は5.6448MHz)を生成し、これに同期させた。

波形観測の元データはすべて44.1kHz16bitのCDと同じフォーマットで行った。観測波形は次のとおり。

Nos_8khz
図1.8kHzサイン波NOS
8kHzでも、なにもしないとこんなにガタガタしている。

Ss128_8khz
図2.8kHzサイン波128倍スーパーサンプリング

Nos_16khz
図3.16kHzサイン波NOS
もはやサイン波の面影はない


Ss128_16khz
図4.16kHzサイン波128倍スーパーサンプリング
3点確保できる周波数(44.1/3=14.7kHz)を超えるので、振幅が波打ち始める

Nos_20khz
図5.20kHzサイン波NOS

Ss128_20khz
図6.20kHzサイン波128倍スーパーサンプリング
3点確保できる周波数(44.1/3=14.7kHz)を超えるので、振幅が波打つ


Nos_sq1khz
図7.1kHz矩形波NOS
何も処理しなければお豆腐のような矩形波が再現される

Ss128_sq1khz
図8.1kHz矩形波128倍スーパーサンプリング
スーパーサンプリングの特徴ともいえる、1山ずつのオーバー、アンダーシュートが出る


Nos_saw2khz
図9.2kHzのこぎり波NOS


Ss128_saw2khz
図10.2kHzのこぎり波128倍スーパーサンプリング


というわけで、実装はおおむねうまくいっていると思う。

リスニングは、まず高域の出方がNOS(何も処理しないDAC)にくらべると良くなっているように感じる。
また、過去の試聴会では、32倍と64倍では違いがあり、64倍のほうがより良いとの評価が出ている。
今回の128倍はいまのところ64倍と比較して耳でわかるほどの違いはないように思えるが、しばらく音楽を聴いてみたい。

次回は、前回行った4倍アップサンプリング→市販DACへの応用を拡張して、8倍アップサンプリングの応用実験をする予定です。

 

| | コメント (0)

2020年12月 8日 (火)

SSDAC(Super Sampling D/A Converter)の新しい可能性について

今回はオーディオ信号をスプライン関数で補間するSSDACについて、自力でFPGAに実装し、新しい可能性について検証を開始したので報告する。


Ssdac_ts 
写真1.試作したSSDAC基板
基板上、左からAmanero基板、CQ出版社のMAX10ボード、DAC8822チップ、出力オペアンプ
下側に見える小基板はI2Sで外付けされたPCM5102。

9月頃から開始した、FPGAを使ったRIAAフォノイコライザの試作は、実はこのSSDAC実装のための準備だった。SSDACの原理は理解しているものの、自力でFPGAに実装するには練習が必要だったのだ。今回は32倍スーパーサンプリングをオリジナルのコーディングでMAX10に実装することができて、マルチプライングDAC、DAC8822からの出力信号も確認できたので、いよいよその先の応用の検討に入る。

【SSDACとは】
SSDAC(Super Sampling D/A Converter)は東京大学講師の小林芳直氏が発明した技術で、デジタルデータ列(たとえば音楽データ)をスプライン関数で補間するものだ。従来、オーディオ用DAC(D/Aコンバータ)はオーバーサンプリングデジタルフィルタによるものが主流で、この方式ではプリエコー、ポストエコーという付帯音(ノイズ)がついて回るため問題視されていた。それならばいっそのことNOS(Non Over Sampling Digital Filter)つまりオーバーサンプリングを一切しない、素のデータのまま聴いた方が良いのではないかという考え方があって、2020年現在も議論されている。
SSDACは、基本的にNOSを拡張したものだといえる。つまり、データ点とデータ点間をスプライン関数で補間し、オーバーサンプリングデジタルフィルタを通すことなくDACで処理をする。その結果、従来のNOSにくらべてよりきめ細かい波形が得られ、なおかつプリエコー、ポストエコーが発生しない。
スプライン関数でデータ補間するというものがどうしてこれまでなかったのか。実はフルーエンシ理論というものが従来から存在し、実際に製品化もされた。フルーエンシ理論では、2次関数によって補間することにより、2次微分までの連続性が確保されないため、波形が歪んでしまうことがある。
それならば3次の自然スプラインで補間すればいいだろうということは、おそらく多くの人が考えたと思うが、3次スプライン曲線を計算するには、先にすべてのデータ点を確定する必要がある。つまりあらかじめ曲の始めから終わりまで全部を解析しないと、スプライン曲線が決定できないのだ。
ところが、個々のデータが、特定区間のスプライン関数に与える影響は、注目するデータ区間から遠ざかるほど小さくなり、たとえば24bit分解能の場合は、前後13個より遠くのデータの影響はビット分解能以下になるため無視できることがわかった。つまり24ビットのデジタルデータであれば、たかだか13個のデータを先読みして計算すれば、スプライン関数が求められるのだ。

詳しく知りたい人は、トランジスタ技術2018年10月号をご覧いただくか、次の論文をお読みください。
ダウンロード - ect18093.pdf
ダウンロード - icd201728.pdf


さて、SSDACの基板回路図やVHDLのソースコードはすでにトランジスタ技術で発表されているので、誰でも試作することができるようになっている。(トランジスタ技術への記事掲載は2018年10月号、回路やVHDLソースコードは2018年11月号付録に収録)
公開されているVHDLソースコードは小林芳直氏によるもので、これはデータ間を63点で補間する64倍スーパーサンプリングDACだ。
今回は今後の応用研究も視野に入れて、独自にVHDLコーディングした。
5kHzサイン波、44.1kHz16bitサンプリングのNOS波形と、今回試作した32倍スーパーサンプリングの波形を図1、図2に示す。

5khz_nss
図1.5kHzサイン波 (NOS→DAC8822)


5khz_32xss
図2.5kHzサイン波の32倍スーパーサンプリング波形(DAC8822出力)


波形を比較すれば一目瞭然で、データがなめらかにつながっているのがわかるだろう。図1ではデータが飛び飛びで階段状になっているが、これをスプライン関数で各データ間に31点の補間点を入れることでなめらかなサイン波になっている。
理屈では、スプライン関数が求まってしまえば、あとはクロック周波数とDACデバイスのスピードの許す限りいくらでも補間点を増やすことができる。
実際、SSDACで音楽を聴くと、スーパーサンプリングなしのNOSにくらべて高域のハイハットの音などがよりリアルに聞こえる。
ここまではすでに発表されている技術だ。


今回は新たな試みとして、SSDACをアップサンプリングに応用してみた。
SSDACの技術でオーディオデータを4倍スーパーサンプリングし、サンプリング周波数を4倍にした状態でTI社のPCM5102で再生する。
つまりスプラインで4倍補間すれば、データ数は4倍に増えるので、クロックを4倍にしてやればアップサンプリングができる。
具体的には、サンプリング周波数44.1kHzのオーディオデータに対し4倍スーバーサンプリングしてデータ数を4倍にし、11.2896MHzのSCLKと176.3kHzのLRCKを生成して同期させれば、4倍のアップサンプリングとなる。

まずは1kHz矩形波の立ち上がり波形の比較。

Sq1k_fir_nss
図3.1kHz矩形波PCM5102(FIR)、スーパーサンプリングなし
PCM5102のノーマル(FIR)モード。176.3kHzの半分の88.15kHzでプリ・ポストエコーが出ている


Sq1k_fir_ss4x
図4.1kHz矩形波PCM5102(FIR)、4倍スーパーサンプリング
4倍スーパーサンプリングにより、図3に見られたプリ・ポストエコーがなくなっている

Sq1k_iir_nss
図5.1kHz矩形波PCM5102(IIR)、スーパーサンプリングなし
PCM5102のローレイテンシ(IIR)モード。176.3kHzの半分の88.15kHzでポストエコーが出ている


Sq1k_iir_ss4x
図6.1kHz矩形波PCM5102(IIR)、4倍スーパーサンプリング
4倍スーパーサンプリングにより、図5に見られたポストエコーがなくなっている

以上より、スーパーサンプリングでアップサンプリングすることで、プリエコー・ポストエコーを抑える効果があることがわかる。

次に、サイン波の再生波形。

Sin5k_fir_nss
図7.5kHzサイン波PCM5102(FIR)、スーパーサンプリングなし
補間なしでデータが4回に一回しか更新されず、ポストローパスフィルタを付けていないため、段差が観測された


Sq5k_fir_ss4x

図8.5kHzサイン波PCM5102(FIR)、4倍スーパーサンプリング
図7に見られた波形の段差が解消された


Sin5k_iir_nss
図9.5kHzサイン波PCM5102(IIR)、スーパーサンプリングなし
補間なしでデータが4回に一回しか更新されず、ポストローパスフィルタを付けていないため、段差が観測された


Sin5k_iir_ss4x
図10.5kHzサイン波PCM5102(FIR)、4倍スーパーサンプリング
図9に見られた波形の段差が解消された

※通常は、段差が出ないようにポストローパスフィルタを挿入するが、差がわかりやすいようにポストローパスフィルタがない(効きがごく小さい)状態で波形観測した。

次に20kHzサイン波の比較。

Sin20k_fir_nss
図11.20kHzサイン波PCM5102(FIR)、スーパーサンプリングなし
補間なしでデータが4回に一回しか更新されず、ポストローパスフィルタを付けていないため、矩形波に近い波形となった



Sin20k_fir_ss4x
図12.20kHzサイン波PCM5102(FIR)、4倍スーパーサンプリング
44.1kHzの1/3である14.7kHz(3次スプライン計算に使う3点を確保できる周波数)を超えているため振幅が波打つが、なめらかな波形になっている。


Sin20k_iir_nss
図13.20kHzサイン波PCM5102(IIR)、スーパーサンプリングなし
補間なしでデータが4回に一回しか更新されず、ポストローパスフィルタを付けていないため、矩形波に近い波形となった


Sin20k_iir_ss4x
図14.20kHzサイン波PCM5102(FIR)、4倍スーパーサンプリング
44.1kHzの1/3である14.7kHz(3次スプライン計算に使う3点を確保できる周波数)を超えているため振幅が波打つが、なめらかな波形になっている。


注)以上の波形観測では補間なしの場合に段差が出ているが、これは、補間なしの場合にはデータが4サンプリングに一度しか更新されないため、当然といえば当然である。


きょうは評価初日で味見程度の評価だったが、
スーパーサンプリングによるアップサンプリングデータを市販のDACデバイスでD/Aすることで、過渡応答及び波形において再生特性に変化が見られた。
従来、アップサンプリングによってデータ量やデータの分解能は変化しないし、データ値の丸めに起因するデータ歪みの可能性もあることから、アップサンプリングの意義については疑問が多かったが、スーパーサンプリングによるアップサンプリングでは、何らかの効果が期待できることを示唆する結果になったのではないかと思う。

 

| | コメント (0)

« 2020年10月 | トップページ | 2021年1月 »