DAC出力のHighが落ちる?
最近は、オーバーサンプリング型だとか、1ビットだとか様々が DAC が出回っていますが、ここでは、入力されたデジタル値をアナログ値としてそのまま出力する古典的なDACの出力を考えます。古典的なDACに、サンプリング周期が一定のサイン波が入力されるところを考えてみましょう。下の図がデジタルのサイン波です。デジタルのサイン波は離散信号ですから。サンプル点において、その瞬時値が示されるだけで、それ以外は値が定義されていません。
点として、すなわち時間幅0ところで、値を持っているといっても、DAC の出力としては、現実には意味がありません。ここで、DAC Output を On してみてください。これが古典的な DAC の出力です。次の値が指定されるまでは、直近に指定された値を維持しますから、立ち上がり速度が、サンプリング周期に対して十分に小さいと仮定すると、短冊を並べたような形になります。ここで Sin Wave を On してみてください。サイン波の周波数がサンプリング周波数に対して十分に低ければ問題ないのですが、サイン波の周波数が高いときには、本当のサイン波と短冊を並べたもの違いは、目で見ても明らかです。
この違いが、今回のトピック「DAC出力はHighが落ちる」の原因なのです。理論的にいうと、短冊(より正確には短冊化)が悪いのです。先に説明したように、デジタルのサイン波は各サンプル点における幅のないパルスの集合で、短冊の集合ではありません。短冊化したサイン波は、サンプル周期の幅を持つ短冊とデジタルのサイン波の畳み込み(注1)を行ったものです。畳み込みは、周波数領域では掛け算になりますので、短冊化されたものは、原信号の周波数特性に短冊の周波数特性を掛けたものになります。
短冊の周波数特性は以下の式で示されるので、短冊化された DAC 出力は本来のデジタル信号に以下の周波数特性を掛けたものになります。
この式の形から sin(x)/x と呼ばれることもあります。上の式のτ=1/Fsとして、図式化したものが以下です。
これを見るとFsのところで0になっていることがわかると思います。実質的に必要なのは Fs/2 以下ですので、例えば Gain at のところに 0.4 と入れ Cacl ボタンをクリックすると、-2.420070 の利得になることが分かります。ちなみに、CD の上限周波数 20KHz はサンプリング周波数 44.1KHz に対して0.453になりますので、その利得を計算すると 約-3.16dB となります。耳で聴いてわかる差だとは思いませんが、よく用いられる許容範囲±3dBを超えているので、何らかの対策を採らない限り許容範囲をキープすることができないので要注意事項です。
(注1)畳み込み (Convolution) は、デジタル信号処理で頻繁に用いられる手法で、次式で表されます。
短冊化の場合、h(v)はサンプリング周期だけ1、その他で0となります。
リンク切れなどの不具合が発見されましたら、ご面倒とは存じますが、
web_master@tasignal.comまでご連絡ください。
Copyright(C) 2004, TA Signal Processings, Inc. All rights reserved.