arm_cos_q15関数 |
cos(余弦)を求める |
関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり) CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\FastMathFunctions\arm_cos_q15.c サンプルソース(DFFSKN40基板付属CD-ROMに収録) IARprojects\src\projects\arm_cos 引数と戻り値 説明(イメージ) 使用例(サンプルソースの一部)
実験 上記のサンプルソースをDFFSKN40基板(デジタルフィルター社)にて実験した。Cortex-M4マイコンはPK40X256VMD100(Kinetis, フリースケール社)搭載。演算結果をLCDに16進数で表示している。 下の写真はn = 0のとき。 x[0] = 0x 1000なので、角度は0x 1000 / 0x 8000 * 2 pi = 0.25000 pi [rad] 演算結果cosVal[0] = 0x 5A81、すなわち0x 5A81 / 0x 8000 = 0.70706 下の写真はn = 1のとき。 x[1] = 0x 1010なので、角度は0x 1000 / 0x 8000 * 2 pi = 0.25097 pi [rad] 演算結果cosVal[1] = 0x 5A3A、すなわち0x 5A81 / 0x 8000 = 0.70489 下の写真はn = 2のとき。 x[2] = 0x 3000なので、角度は0x 3000 / 0x 8000 * 2 pi = 0.75000 pi [rad] 演算結果cosVal[2] = 0x A57E、10進で-23,170、すなわち-23,170 / 32,768 = -0.70709 下の写真はn = 3のとき。 x[3] = 0x 3005なので、角度は0x 3005 / 0x 8000 * 2 pi = 0.750305 pi [rad] 演算結果cosVal[3] = 0x A569、10進で-23,191、すなわち-23,191 / 32,768 = -0.70773 まめ知識 ルックアップテーブル+多項式補間方式。テーブルは0〜2πの区間で259個のサンプル値を持つ。補間はCubic interpolationで近傍の4サンプルを使った3次式で近似される。 |