有谁知道如何使用 C 编程实现多相滤波器。多相滤波器是滤波加下采样的组合。它使用 Fir 滤波器进行滤波,然后使用给定的抽取因子对其进行下采样。
我理解过滤是输入信号与脉冲响应的卷积,所以你只需要调用卷积函数。
简单来说,代码应该是这样的。
for ( i = 0; i < sampleCount; i++ )
{
y[i] = 0; // set to zero before sum
for ( j = 0; j < kernelCount; j++ )
{
y[i] += x[i - j] * h[j]; // convolve: multiply and accumulate
}
}
我的问题是我应该如何将这个基本算法转换为多相滤波器,因为它还有一个向下采样的步骤。我不明白我应该首先做什么,过滤然后下采样?或者有没有办法将两者结合起来做?