eric2013 发表于 2015-2-13 21:41:23

ARM官方的FIR滤波器,IIR滤波器函数边计算边添加数据的方法,计算大量数据时有效降

具体实现参考DSP教程的: 第37章 FIR滤波器实现配套例子即可,这个例子在教程中有简单讲解。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=3886
************************************************************************************************
比如我们要求解320点数据的FIR滤波,可以通过下面这种方式分多次进行,从而节省RAM空间。

#define TEST_LENGTH_SAMPLES320    /* 采样点数 */
#define BLOCK_SIZE         32                /* 这里是调用一次arm_fir_f32处理的采样点个数 */

uint32_t numBlocks = TEST_LENGTH_SAMPLES/BLOCK_SIZE;         /* 需要调用arm_fir_f32的次数 */

实际调用函数的时候采用下面的方式即可:

/* 实现FIR滤波,共调用numBlocks次*/
for(i=0; i < numBlocks; i++)
{      arm_fir_f32(&S, inputF32 + (i * blockSize), outputF32 + (i * blockSize), blockSize);
}

详细的实现可以看第37章配套的例子。

randolph 发表于 2016-5-26 10:30:52

请问BLOCK_SIZE的大小会影响最终的滤波效果吗?

eric2013 发表于 2016-5-26 10:34:28

回 randolph 的帖子

randolph:请问BLOCK_SIZE的大小会影响最终的滤波效果吗? (2016-05-26 10:30) images/back.gif

没有,你可以测试下。
页: [1]
查看完整版本: ARM官方的FIR滤波器,IIR滤波器函数边计算边添加数据的方法,计算大量数据时有效降