- 追加された行はこの色です。
- 削除された行はこの色です。
* サンプリングレート変換 その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 とあるのは理想特性です.
どうでしょう?