DTMF双音多频信号的检测functionpushbutton1_Callback(hObject,eventdata,handles)globalx%全局定义xf1=[697,770,852,941];%DTFM的频率范围f2=[1209,1336,1477];%DTFM的频率范围n=0:200%n从0到200x=cos(2*pi*n*f1(1)/8000)+cos(2*pi*n*f2(1)/8000);%按下“1”所对应的函数sound(x,8000);%播放按键声音axes(handles.axes1);%对axes1进行操作plot(n,x);%画图xlabel('时域t');%设置横坐标标题title('y=cos(2*679πt)+cos(2*1209πt)');%设置axes1的标题set(handles.text1,'string','你按的是1');%提示用户按下的数字functionpushbutton13_Callback(hObject,eventdata,handles)globalNfsTFkx%定义变量N=205;fs=8000;T=1/8000;F=1/(N*T);%变量赋值N:点数xf=fft(x,N);%进行fft计算,计算N点的DFTxf=xf(1:N/2+1);%取前N/2+1个点mag=abs(xf);%mag等于xf幅值k=1:103;%k从1到103f=k*fs/N;%转换横坐标为频率axes(handles.axes2);%对axes2操作plot(f,mag);%画频率-幅度图h=(abs(mag)=80)%h为幅度判断点,判断幅度是否大于80(不一定为80)if(h(19)==1)&(h(32)==1)%判断幅度大于80的点,以此来识别按下的数字,下同k=1;set(handles.edit1,'string',k);%输出识别结果到edit1elseif(h(19)==1)&(h(35)==1)k=2;set(handles.edit1,'string',k);