【发布时间】:2014-06-20 17:05:17
【问题描述】:
目前我正在尝试实现 FIR 低通滤波器。 FIR 系数在 MATLAB 中计算。现在我需要在 C++ 中实现 FIR 算法。
我将一个类定义为过滤器,将 FIR 的一个函数定义为:
double * Filter::FIR (double x[])
{
unsigned int jj;
unsigned int pp;
double sum;
pp = 0;
// input values
memcpy(&_x_sign, &x, sizeof(x));
for (pp = 0; pp < order+1; pp++)
{
sum = 0 ;
for (jj = 0; jj < order+1; jj++)
{
sum += _b[jj] * _x_sign[pp - jj];
}
_y_sign[pp] = sum;
}
return (_y_sign);
}
当循环 (pp - jj) 为负数时,作为数组的 _x_sign 不起作用。 如何修改我的 FIR 滤波器?
【问题讨论】: