FIR低通高通带通滤波器的设计,结果图的波形不对劲怎么改啊

低通:

img

Ft=8000; %采样频率
Fp=1300; %通带边界频率
Fs=1500; %阻带截止频率
wp=2Fp/Ft;
ws=2
Fs/Ft;
rp=1;
rs=50;
p=1-10.^(-rp/20);
s=10.^(-rs/20);
fpts=[wp ws];
mag=[1 0];
dev=[p s];
[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);
b21=fir1(n21,wn21,kaiser(n21+1,beta));
[h,w]=freqz(b21,1);
figure;
plot(w/pi,abs(h));
title('FIR低通滤波器','fontweight','bold');
grid;
高通:

img

Ft=8000;
Fp=1500; %通带边界频率
Fs=1300; %阻带截止频率
wp=2Fp/Ft;
ws=2
Fs/Ft;
rp=1;
rs=50;
p=1-10.^(-rp/20);
s=10.^(-rs/20);
fpts=[ws wp];
mag=[0 1];
dev=[p s];
[n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);
b23=fir1(n23,wn23,'high',kaiser(n23+1,beta));
[h,w]=freqz(b23,1);
figure;
plot(w120000.5/pi,abs(h));
title('FIR高通滤波器','fontweight','bold');
% axis([2500 5500 0 1.2]);
grid

带通:

img

Fp1=2000; %通带边界频率
Fp2=3200;
Fs1=1800; %阻带截止频率
Fs2=3400;
Ft=8000;
wp1=tan(piFp1/Ft);
wp2=tan(pi
Fp2/Ft);
ws1=tan(piFs1/Ft);
ws2=tan(pi
Fs2/Ft);
w=wp1wp2/ws2;
bw=wp2-wp1;
wp=1;
ws=(wp
wp2-w.^2)/(bww);
[n22,wn22]=buttord(wp,ws,1,50,'s');
[b22,a22]=butter(n22,wn22,'s');
[num2,den2]=lp2bp(b22,a22,sqrt(wp1
wp2),bw);
[num22,den22]=bilinear(num2,den2,0.5);
[h,w]=freqz(num22,den22);
figure;
plot(w80000.5/pi,abs(h));
axis([0 4500 0 1.5]);
legend('用巴特沃斯butter设计','Location','NorthWest');
grid

你这图和程序不是一回事啊

程序要跟数据对的上,才会出现一样的结果