资源描述:
《数字信号处理实验报告--含噪语音信号的分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、大连理工大学实验报告学院(系):—专业:班级:姓名:学号:组:实验时间:实验室:实验台:指导教师签字:成绩:-实验五含噪语音信号的分析一、实验目的和要求二、实验原理和内容三、实验结果与分析第一部分:产生含噪的语音信号首先分析原始的语音信号的波形和频谱:[x,fs,bits]=wavread(,009.wav,);%sound(x,fs,bits);X=fft(x);tl=(O:length(x)-1)*fs/length(x)-fs/2;figure(1);subplot(2,l,l);plot(x);axis([0,400000,・2,2]);titleC原始语音信号时域波形J;sub
2、plot(2,l,2);plot(t1,fftshift(abs(X)));titleCJM始语音信号的频谱');%添加噪声N=length(x);noise=0.3*randn(size(x));xl=x+noise;Xl=fft(xl);t2=(0:length(x1)-l)*fs/length(xl)-fs/2;%sound(xl,fs,bits);figure(2);subplot(2,l,l);plot(x1);title(,加噪语咅信号吋域波形');subplot(2,l,2);plot(t2,fftshift(abs(X1噪语音信号的频谱');原始语音信号时域波形x1051
3、04104利用MATLAB命令生成含噪语音信号:wavwrite(xlAfsr16f1xl.wav1);将生成的xl.wav文件作为后续的GUI图形界面屮用于分析的语音信号。第二部分:GUI的设计首先搭建含有各个模块的界面:利用callback在.m文件中对各个模块进行代码的编辑(下面列出主要部分):1、输入咅频信号部分:functiontext1_Callback(hObject,eventdata,handies)%hObjecthandletotextl(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%h
4、andlesstructurewithhandlesanduserdata(seeGUIDATA)%读入一段咅频文件[filename,filepathJ=uigetfileC.wav7选择音频文件');if(filename==O)return;endaudeofile=strcat(filepath,filename);globalfs;globalyt;[handles.tdata,fs,handles.NBITS]=wavread(audeofile);%绘制时域波形图yt=handles.tdata;t=[0:l/fs:(length(handles.tdata)-l)/fs]
5、;%信号的时域长度subplot(handles.axesl);plot(t,handles.tdata);title(输入fl的波形图');%绘制频谱图N=length(t);fftdata=fft(handles.tdata.N);fdata=abs(fftdata);df=fs/N;f=[O:df:df*(N・l)]-fs/2;%求频率subplot(handles.axes3);plot(f,fftshift(fdata));titleC输入Fl(w)的频谱);2、设置低通部分:functionpopupmenu2_Callback(hObject,eventdata,handl
6、es)%hObjecthandletopopupmenu2(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%Hints:contents=cellstr(get(hObject,'String1))returnspopupmenu2contentsascellarray%contents{get(hObject/Value1)}returnsselecteditemfrompopupmenu2fc=str2do
7、uble(get(handles.edit1/String*));globalfs;globalbz;globalaz;wp=2*fc/fs;ws=2*1.2*fc/fs;ap=3;as=18;[N,wn]=buttord(wp,ws,ap,as);[bz,az]=butter(N,wn);[H,W]=freqz(bz,az);subplot(handles.axes4)plot(W,20*logl0(abs(H)));xlabel