arm_max_q15関数
arm_min_q15関数
arm_mean_q15関数
配列の各要素の最大値、最小値、平均値を得る

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


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

引数と戻り値






説明(イメージ)


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

q15_t a[] = {0x159D, 0x6666, 0xABCD, 0x0003};
q15_t maxval, minval, meanval;
int maxindex, minindex;

 : 中略

arm_max_q15( a, 4, &maxval, &maxindex );
arm_min_q15( a, 4, &minval, &minindex );
arm_mean_q15( a, 4, &meanval );

これら関数を実行するとmaxval, minval, meanvalの中に値が、
maxindex, minindexの中にインデックスが入っている。

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

下の写真は最大値が0x6666, Index = 1


下の写真は最小値が0xABCD, Index = 2
負の数であることに注意。


下の写真は平均値が0x09F4
(0x159D + 0x6666 + 0xABCD + 0x0003) / 4
= (5533 + 26214 - 21555 + 3) / 4
= 10195 / 4 = 2548 = 0x9F4


戻る

Top Page