FC2ブログ

「サンプリング定理」その深淵なるセカイ

14/11/20初稿
18/12/27メーカや大学資料などを活用して改訂

 PCM(もちろんリニア)デジタルオーディオについて考えていたらここにたどり着きました。
 新しい地平が開けたカンジします(笑)。

 PCMのリクツは「サンプリング定理」で説明されますが、「周波数成分」について理解しておく必要があるところがミソでした。
 そして、定理の理解だけでなく、どうやって実用しているかを知ることがミソでした。

 以下、私が理解した内容を記してみます。間違ってたら申し訳ありません。

 なお、「エイリアシング」「イメージング」といった用語は本Blogにおける説明しやすさを優先した意味付けをして用いており、一般的なものとは限らない点、あらかじめご了承ください。


■シャノンさん&フーリエさんと向き合う

・サンプリング定理(シャノンの定理)を改める
 サンプリング定理の説明としては、TI社のDSPトレーニング「第2章 デジタル信号処理入門 (サンプリング定理/エイリアシング)」が解りやすいと思います。
http://www.tij.co.jp/dsp/jp/docs/dspcontent.tsp?contentId=53936

 これによると、

「取り扱う信号が周波数 fc より高い周波数成分を持たないとき、サンプリング周波数 fs は
  fs≧2fc
であれば、サンプリングされた信号から元の信号は完全に再現される。」


とあります。以下、用語なども含め、これに基づいて記していきます。

 「取り扱う信号が周波数 fc より高い周波数成分を持たないとき」という条件がありますから、CDを例に具体的に記すと、

・AD変換時には「22.05kHz以上の周波数成分をカット」してからサンプル化

しなければならないということです。
 しかし、実は、実際にはDA変換時時にも同じような条件が付きます。

・DA変換時には「22.05kHz以上の周波数成分をカット」することで元信号を再現

しているのです。
 いろいろ考えた結果、このふたつのフィルタリングの意味を知ることミソだと思いました。以下、それについて記していきます。

・周波数成分(フーリエ変換)を知っておく
 上記を見ると、サンプリング定理では「周波数成分」というキーワードがよく出てきます。ですので、この説明を紹介しておきます。
 やはりTI社のページが解りやすいでしょう(「フーリエ変換」としての解説ですが)。
http://www.tij.co.jp/dsp/jp/docs/dspcontent.tsp?contentId=53938

 かいつまんで言うと、ある時フーリエさん(フランス在住)という方が、「どんな信号波形でも、それをいくつかのサイン波(それぞれ異なる周期と振幅を持つ)の重ねあわせに変換できることを発見」したのです。
 これをサンプリング定理に当てはめると、例えばfs=44.1kHzなら、22.05kHz未満の周波数成分しか扱えないのですから、22.05kHz未満の周波数のサイン波で形成された波形しか有り得ないと言えます。
 このことから、信号として三角波や矩形波は有り得ないことが解ります。22.05kHz(未満)が成分(サイン波)の最高周波数なのですから、垂直や水平や鋭角は構成できないからです。

 なお、「周波数成分」「帯域制限」の具体例は長くなりますので別記事にしました。


■サンプル化する

 さて、まず

・AD変換時には「22.05kHz以上の周波数成分をカット」してからサンプル化

している理由について考えます。

・エイリアシングノイズ
 サンプリングする時、ナイキスト周波数以上の成分があったらダメなのは何故でしょう?
 それは、ナイキスト周波数以上の「サンプリング周波数×N±シグナル周波数」の成分はシグナルと同じサンプルになってしまうためです。
 例えば、48kHzでサンプリングする時、8kHzの成分がなくても40kHzの成分があったら、それは8kHzとしてサンプル化されてしまうのです。このサンプルは8kHzなのか40kHzなのかはもはや解りません。これが「エイリアシングノイズ」です。

 エイリアシングノイズを具体的に理解するため、図示してみます。本当はナイキスト周波数の波形はありえないのですが、図と数字の解りやすさを優先し、ここではサンプリング周波数48kHzで24kHzをサンプル化したい場合を例とします。≪Wavosaur≫を使って並べて作ってみました(波形を得ることが目的ですので、図中の周期や振幅は説明とは無関係です)。

