スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PhaseとImpulseのハイレゾ効果を確かめる

16/03/05初稿

 前稿で、遂にデジタルフィルタのパラメータが演算結果に及ぼす影響について調べました。

 とりあえずサンプリングレート1fs(44.1kHz)ソースについて見ましたが、これって、同じ波形でもサンプルレートが違うと影響度は異なるのではないでしょうか。もし、ハイサンプリングだと“影響”が緩和されるなら、それはハイレゾの効能と言えるでしょう。
 もちろんフォーマットとして、ですけれど(実際に聴いて差があるかは別)。

 ということで、調べてみました。
 以前、「ない高域をサンプリングして“ないことをデータとして確定”させることでイメージングノイズ発生帯域をその上の高域にシフトし、OSDF(Over Sampling Digital Filter)の影響を下げることがハイレゾの効果(のひとつ)」と考察したことがありますが、本稿はPhaseとImpulseの側面での効果確認になるかと思います。

 本稿では、その主旨からハイレゾはハイサンプリングのことを指します。


■Phase Response

 前稿で扱った「14.7kHzと7.35kHzのサイン波を合成した波形」の変形につき、サンプルレートを変えたソースで調べてみます。
 44.1kHzに加え、同じ方法で88.2kHzと176.4kHzのデータを作成。それぞれx2x2x2とx2x2とx2してすべて352.8kHz(8fs)化した時の変形を比較します。
 同じ8fsにするにしても、フィルタで再生成したものではなく最初から2倍分4倍分の“リアルサンプル”があるデータの変形度合いの比較、ということですね。
 8fs(8倍)で揃えたのはDACのOSDFがΔΣブロックに入れる前に「8fs」にする(*)処理のシミュレーションとするためです。

*:AK4490などはそのように動いていると理解しています。

 以下、 ≪Resampler-V≫のMinimal設定の結果を示します。Linearは変形しないので省略。

14700+7350 0per ハイレゾ比較 サイン波重ね

 「44.1kHz x2x2x2(上図)」と比較すると、「88.1kHz x2x2(中図)」ですでに変形はかなり抑制されています。「176.4kHz x2(下図)」の“リコンストラクション再現率”は、ほとんどLinearと遜色ないのでは。

 もちろんこの例のみでのイメージですが、特殊事例ではないと思います。


■Impulse Response(の代替特性)

 こちらも、前稿の「1周期の4kHz -0dB」波形につき、サンプルレートが異なるデータを作って比較します。
 これは一般的な「Impulse Response」ではありません。その理由などの詳細は前稿を参照ください。

 前稿で見た48kHzをx2x2x2した場合(上図)に加え、96kHzをx2x2(中図)、192kHzをx2(下図)してぞれぞれ8fs化した場合につき、MinimalとLinearを示します。

・Minimal

4000HzResponseハイレゾ比較 0per


・Linear

4000HzResponseハイレゾ比較

 すべて8fsで揃えていますので、同じ時間スケールでの比較です。サンプリング周波数が高くなるとエコー成分はどんどん減っていく様子が解ります。
 ちなみに≪Wavosaur x64 1.1.0.0≫の表示限界以下で見えないワケではありません(別途拡大表示して確認しました)。


 なお、余談かつおそらくですが、これは基音と倍音でハイレゾの効果を見た時と同じ現象を別の見方しているのではないか、という気がしています。


■デジタルフィルタにみるハイレゾの効果

 以上より、デジタルフィルタにおける「Phase Response」「Impulse Response」の絶対的影響は、ソースのサンプルレートが高くなるほど小さくなると言っていいのではと思います。
 まあ、当たり前ではありますが、実際に波形で比較してみるとその“程度感”などが解ってヨイですね。

 つまり、「Minimal系特性にすると波形変形が発生する」「Linear系特性にするとプリエコーが発生する」と言う(言われる)デジタルフィルタのデメリットは、ハイレゾ(ハイサンプリング)になればなるほど軽減されるということです。
 もちろん同じ周波数帯について見た場合です。人間の可聴域や音楽の周波数はハイレゾだと移動するってワケではありませんから、例えば「ハイレゾの場合は2倍・4倍の領域(ナイキストに対して同じ比率の領域)で比較しなければ意味がない」といったことはないでしょう。

 さて、上記はPCソフトのフィルタ演算結果ですが、DACチップのOSDFも基本的に同じ特性を示すハズです。

 具体的な例を挙げると、AK4490のOSDF結果は8倍固定ですので、最初から8fs=352.8kHzや384kHzソースの場合はOSDFかかりません。LinearもMinimalも関係なくデジタルフィルタのデメリットは発生しないワケです。それは極端な例としても、4fsソースの場合はOSDFは2倍ですので影響はかなり抑制されるでしょう。

 ですので、「(OSDF式の)DAC動作」という観点では、ハイサンプリングだとデジタルフィルタのデメリットを抑制できるメリットありと言えるのではないでしょうか。

 言い方を変えると、「フィルタ特性による音の差が少なくなる」「“デジタル臭さ”が減る」といった表現もできるでしょうか。
 もちろん、これはDACの仕組みにも依存するので絶対的一般論とは言えませんし、実験はサイン波(せいぜい成分としてふたつ)でのものですから、当然ながら実際の楽曲においてどれくらい有意差があるかは別問題ですけれど。

 なお、当然かつ重要な点ですが、ソースがネイティブハイサンプリングじゃないと当該メリットはありません。「AD変換が1fs、またはAD変換が2fsや4fsでも製作過程で一度でも1fs化したデータ」をアップサンプリングしたハイレゾでは、その時点で1fsを2倍4倍するためのデジタルLPFかかっているのですから。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

「Phase Response」に応答してみる

16/02/03初稿

 ≪foobar2000≫の≪SoX Resampler≫や≪Resampler-V≫などをはじめとするリサンプリング機能には「Phase Response」なる設定項目があります。

 ちゃんと解らないまま概ねデフォルトのまま使っていましたが、「Phase Response=位相応答」とは何で、アナログ化にどんな影響があるのでしょう?

 「オーディオにおけるサンプリング定理」について調べてから芋づる式に(?)「デジタルデータがアナログ化されるまでのお仕事」についていろいろ考えてきたのですが、難しくて先送りしていた最大の難問(?)に、いよいよチャレンジしてみます。


■「位相応答」とは何か

 とりあえず説明してみます。なかなかに難しいので合ってる自信はありませんが(苦笑)。

