arm_dot_prod_q15関数 |
2つの配列の各要素を積和する |
関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり) CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\BasicMathFunctions\arm_dot_prod_q15.c サンプルソース(DFFSKN40基板付属CD-ROMに収録) IARprojects\src\projects\arm_dot_prod 引数と戻り値 説明(イメージ) 使用例(サンプルソースの一部)
実験 上記のサンプルソースをDFFSKN40基板(デジタルフィルター社)にて実験した。Cortex-M4マイコンはPK40X256VMD100(Kinetis, フリースケール社)搭載。演算結果をLCDに16進数で表示している。 下の写真の下段が積和結果。 a[0] = 10,000, b[0] = 20,000、a[1] = -12,345, b[1] = 22,222、a[2] = -30,000, b[2] = -13,579、a[3] = -32,768, b[3] = -32,768なので、 10進数で: 10,000 * 20,000 + (-12,345) * 22,222 + (-30,000) * (-13,579) + (-32,768) * (-32,768) = 1,406,781,234 = c 16進数で: 0x 53D9 C732 まめ知識 入力がQ15、出力がQ30フォーマットになるため、この関数をデジタルフィルタの演算に使用する際は出力を15ビット右シフトしてスケーリングすることが多い。 |