打印

关于STM32 DSP库里FIR的疑问

[复制链接]
2957|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fenggdfs|  楼主 | 2013-2-27 20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我最近在看FIR滤波的东西,但无奈网上资源比较少,请教一下大家
我看网上为数不多的例子都是这样
#define M 32 /*number of coefficients*/
#define N 32 /*number of output samples*/
COEFS fir_coefs;/*coefficients structure*/
int a[N];/*filter output vector*/
short x[M+N-1] = {x0,x1...,xM+N-1};/*filter input vector*/
short h[M]={h0,h1...,hM-1};/*filter coefficients vector*/
fir_coefs.nh = M; /*Number of Coefficients for FIR*/
fir_coefs.h = h; /*Pointer on FIR coefficient vector*/
fir_16by16_stm32(a,x,&fir_coefs,N);/*performs the FIR filtering*/

M滤波器长度,N滤波器输出数据长度,响应的滤波器输入长度为M+N-1
请问,输入的数据,
是一个先进先出的数组,每次进一个新数据弹出最旧的数据;但是这样就是来一个新的数据,就输出N个数据了?
还是全部用新的数据?这样采样率应该会改变吧?

谢谢大家了
沙发
fenggdfs|  楼主 | 2013-3-4 20:42 | 只看该作者
这几天有点感悟,说出来给大家分享一下吧
首先,我是参考这个http://www.docin.com/p-213307038.html

对于输出输入,比如:
#define M 4 /*number of coefficients*/
#define N 4 /*number of output samples*/
short x[M+N-1] = {x0,x1...,xM+N-1};/*filter input vector*/
输入7,输出4.  一开始fir_16by16_stm32(a,x,&fir_coefs,N)  得到4个数据。
然后去掉前面3个,再进去四个新的数据,每进去新的数据,把输出1个之前得到的数据。
当4个新数据全部进入,4个数据全部输出。然后再fir_16by16_stm32(a,x,&fir_coefs,N)。

程序还没完全写好,就不贴出来了,希望帮到大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

32

帖子

1

粉丝