・「位相シフト」と「ズレ時間」
 リサンプラにおける「位相応答」とは、デジタルLPFを通した際、「“位相シフト”がどのように発生するか」だと思います。
 「位相シフト」をイメージし易さ最優先で超ざっくり言うと「周期の開始点がズレること」です。
 さらに純音に限定して超具体的に言うと、位相シフトすると波形変形はしませんが全体的に時間軸上でズレます。
 じゃあ位相応答って時間ズレのことなのかというと、そうも言えません。
 位相応答のミソはおそらくそこ、「位相シフト量は時間軸上のズレ量ではない」ということだと思います。

 それってどういうことか、基本波形(純音)のサイン波で考えてみます。
 位相シフトが180°だったとすると、1周期は360°ですから1/2周期です。周期100ms(10Hz)なら50msのズレ、10ms(100Hz)なら5msのズレ量になります。つまり、位相シフト量が同じなら周波数によって時間ズレ量は異なるということです。
 逆に100ms周期でも10ms周期でも5msのズレになっている場合、位相シフトは前者で18°(1/20周期)、後者で180°(1/2周期)です。
 ですので、周波数に依らず時間ズレ量を一定にしたいなら位相シフト量を周波数に線形に変化させる必要があるのです。

 線形に変化せず周波数によって時間ズレ量が変わったらどんな影響があるのでしょう?
 そこで思い出すべきは、すべての波形はフーリエさんの言うように複数周波数のサイン波で構成されているということです。
 ですので、フィルタを通した時の位相シフト量が周波数に対して非線形(例えば一定で変化しない)だと、「周波数成分ごとに時間ズレ量が異なる=合成された波形が変化する」ことになります。
 線形なら、時間ズレ量は周波数によって変化せず一定ですので変形はありません。

 つまり、LPF特性「Phase Response」のミソは、位相シフトが発生すること自体ではない上に、“量の大小”ではなく“周波数依存性が線形か非線形か”ということだと思います。

 言うまでもありませんが「オーディオ再生において」の話です。
 音響補正のようなフィードバック制御などの場合は遅延も問題になる(*)ようですが、Audio再生においてフィルタ演算での遅延が問題になることはないでしょう。再生中に遅延時間が変化することはありませんので、問題になるとしたら読み出されたデータが再生されるまでにディレイが発生することですが、たとえ再生ボタンを押して音が出るまでに100ms遅れたとしてもたぶん気付きませんよね。

*:http://proaudio.yamaha.co.jp/downloads/documents/data/white_papers/my8lake_white_paper_ja.pdf

・「位相応答」を体験する
 といっても、具体的な波形変化で確認できないと確証は持てません。チマチマと思いついたことを試していたのですが、その中で、先日やっと具体的な事例としてなんとかイケそうなやり方を見つけました。
 前回同様≪Wavosaur x64 1.1.0.0≫で表示します。ファイル名などは無視してください(笑)。

 準備したのは次に示す上図の波形です。
 7.35kHz(中図)と14.7kHz(下図)のサイン波の合成波形です(サイン波のレベルは合成後にサチらないよう-6dB)。
 14.7kHzの方は前稿で扱ったのと同じく位相を30°ズラしています。合成波形のカタチに特徴を出し、今回の目的である位相応答を解りやすくするためです。

14700+7350.png


 次に、上記の3波形を44.1kHzサンプリングしたデータを示します。“点”がサンプルポイントです。
 メンドクサイので“補助線”で結ばれた表示のままです(今回の趣旨には影響ないと思います)。

14700+7350 3244 サイン波重ね

 上図の“ふたつの周波数成分を持つ”44.1kHzデータを、≪foobar2000≫で「Phase Response」設定を変えてアップサンプリングすると結果はどう変わるでしょう?
 DACのフィルタを想定して8倍(x2x2x2)してみます。

・「Impulse Response」とは何か
 ところで、実は「Phase Response」特性を変えると「Impulse Response」特性も連動して変化します。
 「Impulse Response」とは、ざっくり言うと「リコンストラクションフィルタ演算による、Impulseに対するエコー成分の付き方の違い」です。ざっくり言うと、ですが。
 さらに難しいのでちゃんと解ってるワケではありませんけれど、フィルタで再生成される成分が“Impulseに対しては”エコーのような値になるのではないかと。であれば、一般的なエコーのイメージで捉えない方がよいかも知れません。

 ということで、リサンプラには≪Resampler-V 2.1≫を用います。設定ウィンドウでスライダを操作するとLPF特性だけでなくエコー特性表示もリアルタイムで変化するので、連動具合が解りやすいためです。

・Phase Response 「Minimal」 (SoX Resamplerの0%)

Resampler-V 0

 位相シフト量変化が周波数にリニアではない=非線形になる設定だと理解しています。
 以下、8倍結果です。

14700+7350 0per Vx2x2x2 サイン波重ね

 ありゃ、上図は再現すべき元波形とは似て非なる形になってしまっています。
 何故かと言えば、中図と下図に示した通り、その周波数成分たる14.7kHzと7.35kHzの時間ズレ量(*)が違うためです。周波数成分の時間軸上のタイミングが変わってしまったので合成結果も変わったということです。

 つまり、この設定でアップサンプリングすると、設定ウィンドウの通り「プリエコーなし」というメリットが得られる一方「波形変形する」というデメリットがある、と言うことですね。

 なお、3個のファイルはそれぞれ個々にアップサンプリングしたものですが、14.7kHzと7.35kHzのアップサンプリング結果を波形編集ソフトで足し合わせると合成波形の結果と一致することを確認しました。

*:ズレ絶対量の正確を期すより作図を優先しています。元波形と8倍波形の中では3個のタイミングは合ってますので、今回の主旨に影響ないと思います。

・Phase Response 「Linear」 (SoX Resamplerの50%)

Resampler-V 50

 位相シフト量変化は周波数に線形=Linearという意味のようです。

14700+7350 50per Vx2x2x2

 合成波形に変形なしと言っていいでしょう。ふたつの周波数成分でズレ時間に違いがないためです(なので成分波形の8倍結果は省略)。
 ただし、設定ウィンドウにある通りプリエコーが発生するということですね。

・ピーク値が変わる?
 本項16/02/15追記:ところで、Minimal系特性では周波数成分によって時間ズレ量が異なるってことは、周波数成分のピークの位置関係も変わるってことですよね。とすると、合成後のピーク値が変わっちゃうのでは?
 ≪Audacity 2.0.6≫で8倍ファイルのクリッピング表示してみます。上がMinimal、下がLinearです。

14700+7350 クリッピング比較

 Minimalでは(再現すべき)元波形にはないクリップが発生しています。本例では周波数成分のピークを-6dBにしていますのでドンピシャ重なってもフルビットになるだけですが、一般的には「TruePeak」のような問題があると言うことです。
 実際に発生する可能性を確認するため、「LinearでTruePeakが発生しないがMinimalだと本クリップが発生するCDデータ」を探してきました。曲全域でTruePeakはありません。
 上図が元データ、中図がLinear、下図がMinimalです。目的からして充分な2倍です。
 実際の楽曲においてMinimalがどのような波形変形するかの例にもなってると思います。

クリップ比較CD例

 寡聞にして言及されているのを見たことはありませんが、これはMinimal系特性のデメリットではないでしょうか。
 実際の再生音で「ヴェールがかかったようになる」「割れてる」などには至らないと思いますが、「演算としてはLinearにはないピーク潰れを発生させることがある」とは言えるでしょうから。
 TruePeakが発生するデータの場合は逆にピークズレすることで消えるTruePeakもあるでしょうけれど、それはメリットとは言えないですよね。

・再生音に差はあるか
 本稿で取り上げた合成波形のリコンストラクション結果は、「波形」として見るとLinearとMinimal設定で全然違います。一見するとMinimalの変形はマズイんじゃないかと思っちゃいますよね。
 しかし、見た目はずいぶん違いますが周波数成分は同じで、違うのは“ふたつの成分の位相だけ”ということになります(ピーク問題はさておき)。
 そして、人間の聴覚は位相には鈍感らしいです(ちゃんと調べていませんので詳細不明、あくまで“らしい”のレベルです)。
 確かに、DACユニット側のデジタルフィルタはOFFにしてLinearとMinimalで8倍したファイルを聴き比べても差は判らないような…
 このケースだけ、の話ですけれど。


 Linear系特性は過去だけでなく未来のサンプル値も参照できるデジタルフィルタならではのものです(ですよね?)。アナログフィルタでは実現できません。逆に、未来のサンプル値を参照することによってその影響を受け、「プリエコー」が生じるということですね。
 ですので、「Linear系特性は不自然。Minimal系特性の方がデジタル臭くなくて好き」と言う嗜好もあるでしょう。
 一方、「波形変形がないのは(ピーク問題も含め)デジタルフィルタならではのメリットなのでLinear系を積極的に利用する」と言う考え方もできるでしょう。


