DTMF信号系统的Matlab课程设计解读 - 图文 (4)

忆尘夕之涩 分享 2020-06-22 下载文档

说明正确性 2 具体实现:

因为数字和字母按键实现的方式基本相同,区别在于每个按键的行、列的频率不同。因此调用一样的模块函数来实现达到简化程序;

% PressKeyDown.m

function Signal = PressKeyDown(handles,key)

实现输出和画出时域及频域的波形,并播放出声音。

%dtmf.m

function x = dtmf(key);

根据不同的按键选择不同的频率画出两个cos相加。 % wav_gener.m

function h = wav_gener(R,omega,N) 产生两个cos信号相加 % FindLowerFreq.m DesignLowerFilter.m 设计低频带通

找出低频的列

% FindHigherFreq.m % DesignHigherFilter.m

设计高频带通

找出高频的行

3 主要按键的Callback 函数如下

- 15 -

按键“1”的Callback 函数

function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton21 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.DecodeText,'string',''); %清空解码显示文本框

Signal = PressKeyDown(handles,'1'); handles.DTMFSignal = Signal;

handles.TelNumber=strcat(handles.TelNumber,'1'); guidata(hObject, handles);

set(handles.CodeText,'string',handles.TelNumber); % --- Executes on button press in pushbutton2.

按键”解码检测”的Callback

function pushbutton17_Callback(hObject, eventdata, handles) % hObject handle to pushbutton17 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) keys =

['1','2','3','A';'4','5','6','B';'7','8','9','C';'*','0','#','D']; for i=1 : length(handles.TelNumber) Signal = dtmf(handles.TelNumber(i)); RowNumber = FindLowerFreq(Signal); ColumnNumber = FindHigherFreq(Signal); ResultKey = keys(RowNumber,ColumnNumber);

handles.DecodeTelNumber=strcat(handles.DecodeTelNumber,ResultKey); set(handles.DecodeText,'string',handles.DecodeTelNumber); end

handles.TelNumber=''; %解码完成后,拨号变量清空,方便下一次拨号。 按键“回删”的Callback

function pushbutton21_Callback(hObject, eventdata, handles) % hObject handle to pushbutton21 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.CodeText,'string',''); set(handles.DecodeText,'string',''); axes(handles.axes1);

- 16 -

plot(1,1)

axes(handles.axes2); plot(1,1)

h=msgbox('请重新输入一次号码','温馨提示','Help kon')

按键“退出”的Callback

function pushbutton19_Callback(hObject, eventdata, handles) % hObject handle to pushbutton21 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(gcf);

- 17 -


DTMF信号系统的Matlab课程设计解读 - 图文 (4).doc 将本文的Word文档下载到电脑

下一篇:地级市烟草专卖局对复烤企业的监管制度

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx