基于matlab设计的低通滤波器「建议收藏」

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说基于matlab设计的低通滤波器「建议收藏」,希望能够帮助大家进步!!! 基于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)

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说基于matlab设计的低通滤波器「建议收藏」,希望能够帮助大家进步!!!

基于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; 

Wc =250;

[z,p,k] = buttap(K);        %zpk分别为零点列向量、极点列向量和增益系数

[b,a] = zp2tf(z,p,k);

[b,a] = lp2lp(b,a,2*pi*Wc);  % lp2lp转换命令把滤波器转化成具有不同截止频率的lp2hp,lp2bplp2bs

[b1,a1] = bilinear(b,a,fs);   %将模拟信号转为数字信号

[H,W] = freqz(b1,a1,N,fs);  %求数字低通滤波器的频率响应

subplot(323)

plot(W,abs(H));

title('低通滤波器');

grid on;

%滤波

y1=filter(b1,a1,y);          %叠加函数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('幅度');  

知秋君
上一篇 2024-07-03 15:31
下一篇 2024-07-03 15:31

相关推荐