Tweet

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

最近,チャットでサンプリングレート変換の話題で盛り上がった. というわけで,この話題についてしばらく書いていこうと思う.

サンプリングレート変換とは

wav や mp3 ファイルのプロパティを見ると,「サンプリング周波数」という項目がある. これは,「音声波形の振幅値を1秒間あたりにいくつの点だけ保存しているか」という値である. CD の場合はサンプリング周波数は 44.1 kHz = 44100 Hz なので,1秒あたり 44100 点の振幅値をデータとして保存していることになる(片チャンネルだけの場合).

もちろん,1秒あたりの点の数が多ければ多いほど元の音声波形に近くなるので,いい音になる. が,点の数が増えるということはデータ量が増えるわけで「ファイルサイズが大きくなる」という欠点もある. また,音声を再生するには最終的にはサウンドカードなどのハードウェアを使うのだが,サウンドカードによっては「サンプリング周波数 ○ kHz の音声は再生できるが,× kHz の音声は再生できない」という制限がある. 昔の SoundBlaster Pro ではサンプリング周波数が 22.05 kHz までの音声しか再生できなかったんじゃなかったかな.確か.

というわけで

サンプリング周波数 X kHz の音声をサンプリング周波数 Y kHz に変換したい

というニーズはかなりある. PC 上では,サンプリング周波数が変換できるツールは山ほどあるし,Windows 標準添付のサウンドレコーダでも変換は可能である. なので,サンプリングレート変換が必要になったとしても困った人はいないだろう.

でも,それらのツールでは,中ではどういう処理を行っているのだろう? そこらへんの話をしていこうと思う.

必要な知識

大雑把に書くとこんな感じかな.

  • フーリエ変換
  • ディジタルフィルタ
  • プログラミング or 回路設計

が,それぞれ1つのトピックだけで何冊も本が書けるほどのものなので,マトモに説明する気は無い. その中でもサンプリングレート変換に必要なところだけつまみ食いで書いていこうと思う.

応用分野

実は,画像の拡大・縮小も同じ原理で行うことができる. 上記のフーリエ変換やディジタルフィルタをそれぞれ2次元に拡張するだけの話で,根本的な議論は同じである. 画像のほうでは nearest neighbor 法とか bilinear 法とかあるようだが,フーリエ解析を行うと,これらは案外いい加減な方法であることが分かるはずである.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-12 (火) 02:35:42 (4178d)