ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:217.72KB ,
资源ID:9959754      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9959754.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电话拨号音的识别.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电话拨号音的识别.docx

1、电话拨号音的识别数字信号处理实验课题论文设计题目:电话拨号音的识别专业:通信工程年级:2013级日期:2015年12月17日 1.1简介 1.2 实验目的 1.3基本原理 1.4具体实现步骤 1.4.1 图形电话拨号面板的制作 1.4.2 DTMF信号的产生合成 1.4.3 DTMF信号的检测识别 1.4.4 仿真结果-拨号音的识别总结改进与完善参考文献附 录1.1简介基于对电话通信系统中拨号音识别的仿真实现,第一步我们需了解电话拨号音识别的基本原理和主要方法,之后利用 MATLAB 软件以及 FFT 算法实现对电话通信系统中拨号音的识别,最后对电话数字拨号模拟1.2 实验目的 电话拨号音识别

2、就是利用矩阵不同的基频合成 0 9 不同按键的拨号音,并能够对不同的拨号音加以正确的识别,实现由拨号音解析出号码数字的过程。进一步利用 GUI 做出简单的图形操作界面,从而实现对电话拨号音系统的简单的计算机仿真。1.3基本原理 电话拨号音识别的基本原理涉及到双音多频 DTMF(Dual Tone Multi Frequency),它是由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信令有16个编码。双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。双音多频的拨号键盘是44的矩阵,每一行代表一个低频,每一列代表一个高

3、频。每按一个键就发送一个高频和低频的正弦信号组合,比如1相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。DTMF编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF信号中检测击键或数字信息的存在性。一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号。电话机中通常有16个按键,其中有10个数字键09和6个功能键*、#、A、B、C、D。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中

4、任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。根据CCITT的建议,国际上采用的多种频率为697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能键,具体组合见下表。表一:DTMF 的组合功能1.4具体实现步骤1.4.1图形电话拨号面板的制作 创建GUI步骤:在主界面菜单栏上点击File-New-GUI,选择Blank GUI(Default),即可进入GUI图形用户界面。利用GUI 图形用户界面设计工具制作电话拨号面板,把 DTMF 信号和电话机的键盘

5、矩阵对应起来。其中选用我们熟悉的 10 个数字键 0 9 ,2 个功能键“ * ”、“”,另四个键省略。按照图 1 电话机键盘矩阵的排列方式制作四行三列的按键控件。每个按键可用 ( Push Button )添加。 然后,为了更直观的反映对应的按键号码,可以设置一个编辑框,用于动态的显示拨号号码,模拟实际电话的拨号显示窗口。编辑框可用 ( Edit Text )添加。 最终利用 GUI 图形用户界面设计工具生成的图形电话拨号面板用于拨号音的合成产生部分,如下图所示。这里将其保存为tu1.fig文件。 1.4.2 DTMF 信号的产生合成 现在将对上节制作的图形电话拨号面板上的各控件单位的动作和

6、变化进行设置,即对 tu1.m 文件进行编辑。其主要的功能是使对应的按键,按照表 1 的对应关系产生相应的拨号音,完成对应行频及列频的叠加输出。此外,对于图形界面的需要,还要使按键的号码数字显示在拨号显示窗口中。 鉴于 CCITT 对 DTMF 信号规定的指标,这里每个数字信号取 1000 个采样点模拟按键信号,并且每两个数字之间用 100 个 0 来表示间隔来模拟静音。以便区别连续的两个按键信号。间隔的静音信号也是在按键时产生的。 1.4.3 DTMF 信号的检测识别 要实现电话拨号音( DTMF )信号的检测识别,可以通过直接计算傅里叶变换得到输入信号的组成频率。这里采用 FFT 算法对信

7、号进行解码分析。首先对接收到的数字信号作 FFT 分析,计算出其幅频谱,进而得到功率谱,组成输入信号的频率必定对应功率谱的峰值。对于连续的双音多频( DTMF )信号,需要把有效的数字拨号信号从静音间隔信号中分割提取出来,然后再用 FFT 算法对信号进行解码分析。MATLAB 实现信号音的识别如下: 1.4.4 仿真结果-数字“”的模拟总结对于本次实验项目,一开始我们想到了两种解决方法,第一种是自己录拨号音,编写对应拨号音识别函数,然后将音频文件导入MATLAB的识别函数中,利用函数计算分析识别出相应的拨号键,并绘制出频谱图;第二种是:利用GUI界面来仿真模拟电话拨号过程,按照高低频率和拨号按

8、键相匹配的表格(表一)给每个按键写入响应函数,这样就能实现拨相应的按键时发出对应的频率合成音,同时写入识别函数,同时在GUI界面再编写一个识别按键,这样就能在拨号音发出的同时识别出该拨号键并绘制出频谱图。本次我们采用的是第二种方法。改进与完善1、功能较少:只能实现09的10个数字的识别,功能较少,可以再添加删除、清空、确认、返回、关闭等按键及功能。2、界面粗糙不美观:只是简单的使用GUI来设计拨号面板,所以界面很粗糙简单。3、各程序分立不集中:各个实现程序都太分立,频谱分析、识别、拨号按键等功能的显示不在同一平面内,查看还需要分别打开。参考文献1康华光.电子技术基础数字部分.北京:高等教育出版