■DACチップはどうしているか

 上記ではPCで行うアップサンプリングについて見てきましたが、DACチップに搭載されているOSDF(Over Sampling Digital Filter)も同種機能ですから同じ事情があるハズです。

 ただし、≪Resampler-V≫で比較したLinearとMinimalは違いを解りやすくするための極端な設定です。DACチップ内蔵フィルタはいろいろ考慮されていると思います。

・DACチップの実装
 DACチップには、位相応答特性が異なるOSDFが内蔵されているものがあります。そして、どのOSDFを用いるかユーザに開放しているDACユニットもあります(独自のフィルタを搭載しているDACユニットもあるでしょう)。
 そのようなDACユニットで位相応答特性が違うフィルタが選択可能だった場合、極端に言うと

「波形変形するのはキモチワルイから、プリエコーを許容する」
「波形変形してても違いが知覚できないんだから、プリエコーがない方を優先する」

どちらかはお好み次第ということですね。

 では、どのフィルタがどの特性なのでしょう?
 AKM社AK4490内蔵のフィルタ名称をみてみます。

    ・Sharp roll-off filter
    ・Slow roll-off filter
    ・Short delay Sharp roll-off filter(default)
    ・Short delay Slow roll-off filter

 一般的に、SharpとSlowの違いは遮断減衰特性が急峻か緩慢かの違いのようです。
 この特性値もエコーに影響を与えます。プリかポストかではなく“量”が変化するようです。≪Resampler-V≫のPB,SB,Attスライダを動かしながら「LPF Impulse Response」を見ると解りやすいですね。Slowの方がイメージングノイズは漏れるがエコー成分は減る、ということです。
 そして、AKM社の説明(*)によると、「Short delay」と付くモードがプリエコーを抑制する方向性のようです。Mininalとは言いませんが、「非Linear系」特性ということでしょう。
 一方、「無印」はプリエコーとポストエコーが同量のようですから、Linear系特性と思われます。

*:http://www.phileweb.com/review/closeup/akemd-ak4399/
  http://av.watch.impress.co.jp/docs/topic/20151215_725922.html

 TI社もSharpとSlowは同様の定義と推定されます。
 ですが、AKM社に「Super Slow」、ESS社には「Fast roll-off」といったモードもあるようですので、名前だけでフィルタ特性を判断するのは難しそうですね。

 16/08/28追記:設定の実運用ですが、PBとSBの設定と同じく「鳴らすDACチップのデフォルト」になるべく合わせた方がいいのかも知れません。それで音質チューニングされたチップということでしょうから。
 とするなら、AK4490ではLinear系ではなくMinimal系で追い込んだ方がいいかも知れませんね。

・DACユニットの実際
 さて、では、OSDF設定を変えると実際のアナログ出力はどう変化するでしょう?
 TEAC製DACユニットUD-503は搭載しているAK4490のOSDFを変更できますので、「FIR SHARP」と「SDLY SHARP」で上記44.1kHzの合成波形データを再生し、PCオンボードサウンドでキャプチャしてみました(キャプチャ環境は直近記事と同じです)。
 OSDF倍率は8のハズです。

・FIR SHARP(アナログキャプチャ)

UD-503 FIR SHARP

 DACチップによるリコンストラクション結果、確かに「変形なし」のようですね。

・SDLY SHARP(アナログキャプチャ)

UD-503 SDLY SHARP

 “≪Resampler-V≫の極端な設定”ほどではありませんが、確かに元波形とは違う形に復元されるようです。


 一応、≪Resampler-V≫で試してみたことの裏取りにはなったでしょうか。


■ちょっとだけ:「プリエコー」は本当にヤバいのか

 本項16/02/14追記改訂。

・Impulse Responseも見てみる
 以上、変形について具体的に見てきました。
 が、本稿で取り上げたのは「周波数成分をふたつしか持たない単純な波形」による一例であり、実際の音楽においてどんな影響があるかは別問題であることは言うまでもありません。

 また、変形とバーターであるプリエコーに関しても、特性説明に示される例は≪Resampler-V≫をはじめとして普通「インパルス応答」です。“インパルス”は自然界にある音ではなく、その“応答”はあくまでもフィルタ特性を示すものであって、実際の音楽への影響そのものではないでしょう。
 よくLinear系特性は「プリエコーがあるのでアタック音が立ち上がる前から音が聞こえてしまって不自然」などと評されますが、音声波形のリコンストラクション特性と直結させてイメージするのはちょっと疑問に思っています。

 ということで、今回の「Phase Response」とリンクしていることもあり、「Impulse Response」についても少し考えてみました。
 Impulseではなくもうちょっと自然の音・音楽の音に近い波形のプリエコーは本当に気にするべきものなのか、という観点です。「変形」とバーター要素ですので、その影響度をちょっとでも知っておきたいと思いますので。
 全くちゃんと解っていないのですが、解っていない故に理解を深めるためとりあえず(以下、理解の仕方は間違ってるかも知れませんが、事例としてはやってみたそのままです)。

・エコー付加の実際:4kHz
 どんな波形がいいか考えてみたのですが、「1周期だけいきなり立ち上がって消える4kHz(0dB)のサイン波」はどうでしょう? 音楽の基音は4kHzくらいまでしかないようですし、-∞から一気に0dBになる以上に急峻な立ち上がりはありませんので。なお、基音より高周波数の倍音成分は、基音よりレベルは必ず低くなりますのでエコー成分も小さくなるハズです。

 その波形(1648フォーマット)を≪WaveGene≫やバイナリエディタを使って作り、アップサンプリングでプリエコー・ポストエコーがどんなふうに付加されるのか試してみました(48kHzなのはサンプル数を整数個にするため、16bitなのはバイナリエディタで弄りやすくするためです)。
 リサンプラは上記と同じ≪Resampler-V(SoX)≫を用います。目的からして充分なので2倍です。
 中図がMinimal、下図がLinear設定です。

4000HzResponse1648.png

 Linearのプリエコー、そんなにヤバいものでしょうか。そもそもエコーと呼んではいますがくっつく波形は元の4kHzじゃなくナイキスト周期(24kHz)ですし。目立つレベルとしてはそれが数周期ある程度だと思いますが、でっかいアタック音の前にこれを違和感として感じることがあるのかちょっと疑問です。このレベルの24kHzの単独サイン波はおそらく聞こえないでしょうし、無音からフルビットに立ち上がるアタックも普通音楽にはないでしょうから。
 個人的にはMinimalのポストエコーの大きさと長さも気になります。

・エコー付加の実際:1kHz
 さて、「4kHzのフルスケールアタック音」っていうのもある意味“非現実的”ですよね。ので、さらに試しに1kHzの場合も採取してみました。

1000HzResponse1648.png

 エコー成分はかなり目立たなくなっています(時間軸密度の違いは脳j内変換お願いします(笑))。
 これらを見ると、デジタルフィルタのエコーは「かなり大きなインパルス的な高周波成分」についてのみ気にすればいいのではないかという気がします。
 実際の音楽波形の周波数成分としてそれがどのくらいあるのかが問題ということになりますが、素人には解りません(笑)。

 そもそも、“自然界の音・音楽の音”は立ち上がりも収束も上図のようなものではありませんし、いろんな周波数成分が入り交じりますので、どんなふうにどこまで影響があるかはなんとも言えませんけれど。

