下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./理工大学实验报告学院〔系:专业:班级:姓名:学号:组:___实验时间:实验室:实验台:指导教师签字:成绩:实验二拨号音合成与识别一、实验结果与分析数字拨号音频谱分析〔代码与频谱:.n=[1:410];fs=8192;d1=sin<2*pi*697/fs*n>+sin<2*pi*1209/fs*n>;D1=fft<d1>;t1=<0:length<d1>-1>*fs/length<d1>-fs/2;figure<1>;plot<t1,fftshift<abs<D1>>>;title<'按键‘1’d1=sin<2*pi*697/fs*n>+sin<2*pi*1336/fs*n>;D1=fft<d1>;figure<2>;plot<t1,fftshift<abs<D1>>>;title<'按键‘2’d1=sin<2*pi*697/fs*n>+sin<2*pi*1477/fs*n>;D1=fft<d1>;figure<3>;plot<t1,fftshift<abs<D1>>>;title<'按键‘3’d1=sin<2*pi*770/fs*n>+sin<2*pi*1209/fs*n>;D1=fft<d1>;figure<4>;plot<t1,fftshift<abs<D1>>>;title<'按键‘4’d1=sin<2*pi*770/fs*n>+sin<2*pi*1336/fs*n>;D1=fft<d1>;figure<5>;plot<t1,fftshift<abs<D1>>>;title<'按键‘5’d1=sin<2*pi*770/fs*n>+sin<2*pi*1477/fs*n>;D1=fft<d1>;figure<6>;plot<t1,fftshift<abs<D1>>>;title<'按键‘6’d1=sin<2*pi*852/fs*n>+sin<2*pi*1209/fs*n>;D1=fft<d1>;figure<7>;plot<t1,fftshift<abs<D1>>>;title<'按键‘7’d1=sin<2*pi*852/fs*n>+sin<2*pi*1336/fs*n>;D1=fft<d1>;figure<8>;plot<t1,fftshift<abs<D1>>>;title<'按键‘8’d1=sin<2*pi*852/fs*n>+sin<2*pi*1477/fs*n>;D1=fft<d1>;figure<9>;plot<t1,fftshift<abs<D1>>>;title<'按键‘9’d1=sin<2*pi*941/fs*n>+sin<2*pi*1209/fs*n>;D1=fft<d1>;figure<10>;plot<t1,fftshift<abs<D1>>>;title<'按键‘*’的频谱'>;d1=sin<2*pi*941/fs*n>+sin<2*pi*1336/fs*n>;D1=fft<d1>;figure<11>;plot<t1,fftshift<abs<D1>>>;title<'按键‘0’d1=sin<2*pi*941/fs*n>+sin<2*pi*1477/fs*n>;D1=fft<d1>;figure<12>;plot<t1,fftshift<abs<D1>>>;title<'按键‘#’的频谱'>;.频谱图如下:图形拨号面板的制作:首先是框架的搭建:利用callback在.m文件中对各个模块进行代码的编辑〔下面列出主要部分:1、数字0~9的显示与发声〔以数字‘7’%Executesonbuttonpressinpushbutton7.functionpushbutton7_Callback<hObject,eventdata,handles>%hObjecthandletopushbutton7<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>n0=strcat<get<handles.numshow,'string'>,'7'>;%获取数字set<handles.numshow,'string',n0>;%显示n=[1:handles.DTMFnum];%每个数字410个采样点表示d0=sin<2*pi*852/handles.fs*n>+sin<2*pi*1209/handles.fs*n>;%对应行频列频叠加space=zeros<1,handles.DTMFnum>;%400个0模拟静音信号phone=[handles.NUM,d0];handles.NUM=[phone,space];%存储连续的拨号音信号guidata<hObject,handles>;wavplay<d0,8192>;2、删除键‘*’的代码:%Executesonbuttonpressinpushbutton11.functionpushbutton11_Callback<hObject,eventdata,handles>%hObjecthandletopushbutton11<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>n=[1:1000];num=get<handles.numshow,'string'>;l=length<num>;n11=strrep<num,num,num<1:l-1>>;d11=sin<0.7217*n>+sin<0.9273*n>;set<handles.numshow,'string',n11>;L=length<handles.NUM>;handles.NUM=handles.NUM<1:L-820>;guidata<hObject,handles>;wavplay<d11,8192>;3、确认键‘#’的代码:%Executesonbuttonpressinpushbutton12.functionpushbutton12_Callback<hObject,eventdata,handles>%hObjecthandletopushbutton12<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>n0=strcat<get<handles.numshow,'string'>,'#'>;%获取数字set<handles.numshow,'string',n0>;%显示n=[1:handles.DTMFnum];%每个数字410个采样点表示d0=sin<2*pi*941/handles.fs*n>+sin<2*pi*1477/handles.fs*n>;%对应行频列频叠加guidata<hObject,handles>;wavplay<d0,8192>;4、清空键‘Reset’的代码:%ExecutesonbuttonpressinbtFW.functionbtFW_Callback<hObject,eventdata,handles>%hObjecthandletobtFW<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>handles.NUM=[];set<handles.numshow,'string',[]>;%显示set<handles.numRec,'string',[]>;%显示guidata<hObject,handles>;5、显示键的代码:%ExecutesonbuttonpressinbtRec.functionbtRec_Callback<hObject,eventdata,handles>%hObjecthandletobtRec<seeGCBO>%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata<seeGUIDATA>L=length<handles.NUM>;n=L/handles.DTMFsum;number='';fori=1:nj=<i-1>*handles.DTMFsum+1;d=handles.NUM<j:j+<handles.DTMFnum-1>>;%截取出每个数字f=fft<d,8192>;%以N=2048作FFT变换a=abs<f>;p=a.*a/handles.fs;%计算功率谱%p=a.*a/10000;%计算功率谱num<1>=find<p<1:1000>==max<p<1:1000>>>;%找行频num<2>=1000+find<p<1000:1700>==max<p<1000:1700>>>;%找列频if<num<1><730>row=1;%确定行数elseif<num<1><810>row=2;elseif<num<1><900>row=3;elserow=4;endif<num<2><1260>column=1;%确定列数elseif<num<2><1400>column=2;elsecolumn=3;endz=[row,column];%确定数字ifz==[4,2]tel=0;elseifz==[1,1]tel=1;elseifz==[1,2]tel=2;elseifz==[1,3]tel=3;elseifz==[2,1]tel=4;elseifz==[2,2]tel=5;elseifz==[2,3]tel=6;elseifz==[3,1]tel=7;elseifz==[3,2]tel=8;elseifz==[3,3]tel=9;endt<i>=tel;c=strcat<number,int2str<tel>>;number=c;i=i+1;endset<handles.numRec,'string',number>;%显示GUI界面的操作: 〔1初始化界面 〔2输入数字后的界面〔3按‘*’后删除一位 〔4按‘#’后确认键 〔5按下显示键显示出来 〔6按下Reset键清空二、讨论、建议、质疑做本实验分两部分,第一部分是做图形化〔GUI界面的设计,第二部分是做信号的频谱分析。做GUI设计中的问题:删除键部分‘*’在ppt模板的基础上,将全局变量globalNUM删掉了,而改为用句柄handles.NUM.还有就是用guidata<hObject,han
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论