MATLAB实现的DTMF双音多频拨号系统仿真设计

需积分: 46 31 下载量 153 浏览量 更新于2024-07-19 3 收藏 664KB PDF 举报
"本文档是关于使用MATLAB实现双音多频拨号系统的一个课程设计,其中涉及到MATLAB GUI设计、双音多频拨号原理、信号产生与检测的FFT算法,以及程序设计与结果分析。该设计通过GUI创建模拟按键,实现了DTMF信号的合成与识别。" 在本文档中,作者详细介绍了如何使用MATLAB来构建一个双音多频(DTMF)拨号系统的仿真模型。DTMF是一种广泛应用于电话通信中的拨号方式,通过结合不同频率的行和列信号来代表不同的数字和符号。MATLAB作为一个强大的数学和工程计算工具,提供了实现这一系统所需的算法和可视化功能。 首先,MATLAB被介绍为一个综合性的技术计算平台,它包含了用于算法开发、数据可视化、数据分析以及数值计算的工具。MATLAB的GUI功能使得用户可以创建交互式的图形界面,这对于设计一个模拟电话拨号系统的用户接口至关重要。GUI允许用户通过点击按钮(pushbutton)来模拟电话拨号,增强了用户体验和系统的直观性。 在设计DTMF系统时,作者阐述了双音多频的拨号原理,即每个按键对应一个特定的高频和低频组合。MATLAB被用来生成这些双音多频信号,这是通过调制两个正弦波来实现的。同时,系统还包含了一个检测部分,使用快速傅里叶变换(FFT)算法对输入信号进行分析,以识别出拨号的数字或符号。FFT是一种高效计算离散傅里叶变换的方法,对于信号处理和分析具有重要作用。 在程序设计与结果分析部分,作者详细展示了如何编写和实现各个模块的代码,包括双音多频信号的产生、检测和结果的解析。通过这些模块,可以验证系统的正确性和效率。最后,设计者对整个项目进行了总结,强调了MATLAB在实现DTMF拨号系统中的应用价值,以及GUI在提高系统用户友好性方面的贡献。 这篇文档提供了使用MATLAB进行DTMF拨号系统设计的详细步骤,涵盖了从理论基础到实际编程的全过程,对于学习信号处理和MATLAB GUI设计的读者具有很高的参考价值。
2009-12-14 上传
function varargout = key1(varargin) % KEY1 M-file for key1.fig % KEY1, by itself, creates a new KEY1 or raises the existing % singleton*. % % H = KEY1 returns the handle to a new KEY1 or the handle to % the existing singleton*. % % KEY1('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in KEY1.M with the given input arguments. % % KEY1('Property','Value',...) creates a new KEY1 or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before key1_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to key1_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help key1 % Last Modified by GUIDE v2.5 13-Dec-2009 23:16:54 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @key1_OpeningFcn, ... 'gui_OutputFcn', @key1_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before key1 is made visible. function key1_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle 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 key1 (see VARARGIN) % Choose default command line output for key1 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes key1 wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = key1_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output 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 structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) d='1'; val=telephone(d); ppu(val) str = get(handles.pushbutton1,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) d='2'; val=telephone(d); ppu(val) str = get(handles.pushbutton2,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) d='3'; val=telephone(d); ppu(val) str = get(handles.pushbutton3,'string'); set(handles.edit1,'string',str) % 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) % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) d='A'; val=telephone(d); ppu(val) str = get(handles.pushbutton4,'string'); set(handles.edit1,'string',str) % 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) % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) d='4'; val=telephone(d); ppu(val) str = get(handles.pushbutton5,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) d='5'; val=telephone(d); ppu(val) str = get(handles.pushbutton6,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) d='6'; val=telephone(d); ppu(val) str = get(handles.pushbutton7,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) d='B'; val=telephone(d); ppu(val) str = get(handles.pushbutton8,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles) d='7'; val=telephone(d); ppu(val) str = get(handles.pushbutton9,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton11. function pushbutton11_Callback(hObject, eventdata, handles) d='9'; val=telephone(d); ppu(val) str = get(handles.pushbutton11,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton11 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton12. function pushbutton12_Callback(hObject, eventdata, handles) d='C'; val=telephone(d); ppu(val) str = get(handles.pushbutton12,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton13. function pushbutton13_Callback(hObject, eventdata, handles) d='*'; val=telephone(d); ppu(val) str = get(handles.pushbutton13,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton14. function pushbutton14_Callback(hObject, eventdata, handles) d='0'; val=telephone(d); ppu(val) str = get(handles.pushbutton14,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton15. function pushbutton15_Callback(hObject, eventdata, handles) d='#'; val=telephone(d); ppu(val) str = get(handles.pushbutton15,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton16. function pushbutton16_Callback(hObject, eventdata, handles) d='D'; val=telephone(d); ppu(val) str = get(handles.pushbutton16,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function edit1_Callback(hObject, eventdata, 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 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 called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in pushbutton10. function pushbutton10_Callback(hObject, eventdata, handles) d='8'; val=telephone(d); ppu(val) str = get(handles.pushbutton10,'string'); set(handles.edit1,'string',str) % hObject handle to pushbutton10 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)