matlab课设之双音多频及gui界面设计
dtmf=[1,2,3,‘A’;4,5,6,‘B’;7,8,9,‘C’; ‘#’,0,’’,‘D’];%dtmf信号
N=205;
K=[18,20,22,24,31,34,38]; %【697,770,852,941,1209,1336,1477,1633】
fL=[697,770,852,941]; %行频率向量,低频
fH=[1209,1336,1477]; %列频率向量,高频
TN=input(‘键入8位电话号码:’);
TNr=0; %接收号码初始值为0;
figure(1);
for l=1:8
d=fix(TN/10^(8-l));
TN=TN-d10^(8-l);
for p=1:4
for q=1:4
if dtmf(p,q)==abs(d);break,end %检测码相符的列号q
end
if dtmf(p,q)==abs(d);break,end %检测码相符的行号p
end
x= DTMF(fL§,fH(q)); %产生双频信号
sound(x,8000); %发声sound(data,Fs)
pause(0.1) %为了动态观察变化过程,暂停0.1s
X=goertzel(x(1:205),K+1); %因为矩阵从x(1)开始不是从x(0)开始
val=abs(X);