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

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

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

引数と戻り値


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

float a[] = {0.1, -0.1, 0.9, -0.9};
q15_t c[] = {0, 0, 0, 0};

 : 中略

arm_float_to_q15( a, c, 4 );

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

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

下の写真はfloatで0.1のとき→Q15で0x0CCC


下の写真はfloatで-0.1のとき→Q15で0xF334
負の数はMSBが1になる。


下の写真はfloatで0.9のとき→Q15で0x7333


下の写真はfloatで-0.9のとき→Q15で0x8CCD
負の数はMSBが1になる。


まめ知識
範囲[-1.0 to +1.0)を超えると飽和(0x8000, 0x7FFF)する。
ARM_MATH_ROUNDINGを定義すると四捨五入、そうでなければ切り捨てる。

戻る

Top Page