我正在尝试回答以下问题:

系统是否由等式描述:

$$ y [n] = 0.5y [n-1] + x [n ] -0.5x [n-1] $$

IIR滤波器?我的回答是。

谢谢你

评论

一类FIR滤波器称为“截短IIR”(TIIR)滤波器。您可以在Google上搜索它,然后从Julius Smith和Avery Wang中找到相关内容。 TIIR过滤器的另一个示例是“移动总和”或“移动平均”过滤器或CIC过滤器(同一事物的名称几乎完全不同)。使该递归滤波器成为FIR的原因是零极点抵消。按照实现,存在内部极点,如果内部极点不稳定,则过滤器可能会内部爆炸,但是直到超出数值限制时,您才会在输出中看到它。

数值限制是多少?

取决于数字类型(浮动或固定)和字宽。这个东西可以查一下。 (例如,对于IEEE-754浮点数。对于固定点,它取决于二进制点还剩多少位$ n_I $;大约$ \ pm 2 ^ {n_I-1} $。

再次感谢您先生的所有帮助!它对我很有帮助,很高兴我找到了该网站

@AnthonyParks:您说:“为什么人们要把这个复杂化。这显然是一个IIR,因为过滤器的第一项包含反馈部分。”?我说:“为什么人们不去理会DSP的基本概念”? IIR滤波器始终暗含递归形式,但FIR不一定意味着该滤波器是非递归形式。那是唯一正确的答案,您在这里混淆了这些概念。如果这是考试问题,那么您会说它是一个IIR而失败。 Oppenheim在他有关DSP的书中对此主题进行了解释。

#1 楼

这是FIR滤波器,尽管看起来像IIR。如果计算系数,则会得到有限的脉冲响应:

$ h = [1] $

由于零极点抵消而发生:

$ Y(z)-0.5Y(z)z ^ {-1} = X(z)-0.5X(z)z ^ {-1} $$

$ H(z)= \ dfrac {Y(z)} {X(z)} = \ dfrac {1-0.5z ^ {-1}} {1-0.5z ^ {-1}} = 1 $

是的,这可能很棘手。在LCCDE(线性常数系数差分方程)中看到$ y [n-k] $系数并不一定意味着它是一个IIR滤波器。它可能只是递归FIR滤波器。

评论


$ \ begingroup $
感谢您的认可!我愚蠢地说IIR,却没有仔细查看系数...我删除了答案。
$ \ endgroup $
– Fat32
2015年2月18日在22:30



$ \ begingroup $
但是,如果按照最初说明的那样实施方程,由于有限的字长效应(尽管零极点抵消在这种情况下是精确的),它的行为也不完全像H(z)= 1。
$ \ endgroup $
–奥斯卡
15年2月19日在9:23

$ \ begingroup $
@Oscar确实如此,但是这些都是数值问题,与F / IIR过滤器无关。
$ \ endgroup $
–jojek♦
2015年2月19日在9:27



$ \ begingroup $
@jojek:您当然是完全正确的。但是,如果您不了解这些事情,那么使用递归FIR滤波器会引起很多问题(很多人,甚至是“高素质”研究人员都知道)。因此,我的评论。理想情况下,还应该讨论算法与传递函数。
$ \ endgroup $
–奥斯卡
15年2月19日在9:31

$ \ begingroup $
jojek我正在从您回答的问题中读取您的回答,但我无法发表评论。 dsp.stackexchange.com/questions/17605/…我可以使用其他窗口吗?
$ \ endgroup $
–黑色Yasmin
2015年2月20日在11:18



#2 楼

Jojek的答案当然是正确的。我只想补充一些信息,因为我经常看到“ IIR”和“递归”这两个术语混淆了。始终包含以下含义:

$$ \ begin {align} \ text {IIR}&\ Longrightarrow \ text {recursive} \\
\ text {non-recursive}&\ Longrightarrow \ text {FIR} \ end {align} $$

ie每个IIR滤波器(即具有无限长脉冲响应的离散时间滤波器)都必须递归实现(除非您有无限的可用内存),并且每个非递归LTI系统都具有有限的脉冲响应(同样,除非您具有无限的内存) )。

但是,通常情况并非如此。递归滤波器可以具有有限的脉冲响应,就像该示例中的情况一样。另一个著名的例子是移动平均滤波器。这是移动平均值(必要时为FIR)的非递归实现:

$$ y [n] = \ frac {1} {N} \ sum_ {k = n-N + 1} ^ nx [k] $$

这是相同过滤器(也是FIR)的递归实现:
$$ y [n] = y [n-1] + \ frac { 1} {N}(x [n] -x [nN])$$

评论


$ \ begingroup $
一如既往的简洁,准确; +1;)感谢您提出MA案件。
$ \ endgroup $
–jojek♦
2015年2月18日在22:48



$ \ begingroup $
@jojek:是的,我认为这是每个人都应该知道的经典。
$ \ endgroup $
– Matt L.
15年2月18日在22:49

$ \ begingroup $
在我对jojek的回答的评论中主要考虑舍入噪声时,对于MA,溢出将是一个潜在的问题,需要仔细考虑。容易通过二进制补码算法和足够的字长解决。
$ \ endgroup $
–奥斯卡
15年2月19日在9:26

$ \ begingroup $
@Oscar:好吧,在使用双浮点精度进行了非常简单的分析之后,我得到了8.881784197001252e-16的错误。这是在以44.1kHz采样频率处理相当于一年的音频之后得出的。输入数据是具有标准化分布的高斯噪声。这是重现结果的代码!单击! (运行可能需要3天)。只要这是正确的,那么我相信没有什么可担心的。
$ \ endgroup $
–jojek♦
2015年3月2日,9:25



$ \ begingroup $
@jojek:三件事。 1)我指的是答案的移动平均滤波器,而不是原始问题中的那个。 2)是的,这对于音频是可以的(但不完全正确,因此没有理由将“ no”用粗体显示),但是我更希望安全性至关重要的信号处理能够独立于具有合成属性的输入信号而工作。 3)有趣的是,您模拟的滤波器不会遇到我所描述的问题(因为极点位于单位圆内,而不是在单位圆上),但始终会出现舍入误差,而与表示无关(可以避免)在移动平均线的情况下)。
$ \ endgroup $
–奥斯卡
15年3月3日在10:52