利用汉宁窗设计一个FIR数字低通滤波器绘制单位脉冲响应与幅频特性
时间: 2024-02-27 08:52:09 浏览: 23
好的,利用汉宁窗设计一个FIR数字低通滤波器的步骤如下:
1. 确定滤波器的阶数N和截止频率fc。
2. 根据截止频率fc计算滤波器的理想频率响应Hd。
3. 根据汉宁窗函数的公式,计算出长度为N的汉宁窗函数w(n)。
4. 计算出滤波器的频率响应H(w),即H(w) = Hd(w) * W(w),其中*表示逐点相乘。
5. 将H(w)进行反变换,得到滤波器的单位脉冲响应h(n)。
6. 绘制出滤波器的单位脉冲响应h(n)和幅频特性H(f)。
下面是利用汉宁窗设计的FIR数字低通滤波器的MATLAB代码示例:
```matlab
N = 51; % 滤波器阶数
fc = 0.2; % 截止频率
n = 0:N-1;
wc = 2*pi*fc;
hd = sin(wc*(n-N/2))./(pi*(n-N/2)); % 理想低通滤波器频率响应
w = 0.5*(1-cos(2*pi*n/(N-1))); % 汉宁窗函数
h = hd.*w; % 实际低通滤波器频率响应
figure;
subplot(2,1,1);
stem(n-N/2, h);
title('单位脉冲响应');
xlabel('n');
ylabel('h(n)');
subplot(2,1,2);
f = 0:0.01:1;
H = freqz(h,1,f*2*pi);
plot(f, 20*log10(abs(H)));
title('幅频特性');
xlabel('f');
ylabel('20*log10|H(f)|');
axis([0 1 -80 10]);
```
在这个代码示例中,我们使用了MATLAB中的freqz函数来计算滤波器的频率响应,并绘制出了滤波器的单位脉冲响应和幅频特性。可以通过修改N和fc的值来调整滤波器的阶数和截止频率,从而得到不同的滤波器特性。