【信号处理】基于双音多频(DTMF)信号检测含Matlab源码
【信号处理】基于双音多频(DTMF)信号检测含Matlab源码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
DTMF信号系统是一个典型的小型信号处理系统 , 它要用数字方法产生模拟信 号并进行传输 ,应用 D/A变换器 ,采用快速的频率检测算法 ——戈泽尔( GEORTZEL ) 算法的原理 , 以及该算法在双音多频拨号检测系统中的应用。 对 读入的电话号码,根据键入的号码数产生时域离散双音多频( DTMF)信号,并连续发出号码对应的双音频声音。同时进行时域离散DTMF信号进行检测,画出幅度谱,并 用 M ATLAB在计算机上对双音多频的信 号产生及检测接收系统进行了仿真测试。
DTMF ( Double Tone MulitiFrequency, 双音多频)作为实现电话号码快速可靠传输的一种技术,具有很强的抗干扰能力和较高的传输速度,广泛用于电话通信系统中。另外,它也可以在通信系统中广泛用来实现各种数据和语音等信息的远程传输,技术非常成熟、专业芯片种类繁多,在民用、金融、工业等领域的应用非常普及,甚至有通过软件来产生和检测 DTMF 信令方面的应用。但随着现代工业的持续发展,利用 DTMF 信令作为通信系统中的控制信号的通信设备正遭受着前所未有的各种日益复杂的干扰,尤其是与 DTMF 信令的同频干扰,使通信设备频频出现误动作等严重事故,所以消除与 DTMF 同频干扰已是利用该控制方式控制的通信系统不得不解决的一个问题。
2 部分代码
function
Xk=mygoertzel(y)
%y为DTMF信号,Xk为205点DFT的前45个值
%函数实现戈泽尔算法
N
=
205;
Xk
=
[];
for
k=1:45 %计算前45个k值
y1
=
y(1:N); %取y的前205个点
%戈泽尔算法
d1
=
2*cos(2*pi*k/N);
v
=
filter(1,[1,-d1,1],y1);
Y
=
v(N)^2-d1*v(N)*v(N-1)+v(N-1)^2;
Xk
=
[Xk Y];
end
axes(findobj(gcf,’Tag’,’axes3’));
stem(abs(Xk));
title(’用戈泽尔算法还原的频谱’);
axis([0,46,0,15000]);
end
3 仿真结果
4 参考文献
1.《数字信号处理课程设计指导书》
2 .《数字信号处理教程》,程佩青,清华大学出版社, 2007
3 .《 MATLAB数字信号处理与应用》, 李正周, 北京清华大学出版社 , 2008
4.《 双音多频信号产生及解码研究 》赵霞,微电子学, 2001年,第6期
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
