スポンサーサイト

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

「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追記改訂。

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

 また、変形とバーターであるプリエコーに関しても、特性説明に示される例は≪Resampler-V≫をはじめとして普通「インパルス応答」です。“インパルス”は自然界にある音ではなく、その“応答”はあくまでもフィルタ特性を示すものであって、実際の音楽への影響そのものではないでしょう。
 よくLinear系特性は「プリエコーがあるのでアタック音が立ち上がる前から音が聞こえてしまって不自然」などと評されますが、音声波形のリコンストラクション特性と直結させてイメージするのはちょっと疑問に思っています。
 
 ということで、今回の「Phase Response」とリンクしていることもあり、「Impulse Response」についても少し考えてみました。
 Impulseではなくもうちょっと自然の音・音楽の音に近い波形のプリエコーは本当に気にするべきものなのか、という観点です。「変形」とバーター要素ですので、その影響度をちょっとでも知っておきたいと思いますので。
 全くちゃんと解っていないのですが、解っていない故に理解を深めるためとりあえず(以下、理解の仕方は間違ってるかも知れませんが、事例としてはやってみたそのままです)。

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

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

4000HzResponse1648.png

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

 さて、「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のリコンストラクションって「あちらを立てればこちらが立たず」でいろいろ大変ですねぇ…(苦笑)


メインメニューへ
スポンサーサイト

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

ERIへようこそ

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

・ファイルへの直接リンク以外はリンクフリー(連絡不要)です
・一応、拍手にコメント(非公開)付けられるようにしてあります
・DB的に利用しており、過去記事もガシガシ書き換えています。特に「最新記事」は初稿から一週間くらいは直してることが多く、大幅に変わっちゃうことも。ご了承ください
・ということもありますし、記すまでもないですが無断転載(ファイル含む)はご遠慮ください
・引用の考え方については「007:諸事」をご参照ください
・アフィリエイトはAmazonのみです
・ハイパーリンクは当Blog記事のみです(054:節電記事のみ例外)

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