Wp=1800*2*pi;Ws=3500*2*pi;%滤波器截止频率
Rp=2;Rs=18;%通带波纹和阻带衰减
Fs=20000;%采样频率
Nn=128;%调用freqz所用的频率点数
[N, Wn]=buttord(Wp,Ws,Rp, Rs,'s');%计算模拟滤波器的最小阶数
[z,p,k]=buttap(N);
[Bap,Aap]=zp2tf(z,p,k);%将系统函数由零点极点形式转换为传递函数形式
[b,a]=lp2lp(Bap,Aap,Wn);%进行频率转换
[bz,az]=impinvar(b,a,Fs);%运用脉冲响应不变法得到数字滤波器的传递函数
figure(1)
[H,f]=freqz(bz,az,Nn,Fs);%求解数字滤波器的幅频特性和相频特性
subplot(2,1,1),plot(f,20*log10(abs(H)));
xlabel('频率/Hz');ylabel('振幅/dB');
grid on;
subplot(2,1,2),plot(f,180/pi*unwrap(angle(H)))
xlabel('频率/Hz');ylabel('相位/o');grid on;
figure(2)
f1=1200;f2=4800;%输入信号的频率
N=100;%数据长度
dt=1/Fs;n=0:N-1;
t=n*dt;%采样间隔和时间序列
x=sin(2*pi*f1*t)+0.6*cos(2*pi*f2*t);
subplot(2,1,1);plot(t,x);
title('输入信号')
y=filter(bz,az,x);
subplot(2,1,2)
plot(t,y,)
title ('输出信号'),xlabel ('时间 /s')
legend ( 'filter');