Tweet


* サンプリングレート変換 その6 [#z733982f]

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

** nearest neighbor 法 [#j9eab8a7]

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

例えばこの方法では
 ( 1,    2,    3,    … )
というサンプル列を 2 倍のサンプリングレートにアップコンバートする場合,単純に
 ( 1, 1, 2, 2, 3, 3, … )
と,前のサンプル値を繰り替えして挿入することになります.
と,前のサンプル値を繰り返して挿入することになります.

これを,今まで説明してきた「0 による水増しと高周波数除去フィルタ」のモデルに当てはめてみます.
高周波数除去をトランスバーサルフィルタで行うとすると,そのタップ係数が
 1, 1, 0, 0, 0, 0, …
である場合,nearest neighbor 法と同じ動作になります.
つまり,このトランスバーサルフィルタの特性を見れば,nearest neighbor 法の特性が分かることになります.

** bilinear 法 [#g4488ad4]

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, …
となります.

** 解析 [#m0de9f47]

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

#ref(ip.png,center)

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

どうでしょう?

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS