1 简介
DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,应用D/A变换器,采用快速的频率检测算法——戈泽尔(GEORTZEL)算法的原理,以及该算法在双音多频拨号检测系统中的应用。对读入的电话号码,根据键入的号码数产生时域离散双音多频(DTMF)信号,并连续发出号码对应的双音频声音。同时进行时域离散DTMF信号进行检测,画出幅度谱,并用MATLAB在计算机上对双音多频的信号产生及检测接收系统进行了仿真测试。
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代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。