kcdreamer
2009-03-19, 21:46
各位大虾们,小弟做了一个模拟低通滤波器,但是不知道如何让信号通过,请帮帮忙,多谢!程序如下:
f1=100; %载波一频率
f2=200; %载波二频率
fs=2000; &采样频率
t=0:1/fs:0.1; &采样时间
x=2*cos(2*pi*f1*t)+4*cos(2*pi*f2*t); &合成信号
subplot(2,2,1)
plot(t,x)
k=1024; &信号x的fft
ff=fs*(0:k/2-1)/k;
p=abs(fft(x,k));
subplot(2,2,2)
plot(ff,p(1:k/2))
wp=2*pi*110; &模拟滤波器设计
ws=2*pi*130;
ap=2;as=20;
[n,wc]=buttord(wp,ws,ap,as,'s');
[b,a]=butter(n,wc,'s');
m=filter(b,a,x); &通过滤波器后的信号m
subplot(2,2,3)
plot(t,m)
subplot(2,2,4)
v=abs(fft(m,k));
plot(ff,v(1:k/2))
如果是因为信号是数字的,滤波器是模拟的,所以没有结果。那我将滤波器代码变为
wp=2*pi*110/fs; &模拟滤波器设计
ws=2*pi*130/fs;
ap=2;as=20;
[n,wc]=buttord(wp,ws,ap,as);
[b,a]=butter(n,wc);
后,为何滤出的波形和原先信号一样?就是说滤波器没起作用?望大虾们赐教!
f1=100; %载波一频率
f2=200; %载波二频率
fs=2000; &采样频率
t=0:1/fs:0.1; &采样时间
x=2*cos(2*pi*f1*t)+4*cos(2*pi*f2*t); &合成信号
subplot(2,2,1)
plot(t,x)
k=1024; &信号x的fft
ff=fs*(0:k/2-1)/k;
p=abs(fft(x,k));
subplot(2,2,2)
plot(ff,p(1:k/2))
wp=2*pi*110; &模拟滤波器设计
ws=2*pi*130;
ap=2;as=20;
[n,wc]=buttord(wp,ws,ap,as,'s');
[b,a]=butter(n,wc,'s');
m=filter(b,a,x); &通过滤波器后的信号m
subplot(2,2,3)
plot(t,m)
subplot(2,2,4)
v=abs(fft(m,k));
plot(ff,v(1:k/2))
如果是因为信号是数字的,滤波器是模拟的,所以没有结果。那我将滤波器代码变为
wp=2*pi*110/fs; &模拟滤波器设计
ws=2*pi*130/fs;
ap=2;as=20;
[n,wc]=buttord(wp,ws,ap,as);
[b,a]=butter(n,wc);
后,为何滤出的波形和原先信号一样?就是说滤波器没起作用?望大虾们赐教!