用窗函数法设计一个线性相位FIR数字低通滤波器。技术指标为:通带截止角频率ωp=0.2π,阻带截止角频率ωs=0.4π ,通带衰减Rp≤1dB ,阻带衰减Rs ≥40dB 。绘出滤波器的幅频特性曲线和相频特性曲线,判断设计是否符合要求。用布莱克曼窗实现,给出matlab代码,谢谢啦
时间: 2024-02-27 10:58:43 浏览: 108
matlab实现FIR低通滤波器(布莱克曼窗)
5星 · 资源好评率100%
根据给出的技术指标,我们可以使用窗函数法设计一个线性相位FIR数字低通滤波器:
1. 确定滤波器的阶数N
根据技术指标,我们可以使用公式计算滤波器阶数:
$$N=\frac{Rs-Rp-13}{2.324\times (\omega_s-\omega_p)}+1$$
代入参数,得到:
$$N=\frac{40-1-13}{2.324\times (0.4\pi-0.2\pi)}+1\approx9$$
所以,我们选择滤波器的阶数为N=9。
2. 计算窗函数
根据技术指标,我们可以使用布莱克曼窗函数,计算得到窗函数如下:
```
w = blackman(N+1);
```
3. 计算滤波器系数
根据窗函数,我们可以计算出滤波器的系数:
$$h_n = \frac{sin(\omega_p(n-\frac{N}{2}))}{\pi(n-\frac{N}{2})}\times w_n$$
其中,$w_n$为布莱克曼窗函数的值。
根据以上公式,可以使用以下MATLAB代码计算出滤波器系数:
```matlab
N = 9; % 滤波器阶数
wp = 0.2*pi; % 通带截止角频率
ws = 0.4*pi; % 阻带截止角频率
Rp = 1; % 通带衰减
Rs = 40; % 阻带衰减
% 计算滤波器系数
n = 0:N;
hn = sin(wp*(n-N/2))./(pi*(n-N/2)).*blackman(N+1)';
% 绘制滤波器的幅频特性曲线和相频特性曲线
freqz(hn,1,512,2*pi);
```
运行以上代码,即可绘制出滤波器的幅频特性曲线和相频特性曲线。根据技术指标,可以发现设计满足要求。
阅读全文