对于M抽头的一般FIR Filter的伪代码实现

/*---------------------------------------------------------------------

一般的M抽头FIR Filter C伪代码

输入    : x[]      输入样本点数N

冲击响应 : h[]      M抽头

输出    : y[]      N个输出

---------------------------------------------------------------------*/

 

#define    N      1000       // 序列为1000

#define       M      32         // 32抽头

 

void FIR( double x[], double h[], double y[ ])

{

    memset(y, 0, N * sizeof(double));

   

    int n, k;

    for( n=0; n<N; n++ )

    {

       /*

        * '过去的M-1个样本点和自身'作为滤波范围

        */

       for(k=0; k<M; k++)

       {

           y[n] += h[k] * x[n-k]

       }

    }

}

 

n个输出是取决于前M个输入和h

y(n) = h(0)*x(n) + h(1)*x(n-1) + ... h(M-1)*x(n-(M-1))

就是 h(k) 与 x[n] 的卷积, 卷积结构为y(n)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值