低通滤波器仿真

分类: Math_and_Matlab |
源信号为含有频率f ,2f 和3f 的正弦波叠加信号,即:
x=A*sin(2*pi*f*t)+1*A*sin(4*pi*f*t)+1*A*sin(6*pi*f*t);
f=500Hz,以频率Fs=8kHz对该信号进行采样。设计数字IIR低通滤波器,使输出信号中只含有频率为f的成份。
对应的matlab程序
clc;clear;close all
Wp=2*pi*600;
Ws=2*pi*900;
Rp=3;
Rs=20;
[n,Wn]=buttord(Wp,Ws,Rp,Rs,'s');
[b,a]=butter(n,Wn,'s');
w=linspace(0,2000,2000)*2*pi;
H=freqs(b,a,w);
magH=20*log10(abs(H));
phaH=unwrap(angle(H));
xf=w/(2*pi);
figure;subplot(211)
plot(xf,magH); grid on
title('巴特沃斯低通滤波器的幅频特性');
xlabel('频率/Hz');
ylabel('幅度/dB')
subplot(212)
plot(xf,phaH);xlabel('频率/Hz'); ylabel('相角/(rad/s)') %做出相角曲线
grid on
f=500;
Fs=8000;Ts=1/Fs;
[Bz,Az]=bilinear(b,a,Fs);
A=2;
L=8000;
t=(0:L-1)*Ts;
x=A*sin(2*pi*f*t)+1*A*sin(4*pi*f*t)+1*A*sin(6*pi*f*t);
y=filter(Bz,Az,x);
figure
subplot(211);plot(t(1:200)*1000,x(1:200)) %做出x的时域图,部分
title('x(t)采样后波形X(t)') ;xlabel('ms');
subplot(212);plot(t(1:200)*1000,y(1:200)) %做出经过滤波后的图形,部分
title('X(t)经过低通滤波器后波形'); xlabel('ms');
http://s12/mw690/002fwwXTzy6GOBrGWef9b&690
http://s14/mw690/002fwwXTzy6GOBrIEDb4d&690