マルチレート フィルター バンクの実装
関数 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
などがあります。