arm_sub_q15関数
2つの配列の各要素を減算する

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

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

引数と戻り値


説明(イメージ)


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

q15_t a[] = {10000, 10000, -10000, 30000};
q15_t b[] = {20000, -20000, -13579, -10000};
q15_t c[] = {0, 0, 0, 0};

 : 中略

arm_sub_q15( a, b, c, 4 );

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

実験
上記のサンプルソースをDFFSKN40基板(デジタルフィルター社)にて実験した。Cortex-M4マイコンはPK40X256VMD100(Kinetis, フリースケール社)搭載。演算結果をLCDに16進数で表示している。

下の写真はn = 0のとき。
a[0] = 10,000, b[0] = 20,000なので、
10進数で: 10,000 - 20,000 = -10,000 = c[0]
16進数で: 0x D8F0


下の写真はn = 1のとき。
a[1] = 10,000, b[1] = -20,000なので、
10進数で: 10,000 - (-20,000) = 30,000 = c[1]
16進数で: 0x 7530


下の写真はn = 2のとき。
a[2] = -10,000, b[2] = -13,579なので、
10進数で: -10,000 - (-13,579) = 3,579 = c[2]
16進数で: 0x 0DFB


下の写真はn = 3のとき。
a[3] = 30,000, b[3] = -10,000なので、
10進数で: 30,000 - (-10,000) = 40,000 ←Q15の範囲を超えている。
この場合、正の最大値で飽和させる。32,767 = c[3]
16進数で: 0x 7FFF


戻る

Top Page