MATLAB的语音信号滤波设计与实现 .docx
《MATLAB的语音信号滤波设计与实现 .docx》由会员分享,可在线阅读,更多相关《MATLAB的语音信号滤波设计与实现 .docx(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习北京理工高校珠海学院课程设计可编辑资料 - - - 欢迎下载精品名师归纳总结学院: 信息科学技术学院专业: 06 级信息工程班级: 信工 3 班姓名: 谢明学号:0601331007基于 MATLAB的语音信号滤波设计与实现一、试验目的:(1) 完成对语音信号的采集、频谱分析及滤波。(2) 比较滤波前后语音信号的波形及频谱。二、试验原理:三试验设计内容 巴特沃思滤波器滤波%参%数%初始化 %clear all。 % 关闭以往仿真的数据栈A=5。 %噪声的振幅u1=0.01。%噪声振幅
2、的衰减系数u2=0.02。u3=0.03。f1=50。%多频噪声频率f2=200。f3=800。Y,fs,bits=wavread0601331007.wav %读出信号 1,采样率和采样位数% soundY,fs。% X,Fs,bits=wavread0601331007.wav。 %读出信号 2,采样率和采样位数n=lengthY。 %求采样信号 1 的长度% m=lengthX。 %求采样信号 2 的长度t=0:1/fs:n-1/fs 。 %求采样信号 1 时域上的采样点数% t1=0:1/Fs:m-1/fs 。 %求采样信号 2 时域上的采样点数% % % % % % t=0:n-1/
3、fs。% 构造噪声 %y1=u1*A*sin2*pi*f1*t+u1*A*sin2*pi*f2*t%两两噪声相加y2=u1*A*sin2*pi*f3*t y=y1+y2% % % % % % Z1=u1*A*sin2*pi*f1*t1+u1*A*sin2*pi*f2*t1%两两噪声相加% % % % % % Z2=u1*A*sin2*pi*f3*t1可编辑资料 - - - 欢迎下载精品名师归纳总结% % % % % % Z=Z1+Z2% figure1%画出噪声的时域图,取200 个点% % % % % % % % % % plott ,。y grid on 。% plott1:200,y1:
4、200 。grid on 。% xlabel时间 t 。% ylabel幅度( y。% title 噪声的时域图 。% Fy=ffty,n。 %对噪声进行傅立叶变换% Fy1=absFy。% n1=floorn/2 。 %对 zhang 求采样点数的一半% n2=floorm/2 。 %对 zhanglow 求采样点数的一半% f=0:n1*fs/n 。 %时域上的采样点数% f1=0:n2*Fs/m。 %时域上的采样点数% figure2%画出噪声的频谱图% plotf,Fy11:n1+1。grid on。% xlabel频率( f) 。% ylabel 幅度( Fy1)。% title 噪
5、声的频谱图 。% %加%噪声前后的时域图比较%Y=Y:,1。%此处假设声音是双声道的,只取单声道作分析% X=X:,1。%此处假设声音是双声道的,只取单声道作分析Y1=y+Y。%对采样信号进行转置再加上噪声% pause10。% 暂停 10ssoundY1,fs。% 读出加噪声后的采样信号% figure3 %画出加噪声前后的时域比较图% subplot2,1,1。plott,Y 。grid on 。% plott1:1000,Y1:1000 。grid on 。% xlabel时间 t 。% ylabel幅度( Y。% title 加噪声前的时域图 。% subplot2,1,2。plott
6、,Y1 。grid on 。% % % % % % % % % % plott1:1000,Y11:1000。 grid on 。% xlabel时间 t 。% ylabel幅度( Y1。% title 加噪声后的时域图 。% %加%可编辑资料 - - - 欢迎下载精品名师归纳总结噪声前后的频域图比较% FY=fftY1,n。 %对加噪声后的采样信号1 进行傅立叶变换% FY1=absFY。% FY2=fftY,n。%对加噪声前的采样信号1 进行傅立叶变换% FY3=absFY2。% FX=fftX,m。 %对加噪声前的采样信号2 进行傅立叶变换% FX4=absFX。% figure4 %画
7、出加噪声前后的频域比较图% subplot2,1,1。% plotf,FY31:n1+1。grid on 。% xlabel频率( f) 。% ylabel 幅度( FY3) 。% title 加噪声前的频谱图 。% subplot2,1,2。% plotf,FY11:n1+1。grid on 。% xlabel频率( f) 。% ylabel 幅度( FY1) 。% title 加噪声后的频谱图 。% %不同音调相同音量信号的频域、时域图比较% figure5% subplot2,2,1。plotf,FY31:n1+1。grid on 。%xlabel频 率( f) 。ylabel 幅度(
8、FY3) 。titlezhang 加噪声前的频谱图 。% subplot2,2,3。plotf1,FX41:n2+1 。grid on 。%xlabel频 率( f) 。ylabel 幅度( FX4) 。titlezhanglow 加噪声前的频谱图 。% subplot2,2,2。plott,Y 。grid on 。%xlabel时 间 t 。ylabel幅度( Y。titlezhang 加噪声前的时域图 。% subplot2,2,4。plott1,X 。grid on。%xlabel时 间 t1 。ylabel 幅度( X。titlezhanglow 加噪声前的时域图 。% % sound
9、Y1,fs。%读出加噪后的信号%构造巴特沃思滤波器 %figure6。 %画出 zhang 加噪声后的时域图plott,Y1 。xlabel 时间 t 。ylabel 幅度( Y1。titlelishuai 加噪声后的时域图 。grid on。% axis0.04 0.06 -3 3。%构%造 800Hz 的带阻滤波器 %可编辑资料 - - - 欢迎下载精品名师归纳总结f0_stop1=800 。%fc=20。%设定过渡带的频率Rp=1。%通带区的波纹系数Rs=30。%阻带区的波纹系数wp_stop1=f0_stop1-fc/fs/2 f0_stop1+fc/fs/2。% 通带的拐角频率ws_
10、stop1=f0_stop1-5*fc/fs/2 f0_stop1+5*fc/fs/2。 % 阻带的拐角频率N_stop1,wc_stop1=buttordwp_stop1,ws_stop1,Rp,Rs,s 。%求出巴特沃思滤波器的阶数N 及频率参数wcnum_stop1,den_stop1=butterN_stop1,wc_stop1,stop。% 求出巴特沃斯带阻数字滤波器的传递函数模型系数h_stop1,w_stop1=freqznum_stop1,den_stop1,fs% 求出离散系统频率响应的数值figure7。subplot2,3,1 。%画出带阻滤波器的幅频特性图plotw_s
11、top1*fs/2*pi,20*log10absh_stop1。xlabel 频率( w_stop1 ) 。ylabel 幅度( h_stop1 。title 带阻滤波器在800Hz 处的幅频特性图 。gridon。B_stop1=filternum_stop1,den_stop1,Y1 。%对含噪信号 Y1 进行带阻滤波% pause10。% soundB_stop1,fs。% 读出滤去 800Hz 噪声后的采样信号subplot2,3,4 。%画出带阻滤波器滤去800Hz 噪声后的时域图plott,B_stop1 。xlabel 时间 t) 。ylabel 幅度( B_stop1。titl
12、e 用带阻滤波器滤去 800Hz 噪声后的时域图 。grid on 。% axis0.04 0.06 -30 3。%构%造 200Hz 的带阻滤波器 %f0_stop2=200 。wp_stop2=f0_stop2-fc/fs/2 f0_stop2+fc/fs/2。% 通带的拐角频率ws_stop2=f0_stop2-5*fc/fs/2 f0_stop2+5*fc/fs/2。% 阻带的拐角频率N_stop2,wc_stop2=buttordwp_stop2,ws_stop2,Rp,Rs,s 。% 求出巴特沃思滤波器的阶数N 及频率参数wcnum_stop2,den_stop2=butterN_
13、stop2,wc_stop2,stop。%求出巴特沃斯带阻数字滤波器的传递函数模型系数h_stop2,w_stop2=freqznum_stop2,den_stop2,fs% 求出离散系统频率响应的数值subplot2,3,2 。plotw_stop2*fs/2*pi,20*log10absh_stop2。xlabel 频率( w_stop2 ) 。ylabel 幅度( h_stop2 。title 带阻滤波器在200Hz 处的幅频特性图 。gridon。B_stop2=filternum_stop2,den_stop2,B_stop1 。%对含噪信号 Y1 进行带阻滤波% pause10。%
14、 soundB_stop2,fs。% 读出滤去 800Hz 和 200Hz 噪声后的采样信号subplot2,3,5 。%画出带阻滤波器滤去800Hz 和 200Hz 噪声后的时域图plott,B_stop2 。xlabel 时间 t) 。ylabel 幅度( B_stop2。title 带阻滤波器滤去 800Hz 和 200Hz 噪声后的时域图 。grid on。% axis0.04 0.06 -3 3。可编辑资料 - - - 欢迎下载精品名师归纳总结%构%造 50Hz 的带阻滤波器 %f0_stop3=50ws_stop3=f0_stop3-fc/fs/2% 阻带的拐角频率wp_stop3
15、=f0_stop3+5*fc/fs/2% 通带的拐角频率Wws=0.0075。Wwp=0.0375 。N_stop3,wc_stop3=buttordWwp,Wws,Rp,Rs,s 。% 求出巴特沃思滤波器的阶数N 及频率参数 wc num_stop3,dem_stop3=butterN_stop3,wc_stop3,high。% 求出巴特沃斯高通数字滤波器的传递函数模型系数h_stop3,w_stop3=freqznum_stop3,dem_stop3,fs 。%求出离散系统频率响应的数值subplot2,3,3 。 %画出高通滤波器的幅频特性图plotw_stop3*fs/2*pi,20*
16、log10absh_stop3。xlabel 频率( w_stop3 ) 。ylabel 幅度( h_stop3 。title 高通滤波器在 50Hz 处的幅频特性图 。grid on 。B_stop3=filternum_stop3,dem_stop3,B_stop2 。subplot2,3,6 。%画出高通滤波器滤去800Hz 和 200Hz 和 50Hz 噪声后的时域图plott,B_stop3 。xlabel 时间 t )。ylabel 幅度( B_stop3。title 滤去 800Hz 和 200Hz 和 50Hz 噪声后的时域图 。grid on。% axis0 10 -6000
17、0 60000。%用%不%同 的滤 波 器滤 去 相 噪声 频 率 后的 时 域比 较图 %figure8。subplot2,2,1 。plott,Y1 。grid on。xlabel 时间 t 。ylabel 幅度( Y1。title 加噪声后的时域图 。subplot2,2,2 。plott,B_stop1 。xlabel 时间 t ) 。ylabel 幅度( B_stop1。title 用带阻滤波器滤去 800Hz 噪声后的时域图 。grid on。subplot2,2,3 。plott,B_stop2 。xlabel 时间 t ) 。ylabel 幅度( B_stop2。title 带
18、阻滤波器滤去 800Hz 和 200Hz 噪声后的时域图 。grid on 。subplot2,2,4 。plott,B_stop3 。xlabel 时间 t ) 。ylabel 幅度( B_stop3。title 高通滤波器滤去800Hz 和 200Hz 和 50Hz 噪声后的时域图 。grid on 。%用%不 同 的 滤 波 器 滤 去 相 应 噪 声 频 率 后 的 频 域 比较 %figure9。FY=fftY1,n。%对加噪声后的采样信号1 进行傅立叶变换FY1=absFY。 n1=floorn/2 。f=0:n1*fs/n 。FY_B_stop1=fftB_stop1,n。 %对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB的语音信号滤波设计与实现 MATLAB 语音 信号 滤波 设计 实现
限制150内