マルチレート フィルター バンクの実装
関数 upfirdn は、整数比 P/Q によって信号のサンプリング レートを変更します。この関数は、次の処理を行う 3 つの逐次実行型システムの結果を計算します。
整数係数
pによるアップサンプリング (0 の挿入)FIR フィルター
hによるフィルター処理整数係数
qによるダウンサンプリング
たとえば、信号のサンプル レートを 44.1 kHz から 48 kHz に変更するには、まず、最小の整数変換比 p/q を求めます。次のように設定します。
d = gcd(48000,44100); p = 48000/d; q = 44100/d;
この例では、p = 160、 q = 147 になります。次に以下のように入力して、サンプル レートの変換を実行します。
y = upfirdn(x,h,p,q)
このカスケード式の操作は、ポリフェーズ フィルター法を使用することで効率的に行われ、マルチレート フィルターの中心的概念をなしています。リサンプリングの結果の質は、FIR フィルター h の質に依存することに注意してください。
フィルター バンクは、upfirdn を使用し、フィルター h が各列に 1 つの FIR フィルターをもつ行列であることを許可することで実装できます。信号ベクトルが独立に各 FIR フィルターに渡され、行列状の出力信号が返されます。
マルチレート フィルター処理 (固定フィルター使用) を行う他の関数には、resample、interp、decimate などがあります。