matlab 巴特沃斯滤波

来源:互联网 发布:开淘宝店怎么样 编辑:程序博客网 时间:2024/05/22 15:24


低通滤波

fs=30;              %采样频率N=300;              %N/fs 秒数据n=0:N-1;            t=n/fs;             %时间if 0fl = 0.4;           %低频fh = 5;             %高频s=cos(2*pi*fl*t)+cos(2*pi*fh*t);    %s是0.4Hz和5Hz信号叠加,低通截止频率是1Hzsubplot(121);plot(t,s);title('输入信号');xlabel('t/s');ylabel('幅度');sfft=fft(s);subplot(122);plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));title('信号频谱');xlabel('频率/Hz');ylabel('幅度');%设计低通滤波器,截止频率为1if 0Wp=1/fs;Ws=2/fs;                %截止频率为1Hz,阻带截止频率为2Hz%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wn[n,Wn]=buttord(Wp,Ws,1,50);     %阻带衰减大于50db,通带纹波小于1dbelsen=4;Wn=1/(fs/2);end%设计Butterworth低通滤波器[a,b]=butter(n,Wn);[h,f]=freqz(a,b,'whole',fs);        %求数字低通滤波器的频率响应f=(0:length(f)-1*fs/length(f));     %进行对应的频率转换figure;plot(f(1:length(f)/2),abs(h(1:length(f)/2)));       %绘制幅频响应图title('巴特沃斯低通滤波器');xlabel('频率/Hz');ylabel('幅度');grid;sF=filter(a,b,s);                   %叠加函数s经过低通滤波器以后的新函数figure;subplot(121);plot(t,sF);                         %绘制叠加函数s经过低通后时域图形title('输出信号');xlabel('t/s');ylabel('幅度');SF=fft(sF);subplot(122);plot((1:length(SF)/2)*fs/length(SF),2*abs(SF(1:length(SF)/2))/length(SF));title('低通滤波后频谱');xlabel('频率/Hz');ylabel('幅度');end

带通滤波

fl = 2;             %低频fh = 10;             %高频s=cos(2*pi*fl*t)+cos(2*pi*fh*t);    %s是2Hz和3Hz信号叠加,带通截止频率是1Hz~4Hzs=H;N=3636;              %N/fs 秒数据n=0:N-1;            t=n/fs;             %时间subplot(121);plot(t,s);title('输入信号');xlabel('t/s');ylabel('幅度');sfft=fft(s);subplot(122);plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));title('信号频谱');xlabel('频率/Hz');ylabel('幅度');%设计带通滤波器,截止频率为0.4~5n=4;Wn=[0.4/(fs/2) 5/(fs/2)]%设计Butterworth低通滤波器[a,b]=butter(n,Wn);[h,f]=freqz(a,b,'whole',fs);        %求数字低通滤波器的频率响应f=(0:length(f)-1*fs/length(f));     %进行对应的频率转换figure;plot(f(1:length(f)/2),abs(h(1:length(f)/2)));       %绘制幅频响应图title('巴特沃斯带通滤波器');xlabel('频率/Hz');ylabel('幅度');grid;sF=filter(a,b,s);                   %叠加函数s经过低通滤波器以后的新函数figure;subplot(121);plot(t,sF);                         %绘制叠加函数s经过低通后时域图形title('输出信号');xlabel('t/s');ylabel('幅度');SF=fft(sF);subplot(122);plot((1:length(SF)/2)*fs/length(SF),2*abs(SF(1:length(SF)/2))/length(SF));title('带通滤波后频谱');xlabel('频率/Hz');ylabel('幅度');


原创粉丝点击