arm_fir_interpolate_q15関数 |
インターポレーション(オーバサンプリング)を行う |
関数のソース(CMSIS 2.0以上をダウンロード・インストールする必要あり) CMSIS_2_00\CMSIS\DSP_Lib\Source\Cortex-M4-M3\FilteringFunctions\arm_fir_interpolate_q15.c サンプルソース(DFFSKN40基板付属CD-ROMに収録) 2011/09/04追加 IARprojects\src\projects\arm_interp 引数と戻り値 説明(イメージ) 使用例(サンプルソースの一部)
2倍オーバサンプリングの結果、出力は100個のデータ列になる。 実験 上記のサンプルソースをDFFSKN40基板(デジタルフィルター社)にて実験した。Cortex-M4マイコンはPK40X256VMD100(Kinetis, フリースケール社)搭載。 @50個の入力データ列を2倍オーバサンプリングして100個の出力データ列を得る。 A入出力データをUSB経由でパソコンに送る。 BWindowsアプリケーションで波形観測。 KnInterp.exe(DFFSKN40基板付属CD-ROMに収録)を実行してbefore Over Samplingボタンを押すと入力データ列(inData)が描画される。 after Over Samplingボタンを押すと出力データ列(outData)が描画される。滑らかに2倍補間されている。 まめ知識 FIRフィルタでフィルタリングしているのでその分遅延する。28タップなので出力の最初の14サンプルはほぼゼロになる。 2倍オーバサンプリングの場合、FIRフィルタのタップ数は2の倍数にする必要あり。 2倍オーバサンプリングの場合、振幅が半分になるので出力を2倍にして表示している。 blockSizeとは、一度に処理する入力データの数であることに注意。 遅延器の長さは(numTaps/L)+blockSize-1必要。 |