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

引数と戻り値


説明(イメージ)


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

q15_t a[] = {10000, -12345, -30000, -32768};
q15_t b[] = {20000, 22222, -13579, -32768};
q63_t c;

 : 中略

arm_dot_prod_q15( a, b, 4, &c );

この関数を実行するとcの値に結果が入っている。

実験
上記のサンプルソースを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ビット右シフトしてスケーリングすることが多い。

戻る

Top Page