本文主要是介绍对于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)
这篇关于对于M抽头的一般FIR Filter的伪代码实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!