9、社,2006;2高海林钱满义.DSP 技术及其应用.北京交通大学电工电子教学基地;3王彬.MATLAB数字信号处理.北京.机械工业出版社。4电话拨号音的识别MATLAB之旅2024的ks5合肥学院.课程设计论文.附 录function varargout = untitled1225(varargin)% UNTITLED1225 MATLAB code for untitled1225.fig% UNTITLED1225, by itself, creates a new UNTITLED1225 or raises the existing% singleton*.% H = UNTITL

10、ED1225 returns the handle to a new UNTITLED1225 or the handle to% the existing singleton*.% UNTITLED1225(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in UNTITLED1225.M with the given input arguments.% UNTITLED1225(Property,Value,.) creates a new UNTITLED1225 or rais

11、es the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before untitled1225_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to untitled1225_OpeningFcn via varargin.% *See GUI Opt

12、ions on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help untitled1225% Last Modified by GUIDE v2.5 25-Dec-2015 19:14:02% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_S

13、tate = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled1225_OpeningFcn, . gui_OutputFcn, untitled1225_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gu

14、i_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitled1225 is made visible.function untitled1225_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject ha

15、ndle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to untitled1225 (see VARARGIN)% Choose default command line output for untitled1225handles.output = hObject;% Update handles s

16、tructureguidata(hObject, handles);% UIWAIT makes untitled1225 wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = untitled1225_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning o

17、utput args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;function edit1_Callback(hObject, even

18、tdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edit1 as text% str2double(get(hObject,String) returns contents of edit1 as

19、 a double% - Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns calle

20、d% Hint: edit controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (see GC

21、BO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,String) returns contents of edit2 as text% str2double(get(hObject,String) returns contents of edit2 as a double% - Executes during object creation, af

22、ter setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white back

23、ground on Windows.% See ISPC and COMPUTER.if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end% - Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1

24、 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)n=1:1000; % 每个数字 1000 个采样点表示 d0=sin(2*pi*n*697/8192)+sin(2*pi*n*1209/8192); % 对应行频列频叠加 n0=strcat(get(handles.edit1,string),1); % 获取数字号码 set(handles.edit1,string,n0

25、); % 显示号码 space=zeros(1,100); %100 个 0 模拟静音信号 global NUM phone=NUM,d0; NUM=phone,space; % 存储连续的拨号音信号 wavplay(d0,8192); % 产生拨号音 figure(1)plot(n,d0)% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdat

26、a reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)n=1:1000; % 每个数字 1000 个采样点表示 d0=sin(2*pi*n*697/8192)+sin(2*pi*n*1336/8192); % 对应行频列频叠加 x=sin(2*pi*n*697/8000)+sin(2*pi*n*1336/8000);d0=sin(0.7217*n)+sin(1.0247*n);n0=strcat(get(handles

27、.edit1,string),2); % 获取数字号码 set(handles.edit1,string,n0); % 显示号码 space=zeros(1,100); %100 个 0 模拟静音信号 global NUM phone=NUM,d0; NUM=phone,space; % 存储连续的拨号音信号 wavplay(d0,8192); % 产生拨号音 figure(1)plot(n,d0)% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handl

28、es)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)n=1:1000; % 每个数字 1000 个采样点表示 d0=sin(2*pi*n*697/8192)+sin(2*pi*n*1477/8192); % 对应行频列频叠加 x=sin(2*pi*n*697/8000)+sin(2*pi*n*1477/800

29、0);d0=sin(0.7217*n)+sin(1.0247*n);n0=strcat(get(handles.edit1,string),3); % 获取数字号码 set(handles.edit1,string,n0); % 显示号码 space=zeros(1,100); %100 个 0 模拟静音信号 global NUM phone=NUM,d0; NUM=phone,space; % 存储连续的拨号音信号 wavplay(d0,8192); % 产生拨号音 figure(1)plot(n,d0)% - Executes on button press in pushbutton4.

30、function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)n=1:1000; % 每个数字 1000 个采样点表示 d0=sin(2*pi*n*770/8192)+sin(2*pi*n*1209/8192)

31、; % 对应行频列频叠加 x=sin(2*pi*n*770/8000)+sin(2*pi*n*1209/8000);d0=sin(0.7217*n)+sin(1.0247*n)n0=strcat(get(handles.edit1,string),4); % 获取数字号码 set(handles.edit1,string,n0); % 显示号码 space=zeros(1,100); %100 个 0 模拟静音信号 global NUM phone=NUM,d0; NUM=phone,space; % 存储连续的拨号音信号 wavplay(d0,8192); % 产生拨号音figure(1)plot(n,d0)% - Executes on button press

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1