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

实验得数据如下图



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
丫的呵呵
1楼-- · 2019-07-21 21:26
 精彩回答 2  元偷偷看……
xc1989
2楼-- · 2019-07-22 01:11
 精彩回答 2  元偷偷看……
丫的呵呵
3楼-- · 2019-07-22 01:13
回复【9楼】xc1989:
--------------------------------
FIR确实简单,但是之前看不懂固件库里汇编,郁闷一下,其实就是加和乘两个运算
---------------------------------
楼主快把库发给我,邮箱在上面,
xc1989
4楼-- · 2019-07-22 01:36
回复【10楼】丫的呵呵:
---------------------------------
马上~ 中午在寝室  ,固件库在实验室电脑上呢,现在已经发了,查收下
丫的呵呵
5楼-- · 2019-07-22 07:10
回复【11楼】xc1989:
---------------------------------
收到,谢谢
南邮小
6楼-- · 2019-07-22 08:48
楼主好人 麻烦发一下1114127343@qq.com

一周热门 更多>