我对FIR系统的术语和模拟有些困惑。我将非常感谢帮助纠正错误并告知错误。
假设FIR滤波器具有系数数组A=[1,c2,c3,c4]
。元素的数量为L
,因此过滤器的长度为L
,但顺序为L-1
。
混淆1:截距1
是否被视为系数?它总是1吗?
困惑2:我的理解是否正确,对于给定的示例,长度为L= 4
和order=3
?
Confusion3:在数学上,我可以把它写成:
其中u
是输入数据,l
从零开始。然后为了模拟上面的等式,我做了以下卷积。这是正确的吗?:
N =100; %number of data
A = [1, 0.1, -0.5, 0.62];
u = rand(1,N);
x(1) = 0.0;
x(2) = 0.0;
x(3) = 0.0;
x(4) = 0.0;
for n = 5:N
x(n) = A(1)*u(n) + A(2)*u(n-1)+ A(3)*u(n-3)+ A(4)*u(n-4);
end
答案 0 :(得分:1)
混淆1:截距
1
是否被视为系数?它总是1吗?
是的,它被认为是一个系数,并且不是总是1.通过将所有系数相乘(即,将滤波器的输入或输出与系数进行缩放),在系数阵列中包含全局比例因子是很常见的。 [1,c1,c2,c2]
K
相当于使用系数为[K,K*c1,K*c2,K*c3]
的过滤器。另请注意,许多FIR滤波器设计技术会生成系数,其幅度峰值接近系数阵列的中间,并在开始和结束时逐渐减小。
困惑2:我的理解是否正确,对于给定的示例,长度
L= 4
和订单= 3?
是的,这是正确的
混乱3: [...] 然后为了模拟上面的等式,我做了以下卷积。这是对的吗? [...]
几乎,但不完全。以下是您需要解决的一些问题。
for
循环中,应用公式,您将增加A
的索引,并将每个术语的u
索引减1,因此您实际得到{{ 1}} x(n) = A(1)*u(n) + A(2)*u(n-1)+ A(3)*u(n-2)+ A(4)*u(n-3)
n=4
u(n-k)
的条件n-k
将小于1.因此,对于x(3)
,您将丢弃1术语,对于x(2)
,您将丢弃2个术语,对于x(1)
,您将丢弃3个术语。修改后的代码如下所示:
x(1)=A(1)*u(1);
x(2)=A(1)*u(2) + A(2)*u(1);
x(3)=A(1)*u(3) + A(2)*u(2) + A(3)*u(1);
for n = 4:N
x(n) = A(1)*u(n) + A(2)*u(n-1)+ A(3)*u(n-2)+ A(4)*u(n-3);
end