椭圆低通滤波器基于matlab设计程序如下,求每句注释
%连续信号的产生及采样clearFs=100;t=(1:100)/Fs;s1=sin(2*pi*t*5);s2=sin(2*pi*t*15);s3=sin(2*pi*t*...
%连续信号的产生及采样
clear
Fs=100;
t=(1:100)/Fs;
s1=sin(2*pi*t*5);
s2=sin(2*pi*t*15);
s3=sin(2*pi*t*30);
s=s1+s2+s3;
plot(t,s);
xlabel('时间(s)');
ylabel('幅值');
grid;
%椭圆低通滤波器的设计
[b,a]=ellip(5,0.1,40,5*2/Fs);
[H,w]=freqz(b,a,512);
plot(w*Fs/(2*pi),abs(H));
xlabel('频率(Hz)');ylabel('频率响应图');
grid;
%对滤波后的信号进行分析和变换
sf=filter(b,a,s);
plot(t,sf);
xlabel('时间 (s)');
ylabel('幅值');
axis([0 1 -1 1]);
S=fft(s,512);
SF=fft(sf,512);
w=(0:255)/256*(Fs/2);
plot(w,abs([S(1:256)' SF(1:256)']));
xlabel('频率(Hz)');
ylabel('傅立叶变换图');
grid;
legend({'before','after'}); 展开
clear
Fs=100;
t=(1:100)/Fs;
s1=sin(2*pi*t*5);
s2=sin(2*pi*t*15);
s3=sin(2*pi*t*30);
s=s1+s2+s3;
plot(t,s);
xlabel('时间(s)');
ylabel('幅值');
grid;
%椭圆低通滤波器的设计
[b,a]=ellip(5,0.1,40,5*2/Fs);
[H,w]=freqz(b,a,512);
plot(w*Fs/(2*pi),abs(H));
xlabel('频率(Hz)');ylabel('频率响应图');
grid;
%对滤波后的信号进行分析和变换
sf=filter(b,a,s);
plot(t,sf);
xlabel('时间 (s)');
ylabel('幅值');
axis([0 1 -1 1]);
S=fft(s,512);
SF=fft(sf,512);
w=(0:255)/256*(Fs/2);
plot(w,abs([S(1:256)' SF(1:256)']));
xlabel('频率(Hz)');
ylabel('傅立叶变换图');
grid;
legend({'before','after'}); 展开
2个回答
展开全部
%椭圆低通滤波器的设计
[b,a]=ellip(5,0.1,40,5*2/Fs);
关键是ellip这个函数的使用,第一个参数表示滤波器的阶数,第二个参数表示通带波纹度,单位dB,第三个参数表示阻带衰减,单位dB,第四个参数表示归一化的低通滤波器截止频率,计算公式如下,假设截止频率为F,则有:
第四个参数=F/(Fs/2)=F*2/Fs
由上面的描述可知,该滤波器的截止频率为5Hz,所以会把15和30Hz滤掉,不过我觉得截止频率设为10Hz会更好一点,你说呢。
剩下的比较简单,有不懂的欢迎追问。
[b,a]=ellip(5,0.1,40,5*2/Fs);
关键是ellip这个函数的使用,第一个参数表示滤波器的阶数,第二个参数表示通带波纹度,单位dB,第三个参数表示阻带衰减,单位dB,第四个参数表示归一化的低通滤波器截止频率,计算公式如下,假设截止频率为F,则有:
第四个参数=F/(Fs/2)=F*2/Fs
由上面的描述可知,该滤波器的截止频率为5Hz,所以会把15和30Hz滤掉,不过我觉得截止频率设为10Hz会更好一点,你说呢。
剩下的比较简单,有不懂的欢迎追问。
2012-06-24
展开全部
啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询