admin 发表于 2022-8-27 19:18:04

MATLAB:低通滤波器

%带通滤波器
%系统采样频率
fs=1200
%原始信号
N=400;   
n=0:N-1;t=n/fs;
fl=100
fh=400
y=sin(2*pi*fl*t)+sin(2*pi*fh*t);
%显示原始信号
subplot(321)
plot(t,y)
title('输入信号');xlabel('t/s');ylabel('幅度');
%对原始信号频谱分析
sfft=fft(y);
subplot(322);
plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));
title('信号频谱');xlabel('频率/Hz');ylabel('幅度');
%设计低通滤波器
K = 2;         
f1=60;f2=350
w1=2*pi*f1;w2=2*pi*f2;   
Wo=sqrt(w1*w2);
Bw=w2-w1;   
= buttap(K);
= zp2tf(z,p,k);
= lp2bp(b,a,Wo,Bw);
= bilinear(b,a,fs);
= freqz(b1,a1,N,fs);
subplot(323)
plot(W,abs(H));
title('带通滤波器');
grid on;
%滤波
y1=filter(b1,a1,y);
%显示滤波后的波形及频谱
subplot(324);
plot(t,y1);                        
title('输出信号');xlabel('t/s');ylabel('幅度');   
y2=fft(y1);
subplot(325);
plot((1:length(y2)/2)*fs/length(y2),2*abs(y2(1:length(y2)/2))/length(y2));
title('带通滤波后频谱');xlabel('频率/Hz');ylabel('幅度');

页: [1]
查看完整版本: MATLAB:低通滤波器