・フィルタ特性を“ゆるゆる”にすると
 本項16/04/13追記。
 LFPの遮断特性を緩くすると、デメリットは低下するハズです。どれくらい違うのでしょう?
 ≪Resampler-V(SoX)≫の設定を最も緩くして4kHzの結果を採取してみました。

  Pass Band:91.3→54,2%
  Stop Band:100.0→120.0%
  Stop Band Attenuation:-198→-96dB

4000HzResponse1648 大甘設定

 上がMinimal、下がLinearです。
 Linearは思ったほど劇的な差ってカンジでもないです。Minimalは効果アリ? もちろんイメージングノイズ遮断特性の劣化とバーターの効果ですけれど。



 いずれにしろ、「変形」と「プリエコー」、どっちをどこまで気にするかは“お好みで”ってことですね。


 それにしても、PCMのリコンストラクションって「あちらを立てればこちらが立たず」でいろいろ大変ですねぇ…(苦笑)


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

「サンプリング定理」のひみつ

16/01/04初稿

 (PCMデジタルオーディオにおける)サンプリング定理のリクツは一応納得したつもりです。
 でも、なかなかスッキリ腑に落ちるカンジにはならないですよね。きっと具体的にイメージできないからでしょう。

 そこで、PCMデジタルデータがどのようにDACチップでアナログ波形に「再構築=リコンストラクション」されるのか、サンプリング定理に基づいたシミュレーションによる“見える化”で追ってみたいと思います。
 CDフォーマットである44.1kHzを例にします。

 波形表示には≪Wavosaur x64 1.1.0.0≫を用いましたが、説明に適した波形を描くためデータはいろいろ弄っています。ファイル名などは無視してください。
 また、「サンプリング周波数44.1kHzでは実際には22.05kHzは記録再生できない」といった実事情は説明簡素化のため無視しています。


■1周期に数個のサンプルから連続波形を再現するプロセスを体験する

 たとえ1周期に2~3点ほどしかサンプルがなかったとしても、サンプリング定理によれば「完全に復元される」ハズです。
 その具体例を44.1kHzサンプリングにおける14.7Hzのサイン波で見てみたいと思います。44.1kHzの1/3の周波数ですので、1周期にちょうど3個のサンプルがあるPCMデータになっています。レベルはドンツキを避けるため-3dBにて。
 マイナスピークにサンプルポイントを合わせるため(極端な例にするため)、開始を30°ズラして≪WaveGene 1.50≫で生成したものです。

 以下にふたつの図を並べます。
 上図は、14.7kHz/-3dBサイン波を示すデジタルデータです。デジタルですので当然情報は“点”しかありません。
 が、サンプリング定理上「ナイキスト以上の周波数成分はない」という条件が必ず付きますので、その具体的イメージを添えたのが下図です。22.05kHz/0dBのサイン波=サンプリング周波数44.1kHzで表現できる最高の周波数の図となります。

14700Hzの点と220500サイン波

 DACチップは上図の離散サンプル間をつないで波形を復元します。「自然界に存在し得るなめらかな波として」なのは言うまでもありません。
 そのままだとどんな線でも引けてしまいますが、「下図以上に急峻な変化はできない」という条件が付くワケです。
 さらに、最大振幅が0dB以下という条件もあります。

 その条件で上図の点を線で結ぶとどうなるでしょう?


 どんなに工夫しても「1周期に3個のサンプルがある14.7kHzのサイン波」になっちゃうハズです。
 ピークもサンプル値に拘ってはいられません。プラス側はサンプル値としては最大-9dBしかないのに-3dBに頂点を持っていかざるを得ないですよね(TruePeak)。

14700Hzの点・サイン波重ね

 ということで、1周期に3個しかないサンプルからサイン波が再現できました。3サンプルポイントが時間軸上ズレている場合や1周期のサンプルが整数個ではない場合は、応用編としてイメージできると思います。
 そして、サイン波が復元できるということはいろんな波形が復元できるということです。
 なお、本例は人工の単独サイン波ですが、自然音の場合も、「AD変換する前にナイキスト以上の周波数はLPFでカット」がPCMの前提ですから、「22.05kHzサイン波以上に急峻な成分なし」という条件はやはり成立します。

 これが「サンプリング定理」によるリコンストラクションです。


■DACチップでは44.1kHzの離散データを如何に連続アナログ値に復元するか

 要するに、上で“脳内シミュレーション”したのと同じことがDACチップ内ではデジタル演算で行われているのです(正確に言えばDACチップ外のアナログポストフィルタも含めてですが)。

 PCMデジタルデータをサンプリング定理に基づいてアナログ値に戻す作業=リコンストラクションフィルタの前段(というか大半)を担うのが「オーバーサンプリングデジタルフィルタ(以下OSDFと略)」です。PCでやる時はアップサンプリングと呼ばれる動作です。
 これは、あるサンプルの周辺サンプルを参照することによって、あるべき中間サンプル値を算出していくものです。上で点を繋ぐ線を想像した時、きっと周りのサンプルを参照しましたよね。DACチップ内ではそれを同じことをデジタル回路がOSDFとしてやっているのです。参照する周辺サンプル数が多い(Tap数が多い)ほど再現性が高くなることもイメージできると思います。

 ということで、次に、DACチップ内でどのようにリコンストラクションが行われているか、PCのアップサンプリングによるシミュレーションで可視化してみます。

 例は上と同じサンプルレート44.1kHzの14.7kHzサイン波の復元です。
 1周期に3個しかない点(サンプル)から14.7kHzのサイン波が再現されるプロセス、となります。

・何もしない(NOS-DAC状態)
 ところで、3個しかないサンプルを何もしないでアナログ化するとどうなるでしょう?
 あるサンプル値から次のサンプル値まではデータがない状態であり、未来のサンプル値がどうなるかは判らないのですから、DACチップとしてはサンプル値が変化するまで同じ電圧(電流)値を出力キープするしかありません。
 これを「零次ホールド(Zero Order Hold)」といいます(*)。

*:http://ednjapan.com/edn/articles/0607/01/news010.html

 再現すべきサイン波と重なったところが上でも示したサンプルポイントです(1周期に3個)。

14700Hz-3dB:零次ホールド:サイン波重ね

 全然サイン波じゃないですよね(笑)。
 マジかよ~と思いますが、OSDFかけないと実際こうなります。
 OSDFじゃなかった時代は、DACチップからのこういう出力波形をアナログフィルタでリコンストラクションしてたってことですよね? 確かに音質よくするのは大変そうです。

・OSDF(一般的なDACスペックの8倍まで)
 OSDFを≪foobar2000 1.3.8≫のアップサンプリングでシミュレートしてみます。リサンプラには≪SoX Resamlper 0.8.3≫を用いました。
 「Phase response(位相応答)」パラメータを変えると結果は大きく変わりますが、本稿ではその事情は無視し、主旨説明のために解りやすい50%(linear)としています。左記を含め、デフォルト設定のままです。

 上図が2倍、中図が4倍、下図が8倍です。

