Tweet

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

今回は,以前チラッと触れた nearest neighbor 法と bilinear 法を評価してみます.

nearest neighbor 法

nearest neighbor 法とはアップコンバート時に「最近傍の点で補間」する方法です.

例えばこの方法では

( 1,    2,    3,    … )

というサンプル列を 2 倍のサンプリングレートにアップコンバートする場合,単純に

( 1, 1, 2, 2, 3, 3, … )

と,前のサンプル値を繰り返して挿入することになります.

これを,今まで説明してきた「0 による水増しと高周波数除去フィルタ」のモデルに当てはめてみます. 高周波数除去をトランスバーサルフィルタで行うとすると,そのタップ係数が

1, 1, 0, 0, 0, 0, …

である場合,nearest neighbor 法と同じ動作になります. つまり,このトランスバーサルフィルタの特性を見れば,nearest neighbor 法の特性が分かることになります.

bilinear 法

bilinear 法とは,アップコンバート時に「近傍のサンプル点との重み付け平均で補間する」方法です.

例えばこの方法で

( 1,                  2,                  3, …)

というサンプル列を 4 倍のサンプリングレートにアップコンバートする場合,

( 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 2.75, 3, …)

2 倍のサンプリングレートでは

( 1,       1.5,       2,       2.5,       3, …)

となります.

nearest neighbor 法と同様に「0 による水増し+高周波数除去フィルタ」のモデルに当てはめると,トランスバーサルフィルタのタップ係数は

0.5, 1, 0,5, 0, 0, …

となります.

解析

フィルタの周波数特性を求め,グラフにしてみました. サンプリング周波数 8000 Hz -> 16000 Hz のアップコンバートの場合です.

ip.png

縦軸は今回はリニアではなく,dB 表示にしてみました. また鏡像部分は表示しないようにしました. Ideal とあるのは理想特性です.

どうでしょう?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-08-22 (金) 23:29:16 (4175d)