FIR数字滤波的理解

2019-07-21 01:20发布

前段时间搞了下stm32f103的FIR 也上论坛求助过,发现做过这方面的人不多,问这方面的人还是不少

下面把我对

stm32f103 的DSP库FIR滤波算法写下我的理解

void  fir_16by16_stm32(void *a,void *x,COEFS *c,u32 N)

第一个参数为输入数组,
第二个参数为输出数组,
第三个参数为系数结构体,
第四个参数为输出数组中数的个数。

注意:
1.系数个数必须是 4 的倍数,输出数组中元素的个数必须为 4 的倍数。
2.COEFS是结构体:
typedef struct {

  uint16_t *h;

  uint32_t nh;

} COEFS;

这个结构体中 h 是系数数组的指针,nh为系数数组元素的个数。

3.输入数组中数组元素的个数 N = 系数个数 + 输出数据的个数 - 1 .

测试:

输入数组  DATA_In[]={0,1,2,3,4,5,6}

系数矩阵 hx[]={111,212,201,212} 

经过计算 输出的数据应该为    3×212+2×201+1×212+0×111 = 1250

                                            4×212+3×201+2×212+1×111 = 1986

                                            5×212+4×201+3×212+2×111 = 2722

                                            6×212+5×201+4×212+3×111 = 3458

实验得数据如下图



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。