手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

如何用MATLAB进行高通FIR滤波器仿真

时间:2024-10-13 11:42:43

1、实际应用背景:一个信号由5Hz余弦信号与15Hz余弦信号相加构成,如何滤除15Hz分量,得到5Hz分量。

2、产生原始信号:y=cos(2π*5t)+cos(2π*15t);Matlab程序: f1=5;%第一个点频信号分量频率 f2=15;%第二个点频信号分量频率 fs=100;%采样率 T=2;%时宽 B=10;%FIR截止频率 n=round(T*fs);%采样点个数 t=linspace(0,T,n); y=cos(2*pi*f1*t)+cos(2*pi*f2*t);

3、观察原始信号时域与频谱:频谱中可以观察到信号的5Hz分量和15Hz分量怡觎现喾Matlab程序: figure; plot(t,y); title烫喇霰嘴('原始信号时域'); xlabel('t/s'); ylabel('幅度'); figure; fft_y=fftshift(fft(y)); f=linspace(-fs/2,fs/2,n); plot(f,abs(fft_y)); title('原始信号频谱'); xlabel('f/Hz'); ylabel('幅度'); axis([ 0 50 0 100]);

如何用MATLAB进行高通FIR滤波器仿真
如何用MATLAB进行高通FIR滤波器仿真

4、生成高通FIR滤波器冲击响应:MATLAB程序: b=fir1(80, B/(fs/2),'high'); %滤波产生指定带宽的噪声信号 figure; freqz(b);

如何用MATLAB进行高通FIR滤波器仿真

5、原始信号经过高通滤波器: MATLAB程序: y_after_fir=filter(b,1,y);

6、滤波后信号时域及频谱:滤波后得到15Hz的疙熳阊涓信号,5Hz信号被滤除。MATLAB程序: figure; plot(t,y_after_fir); title('滤波后信号时域'); xlabel('t/s'); ylabel('幅度'); fft_y1=fftshift(fft(y_after_fir)); f=linspace(-fs/2,fs/2,n); figure; plot(f,abs(fft_y1)); title('滤波后信号频谱'); xlabel('f/Hz'); ylabel('幅度'); axis([ 0 50 0 100]);

如何用MATLAB进行高通FIR滤波器仿真
如何用MATLAB进行高通FIR滤波器仿真
© 手抄报圈