イメージングのイメージppt

 上図を見ると、サンプリングポイントを通過するサイン波は24kHzだけではありません。72kHzや120kHzも通過します。もちろんもっと高い周波数にも無限に存在します。
 つまり、「サンプリング周波数に応じて扱う周波数の上限を制限しないと正しくサンプル化ができない」ということです。

・エイリアシングノイズを防止する
 エイリアシングノイズは発生してしまったが最後どうしようもなくなります。上述した通り、区別つかないからです。なので、CDで言えば、DA変換で22.05kHz未満の音声を再現するためには、サンプリングする前に22.05kHz以上の周波数成分を完全にカットする必要があります。
 しかし、実際にはどんな優秀なローパスフィルタでも「以上」と「未満」を一致させることはできません。以上をもっと上げるか未満を下げるかする必要があります。定理では「以上」の周波数はナイキスト周波数と決まっていますから、「未満」の方、通過帯域周波数を下げるしかありません。
 そこで、人間が聴くことができるのは約20kHzまでと言われることから、CDでは「20kHz以下を通過させ22.05kHz以上をカットする」ことになったと理解しました。

 可聴域を考慮して通過とカットの間を空けたところが、サンプル化する際の「定理の応用」ポイントと言えるでしょう。

 ところで、「20kHz以下通過&22.05kHz以上カット」という特性が完全に実現できていないとどうなるでしょう?

・20kHz以下にカット周波数がひっかかる場合は、かかった帯域のゲインダウンとなります。

・22.05kHz以上の周波数成分が完全にカットしきれない場合は、AD変換時点でデータに内包されるエイリアシングノイズになります。

・エイリアシングノイズを可視化する
 例えば、foobar2000の記事で用いた2496サンプル音源をAD対象のアナログ音源、それを2448でダウンサンプリングすることを2448でデジタルサンプリング、とみたてることで可視化を試みました。

 ≪WAVEフォーマット変換プラス1.02≫というフリーソフトで“単純間引き”した2448と、SoX(もちろんAliasing許可しない)でダウンサンプリングしたファイルを反転mixしました。前者は“エイリアシングノイズまみれ”、後者はカットされているハズですので、ノイズが抽出されるハズです。

Souvenir2448WCPmix.png

 確かに無視できないノイズと言えそうです。

 これが「エイリアシングノイズ」の正体なのでしょうか。
 試しに元音源の24kHz以上のスペクトルを画像として左右反転して(折り返して)みます。

Souvenir2496半分反転

 比べてみると、確かにナイキスト周波数(24kHz)で“折り返し”てるように見えます。24kHz以上を除去せずAD変換した場合、理論的にはこの折り返しが無限に続くんですよね。


■元信号に戻す

・「完全に再現される」とはどういうことか
 定理は階段状の波形に再現してOKとしているワケではありません。
 そのことを図で説明します。

(1)下図のような★サンプルがあったとします。
サイン波再現イメージ
#矩形波は半周期ズラしてイメージしてもいいと思います。

 アナログ化するとサイン波になるワケですが、もっと複雑な波形はあり得ずサイン波一択になる理由は以下の通りです。

・三角波や矩形波は上述の通りあり得ない
・サンプリング定理より、★サンプルは「22.05kHz以下の周波数成分しか持たない22.05kHz周期の波形」を示す
・サイン波以外(純音以外)の22.05kHz周期の波形は、22.05kHzより高い周波数成分を含む
・よって、このサンプルが表現しているのは「22.05kHzのサイン波」しかあり得ない

(2)22.05kHzという44.1kHzサンプリングにおける“サイン波の最小単位(最高周波数)”を再現できるということは、それ以下の周波数のサイン波も再現可能ということです。

(3)フーリエさん曰く、すべての波形はサイン波の重ね合わせで表現できます。よって、22.05kHz以下の波形はすべて表現できることになります。

 「取り扱う信号が周波数 fc より高い周波数成分を持たないとき」という条件があるからこそ、元信号が再現ができるワケですね。

・以下か未満か
 ただし、上記は解りやすさを優先して説明しています。実際のCD再生のリクツではありません。例えば、ちょっと考えると図の★が再現すべきサイン波のピークとは限らないことが解ると思います。ですので、正確にはこの波形の周波数は「22.05kHzに限りなく近い22.05kHz未満」です。
 本稿では、説明の流れ上、「以下」「未満」などど厳密に使い分けていないところがあります。

