以前(3年前)書いた後にある程度試していた内容ではあるのですが、
前回の内容から止まっているのも中途半端な感じがあったので続きという形で書いてみます。
前回は音声データのサンプリングレートを変換するためにフーリエ変換して逆変換する方法を取りました。
これでそれらしい結果は出たものの、かける手間と云うか計算量が多くない?という印象は残ります。
という訣で、求めたい位置の前後のサンプル数個から目的の数値を推測する補間処理を使ってサンプリングレートを変換することを試してみました。
試してみた補間方法は以下の4つ。
- ラグランジュ補間(2次)
- スプライン補間(Catmull-Rom)
- スプライン補間(Centripetal Catmull-Rom)
- ランチョス補間(Lanczos-3)
正弦波と矩形波を組み合わせた512サンプルの波形(下図グレーの線)を16サンプル単位で間引き(下図黒丸)、間引いた点の間16サンプルを補間する形で比較を行ってみました。