Tweet

サンプリングレート変換 その2

まずは,「サンプリング」するということについて考えてみましょう.

フーリエ変換

ここらへんの議論の元になっている理論です.

要するに,

  • 「時間と振幅」で表される波形を「周波数と振幅」という表現に変換
  • 「周波数と振幅」という表現から「時間と振幅」という表現に変換すると元の波形に戻る

というところをベースにした話です.

理工系の学生なら,名前とその効能ぐらいは知っているはず. 特に電気・電子系の場合はこれ無しでは話が始まりません. 「細かい議論はともかく,感覚的に理解したい」と言う向きには「フーリエの冒険」という本があるので,これを読むといいでしょう.

サンプリング

というわけで,サンプリングについて. 理屈は抜きにして図で見てみましょう.

cont.png

例えばこういう波形をサンプリングすると

sample.png

こうなります.

元の波形が連続した時間で連続した値を持っているのに対し,サンプリング後の波形は,飛び飛びの時刻以外での振幅は 0 となっています.

で,サンプリング後の波形だが,ヒゲの先頭をなだらかな線で結んでやれば元の波形を復元できそうに見えます. が,それにはある条件が必要です. その「ある条件」を満たさない例を見てみましょう.

エイリアジング

図で説明します.

7500.png

7500 Hz の正弦波を 8000 Hz でサンプリングしてみると…

500.png

まるで 500 Hz の正弦波のようになってしまいます.

サンプリングした後は,赤線の波形になってしまうので,元の波形が 7500 Hz なのか 500 Hz なのか区別が付かなくなってしまいます. この現象は「エイリアジング」または「折り返し歪み」と呼ばれています.

周波数軸で見ると

まず,元の波形をフーリエ変換してスペクトルを見ると,下図のようになるとします.

spectrum_cont.png

この場合,元波形をサンプリングした波形のスペクトルは下図のようになります. 図中で fs とあるのはサンプリング周波数です.

spectrum_sample.png

元波形のスペクトルと同じスペクトルが fs, 2fs, 3fs …の上下に対称に現れます.

下図のように高い周波数が含まれている波形の場合は

spectrum_cont_alias.png

サンプリングすると,fs の下側に生じるスペクトルが元のスペクトルと重なってしまいます.

spectrum_sample_alias.png

で,fs の下側に生じるスペクトルは元波形のスペクトルと対称なので,1/2 fs を中心に元スペクトルが折り返して現れているようにも見ることができます. 「折り返し歪み」と呼ばれるのはこのためです.

先ほどのエイリアジングも,このために生じている現象です.

エイリアジングを防ぐためには

1/2 fs 以上の周波数成分がエイリアジングの原因であることがわかりました. ならば,エイリアジングを防ぐ方法もわかりますね.

元波形の 1/2 fs 以上の周波数成分を除去してからサンプリングすれば良い

のです. 元波形のほうを中心に考えると

元波形に含まれる最高の周波数の 2 倍以上の周波数でサンプリングすれば良い

とも言えます.

いずれにしても 1/2 fs という,「サンプリング周波数の半分」の周波数が大事ですね. というわけで,これには「ナイキスト周波数」という名前が付いています.


添付ファイル: filespectrum_sample_alias.png 306件 [詳細] filespectrum_cont_alias.png 317件 [詳細] filespectrum_sample.png 308件 [詳細] filespectrum_cont.png 292件 [詳細] file500.png 303件 [詳細] file7500.png 299件 [詳細] filesample.png 336件 [詳細] filecont.png 303件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-14 (木) 07:41:50 (4182d)