関数のソース(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の間にダミーのゼロが入る。
|