・サンプリング定理の再現プロセスとは
 しかし、サンプリング定理では一体どんな方法で上述した再現を行っているのでしょうか?
 ここに、サンプリング定理などの勉強で非常にタメになった資料があります。
 東京電機大の「ディジタル信号処理の基礎」です(大変感謝しています。ありがとうございます)。
 今回も当該資料を読み込んだのですが、表題に関連する記述を引用します。

・波形の復元 (補間) は、パルス列波形と sinc関数との たたみ込み
出典:http://www.asp.c.dendai.ac.jp/ASP/DSPseminar14.pdf P.10

 詳しくは当資料のP.10近辺を熟読いただきたいと思いますが、私なりに噛み砕き、簡単に説明してみます。

・個々のサンプルは「インパルス」と呼ばれます。
・インパルスを何等かの関数に応答させると「インパルス応答」になります。DAC紹介記事(*)などで見たこともあるでしょう。
・すべてのサンプルのインパルス応答を足し合わせると元信号(波形)になります。

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

 なお、この再現プロセスを見ると、巷でインパルス応答のエコーが問題視されるのは疑問になってきます。だってエコーは元信号の血肉だからです。
 特にプリエコーが悪玉にされることが多いと思いますが、プリとポストの違いは応答させる関数の違いにすぎないハズですから、ポストエコーだけが血肉なワケはなく、プリエコーだって血肉でしょう。


■元信号復元の現実問題

 次に、

・DA変換時には「22.05kHz以上の周波数成分をカット」することで元信号を再現

している理由について考えます。

・0次ホールド
 ところで、現実世界のDACはどんなに高性能にしても“インパルス”を発生させることはできません(念のためですが、インパルス応答波形はインパルスではなく、上述の通りインパルスを応答させた結果です)。そのため、実際には次のようにしている(せざるを得ない)ようです。

理想的なD-Aコンバータの出力は、図2(a)のように、時間領域では電圧インパルス列となる。これを周波数領域で見ると、理想的なD-Aコンバータ出力が得られていることになる(図2(b))。

 ~中略~

 しかし、実際のD-Aコンバータの出力は図2(c)のような階段状の信号である。すなわち、ある出力電圧が更新レート(1/fS)の間だけ保持され、次の更新レートの開始時に次の出力電圧に切り替わる仕組みになっている。このような保持処理のことを「0次ホールド」と呼ぶ。

出典:http://ednjapan.com/edn/articles/0607/01/news010.html
筆者:Ken Yang(米Maxim Integrated Products社),EDN

 実際にはいろいろな技術・実情があると思いますが、本稿では上記引用の通り、実際の対応は「0次ホールド」であるとします(記事の筆者はMaxim社の方なので間違いないでしょう)。

・イメージングノイズ
 しかし、上記引用に言う「階段状の信号」には、次のようなナイキスト周波数以上の周波数成分が含まれます。
 ≪WaveGene 1.50≫で生成した2.205kHz/-3dBサイン波を単純間足しで8倍したものです。44.1kHzです。

sin2205x8zoh.png

 2.205kHz以外にも成分があります。これが「イメージングノイズ」です。キレイなサイン波ではなくサンプル間を無理やり(?)繋いだことで発生したものと言えます。「サンプリング周波数×N±シグナル周波数」に出現します。

 イメージングノイズというのは聞きなれない名称かも知れません。サンプル化時と似たようなハナシですが発生する場面が違うので、エイリアシングノイズとは区別したいです。そこで、AD変換・DA変換のプロたる「ANALOG DEVICES社」の以下資料に従うことにしたものです。

DACの出力にもフィルタが必要ですが、これは「アンチイメージング」フィルタと呼ばれます。これは、ADCの前段にあるアンチエイリアシング・フィルタと基本的に同じ目的で使われます。
出典:https://www.analog.com/media/jp/training-seminars/design-handbooks/ADI_Data_Conversion_Poster_F.pdf

 ところで、サンプリング定理は「「取り扱う信号が周波数 fc より高い周波数成分を持たないとき」でないと成立しません。つまり、上記では22.05kHz以上の周波数成分は「もともとないハズ」ですから、ノイズと言えます。ですので、ローパスフィルタでカットする必要があります。そうすると、結果的に、波形として見ると滑らかになっているハズです。
 これで0次ホールド信号から元信号が再現できることになります。

 これが、元信号再現のために「DA変換時には「22.05kHz以上の周波数成分をカットする」理由です。

 また、「とりあえず0次ホールドで出力してフィルタをかける」という方法は、「定理の応用」としての元信号再現手法と言えるでしょう。

