FIR滤波器

%实验四(1) 设计FIR滤波器,选择汉明窗
clc; clear;
close all;
wp=0.2*pi;ws=0.35*pi;
deltaw=ws-wp;
N0=ceil(6.6*pi/deltaw);   %选择汉明窗,求滤波器长度N0
N=N0+mod(N0+1,2);    %选择1型滤波器,确保N为奇数
alfa=(N-1)/2;
wc=(wp+ws)/2;
windows=hamming(N);  %汉明窗
n=0:N-1;
hd=sin(wc*(n-alfa+eps))./(pi*(n-alfa+eps));   %eps微小值,避免0作除数
h=hd.*windows';
subplot(2,1,1);stem(n,h); title('FIR滤波器的冲击响应h(n)');
[H,w]=freqz(h,1);
subplot(2,1,2);plot(w/pi,20*log10(abs(H)/abs(H(1))));  title('幅度响应');
axis([0,1,-100,10]);

编制计算设计的数字滤波器幅度特性和相位特 性的程序

%实验四(3) 比较IIR滤波器和FIR滤波器的幅度特性和相位特性
clc; clear;
close all;
%IIR滤波器设计
wp=0.2;ws=0.35;Ap=1;As=15;
[N,fc]=buttord(wp,ws,Ap,As);     %求出符合参数的巴特沃思滤波器阶数和截止频率
[b,a]=butter(N,fc);              %得到滤波器H(z)的系数
[h,w]=freqz(b,a,1024);           %计算数字滤波器响应
subplot(2,2,1);plot(w/pi,20*log10(abs(h)/abs(h(1))));title('IIR滤波器幅度特性');ylabel('H(dB)');
axis([0,1,-100,10]); %IIR滤波器幅度特性
subplot(2,2,2);plot(w/pi,angle(h)/pi);title('IIR滤波器相位特性');ylabel('pha'); %IIR滤波器相位特性
axis([0,1,-1,1]);
%FIR滤波器设计
wp=0.2*pi;ws=0.35*pi;
deltaw=ws-wp;
N0=ceil(6.6*pi/deltaw);   %选择汉明窗,求滤波器长度N0
N=N0+mod(N0+1,2);    %选择1型滤波器,确保N为奇数
alfa=(N-1)/2;
wc=(wp+ws)/2;
windows=hamming(N);  %汉明窗
n=0:N-1;
hd=sin(wc*(n-alfa+eps))./(pi*(n-alfa+eps));   %eps微小值,避免0作除数
h=hd.*windows'; 
[H,w]=freqz(h,1);
subplot(2,2,3);plot(w/pi,20*log10(abs(H)/abs(H(1))));  %FIR滤波器幅度特性(dB)
title('FIR滤波器幅度特性');ylabel('H(dB)');axis([0,1,-100,10]); 
subplot(2,2,4);plot(w/pi,angle(H)/pi); title('FIR滤波器相位特性'); ylabel('pha');  %FIR滤波器相位特性

 

posted @ 2021-03-29 23:00  为红颜  阅读(1398)  评论(0编辑  收藏  举报