电话拨号音地合成与识别.doc

上传人:李司机 文档编号:1132863 上传时间:2022-06-30 格式:DOC 页数:12 大小:547KB
返回 下载 相关 举报
电话拨号音地合成与识别.doc_第1页
第1页 / 共12页
电话拨号音地合成与识别.doc_第2页
第2页 / 共12页
电话拨号音地合成与识别.doc_第3页
第3页 / 共12页
电话拨号音地合成与识别.doc_第4页
第4页 / 共12页
电话拨号音地合成与识别.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《电话拨号音地合成与识别.doc》由会员分享,可在线阅读,更多相关《电话拨号音地合成与识别.doc(12页珍藏版)》请在三一办公上搜索。

1、一、 预习局部1. 实验目的2. 实验根本原理3. 主要仪器设备含必要的元器件、工具1实验目的:本实验基于对 通信系统中拨号音合成与识别的仿真实现,主要涉与到 拨号音合成的根本原理与识别的主要方法,利用 MATLAB 软件涉与 FFT 算法实现对 通信系统中拨号音的合成与识别。并进一步利用 MATLAB 中的图形用户界面 GUI 制作简单直观的模拟界面。使其对 通信系统拨号音的合成与识别有个根本的了解。能够利用矩阵不同的基频合成 0 9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出 的过程。进一步利用 GUI做出简单的图形操作界面。要求界面清楚,画面简洁,易于理解,

2、操作简单。从而实现对 拨号音系统的简单的实验仿真。2实验根本原理双音多频 DTMF Dual Tone Multi-Frequency 信号,是用两个特定的单音频率信号的组合来代表数字或功能。在 DTMF 机中有 16 个按键,其中 10个数字键 0 9 , 6 个功能键 * 、 # 、 A 、 B 、C 、 D 。其中 12 个按键是我们比拟熟悉的按键,另外由第 4 列确定的按键作为保存,作为功能键留为今后他用。根据 CCITT 建议,国际上采用 697Hz 、 770Hz 、 852Hz 、94lHz 低频群与 1209Hz 、 1336Hz 、 1477Hz 、 1633Hz 高频群。从

3、低频群和高频群任意各抽出一种频率进展组合,共有 16 种组合,代表 16 种不同的数字键或功能,每个按键唯一地由一组行频和列频组成,如表 1 所示。表 1 : DTMF 的组合功能3主要仪器设备: 工具软件:MATLAB涉与的MATLAB 函数1. Set功能:设置对象属性。根本调用格式:set(H,PropertyName,PropertyValue,.)用属性值PropertyValue设置关于用参量H 标志的对象一个或多个的属性名PropertyName一个或多个。H 可以为一句柄的向量。在这种情形下,命令set 可以设置所有对象的属性值。2. find功能:找出矩阵X 中非0 项的坐标

4、和取值。根本调用格式:row,col = find(X, .)常与逻辑运算法一起使用,可进一步明确搜索数值的X围。3. disp功能:显示文本或数组。根本调用格式:disp(X)4. struct功能:创建一个结构体数组。根本调用格式:s = struct(field1, values1, field2,values2, .)给每一个域名赋值,赋值可以为矢量也可以为标量,但是矢量必须有相同的维数。二、 实验操作局部1. 实验数据、表格与数据处理2. 实验操作过程可用图表示3. 实验结论1实验内容:1、图形 拨号面板的制作利用 GUI 图形用户界面设计工具制作 拨号面板,把 DTMF 信号和 机

5、的键盘矩阵对应起来。2、DTMF 信号的产生合成现在将对上节制作的图形 拨号面板上的各控件单位的动作和变化进展设置,即对 tu1.m 文件进展编辑。其主要的功能是使对应的按键,按照表 1 的对应关系产生相应的拨号音,完成对应行频与列频的叠加输出。此外,对于图形界面的需要,还要使按键的数字显示在拨号显示窗口中。鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取 1000个采样点模拟按键信号,并且每两个数字之间用 100 个 0 来表示间隔来模拟静音。以便区别连续的两个按键信号。间隔的静音信号也是在按键时产生的。3、DTMF 信号的检测识别要实现 拨号音 DTMF 信号的检测识别,

6、可以通过直接计算付里叶变换得到输入信号的组成频率。这里采用 FFT 算法对信号进展解码分析。首先对接收到的数字信号作 FFT 分析,计算出其幅度谱,进而得到功率谱,组成输入信号的频率必定对应功率谱的峰值。对于连续的双音多频 DTMF 信号,需要把有效的数字拨号信号从静音间隔信号。global NUMPlayer_N=audioplayer(NUM,8192);playblocking(Player_N);L=length(NUM);n=L/1100;number=;for i=1:nj=(i-1)*1100+1;d=NUM(j:j+999); % 截取出每个数字f=fft(d,2048); %

