gpt4 book ai didi

c - 任何知道如何使用 C 编程实现多相滤波器的人

转载 作者:行者123 更新时间:2023-11-30 18:58:46 27 4
gpt4 key购买 nike

有谁知道如何使用 C 编程实现多相滤波器。多相滤波器是滤波加下采样的组合。它使用 Fir 滤波器进行滤波,然后使用给定的抽取因子对其进行下采样。<​​/p>

我理解滤波是输入信号与脉冲响应的卷积,所以你只需要调用卷积函数。

简单来说,代码如下。

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
}
}

我的问题是如何将这个基本算法转换为多相滤波器,因为它多了一个下采样步骤。我不明白我应该做什么,第一,过滤然后下采样?或者有没有办法将两者结合起来?

最佳答案

您有计算每个点的代码。对于任何点 i,该代码使用 x[i-j]h[j] 中的数据(循环遍历 j),并将结果写入 y[i]

对于下采样,您不需要所有点y[i];你只想要其中的一些。因此,编写代码,在给定 i 的情况下,使用相同的 x[i-j]h[j] 中的数据来计算输出值。但是,不要对 i 的每个值都执行此操作,而是仅对抽取因子的倍数执行此操作(假设它名为 d),并将结果写入 y[i/d] 而不是 y[i]

关于c - 任何知道如何使用 C 编程实现多相滤波器的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com