我正在缓慢地学习DSP,并试图绕开一些术语:



问题1:假设我有以下滤波器差异方程: y [n] = 2 x [n] + 4 x [n-2] + 6 x [n-3] + 8 x [n-4] $$

上有4个系数右手边。 “抽头数”也是4吗?问题2:“过滤器顺序”也为4吗?

问题2:我正在尝试使用MATLAB fir1(n, Wn)函数。如果我想创建一个10抽头的滤波器,我会设置$ n = 10 $吗?

问题3:假设我有以下递归(大概是IIR)滤波器差异方程:
$ $ y [n] + 2 y [n-1] = 2 x [n] + 4 x [n-2] + 6 x [n-3] + 8 x [n-4] $$

由于系数的数量在左侧和右侧不同,我如何确定“抽头数”和“滤波器阶数”?


问题4 :以下逻辑if-and-only-if语句是否正确?


筛选器是递归$ \ iff $筛选器是IIR。
筛选器是非递归$ \ iff $过滤器为FIR。




#1 楼

好的,我将尝试回答您的问题:

Q1:抽头数不等于过滤器阶数。在您的示例中,过滤器长度为5,即过滤器扩展了5个输入样本[$ x(n),x(n-1),x(n-2),x(n-3),x(n-4 )$]。抽头数与过滤器长度相同。在您的情况下,您有一个等于0的抽头($ x(n-1)$的系数),因此您碰巧有4个非零抽头。尽管如此,滤波器的长度仍然是5。FIR滤波器的阶数是滤波器长度减去1,即示例中的滤波器阶数是4。 )是过滤器的顺序,即得到一个包含$ n + 1 $个元素的向量(因此$ n + 1 $是您的过滤器长度=抽头数)。

Q3:过滤器顺序又是4。您可以从实现过滤器所需的最大延迟中看到它。它确实是一个递归IIR滤波器。如果用抽头数表示滤波器系数的数目,那么对于$ n ^ {th} $阶IIR滤波器,您通常具有$ 2(n + 1)$系数,即使在您的示例中,其中的几个系数为零。 br />
Q4:这有点棘手。让我们从一个简单的例子开始:非递归滤波器始终具有有限的脉冲响应,即它是FIR滤波器。通常,递归滤波器具有无限的冲激响应,即它是IIR滤波器,但是在退化的情况下,使用递归结构实现了有限的冲激响应。但是后一种情况是例外。

评论


$ \ begingroup $
+1:好的答案,尤其是细微的问题#4。如您所说,以递归形式编写FIR滤波器是完全有可能的(有时是可取的)。
$ \ endgroup $
– Peter K.♦
2013年4月16日19:30在

$ \ begingroup $
关于问题4:以下逻辑含义是否正确:(1)递归过滤器->(“暗示”)FIR或IIR; (2)非递归滤波器-> FIR; (3)FIR->非递归或递归(稀有); (4)IIR->递归。这些说法正确吗?
$ \ endgroup $
–stackoverflowuser2010
13年4月16日在19:48

$ \ begingroup $
Q3:筛选顺序为最大值。需要延迟,无论是否需要延迟$ y(n)$或$ x(n)$,所以如果您的过滤器为$ y(n)+ y(n-10)= x(n)$筛选顺序为10。
$ \ endgroup $
– Matt L.
13年4月16日在20:11

$ \ begingroup $
Q4:您的意思是正确的。
$ \ endgroup $
– Matt L.
13年4月16日在20:11

$ \ begingroup $
@engr:对于FIR滤波器的窗口设计,由窗口确定滤波器的长度。通常,将有限长度的窗口与理想(无限长)的脉冲响应相乘,并且所得的有限脉冲响应的长度与窗口的长度相同。
$ \ endgroup $
– Matt L.
20年7月21日在18:37

#2 楼


问题1:抽头数=系数s数= FIR滤波器的长度。过滤器的阶数等于
过滤器1的长度。
问题2:如果您使用FIR滤波器,则$ n $应该设置为9。
问题3:这是一个IIR滤波器,因为您有反馈。
尝试将等式转换回z变换并将其表示为传递函数,例如$$ Y(z)/ X(z) = H(z)$$,然后您可以看到
您在询问什么,或者可以进一步了解IIR滤波器以确定其顺序。
问题4:FIR滤波器是直接的没有反馈,但是对于
IIR过滤器,您将获得反馈。我建议您使用FIR
滤波器,因为它们具有线性相位。另一方面,对于相同大小的FIR滤波器,IIR
滤波器的计算较少,因为IIR
滤波器具有较少的系数数量,但是IIR滤波器不具有线性相位。因此,您可以说这是一个折衷。