7、 以 N=2048 作 FFT 变换a=abs(f); p=a.*a/10000; % 计算功率谱num(1)=find(p(1:250)=max(p(1:250); % 找行频num(2)=300+find(p(300:380)=max(p(300:380); % 找列频if (num(1) 180) row=1; % 确定行数elseif (num(1) 200) row=2; elseif (num(1) 220) row=3; else row=4; end if (num(2) 320) column=1; % 确定列数elseif (num(2) 340) column=2; el

8、se column=3; end z=row,column; % 确定数字if z=4,2 tel=0; elseif z=1,1 tel=1; elseif z=1,2 tel=2; elseif z=1,3 tel=3; elseif z=2,1 tel=4; elseif z=2,2 tel=5; elseif z=2,3 tel=6; elseif z=3,1 tel=7; elseif z=3,2 tel=8; elseif z=3,3 tel=9; end t(i)=tel; c=strcat(number,int2str(tel); number=c; i=i+1; end se

9、t(3,string,number); 2实验过程与相关程序代码:1、DTMF 信号的产生合成以按键 1 为例,简单介绍拨号音产生的过程代码如下:function pushbutton1_Callback(hObject, eventdata, handles)n=1:1000; d1=sin(0.5342*n)+sin(0.9268*n); % 对应行频列频叠加n1=strcat(get(handles.edit1,string),1); % 获取数字set(handles.edit1,string,n1); % 显示space=zeros(1,100); global NUMphone=N

10、UM,d1;NUM=phone,space; % 存储连续的拨号音player1=audioplayer(d1,8192); playblocking(player1); %产生拨号音2、删除键:function pushbutton10_Callback(hObject, eventdata, handles)n=1:1000;num=get(1,string);l=length(num);n10=strrep(num,num,num(1:l-1); %去掉末位在拨面板上的显示d10=sin(0.7217*n)+sin(0.9273*n);set(1,string,n10);global N

11、UML=length(NUM);NUM=NUM(1:L-1100); %删除末位在拨号音信号中的存储 player10=audioplayer(d10,8192); playblocking(player10); %产生拨号音3、确认键:function pushbutton12_Callback(hObject, eventdata, handles)global n_show;n_show=strcat(get(handles.edit1,string); %保存屏幕中显示的set(handles.edit1,string,#); % 显示确认的标识n=1:1000; d12=sin(0.

12、7214*n)+sin(1.1322*n); %对应行频列频叠加 guidata(hObject, handles); player12=audioplayer(d12,8192);playblocking(player12); %产生拨号音4、绘制数字频谱:以按键0为例:n=1:1000; d0=sin(0.7214*n)+sin(1.0242*n); D0=fft(d0); %傅里叶变换figure(1); %绘制频谱图plot(tt1,fftshift(abs(D0);title(按键0的频谱图);5、清空键:function pushbutton14_Callback(hObject,

13、 eventdata, handles)n=1:1000; dB=sin(0.5903*n)+sin(1.2519*n);space=zeros(1,100);playerB=audioplayer(dB,8192); playblocking(playerB);global NUM;global n_show;NUM=; % 清空拨号音信号n_show=; % 清空显示信号set(handles.edit1,string,); % 清空显示6、显示键显示保存的:function pushbutton15_Callback(hObject, eventdata, handles)n=1:100

14、0; dC=sin(0.6513*n)+sin(1.2519*n);space=zeros(1,100); playerC=audioplayer(dC,8192); playblocking(playerC);global n_show; set(handles.edit1,string,n_show); % 显示保存的7、重播建:function pushbutton16_Callback(hObject, eventdata, handles)global NUMif(length(NUM)=0) n=1:1000; dD=sin(0.7214*n)+sin(1.2519*n); spa

15、ce=zeros(1,100); playerD=audioplayer(dD,8192); % 产生按键D的声音 playblocking(playerD);else player_NUM=audioplayer(NUM,8192); % 重播拨号音信号 playblocking(player_NUM);end3实验现象:各个数字按键音的频谱: 拨号界面:显示拨号界面 确认保存界面三、 实验效果分析包括仪器设备等使用效果1分析总结1、一个数字拨号音分别从高频群和低频群取一种频率合成得到。2、“*号删除键只是实现每次仅删除一位,用于在不小心输错后的修改;而“清空键实现对编辑框和全局变量NUM的清零,便于再次输入新。3、遇到的问题由于版本的原因,实验指导书中的wavplay不能用,经发现后改为audioplayer。2心得体会:通过本次实验,理解了 拨号音合成的原理与识别方法。并进一步熟练了MATLAB的使用方法,提高了运用MATLAB工具分析解决实际问题的能力。四、 教师评语指导教师 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号