您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 大连理工大学数字信号处理实验预习二
大连理工大学实验预习报告学院(系):电信专业:电子信息工程班级:电子1204姓名:梁宇学号:201281001组:___实验时间:实验室:实验台:指导教师签字:成绩:实验二、电话拨号音的合成与识别一、实验目的和要求本实验内容基于对电话通信系统中拨号音合成与识别的仿真实现。实验目的:1.电话拨号音合成的基本原理及识别的主要方法2.利用MATLAB软件以及FFT算法实现对电话通信系统中拨号音的合成与识别3.并进一步利用MATLAB中的图形用户界面GUI制作简单直观的模拟界面。在DTMF电话机中有16个按键,其中10个数字键0—9,6个功能键*、#、A、B、C、D。其中12个按键是我们比较熟悉的按键,另外由第4列确定的按键作为保留,作为功能键留为今后他用。二、实验原理和内容1.双音多频DTMF(DualToneMulti-Frequency)信号,是用两个特定的单音频率信号的组合来代表数字或功能。2.双音多频信号(Dual-ToneMulti-Frequency,DTMF)是电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。3.在使用双音多频信号之前,电话系统中使用一连串的断续脉冲来传送被叫号码,称为脉冲拨号。脉冲拨号需要电信局中的操作员手工完成长途接续。4.双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。5.双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如‘1’相当于频率为697Hz和1209Hz两个正弦信号的组合。交换机可以解码这些频率组合并确定所对应的按键。双音多频信号的产生1.CCITT(国际电报电话咨询委员会)对DTMF信号规定的指标是,传送/接接收率为每秒10个数字,即每个数字100ms。代表数字的音频信号必须持续至少45ms,但不超过55ms。100ms内其他时间为静音,以便区别连续的两个按键信号。2.图1所示典型DTMF信号频率范围是700-1700Hz,为满足Nyquist条件,选取8192Hz的采样频率。即1秒采样8192个点,则100ms采样820个点模拟按键信号。假设用410个点作为产生的DTMF信号,其他410个点的0来表示间隔来模拟静音。以便区别连续的两个按键信号。三、实验用到的Matlab命令和举例数字键对应的信号的产生•以产生0为例:•已知声音取样频率fS=8192Hz,0键对应的行频与列频分别是fL=941Hz和fH=1336Hz,则取样后wL=2pifL/fS=0.7217和wH=2pifH/fS=1.0247。•则0对应的信号产生为d0=sin(0.7217n)+sin(1.0247n)•产生0的matlab代码•n=[1:410];%每个数字用410个采样点表示•d0=sin(0.7217*n)+sin(1.0247*n);%对应行频列频叠加•space=zeros(1,410);%410个0模拟静音信号•phone=[d0,space];功能键对应的信号的产生•对于保留的两个功能键“*”“#”,按照现行键盘式拨号电话的习惯,将“*”作为删除键,“#”作为确认键。•“*”删除键的作用是将前面拨错的号码删除退回,表现为将显示窗口已经显示的错误号码退回一位数字,并且将连续拨号音信号的存储单元中退回一位拨号音信号和静音信号。删除可以进行连续的操作。•“#”确认键的作用是将前面拨过的号码进行确认保留,意味着此时连续拨号音信号的存储单元中的信号即为最后用于识别的连续拨号音DTMF信号,并在显示窗口中显示“#”号作为标记。•删除键实现代码n=[1:1000];num=get(handles.edit1,'string');l=length(num);n11=strrep(num,num,num(1:l-1));d11=sin(0.7217*n)+sin(0.9273*n);set(handles.edit1,'string',n11);globalNUML=length(NUM);NUM=NUM(1:L-1100);wavplay(d11,8192);双音多频信号的识别•对电话拨号音(DTMF)信号的检测识别可以直接计算付里叶变换得到输入的信号频率。这里采用FFT算法对信号进行解码分析。•首先对接收到的数字信号作FFT分析,计算出其幅频谱,进而得到功率谱。对于连续的双音多频(DTMF)信号,需要把有效的数字拨号信号从静音间隔信号中分割提取出来,然后再用FFT算法对信号进行解码分析。f=fft(d,8192);%以N=2048作FFT变换d是取出来每位拨号音的采样点a=abs(f);p=a.*a/handles.fs;%计算功率谱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;end
本文标题:大连理工大学数字信号处理实验预习二
链接地址:https://www.777doc.com/doc-2514757 .html