设计一个巴特沃斯,切比雪夫低通IIR数字滤波器,设计指标为:在频率低于 0.2π 的通带内,幅度特性下降小于 1dB(2dB);在频率 大于的0.3π阻带内,衰减大于 15dB(30 dB)。
时间: 2023-12-04 09:02:35 浏览: 121
IIR.rar_IIR数字滤波器_iir滤波_巴特沃斯低通_带通滤波器_高通滤波 c
5星 · 资源好评率100%
首先,我们需要确定滤波器的阶数。由于我们需要在通带内幅度下降小于 1dB,因此选择一个 2 阶滤波器比较合适。然后,我们需要确定巴特沃斯和切比雪夫滤波器中的相关参数。
对于巴特沃斯滤波器,通带内的最大幅值误差为 1dB,通带截止频率为 0.2π,因此我们可以使用以下公式计算通带增益 K:
K = 1 / sqrt(1 + ε^2)
其中,ε为通带内最大幅值误差,即 ε = 10^(1/20) - 1 = 0.269。
因此,K = 0.963。
接下来,我们需要计算极点的位置。根据巴特沃斯滤波器的设计方法,极点的位置为:
p = K * exp(j * ((2n + N - 1) * pi) / (2N))
其中,n为极点的序号,N为滤波器的阶数。
对于一个 2 阶滤波器,共有 2 个极点,因此我们可以计算出它们的位置:
p1 = K * exp(j * pi / 4) ≈ 0.923 + 0.383j
p2 = K * exp(j * 3pi / 4) ≈ -0.383 + 0.923j
接下来,我们需要将极点映射到单位圆内。这可以通过以下公式完成:
z = (1 - p / z^-1) / (1 - p* / z^-1)
其中,p*为p的共轭复数。
计算得到的 z 的值为:
z1 ≈ 0.899 - 0.437j
z2 ≈ 0.899 + 0.437j
对于一个 IIR 滤波器,我们需要将这些极点和零点组合起来。由于巴特沃斯滤波器没有零点,因此我们只需要将两个极点乘起来即可:
H(z) = (1 - z1 z^-1) (1 - z2 z^-1)
展开后可以得到:
H(z) = 1 - 1.798z^-1 + 0.818z^-2
这就是我们设计的巴特沃斯低通滤波器的传递函数。
接下来,我们需要将这个传递函数转换成切比雪夫低通滤波器的传递函数。切比雪夫滤波器的设计方法与巴特沃斯滤波器类似,只是在计算通带增益和极点位置时采用了不同的公式。具体来说,切比雪夫滤波器的通带幅度响应为:
|H(jω)|^2 = 1 / (1 + ε^2 * Cn(ω / ωc)^2)
其中,Cn(x)为第 n 个切比雪夫多项式,ε为通带内最大幅值误差,ωc为通带截止频率。
对于一个 2 阶滤波器,C2(x) = 2x^2 - 1,因此通带幅度响应为:
|H(jω)|^2 = 1 / (1 + 0.0724(ω / ωc)^2)
我们需要选择一个适当的 ωc,使得在频率大于 0.3π的阻带内,衰减大于 30dB。根据切比雪夫滤波器的设计方法,阻带内的最小衰减为:
A = -20 log10(ε)
因此我们需要选择一个 A = 30dB 的 ωc。通过试错法可以得到一个满足要求的 ωc ≈ 0.49π。
接下来,我们需要计算切比雪夫滤波器的通带增益和极点位置。通带增益的计算公式为:
K = sqrt(1 / (1 + ε^2 * Cn(ωc / ωp)^2))
其中,ωp为滤波器的采样频率。
对于一个二阶滤波器,我们可以将 C2(x) 带入上述公式中计算,得到:
K = 0.893
接下来,我们需要计算极点的位置。切比雪夫滤波器的极点位置为:
p = K * exp(j * ((2n + N - 1) * pi) / (2N) + j * pi / 2)
其中,n为极点的序号,N为滤波器的阶数。
对于一个 2 阶滤波器,共有 2 个极点,因此我们可以计算出它们的位置:
p1 = K * exp(j * pi / 4 + j * pi / 2) ≈ -0.694 - 0.721j
p2 = K * exp(j * 3pi / 4 + j * pi / 2) ≈ -0.694 + 0.721j
接下来,我们需要将极点映射到单位圆内。这可以通过以下公式完成:
z = (1 - p / z^-1) / (1 - p* / z^-1)
其中,p*为p的共轭复数。
计算得到的 z 的值为:
z1 ≈ 0.925 - 0.382j
z2 ≈ 0.925 + 0.382j
最后,我们需要将这些极点和零点组合起来,得到切比雪夫低通滤波器的传递函数:
H(z) = (1 - z1 z^-1) (1 - z2 z^-1)
展开后可以得到:
H(z) = 1 - 1.85z^-1 + 0.85z^-2
这就是我们设计的切比雪夫低通滤波器的传递函数。
阅读全文