y1=wavread('F:\WorkSpace\MATLAB\Assignment\song.wav');
fs=8000;
L=length(y1);
t=0:1/fs:(L-1)/fs;
figure(1);
subplot(221)
plot(t,y1);
title('原始语音信号时域波形');xlabel('时间 / s');ylabel('y(t)');
Y1=fft(y1,L);
subplot(222)
plot(t,abs(Y1));
title('原始语音信号频谱图');xlabel('Ω / π');ylabel('Y(jΩ)');
f0=10000;
y0=cos(f0*2*pi*t);
y2=y0'+y1;
subplot(223)
plot(t,y2);
title('含噪音的时域波形');xlabel('时间 / s');ylabel('y(t)');
Y2=fft(y2,L);
subplot(224)
plot(t,abs(Y2));
title('含噪音的频谱图');xlabel('Ω / π');ylabel('Y(jΩ)');
Wp1=3000;
Ws1=3200;
Rp=1;
Rs=100;
[N1,Wn1]=ellipord(Wp1,Ws1,Rp,Rs,'s');
[b1,a1]=ellip(N1,Rp,Rs,Wn1,'s');
[bz1,az1]=bilinear(b1,a1,fs);
figure(2);
freqz(bz1,az1);
title('IIR数字低通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB');
subplot(212)
title('IIR数字低通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
Wp2=3600;
Ws2=3400;
[N2,Wn2]=ellipord(Wp2,Ws2,Rp,Rs,'s');
[b2,a2]=ellip(N2,Rp,Rs,Wn2,'high','s');
[bz2,az2]=bilinear(b2,a2,fs);
figure(3);
freqz(bz2,az2);
title('IIR数字高通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB' );
subplot(212)
title('IIR数字高通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
Wp3=[800,3000]/fs;
Ws3=[600,3200]/fs;
[N3,Wn3]=ellipord(Wp3,Ws3,Rp,Rs,'s');
[b3,a3]=ellip(N3,Rp,Rs,Wn3);
figure(4);
freqz(b3,a3);
title('IIR数字带通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB');
subplot(212)
title('IIR数字带通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
figure(5)
subplot(221)
g1=filter(bz1,az1,y2);
plot(t,g1)
title('IIR数字低通滤波器');xlabel('时间 / s');ylabel('y(t)');
subplot(222)
g2=filter(bz2,az2,y2);
plot(t,g2)
title('IIR数字高通滤波器');xlabel('时间 / s');ylabel('y(t)');
subplot(223)
g3=filter(b3,a3,y2);
plot(t,g3)
title('IIR数字带通滤波器');xlabel('时间 / s');ylabel('y(t)');
Ws4=3200/fs;
Wp4=3000/fs;
Wc4=(Ws4+Wp4)/2/pi;
N4=ceil(12*pi/(Ws4-Wp4));
N4=N4+mod(N4+1,2);
b4=fir1(N4-1,Wc4,blackman(N4));
figure(6);
freqz(b4,1);
title('FIR数字低通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB');
subplot(212)
title('FIR数字低通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
Ws5=3400/fs;
Wp5=3600/fs;
Wc5=(Ws5+Wp5)/2/pi;
N5=ceil(12*pi/(Wp5-Ws5));
N5=N5+mod(N5+1,2);
b5=fir1(N5-1,Wc5,'high',blackman(N5));
figure(7);
freqz(b5,1);
title('FIR数字高通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB');
subplot(212)
title('FIR数字高通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
Ws6_1=600/fs;
Ws6_2=3200/fs;
Wp6_1=800/fs;
Wp6_2=3000/fs;
Wc6=[(Ws6_1+Wp6_1)/2/pi (Ws6_2+Wp6_2)/2/pi];
bt=min((Wp6_1-Ws6_1),(Ws6_2-Wp6_1));
N6=ceil(12*pi/bt);
N6=N6+mod(N6+1,2);
b6=fir1(N6-1,Wc6,blackman(N6));
figure(8);
freqz(b6,1);
title('FIR数字带通滤波器幅频特性');xlabel('ω / π');ylabel('幅度 / dB');
subplot(212)
title('FIR数字带通滤波器相频特性');xlabel('ω / π');ylabel('相位 / °');
figure(9)
subplot(221)
g4=filter(b4,1,y2);
plot(t,g4)
title('FIR数字低通滤波器');xlabel('时间 / s');ylabel('y(t)');
subplot(222)
g5=filter(b5,1,y2);
plot(t,g5)
title('FIR数字高通滤波器');xlabel('时间 / s');ylabel('y(t)');
subplot(223)
g6=filter(b6,1,y2);
plot(t,g6)
title('FIR数字带通滤波器');xlabel('时间 / s');ylabel('y(t)');
figure(10)
subplot(221)
plot(t,y1)
title('原始语音信号');xlabel('时间 / s');ylabel('y(t)');
subplot(222)
plot(t,g1)
title('IIR数字低通滤波器');xlabel('时间 / s');ylabel('y(t)');
subplot(223)
plot(t,g4)
title('FIR数字低通滤波器');xlabel('时间 / s');ylabel('y(t)');
基于MATLAB的IIR、FIR滤波器滤波模拟源文件
3星 · 超过75%的资源 需积分: 17 56 浏览量
2014-01-16
09:08:38
上传
评论
收藏 7.87MB ZIP 举报
aTTracT10
- 粉丝: 5
- 资源: 15
最新资源
- C程序语言设计 课程设计-万年历程序
- 基于Vue和CSS的泛康云诊所前端设计源码
- stc15xx-STC8-sch-pcb-library-ver1.0 STC单片机的原理图和PCB库文件资料
- 基于Scala的微服务架构后台服务设计源码 - biBACK
- 基于Java的日志推送appender设计源码 - logback-push-appender
- MedievalV1PathTracingBack00000-1920x1080-7e4d63a5fecdc81444c4cacd46d528da.avif
- 基于Vue的医疗消毒检测管理系统设计源码
- 老公-2405282109.awb
- 老公-2405282044.awb
- 8bccc0032ca49b59886db7a4af668bf8.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