arm_biquad_cascade_df1_init_q15関数
IIR(Infinite Impulse Response)フィルタのインスタンスを初期化する

関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり)
CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\FilteringFunctions\arm_biquad_cascade_df1_init_q15.c

サンプルソース(DFFSKN40基板付属CD-ROMに収録)
IARprojects\src\projects\arm_biquad_df1

引数と戻り値


説明(注意点)
pCoeff(係数の配列), pState(遅延素子の配列)のアドレスがインスタンスに渡される。
pStateの各要素が0に初期化される。
pCoeffの要素数は6*numStage。
pStateの要素数は4*numTaps。
通常は係数の値は1/2倍されたのち量子化されpCoeffに格納される。ゆえにpostShiftを1(左シフトすなわち2倍)として相殺する。

使用例(サンプルソースの一部)

#define biquadN 3

// The order of coefficients is
// {b10, 0, b11, b12, a11, a12, b20, 0, b21, b22, a21, a22, ...}
q15_t iirCoeff [] = {
261, 0, 523, 261, 29662, -14326,
236, 0, 472, 236, 26752, -11313,
223, 0, 446, 223, 25318, -9828 };

q15_t iirStateL[biquadN*4];
q15_t iirStateR[biquadN*4];
arm_biquad_casd_df1_inst_q15 iirInstanceL;
arm_biquad_casd_df1_inst_q15 iirInstanceR;

 : 中略

arm_biquad_cascade_df1_init_q15(&iirInstanceL, biquadN, iirCoeff, iirStateL, 1);
arm_biquad_cascade_df1_init_q15(&iirInstanceR, biquadN, iirCoeff, iirStateR, 1);

ステレオ2chの場合はL/R別インスタンスで宣言し別々に初期化する。
係数の並び方に注意。bm0とbm1の間にダミーのゼロが入る。

戻る

Top Page