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); %列出8点DFT向量
subplot(4,2,l); %subplot(a,b,c)显示图像的位置布局,显示b行a列个图像,此图像是其中第c个
stem(K,val,'m','.'); %stem(x,y)??????“m”“。”
grid on;
xlabel('k');
ylabel('|X(k)|');

本文介绍了使用MATLAB进行双音多频信号的生成,通过MATLAB课设展示了DTMF信号的矩阵定义、频率设定以及8位电话号码的检测过程。同时探讨了GUI界面设计的初步尝试,提出了一些待解决的问题,包括DTMF频率选择、采样率确定以及采样点数的计算方法。
6590

被折叠的 条评论
为什么被折叠?



