DTMF双音多频电话拨号系统的仿真研究

1 简介

DTMF信号是音频电话中的拨号信号,本文介绍了基于MATLAB的DTMF信号产生与检测的流程,重点分析了DTMF信号检测中的戈泽尔算法原理及参数选择.

【数字信号】基于DTMF双音多频电话拨号仿真含Matlab源码_字符串

2 部分代码

t1='123A';t2='456B';t3='789C';t4='*0#D'; % DTMF 信号代表的16 个数tm=[double(t1);double(t2);double(t3);double(t4)];% DTMF 信号代表的16 个ASCII 值i=0;N=205; %DFT 采样点数K=[19,21,23,25,32,35,39,43]; %8 个基频对应的8 个k 值f1=[697,770,852,941]; % 行频率向量f2=[1209,1336,1477,1633]; % 列频率向量Y1=input(' 键入电话号码= ','s'); % 输入一串数字Y2=double(Y1);% 输入字符串变成ASCII 码T=length(Y2); %求输入号码长度Y3=zeros(1,T);%接收端电话号码初值为零for l=1:T; %分别对每位号码数字处理:产生信号,检测d=Y2(l); %计算出第l 位号码数字for p=1:4;for q=1:4;if tm(p,q)==d; break,end % 检测与l 位号码相符的列号qendif tm(p,q)==d; break,end % 检测与l 位号码相符的行号pendn=0:1023;x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双音频信号pause(0.1) %相邻信号响声之间加0.1 秒停顿% 接收检测端的程序X=fft(x,N) ; % 用FFT 算法计算DFT 样本val = abs(X(K)); % 列出八点DFT 的摸figure(1) subplot(4,3,l);stem(K,val,'.');grid;xlabel('k');ylabel('|X(k)|') % 画出8 点DFT(k) 的幅度axis([0 50 0 120]);limit = 80; %基频检测门限为80for s=5:8;if val(s) > limit, break, end % 查找列号endfor r=1:4;if val(r) > limit, break, end % 查找行号endY3(l)=tm(r,s-4); %将号码表示成一个ASCII 向量endY=char(Y3); %将ASCII 转化成字符串表示的电话号码disp('接收端检测到的号码为: ')disp(Y) % 显示接收到的电话号码1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.

3 仿真结果

【数字信号】基于DTMF双音多频电话拨号仿真含Matlab源码_接收端_02

【数字信号】基于DTMF双音多频电话拨号仿真含Matlab源码_接收端_03


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空