14700Hz-3dB:x2x4x8:サイン波重ね

 8倍でだいぶサイン波っぽくなりましたね。オリジナルサンプルは(一番最初の図の通り)3個しかないのに大したものです(笑)。
 8倍でもまだカクカクしていますが、これは、ざっくり「8倍(44.1x8=352.8kHz)のナイキストである176.4kHz以上のイメージングノイズ」と言えます。ので、たとえDACチップからそのまま出力されても、アナログポストフィルタ(おおむね100kHz以上はカットされるハズ)でならされちゃう帯域ですから、ここまでやっとけば充分ってことだと思います。

 なお、上記はあくまでも“見える化”しただけであり、DACチップのOSDFでこれと同じようなリコンストラクションが出来ているという意味ではありません(できてないという意味でもありません)。

・OSDF後(ΔΣ変換)
 実際には、8倍されたのちΔΣ変換するためさらに16倍(128fs)や32倍(256fs)されます。ここではOSDFのような凝ったサンプル生成(オーバーサンプリング)は行いません(行えません。できるくらいならやってる(笑))。
 DACチップにおけるその処理がどんなものなのかは解っていません。ハードウェア資源を割いていないハズなので、零次ホールドか、やっててもリニア補間程度ではないかと思っているのですが…

 一方、PC処理の代表として≪foobar2000≫を調べてみたところ、DSD変換する際ひと仕事しているようです。零次ホールドではなく「Linear Interpolation(リニア補間)」、つまりサンプル間平均値を生成することでオーバーサンプルしているようです。波形編集ソフトでサンプル間を線で結んだようなデータにしているということですね。
 それを見える化してみます。以下は、上記8倍のデータをさらにLinear Interpolationで結んだものです。

14700Hz-3dB:x8のちリニア補完8倍

 ≪Sox Resampler≫で8倍したデータを同じく≪foobar2000≫のプラグイン≪MultiResamlper 1.1.0≫で「Linear Interpolation」して作りました。あくまで説明のための波形です。8倍OSDFからさらに16倍とか32倍になるワケですが、直線で結ぶだけですし、もはや最後のカクカクは無視できますから、リニア補間の倍率は気にしないでください(笑)。

 ピーク付近がやや角張っているようですが、全体的には充分なめらかに見えます。≪foobar2000≫でDSD変換する場合は、このようになったPCMを対象にしているということです(あくまで“説明のための図”におけるイメージですが)。
 ていうか、DACチップのOSDFが8倍だからとアップサンプリングを8倍で止める必要は実はないので、8倍以上に設定すれば上記よりさらになめらかになったPCMデータをDSD変換できるということになります。

 このあたりは≪foobar2000≫(*)によるDSD変換のメリットではないかと思えるのですが、上述の通りAK4490やPCM1795などのDACチップは8倍した後どのようにオーバーサンプリングして128fsや256fsにしているのか解らないのでなんとも言えないです。

*:正確には「そういう設定ができるPCシステム」です。


■ハイレゾデータはどう処理されるか

 本稿は44.1kHzデータについて記していますが、表題についてもカンタンに記しておこうと思います。
 ただし、本項はデータシートなどから個人的に推察したものです。ですので合ってる保証はありません(苦笑)。
 「ハイレゾ」と記していますが、パラメータとしてはハイサンプリングのみが対象です。

・AK4490(AKM社の主力)
 OSDFは倍率可変で出力レートを8fs(1fsは44.1または48kHz)に固定しているようです。96kHzが来たら4倍の384kHz(8fs)にしてΔΣブロックに渡すと理解しています。ΔΣブロックはそれを固定倍率の32倍でオーバーサンプリングして256fsを得ています。
 ハイレゾを入れてもΔΣブロックにおける「デジタルフィルタリングではないオーバーサンプリング処理」倍率は変わらないということです。

・PCM1795(TI社の主力)
 OSDFは8倍固定で出力レートが可変になります。96kHzが来たら8倍の784kHzにしてΔΣブロックに渡すと理解しています。そのかわりΔΣブロックの倍率は可変で、どんな周波数でも最終128fsにすることを推奨しているようです。つまり、44.1kHzソースの場合はOSDF8倍xΔΣ16倍で128fs、96kHzの場合はソースで2倍xOSDF8倍xΔΣ8倍=128fsだと推定しています。
 ハイレゾを入れるとOSDF処理結果のfsが上がり、その分ΔΣブロックにおける「デジタルフィルタリングではないオーバーサンプリング処理」倍率が下げられるということですね。ΔΣ部処理はOSDFより低精度でしょうから、それが下がった分の倍率は前段のデジタルフィルタ処理になるので、ハイサンプリングはDAC処理プロセスとしてもメリットありそうです。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

「ハイレゾノイズ」にご用心?

15/10/04初稿

 正確には「ハイサンプリング領域(20kHz以上)のノイズ」ですけれど。


 「PCM→DSD256変換再生目的のDSDネイティブ再生環境」はほぼ整いました。
 当たり前ですがPCM音源だけでなく「DSD音源のネイティブ再生」も出来ますので、市販のDSD64音源も、ネイティブ・PCM変換・DSD128/256変換などいろいろ試してみました。
 それらをスペクトル見ながら聴いていたら、なんだか“常識”とか“定番設定”みたいなものへの疑問が沸いてきちゃいました。


■DSDファイルのネイティブ再生

 DSD方式では、ΔΣ変調のノイズシェイピングによって高域にノイズが発生(移動?)します。
 このノイズには正確な意味を示すシンプルな名称がないみたいですので、本稿では「ΔΣノイズ」と略記します。いちいち「ΔΣ変調の~」と書くのはナンですので。
 実は前々からちょっと疑問だったんですけれど、これ、やっぱり気になるんですよね…

・「DSD64」って本当に高音質フォーマットなの?
 ΔΣノイズ、DSD64では20kHzくらいからモリモリ盛り上がります。
 ネイティブ設定すれば≪foobar2000≫もUDA-1もUD-503もそれを忠実に再生します。
 だってネイティブですから。
 実際のスペクトルは≪foobar2000≫でPCM→DSD変換したDSDデータのUDA-1出力のアナログキャプチャの通りです。

 そして、ハイレゾ対応の昨今の機器は20kHz以上の高域も再生しています。
 だってハイレゾ対応ですから。
 例えば、以下は倍音豊かで高域の意味が判りやすいハズのヴァイオリン曲の市販DSD64音源スペクトルです。

市販DSD64:ネイティブのみ
(アナログキャプチャ)

 UDA-1のアナログLINE-OUTです。ちゃんとハイレゾ領域に音があります。
 そして、この出力を受けたアンプやスピーカやヘッドホンも、仕様にある高周波数までキチンと再生しているハズです(仕様だということは極端にゲイン落ちたりするハズないので)。

 ですので、20kHz以上にも有意な信号があり、それは再生され、リスナーはそれを聴いていると言えます。
 そして、それは同時にDSD64のネイティブ再生時、リスナーは20kHz以上の盛大なノイズと共に音楽を聴いていると言うことでもあります。

 それって問題ないのでしょうか?
 だって、もし「PCMにおけるハイサンプリングは有効であって20kHz以上の高域も音質に好影響を与える」のであれば、その帯域にこれだけノイズがあるっていうのは逆に悪影響がある気がするんですけど…
 ノイズとして聞こえているとは思いませんが、これだけあると何らかのエネルギー感を感じてしまうのかもと。実際、波形で見ても、DSD64のノコギリ波はかなりノイジーでしたし。
 何も根拠はありませんので思い込みかもしれませんけれど。

 ただしPC-Audioの場合です。DACユニットではDACチップ出力に対する最終アナログポストフィルタのカットオフ周波数は可変できないハズ(*)なので、ハイレゾ対応機においてDSD64の時だけ低い周波数でカットする、といったことはできないと推定されるためです。実際、上記UDA-1出力のアナログキャプチャはカットせず出力していることを示しています。

