切比雪夫低通滤波器?

4
我正在为一个Windows表单项目寻找数字/模拟Chebyshev低通滤波器,最好使用C#、C ++或C。提供伪代码将是有帮助的。

哪个滤波器?(顺序?)如果您知道参数,可以使用FFT库(例如FFTW)来实现它。 - sinelaw
这是一些作业吗?如果是,请明确说明。 - isekaijin
你需要哪种类型的滤波器实现:IIR(阶数?哪种形式),FIR,FFT重叠保存/添加,还是其他? - hotpaw2
3个回答

5

谢谢你的链接,但我对一些输入不确定。你能给我提供一些计算贝塞尔滤波器系数的输入和输出的例子吗? - T o n y
应该有多少个系数?当我指定为3阶时,它会生成9个数字。 - T o n y
1
6.69292825e+00 1.00000000e+00 3.00000000e+00 3.00000000e+00 1.00000000e+00 3.20403524e-03 -1.59857411e-01 -3.86380876e-02 -1.00000000e+00我正在使用与Paul R建议的Butterworth页面上相同的算法: http://stackoverflow.com/questions/344343/low-pass-filter-software如何正确使用这些数字? - T o n y
注意:Fischer先生已经去世,这些链接现在将重定向到他在Github上的代码存储库。 - Alan Campbell
他已经去世了!网站已经崩溃,不再运行。安息吧 :( - Mohammad Alavi

1

滤波器是Chebyshev型的事实只决定了滤波器的系数。实际的实现与系数几乎无关。您需要一个不错的滤波器设计软件来生成系数(因为系数取决于各种滤波器参数和所选取的采样频率),然后由您决定如何实现实际的滤波器,但有各种标准形式。

如果您真的想做这种事情,可能需要阅读一两本不错的DSP教材。


谢谢!你的评论帮了我很多。我完全不确定过滤器在软件版本中该如何实现。现在我正在尝试学习如何做贝塞尔滤波器,你有任何建议吗? - T o n y
1
@T o n y:同样的评论适用 - 你可以使用相同的实现来进行Butterworth、Chebyshev、Bessel、椭圆等任何类型的滤波器 - 唯一改变的是系数(和级数的数量)。通常情况下,你可以使用滤波器设计软件生成系数,然后直接插入这些系数。请参考 @eryksun 的回答,其中提供了一个滤波器设计程序的示例。 - Paul R

-1
这里有一个高效的C#代码示例 切比雪夫滤波器,使用NMath的FFT。生成滤波器系数并不难,可以通过在线工具或参考书轻松完成。

虽然FFT可以为一些滤波器提供高效的实现,但仅仅是进行FFT->块乘法->IFFT本身不太可能给出您想要的结果。如果您要使用FFT,几乎肯定需要处理滤波器的稳定性以及如何重叠来自多个FFT的结果。 - Eric Backus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接