・イメージングノイズをカットする
 しかし、このフィルタには、20kHz以下を通して22.05kHz以上をカットするという特性を持たせなければなりません。アナログフィルタでこれを高音質に実現しようとすると高価になってしまいます。
 以下引用は記事の中でCD黎明期の事情を説明したくだりです。

これはスタジオで使われているフィルターと同じくらい難しいことがお分かりいただけるでしょう。さらに、ここでもまたコストおよび商業的な理由によって妥協を強いられます。CD再生システムで、必要とされるこのような特性を持つアナログ フィルターを使用しているものはほとんどありません。
出典:https://www.resonessencelabs.jp/resonessence-labs/technologies/digital-filter/

 そこで、民生用レベルでコストと特性を両立させるために開発されたのが「オーバーサンプリングデジタルフィルタ」です。サンプル間をサンプリング定理に基づいて演算して補間し、サンプル数を逓倍する処理です。
 何が行われているかの理解のため、上記2.205kHzのデータを2倍するとどうなるかを次に示します。サンプルレートは88.2kHzになります。

sin2205x2soxx4zoh.png

 サンプル間に1個サンプルが補間されたことで、22.05kHz~44.1kHz(新たなナイキスト周波数)までは成分がない帯域として拡張されたことになります。
 イメージングノイズはナイキスト周波数までの成分が光学反転したようにパタパタと折り返されていきますから(サンプリング周波数×N±シグナル周波数に出現するので)、可聴域の直近で言うと、44.1+22.05=66.15kHzまではノイズがない状態になります。
 実際、ふたつの図を比較すると40kHz付近のイメージングノイズが消えていることが解ります。
 ですので、タッグを組ませるべきアナログローパスフィルタは、22.05kHz以上ではなく66.15kHz以上をカットすればよい特性にすることができます(当然、通過は20kHz以下のままです)。
 つまり、デジタルフィルタを併用することで、アナログフィルタの特性をかなりゆるくできるのです。

 これが、イマドキのDACがイメージングノイズカットのためにやっていることの基本(あくまでも基本)であり、元信号を再現するための「定理の応用」を「実際にどう実現しているか」となります。


 以上で、PCMデジタルオーディオの基本的知識が得られた気がします。
 これからはこの知見を基にいろいろ楽しんでいこうと思います。


■余談

・夢みるサンプリング定理
 DACには真のインパルスは発生させられない以外に、「無限を扱えない」という課題もあります。

やる夫
あー,各サンプルの点を頂点とするような sinc 関数を並べて,全部足し合わせるって感じかお.うーん.結構ややこしい仕組みでサンプル間を結ぶことになるんだお.
やらない夫
ややこしいのもそうだが,sinc 関数が t→±∞ まで無限に続くものだというのが実用上は大きな困難だ.元の信号を復元するときに,あるサンプルの値の影響は無限時間先までえんえんと及ぼしてやる必要があるわけだ.だから実際には「理想的」じゃない何らかの低域通過フィルタで代用してやる必要がある.

出典:http://www.ic.is.tohoku.ac.jp/~swk/lecture/yaruodsp/sampling.html

 もともと音楽データのサンプル数は有限ですから、応答は無限に発生もしませんし影響を及ぼしようもないということですね。
 ここで記されている「「理想的」じゃない何らかの低域通過フィルタ」が、上述した0次ホールドに対するフィルタのことだと思います。
 やる夫さん、やらない夫さん、ありがとうございます。

・デジタルフィルタ部の機能
 実際のDACのデジタルフィルタブロックにはアッテネータやデエンファシス処理など含むことは、本稿では割愛させていただきました。
 また、イマドキはADもDAもΔΣ方式で行われていると思いますが、原則として本稿の内容とは直接関係しないと思っています。本稿は「サンプリング定理の現実的応用=マルチビット(PCM)」について記していますが、ΔΣ型ADC/DACの仕組みは「その現実的実現方法」ですので。

