arm_q31_to_q15関数
配列の各要素をfloatからQ15に型変換する

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

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

引数と戻り値


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

q31_t a[] = {0x12345678, 0x89ABCDEF, 0x00002468, 0xFFFF1357};
q15_t c[] = {0, 0, 0, 0};

 : 中略

arm_float_to_q15( a, c, 4 );

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

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

下の写真はQ31で0x12345678(正の大きな数)→Q15で0x1234


下の写真はQ31で0x89ABCDEF(負の大きな数)→Q15で0x89AB


下の写真はQ31で0x00002468(正の小さな数)→Q15で0x0000


下の写真はQ31で0xFFFF1357(負の小さな数)→Q15で0xFFFF
この場合-1になる(ゼロにはならない)。


まめ知識
単純に16ビット切り捨てられると考えて良い。

戻る

Top Page