*:その前のPCMデジタルフィルタならいくらでも可変できますがDSDにはかけられません。

 一方、SACDプレーヤなど専用機ではもしかしたら低い周波数でアナログLPFかけてる可能性もあります。
 16/03/06追記:でも、それじゃハイレゾじゃないじゃんという話になりますよね。実際メーカもジレンマを抱えていたようで、例えばmarantz製SA-17S1(SACDとCDにのみ対応)などには、“背面”にフィルタ切り替えSWを設けています。
 アンプが対応していないとか言う理由は方便でしょう。
http://www.marantz.jp/DocumentMaster/jp/Old_Product_Manual/SACD_CD_Player/SA-17S1.pdf

・ΔΣノイズをカットするには
 もしかしたら、DSD64を聴く時は何らかの方法でΔΣノイズをカットした方がよいのかも知れません。
 それはLPF(当然デジタル)かけるということですが、DSDフォーマットのままでは出来ません。
 つまり、ΔΣノイズを嫌うのであればDSD→PCM変換するしかないということです。

 明示的にLPFしなくとも、例えば44.1kHzに変換してしまえば必然的に22.05kHz以上のノイズは無くなります(というかデータとして存在できない)。
 が、流石に44.1kHzにするくらいだったら「何のためのDSDなんだよ」ってカンジですよね。
 実際、上記のDSD64音源のスペクトルを見ても、30kHzくらいまではΔΣノイズに負けない倍音成分があると言えるでしょう。でも、逆に30kHz以上はでΔΣノイズの勢力に負けてるとも言えます(もちろんこの音源についてですが)。
 ですのでDSD64にとっては30kHzくらいまでは有効帯域だとすると、44.1kHzよりは高性能フォーマットとは言えましょう。が、(周波数成分的には)大した差じゃないとも言えるかも(苦笑)。
 少なくとも“DSD”というブランドイメージには負けてる?

 ちなみにDSD64をDSD128やDSD256に変換することでΔΣノイズをカットすることはできません(念のため試して確認しました)。PCMのアップサンプリングとは決定的にリクツが異なるためです。
 PCMのアップサンプリングで消すノイズはデータ化されたものではなくサンプリング定理に基づいたDA変換時に発生する「イメージ」ですが、DSDのΔΣノイズはデータとして「実体」ですから消えないということですね。

#イメージングノイズは離散しているサンプル間を「零次ホールド(次のサンプルまで前のサンプル値を出力)」で繋ぐときに発生するものなので、データ化されてると言うこともできるかも知れませんが…

 ということで、もし、ノイズシェイピングによって高域に圧縮されたノイズを嫌うのであれば、DSD64はネイティブで聴くべきではないということになります。

・具体的処理方法
 具体的にはどうすればよいでしょう?
 せっかく入ってる22.05kHz超の高域を活かすためにはせめて88.1kHz以上に変換したいところです(*)。fb2kならプラグインなどでカットオフ30kHz程度のLPFかければよいでしょう。

*:DACユニットのアナログLPFのカットオフは80kHz~100kHzくらいのようです。ですので、88.2kHzへ変換すればΔΣノイズはナイキストの44.1kHzまでしか無くなりますが、176.4kHzだとΔΣノイズは88.2kHzまで再現されることになり、DSD64ネイティブの時とあまり変わらなくなります。

 LPFプラグインを探さなきゃ~と思ったところで、膝を打つことが。

 ≪foobar2000≫のDSD→PCM変換には30kHzでLPFかけるモードがすでに用意されているではありませんか。

fb2k sacd設定084
 foo_input_sacd-0.8.4


 なんでDSD→PCM変換にLPFかけるモードがあるんだろうと不思議だったのですが、ああ、そういう意図だったんだと初めて納得。≪foobar2000≫ってやっぱり凄いなと思いました。
 ありがたくこの機能を使わせていただくことにします。感謝と敬意を込めて。


 上記のヴァイオリン曲で実際やってみるとこうなります。赤い方が通常再生です。

市販DSD64:ネイティブと30kHzLPF
(アナログキャプチャ) UD-503再生

 ちょうど倍音とΔΣノイズのレベルがクロスするあたりからカットされているように見えます。
 倍音の出方はもちろん楽曲によって千差万別でしょうけれど、いい塩梅なLPF処理ではないかと。

 実際の音はどんなカンジになるかというと、「30kHzのLPFかけて88.2kHzに変換し、通常のPCMと同じくPCM→DSD256変換再生」した方が、“DSDデータネイティブ”再生するよりクリアに聴こえます。特にピアノがクッキリするように感じます。
 が、もちろん主観ですので一般論にはなり得ません。楽曲や環境によっても変わるでしょう。そもそも、変化したとしても原因はΔΣノイズを除去したためなのか処理プロセスを変えたためなのかも定かではありませんしね(笑)。ただ、≪foobar2000≫に機能実装されているということは、それほどヘンなハナシでもないと思います。
 どうせ解らないので「リクツを思いついたのでやってみて楽しむ」のひとつということで。

 なお、このプロセスとしてなら、176.4kHzへの変換でもいいかも知れません。変換ターゲットのサンプルレートに依らずどうせ30kHzでLPFかかるので。
 が、ハイレゾ領域の倍音を救うには88.2kHzで充分だと思いますので、それ以降のアップサンプリングはDSD変換前処理としてのリサンプラに任せた方がいいという考え方もアリかも。

・DSDって高音質フォーマットじゃないの?
 念のためですが、「DSDはダメ」と言ってるのではありません。「DSD64だとこういうことになってる」というオハナシです。

 DSD128やDSD256だとΔΣノイズがどうなっているかは、上述の通りUDA-1で確認した再生スペクトルを見れば判ります。
 DSD128だとそれなりに緩和されてはいるもののまだ96kHz以下には結構残っています。DSD256だとほぼクリアだと言えるでしょう。
 今のところ素人が96kHz以上を確認する術はありませんが、上述の通りおそらく最終アナログLPFでカットされる領域だと思いますので無視しています。

 「PCM変換するなんて本末転倒だからイヤだけど、大量のΔΣノイズを聞くのもイヤ。でもDSDコンテンツ聴きたい」
 という場合は、周波数を上げるしかありません。つまりDSD128(5.6MHz)またはDSD256(11.2MHz)のコンテンツを聴くしかないということです。
 もちろんDSD64からの変換ではダメです。PCMからの変換でもありがたみは少ないです(ユーザ側でできちゃいますし)。
 ですので、現時点では現実的ではありません。

 DSDコンテンツ、結構メンドクサイすね(苦笑)。

 ΔΣノイズがどこまで許容範囲かは主観に依ります。「あってもよいのだ、DSDは64でも他の何かがいいのだ」という考え方もアリでしょう。
 ERI的にはDSD256推しです(そのためにPC新調&DACユニット買い換えたくらいですから(苦笑))。
 ただし、上記の通りDSD256のコンテンツを楽しむ機会は“まれ”でしょうから、現実的には「コンテンツフォーマットとしてではなくDACチップでDA変換するデータフォーマットとして」の話となります。


 以上、「DSD64コンテンツはDSDネイティブ再生しない方がよいのではないか」という“非常識(笑)な”オハナシでした。


