前段时间搞了下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
实验得数据如下图
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>