目次
サンプリング周波数を変換する理由
サンプリング周波数が異なるシステム間でデジタルデータを受け渡しするためには、サンプリング周波数を変換する必要があります。
例えばPCMオーディオの場合、CDやMDのサンプリング周波数は44.1kHzですが、DVD-Audioは48kHz/ 96kHz/ 192kHz、YouTubeなら48kHzです。そのため、例えばCDの音声信号をDVDやYouTubeで使用するために、送信側か受信側のどちらかでサンプリング周波数を変換することになります。
参考までに、いろいろなシステムのサンプリング周波数の一覧がWikipediaにあります。
AD変換時のオーバーサンプリングなどでもサンプリング周波数変換が使用されます。
サンプリング周波数変換の概要
デジタル信号は、時間方向・振幅方向それぞれに離散化された信号です。時間方向の離散化を標本化、振幅方向の離散化を量子化といいます。
サンプリング周波数変換は、時間方向に離散化されたデータの間隔を変換する処理です。
- サンプリング周波数を下げるときは、1個のサンプルを取り出すごとにそれに続くサンプルを捨て去ります。
- サンプリング周波数を上げるときは、1個のサンプルを取り出すごとに新たなデータを追加(挿入)します。
処理 | 処理名 | 処理方法 | LPFカットオフ |
---|---|---|---|
サンプリング周波数を下げる | 間引き | 1つのサンプルを取り出した後、続くサンプルを捨てる | 変換後のナイキスト周波数 |
サンプリング周波数を上げる | 補間 | 1つのサンプルを取り出した後、0を挿入する | 変換前のナイキスト周波数 |
変換比は正の整数のみ
周波数変換の比は必ず正の整数です。サンプリング周波数を下げる場合は「整数分の1」、上げる場合は「整数倍」になります。
「整数分の1」「整数倍」ではない周波数へ変換したい場合は、間引きと補間を組み合わせて目的の周波数に変換します。
間引きと補間
- サンプリング周波数下げる処理・・・間引きまたはデシメーション
- サンプリング周波数を上げる処理・・・補間またはインタポレーション
といいます。また、周波数の変換比を次のように呼びます。
- 間引き・・・間引き係数またはデシメーション係数 (Decimation Factor)
- 補間・・・補間係数またはインタポレーション係数 (Interpolation Factor)
間引き (デシメーション)
変換前のサンプリング周波数f1を、低速なf2に変換する場合を考えます。
下の図は、標本化された正弦波を間引き係数4で間引いてサンプリング周波数を落としたものです。(フィルタでカットされる領域に信号がないので、ローパスフィルタ前後で波形は変わっていませんが。)
ダウンサンプリング
1個のサンプルに対して、それに続く(f1/f2 -1)個を捨てます。この処理をダウンサンプリング(Down sampling)といいます。
アンチエイリアシング
データを捨て去るだけでは、折り返し雑音により波形が歪んでしまいます。そのため、データを捨てる前にローパスフィルタをかける必要があります。これは標本化の際にアンチエイリアシングフィルタをかけるのと同じ考え方です。
このローパスフィルタを間引きフィルタまたはデシメーションフィルタといいます。
補間 (インタポレーション)
次に補間です。変換前のサンプリング周波数f1を、高速なf2に変換する場合を考えます。
下の図は、標本化された正弦波を補間係数4で補間し、サンプリング周波数を上げた波形です。赤い点線は0を挿入(アップサンプリング)した直後の波形で、ギザギザしています。
ローパスフィルタをかけると高周波成分(ギザギザ)が取り除かれて、きれいな正弦波になります。(FIRフィルタの遅延で位相がずれている。)
アップサンプリング
各サンプルの後に、(f2/f1 -1)個のサンプルを挿入します。追加するサンプルの値は0です。この処理をアップサンプリング(Up sampling)といいます。
0を追加しただけでは波形はギザギザしています。(折り返し雑音を拾っている状態。)
アンチエイリアシング
折り返し雑音を除去するために(アンチエイリアシングとして)、0を挿入した後にローパスフィルタをかけます。カットオフ周波数は変換前のナイキスト周波数(f1/2)とします。
このローパスフィルタを補間フィルタまたはインタポレーションフィルタといいます。
フィルタの周波数特性
下の図は、前述の補間で使用したローパスフィルタの周波数特性です。
サンプリング周波数を240Hzから960Hzに上げる周波数変換なので、ローパスフィルタのカットオフ周波数は、変換前のナイキスト周波数である120Hzとしています。
- サンプリング周波数: 240Hz
- 補間係数: 4
- ローパスフィルタ: FIRフィルタ (35タップ, カットオフ周波数: 120Hz)
ローバスフィルタのカットオフ周波数は、間引きでも補間でも、低速側のナイキスト周波数です。
一般的なサンプリング周波数周波数
間引きや補間だけでは実現できない周波数変換を行うときは、間引きと補間を組み合わせます。
ここでは、変換前のサンプリング周波数がf1、変換後のサンプリング周波数がf2の場合を考えます。
周波数変換
f1からf2へ直接変換できないので、別の周波数f3に補間してから間引きを行います。一時的に使用する周波数f3は、f1とf2の最小公倍数です。
f1→(補間)→f3→(間引き)→f2 の順にサンプリング周波数を変化させていきます。補間と間引きについては、前述のとおりです。
アンチエイリアシング
このように補間と間引きを1回ずつ行うため、ローパスフィルタを2回かけるように思われますが実際には1回で大丈夫です。
どちらもローパスフィルタなので、低い方のローパスフィルタを1回かければ折り返しひずみの原因となる信号を除去できます。
つまり、カットオフ周波数がf1とf2のうち低い方の周波数のナイキスト周波数(f1/2とf2/2のうち小さい方)のローパスフィルタを1回かければ、問題なく折り返し雑音を取り除くことができます。
図のfs1, fs2はそれぞれ変換前後のサンプリング周波数、fn1, fn2はそれぞれ変換前後のナイキスト周波数です。
fn2よりも高い周波数成分を1つのローパスフィルタで取り除けば折り返し雑音は発生しません。
コメントを残す