■知らずに「ハイレゾノイズ」を聞いていないか

 そんなことを考えていたら、「20kHz以上の領域のノイズっていろいろ発生しているんじゃないか?」って気になり始めました。
 それも意図せずに発生させて、「いい音だ~」って聴いていることはないでしょうか?
 結構ありそうな…

 以下、再生・キャプチャ環境は最近の記事と同じです。ただ、DACユニットはUD-503にて(せっかく入手したので、“ネイティブNOS-DAC”として活用)。

・PCM→DSD64変換
 当然のことですが、PCMをDSDに変換するとΔΣノイズを内包したデータになります。
 DSD256くらいになるとノイズ帯域は100kHz以上になるようですので事実上問題になりませんが、DSD64への変換だと、それなりのノイズを“敢えて付加している”ことになります。当然DSD化するメリットもあるワケですが。
 もちろん、リアルタイム変換でもノンリアルタイム変換でも基本的事情は同じです。
 ≪AudioGate 2.3.2≫で1644をDSD64に変換したファイルの再生スペクトルを一例として示します。

AS:DSD64(AG変換)
(アナログキャプチャ)

 念のためですが、1644をサンプリング定理に則って再生した場合は22.05kHz以上に大きなノイズはありません。

・NOS-DAC
 意図したNOS状態以外にも、UD-501やUD-503などのようにオーバーサンプリングデジタルフィルタがデフォルトでOFFになっている場合や、「余計なデジタル処理(*)は要らない!」って意図的にOFFしてる場合も、イメージングノイズまみれになります。

AS:NOS-DAC
(アナログキャプチャ)

 ナイキストまでの周波数特性がぱたぱたと折り返してることが判ると思います。1644音源です。

*:サンプリング定理上余計じゃないんですけどね(苦笑)。

・≪foobar2000≫のDSD変換
 fb2kのDSD変換ブロック(ASIOProxy)にはLPF機能がありません。ので、アップサンプリングせずにPCM→DSD変換すると、たとえDSD256でも元ナイキスト以上の帯域はイメージングノイズまみれになります。
 “なんちゃってNOS-DAC”状態になっちゃうと言うことです。

・とあるプレーヤソフト
 これはノイズという意味ではありませんが、1644音源をx4設定で再生したスペクトルです。

AS:フリープレーヤx4
(アナログキャプチャ)

 元ナイキスト以上の高域成分がたくさんありますので、いわゆる「アップサンプリング」ではありません。
 何らかのアルゴリズムで「補間生成」したものでしょうから、高域成分の有意性はその性能次第ということです。


 「高域ノイズがあった方がエネルギー感があってよい」「空気感が好き」「スペクトルを聴くワケじゃない」といった嗜好・考え方も、もちろんアリでしょう。
 ただ、「高域ノイズがある状態」という事実は知っておいた方がよいと思います(もちろん、それが“空気感”の理由かどうかは解りませんけれど)。


 個人的には(現時点では)、「たとえデジタルフィルタを使ってでもイメージングノイズやΔΣノイズなどは除去した方がよい」と思っています。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

UD-503を測る

15/09/06初稿

 新たに「フルエンシー理論によるアップコンバート機能」のスペクトルを採取したのをきっかけに、「UD-503を試す」記事からデジタル処理関連の情報を分離しました。もともとひとつの記事だとちょっと冗長度高いかなと思ってましたので。


 こちらもとりあえず「である」調にて。「試す」記事を前提に記させていただきます。


■非公開のデジタル処理せず素直に再生しているか

 UDA-1での確認と同じ内容を、“アナログキャプチャ”して確認した。アップコンバートOFF、デジタルフィルタOFF、DSDフィルタ150kHzにて。
 再生&キャプチャ環境は≪foobar2000≫のLPF性能を確認した時と同じ。ただし録音レベルは46、UD-503のRCA出力は「VARIABLE」にして0dBを調整。

 結果、DSDモードもPCMモードも問題なし。≪foobar2000≫のDSD変換でシェイピングされた高域ノイズの“形”もUDA-1と同じと判断(つまりfb2k出力のまま何もしてない)。
 DSDモードは「Volume Bypass」動作している証左にもなると判断。


■「アップコンバート」とは何か

・高域補間かアップサンプリングか
 とりあえずアナログ出力をキャプチャしてみたところ、確かに「アップサンプリング」ではなく「高域補間」している。LPFかかっておらず、例えば2Fsにすると44.1kHzあたりまで高域信号がある。なんてこったい。

 Esoteric製DACユニットD-07Xに搭載されている「RDOT」なる機能(*)がやはり「フルエンシー理論に基づく高域類推補完」とのことで、この展開と推定。

*:http://www.esoteric.jp/products/esoteric/d07x/index.html

 UD-501にも載ってたと思うが売り文句が異なる。そもそもほとんどウリにしてないのは何故?

・効果確認
 ということで、本当に有効な補間できているのか試してみた。
 有効かどうかは「倍音が増えているか」が判りやすい(ていうかそれくらいしか見る術がない)。なので、倍音が豊富な音の代表、ヴァイオリン曲(CD音源)のスペクトルを採取。

UpConvert 8Fs
(アナログキャプチャ)

 …ナイキスト以上に倍音が山ほどある(ように見える)。一方で、“折り返している”ように見えなくもない(苦笑)。
 本当にヴァイオリンの倍音になっているか確認する方法は思いつかないが、≪WaveSpectra≫のカーソル表示からの簡易計算では、22.05kHz以下の倍音周期と22.05kHz以上の(補間生成された)倍音成分周期は一致していた。が、リアル倍音と生成倍音の周波数の差分は周期の倍数になっていない。はて。誤差累積によるものかも知れない。
 そもそも、同じ基音に対する倍音なのかも判らないのでなんとも言えない。

 ということで本当に正しく倍音なのかは流石に解らないが、ちょっと驚いた。

 それではと、自然音源ではなく≪WaveGene≫で人工生成した1200Hz-6dBのノコギリ波で試してみた。まずは2448データをUPCONVERT OFFで再生(PCMデジタルフィルタはFIR SHARP)。

ノコギリ1200Hz-6dB2448 NOP
(アナログキャプチャ)

 これを8Fsしたのが以下。

ノコギリ1200Hz-6dB2448 8Fs
(アナログキャプチャ)

 また驚いた。
 この結果からは、本当に失われた倍音成分を生成補間しているように見える。

 といっても、この程度の調査では正確なことは解らない。仮にある程度効果があるとしても、いろいろな楽曲に対する実効的効果のほどは解らない。
 が、少なくとも“名前だけ”“スペックのためだけ”などとは言えなそう。4Fsや8FsにしてOSDFをOFFする(つまりOSDFの代わりにする)使い方もアリかも。
 失礼ながら、ちょっと意外(苦笑)。

・Impulse応答
 どんな処理してるのかの参考に、インパルス応答がどうなるのか採ってみた。1644データに対するFIR SHARP(上)と8Fs(下)。

Impulse FIR 8Fs
(アナログキャプチャ)

 アナログキャプチャなのでAD変換時のフィルタ変形も含まれているが、アップコンバートではインパルス応答しないと見てよいであろう。明らかに普通のLPFなどとは異なる処理している。
 なお、8FsにするとデジタルフィルタONでもインパルス応答しない(OFFでもONでも変化しない)。取説にもそうあるが、確かに352.8/384kHz時はOSDFかからないということ。
 また、デジタルフィルタをOFF→ONすると、アップコンバート結果のナイキスト周波数以上がカットオフされることも確認した。


