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滤波器相位特性