设计一个允许5 kHz以下频率自由通过的滤波器,但所有5.2 kHz以上的频率必须不可检测


12

对于这个问题,我最大的挑战是可笑的滚降率。

我假设如果信号增益为-20 dB,则无法检测到该信号。这意味着在200 Hz的过渡带内,信号强度需要降低20 dB。

如果我的计算正确,则此滤波器要求滚降速率为1200 dB / dec。这需要60极,这显然是不可行的。

我想使用一个模拟有源滤波器,使通带的纹波最小。大的相移不是太重要。

一种可能的解决方案是使用5.2 kHz的陷波滤波器。但是,陷波滤波器带宽以上的频率仍未得到充分滤波。

请指出我的逻辑中的任何缺陷或提出潜在的解决方案。谢谢。


16
称无法检测到-20dB相当
困难

1
@WhatRoughBeast ??? 我意识到他将4500用20除以225。我要挑战的是他如何首先获得4500。
戴夫·特威德

7
您希望塔米尔得到什么样的答案?模拟无源/有源?数字IIR / FIR?波数字滤波器?FFT +删除多余的东西+ IFFT?
哈里·斯文森

4
多少通带纹波可以接受?
布鲁斯·雅培

1
“ 通带中的纹波最小 ”-“最小”不是规格。
布鲁斯·雅培

Answers:


21

您已假定滤波器的每个滤波器阶次滚降为20dB / dec。并非对于所有过滤器类型都是如此。

f s t o p = 5.2 k H z。然后˚F 小号ö pf0=5kHzfstop=5.2kHz

fstopf0=1.04.

看看从Wikipedia文章中获得的这个四阶椭圆滤波器。 椭圆形

尽管它不能完全满足您的要求,但您可以看到它是可行的。高阶椭圆滤波器可以实现您所追求的。

您应该记住,椭圆滤波器会对信号相位产生干扰。由于您没有提及有关相位约束的任何内容,因此我认为椭圆滤波器是合适的。


这不是一个坏主意。如果3dB通带纹波和最大值,则6阶椭圆LPF具有足够陡峭的过渡斜率。在5200Hz及更高​​频率下允许-20dB泄漏。结果是由滤波器计算器得到的,我只输入了不同的阶数和极限,直到出现适当的频率响应。六阶意味着只有三个二阶块级联。不知道,在实践中,它会以通常的组件公差作为模拟运算放大器滤波器来实现。这需要更多的模拟。
user287001'3

嗨,谢谢你的回答。只是出于好奇,当我看维基百科时,两极似乎都放在省略号上,这是这个名称的来源还是一个巧合?
mathreadler '18

1
@mathreadler我相信这个名称来自椭圆有理函数,该函数出现在椭圆滤波器的传递函数中。椭圆滤波器的极点是雅可比椭圆余弦函数的函数。因此它们位于椭圆上。
user110971 '18

21

这种急剧下降需要数字滤波器。甚至不要考虑模拟。您需要使输入与Sinc函数卷积。sinc函数的宽度(内核点数)定义了阻带衰减。

我还没有完成数学运算,但是一些非常快速的计算(可能要关闭,您的工作才能正常执行)表明,如果以20 kHz采样,可能需要几百个点。20 kHz时200个点表示4 MHz的MAC速率。这是可行的,实际上远低于现代DSP所能做到的。这意味着您的问题很容易解决。诸如E系列dsPIC之类的东西可以做到这一点,如果您只是在寻找DSP功能,那是相当低端的。


3
这实际上是一个FIR滤波器。快速仿真表明,具有矩形窗口的128抽头滤波器就足够了。该系数取自理想5100Hz LPF的正弦脉冲响应。第一个旁瓣约为-20dB。5250Hz(从滤波器计算器中看到)
user287001'3

2
@user:好的,这意味着它实际上比我上面的粗略估计要容易一些。我可能会使内核稍微宽一些,以留出一些余地,尤其是因为即使在适度DSP的能力范围内,它也完全可以满足要求。
奥林·拉斯罗普

有一些非常好的过滤器资源以及要使用的窗口功能:我个人喜欢dspguide.com
Peter Smith,

4

如果允许大量延迟或处理记录的信号,则只需执行FFT,删除不需要的分量并反转变换即可。您必须使用适当的窗口功能截断fft,以使振铃保持可接受。


8
我认为对于这样狭窄的过渡带,您需要更多地说明如何选择窗口函数以使该答案对于解决问题很有用。
光子

4

我将选择一个音频编解码器芯片(ADC + DAC),将ADC数字输出路由至DAC输入,并将采样率设置为10kHz。

这些芯片已经包含您需要的数字滤波器引擎。快速的数据表检查似乎可以确认您将获得所需的滤波器性能。


你确定吗?
user253751'3

不确定100%,但我看不出有任何理由不能与sigma delta编解码器一起使用,有些可以采样到8kHz ...
peufeu

但是我的意思是为什么您相信它会拒绝不想要的频率,而不是给它们造成混淆?
user253751'3

常见的音频ADC是具有巨大过采样因子的sigma delta,其后是清晰的数字滤波器。这些大多数将从Fs = 8k到96-192k。通过在ADC之前进行简单的一阶低通避免混叠,并通过过采样来解决。在正确的时钟频率下,它们应在Fs = 10kHz左右正常工作。
peufeu

4

使用好的传统解决方案,椭圆滤波器,(短时间)FFT等,您已经有了许多不错的答案,因此我想我可以从子带编码/小波变换世界中添加一些东西。

子带编码是指将频谱细分为“频段”,这些频段中的每个频段都有自己的关联滤波器。频段越窄,时域上的滤波器越自然(自然)-但是在我们不需要频段很窄的区域,我们可以使用真正短而便宜的滤波器来摆脱困境。

小波是函数,它是特定类型的子带滤波器的结果,这些子带滤波器是通过迭代滤波然后进行子采样而生成的。

想法是找到感兴趣的子带,这将允许我们最大程度地压缩计算,但仍然在感兴趣的带上获得良好的粒度。

三个级别的Daubechies 12 tap数据包分解示例(Wikipedia):

在此处输入图片说明

然后,我们可以有选择地总结这些内容以获得所需的响应。而我们不想添加的那些-我们甚至不必计算!我们将需要更薄的,接近5-5.2 kHz频段的天线,以使其具有足够陡峭的性能。但另一方面,远离5-5.2 kHz频段,我们仅需进行一些细分即可。


这更多的是广告,而不是答案。
哈里·斯文森

@HarrySvensson我可以尝试更具体一些,但如今我没有那么多的空闲时间,因为我过去不得不改进答案。
mathreadler's

3

如果您可以保证正弦输入,那么单稳态单稳态(74121)就足够了。或可重新触发的122/123。

在74121/122/123之前使用比较器

一些MCU包含模拟比较器作为外设。一旦转换为方波,如果MCU具有XTAL稳定时钟,则可以使用计时器等检测5,000Hz以上/以下。不需要温度敏感的单稳态。


3
有趣,但是什么使您认为输入可能是正弦的?在没有任何特殊原因的情况下做出该假设似乎很不切实际。
左右左转

1
我认为,将他的回答的前四个词定为“如果可以保证”,那么这是一个新颖的解决方案。
Techydude

我使用这种方法(可重新触发的74123)来检测防滑制动系统中的车轮锁死;当74123超时时,液压缸从2N3055驱动,以使制动器产生脉冲。由于液压时间常数,我们每秒仅收到约2个脉冲。
Analogsystemsrf
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.