■「デジタルフィルタ」とは何か

・「PCMデジタルフィルタ」とは?
 「アップコンバート」が高域補間機能だということは「デジタルフィルタ」機能には普通無関係。ということはそれをやっているFPGAの機能とも考えにくい。よって、AK4490搭載のOSDFを設定していると推定。

 AK4490のOSDFは以下の4種(Short Delayがデフォルトとは意外)。
    ・Sharp roll-off filter
    ・Slow roll-off filter
    ・Short delay Sharp roll-off filter(default)
    ・Short delay Slow roll-off filter

 UD-503の4種は
    ・FIR SHARP
    ・FIR SLOW
    ・SDLY SHARP
    ・SDLY SLOW

 なので、AK4490のOSDF名の略称と推定(*)。

*:15/10/10:「試す」記事に示したphileweb15/10/09付けリンク先記述もそのように読める。

 以下に、≪JRMC20≫や≪AudioGate≫のアップサンプリング特性=LPF特性を採取した時の考え方で得たLPF特性を示す。
 24bit/44.1kHz -3dBのホワイトノイズファイルをPC側では何も加工しないでPCM再生。


・FIR SHARP (アナログキャプチャ)

WN2444-3dB:FIRSHARP


・FIR SLOW (アナログキャプチャ)

WN2444-3dB:FIRSLOW


・SDLY SHARP (アナログキャプチャ)

WN2444-3dB:SDLYSHARP


・SDLY SLOW (アナログキャプチャ)

WN2444-3dB:SDLYSLOW


・フィルタOFF (アナログキャプチャ)
 なめらかに繋がっているが22.05kHz以上はイメージングノイズ。22.05kHzを中心に“左右対称”になっている。

WN2444-3dB:OFF


 データシートによると44.1kHzのSHARPフィルタ特性はPassBand=20.0kHz、StopBand=24.1kHz。SLOWはそれぞれ4.4kHz,39.1kHz。実際そのようになっていると判断(とするならこの機能はやはりDACフィルタのことという証左にもなる)。
 SLOWだとイメージングノイズはかなりの高域まで残留していると言える。

 旭化成のDACフィルタ解説(*)を見ると、SDLYとはSoX Resamplerなどにおける位相応答設定でエコー成分をポスト側に集中させたのと同じと推定。プリエコーがないのはメリットかも知れないがデメリットもあるということ(位相応答がノンリニアになる。波形変形も発生する)。Resampler-Vだとプリの分がポストに回っているのが判りやすい。
 つまりPC側でいかようにもフィルタできるということでもある。その場合はDACチップ側のフィルタはOFFしたい。その設定が解放されている点は高く評価したい。

*:http://www.phileweb.com/review/closeup/akemd-ak4399/

・工場出荷状態では「サンプリング定理」不成立?
 UD-501などと同じくやっぱりフィルタOFFがデフォルト。アップコンバート機能もデフォルトOFFなので、工場出荷状態で使うとOSDF(リコンストラクションフィルタ)がどこでもかからず、と言って補間された成分もなく、ナイキスト以上はイメージングノイズそのまま状態だけどいいのか?

・旭化成DACのOSDFコンセプト
 UD-503マニュアルには、352.8kHzと384kHzの場合はデジタルフィルタOFFになるとある。
 AK4490データシートには192kHzまでしかフィルタ特性データがない。
 つまり、AK4490のOSDF倍率は入力周波数によって可変で「fsの8倍(352.8 or 384kHz)が最大」ということか(*)。「どんな入力でも8倍」のTI社とは異なったコンセプトの模様。とすると、ΔΣブロックでのオーバーサンプリング倍率が高くなってしまう(最終256倍にしているようなので、8倍PCMをさらに32倍しているハズ)が、そのあたりは不利にならないのか?
 「PCで悉くやっちゃう作戦」の場合は関係ないけど。

*:上記アップコンバート検証中、8fsソースにはインパルス応答しないことを確認しているので、AK4490搭載機なら明示的にデジタルフィルタをOFFする機能がなくても「352.8kHzまたは384kHzで(CDフォーマットなら8倍して)入れてやればデジタルフィルタブロックをバイバスできる」ということではないか。
 AK4490、OSDF&ΔΣ型DACの構造として王道すぎ(笑)。

・「DSDデジタルフィルタ」とは?
 これもAK4490の機能設定と考えられる。アップコンバート機能に無関係だし、50kHzと150kHz(OFFはなし)というモードもAK4490のスペックだし。
 以下、50kHzと150kHzの差を示す。シェイピングされたノイズに対するフィルタ特性を見るのが目的なので、2444-6dBの441kHzサイン波を≪foobar2000≫でPCM→DSD64変換し、UDA-1動作確認と同じ環境にてアナログキャプチャ。赤が50kHz。

sin441-6dB2444→DSD64:UD-503フィルタ2種
(アナログキャプチャ)

 予想を覆す微妙な差。DSD128でも同様(DSD256では差が判らない)。もしかしたら100kHz以上の領域での減衰に大きな差があるのかも知れないが…
 DSDストリームをアナログ化する部分なので、単純なLPFカットオフ特性の違いではないということか?

 ちなみに、「DSD“デジタル”フィルタ」というのはちょっと語弊がある気が。おそらくSCF特性を変更しているハズなので(SCFは駆動クロック周波数で特性変えられるらしいが、それをデジタルと言うのはどうか)。


■あこがれの(笑)NOS-DAC

 「デジタルフィルタやアップサンプリング」について考えた時いじってみたかった「NOS-DAC」を入手したことに。アナログポストフィルタがかかることはさておき、DACチップ動作としてはなんちゃってではない“リアルNOS-DAC(笑)”。NOS=Non-OverSamplingであることがキモで、その後がマルチビットかΔΣかは関係ないハズとして。

 早速NOS-DAC状態にするとアナログ出力が「カクカク」になる様子を見てみた。
 PC側では1200Hzサイン波1648ファイルを「何もしない」でPCM再生。カクカクを見るので念のため16bitで。


・フィルタOFF=NOS-DAC状態 (アナログキャプチャ)

sin1200Hz0dB1648:UD-503フィルタOFF


・FIR SHARP (アナログキャプチャ)

sin1200Hz0dB1648:UD-503フィルタON


 確かにPC側でもDAC側でもフィルタリングしないと「カクカク」している(サンプリング定理に準じていないのでアタリマエ)。
 ただし、完全な「垂直と水平」ではなくやや角が取れてオーバーシュートが立っている。おそらく100kHzくらいで遮断しているアナログポストフィルタによるもの(垂直部分は100kHzのサインカーブになってしまうハズ)だと推定されるが、キャプチャ時AD変換の変形も入っている。

 15/12/06追記:“ちゃんとリコンストラクション”しないとヘンテコな矩形波みたいになっちゃうナイキストの2/3の周波数のサイン波などもそのまま再生されていることになる。

 やっぱり、個人的にはNOSした音がいいとは思えない。


メインメニューへ

テーマ : オーディオ
ジャンル : 趣味・実用

最新記事
ERIへようこそ

Author:らかせ
「最新記事」または
「メインメニュー」からどうぞ

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です

・一応、拍手にコメント(非公開)付けられるようにしてあります

・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください

・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください

・引用の考え方については「007:諸事」をご参照ください

・アフィリエイトはAmazonのみです

・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

カテゴリ
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。