・CDのサンプリング周波数が44.1kHzなワケ
 なんで22.05kHz(サンプリング周波数44.1kHz)なんて中途半端な数字なのかと言うと、これはVTR技術を流用したPCMレコーダから来ているようです(*)。
 ビフォアハイビジョン時代のNTSC水平走査は525ライン/フレームです。このうち1/15は垂直同期ラインなので有効な信号は記録できません。よって有効ライン数は490ライン/フレームとなります。白黒TVでは30フレーム/秒ですから、1秒間では490x30=14700有効ライン/秒となります。
 PCMレコーダは1ラインに3サンプル記録する仕様になっていたようです。よって14700x3=44100サンプル/秒、44.1kHzとなります。2サンプルでは14.7kHzがナイキストになってしまいますので“性能不足”、4サンプルでは29.4kHzになりますが“過剰性能”ということでしょうね(記録密度の関係などももちろんあるでしょう)。
 ちなみに14bitでも20bitでもなく16bitなのはデジタルのデータ長としてベスト(8の倍数)だからって理由もありそうですね。

*:http://app-review.jp/news/175873


■参考資料

・東京電機大の「ディジタル信号処理の基礎」
 http://www.asp.c.dendai.ac.jp/にて公開されている
 サンプリング定理、エイリアシングノイズ、sinc関数による復元、理想DACなどにつき、大学の教材としてはかなり平易に書かれている
 P.10:波形の復元 (補間) は、パルス列波形と sinc関数との たたみ込み(= 理想ローパスフィルタ に通す )
 P.11:最近の変換器 (オーバーサンプリング、∑Δ)では特性が改善された。(理想ローパスフィルタをディジタルフィルタとして近似実現したため)
などが明記されている
 末尾の数字は年度を表していて、例えば08,12,13もある
http://www.asp.c.dendai.ac.jp/ASP/DSPseminar14.pdf

・同じく東京電機大の「信号理論(第5回)」
 フーリエ級数について正弦波を重ねて矩形波などを表現できることが図で解りやすく記されている
http://www.asp.c.dendai.ac.jp/courses/spectrum01.pdf

・富士通テン技報「音響信号とディジタル信号処理」
 P.4の図-2に「標本値に対する理想LPFのインパルス応答 他の標本値にではすべて0となっている」「各パルスに対するLPF出力を加え合わせることにより標本間の値が再現される」とある
 筆者は山崎芳男先生
https://www.denso-ten.com/jp/gihou/jp_pdf/08/8inJ.pdf

・Resonessence社の「エイリアシング(エイリアス)とは」
 CD黎明期の事情を交えてAD時のエイリアシング除去、DA時のイメージング除去を解りやすく書いている
 DA段階のフィルタを「リコンストラクションフィルタ」と呼んでいる
http://www.resonessencelabs.jp/resonessence-labs/technologies/digital-filter/

・EDN Japanの記事
 こちらにもDAC原理が記されており、同じく「リコンストラクションフィルタ」と呼んでいる
http://ednjapan.com/edn/articles/0607/01/news010.html

・アナログデバイセズ社「データ変換の基本ガイド」
 音声に限らないADC/DACの解説
 エイリアシングノイズが折り返されてずっと続いていく図が掲載されている
http://www.analog.com/static/imported-files/jp/overviews/ADI_Data_Conversion_Poster_F.pdf

・アナログデバイセズ社のΔΣADC/DACの原理解説
 ADCについてだが、P.8に「48kHzで115dB減衰させるフィルタを構成するには4096tap必要」とある。196MHz/tapの計算能力が必要であり、現在(2009年)は無理と言っている
http://www.analog.com/static/imported-files/jp/application_notes/AN-283_jp.pdf

・TI社のオーバーサンプリングデジタルフィルタ解説
 本稿に記している原理が解説されている(アナログポストフィルタの特性など)
http://www.tij.co.jp/jp/lit/an/jaja016/jaja016.pdf

・CDプレーヤからの「11.025kHzサイン波」と「5.5125kHz矩形波」の出力波形
http://www.tcgroup-japan.com/TCE/Tech/0dbf_D-Mastering_JPN.pdf


メインメニューへ

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

最新記事
ERIへようこそ

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

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

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

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

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

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

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

カテゴリ
検索フォーム
FC2カウンター