DTMF信号系统的Matlab仿真

        双音多频(Dual Tone Multi Frequency, DTMF)信号是音频电话中的拨号信号,由美国AT&T贝尔公司实验室研制,并用于电话网络中。这种信号制式具有很高的拨号速度,且容易自动检测识别,很快就代替了原有的用脉冲计数方式的拨号制式。这种双音多频信号制式不仅用在电话网络中,还可以用于传输十进制数据的其他通信系统中,用于电子邮件和银行系统中。这些系统中用户可以用电话发送DTMF信号选择语音菜单进行操作。

       DTMF信号系统是一个典型的小型信号处理系统,它要用数字方法产生模拟信号并进行传输,其中还用到了D/A变换器;在接收端用A/D变换器将其转换成数字信号,并进行数字信号处理。本文着重介绍了一种快速的频率检测算法——GEORTZEL算法的原理,以及该算法在双音多频拨号检测系统中的应用。并根据此算法设计出了相应的滤波器,利用MATLAB在计算机上对双音多频的信令产生及检测接收系统进行了仿真测试。

双音多频(Dual Tone Multi FrequencyDTMF)信号,由美国AT&T贝尔实验室研制,用于音频电话网络中的拨号信号。一方面这种信号具有非常高的拨号速度,另一方面它便于自动检测识别及电话业务的拓展,所以很快代替了原有的脉冲计数方式的拨号形式。

自1876年美国贝尔发明电话以来,电话交换技术发展主要经历了三个阶段:人工交换、机电交换、电子交换。早在1878年就出现了人工供电制交换机,它借助话务员进行话务连接。15年后步进制的交换机问世,这种交换机属于“直接控制”方式,用户通过话机拨号脉冲直接控制步进接续器做升降和旋转动作。从而自动完成用户间的接续。这种交换机虽然实现了自动接续,但存在着速度慢、效率低、杂音大与机械磨损严重等缺点。直到1938年发明了纵横制交换机由直接控制过渡到间接控制方式,随后又出现了电子交换机及程控交换机等。用户的拨号脉冲不再直接控制接线器动作,而先由记发器接收、存储,然后通过标志器驱动接线器,以完成用户间接续。由于标志器记取的是标识信号,所以可以不采用不稳定的脉冲计数方式,逐步发展到数字号码标识,所以快速、稳定灵活的DTMF音频拨号方式取代了脉冲计数方式。

本文主要阐述GOERTZEL算法在双音拨号系统中的应用,并利用Matlab的强大功能,用软件实现DTMF(双音多频)信号的检测。

1.2 数字信号简介

信号是反映消息的物理量,是消息的表现形式。由于非电的物理量可以通过各种传感器较容易地转换成电信号,而电信号又容易传送和控制,所以使其成为应用最广的信号。电信号是指随着时间而变化的电压或电流,因此在数学描述上可将它表示为时间的函数,并可画出其波形。信息可以通过电信号进行传送、交换、存储、提取等。

电信号的形式是多种多样的,可以从不同的角度进行分类。根据信号的随机

性可以分为确定信号和随机信号;根据信号的周期性可分为周期信号和非周期信

1

 

号;根据信号的连续性可以分为连续时间信号和离散信号;在电子线路中将信号分为模拟信号和数字信号。

我们每天遇到的信号,大部分都是模拟信号。离散时间信号只被定义在一种特定的时间瞬间集合上,表现为具有连续数值范围的数值序列。而数字信号在时间上和幅值上都有离散的数字。因此在实际的操作中,数字信号更容易处理。随着数字电子技术的发展,在语音处理、通信控制、图象处理等领域DSP(Digital Signal Processor 数字信号处理器 )也得到了越来越广泛的应用。

数字通信抗干扰能力强、无噪声积累,由于数字信号的幅值为有限个离散值(通常取两个幅值),在传输过程中虽然也受到噪声的干扰,但当信噪比恶化到一定程度时,即在适当的距离采用判决再生的方法,再生成没有噪声干扰的和原发送端一样的数字信号,所以可实现长距离高质量的传输。

较之传统的方法,数字信号处理系统自身有着无可比拟的优点:

(1)便于加密处理

  信息传输的安全性和保密性越来越重要,数字通信的加密处理的比模拟通信容易得多,以话音信号为例,经过数字变换后的信号可用简单的数字逻辑运算进行加密、解密处理。

(2)便于存储、处理和交换

  数字通信的信号形式和计算机所用信号一致,都是二进制代码,因此便于与计算机联网,也便于用计算机对数字信号进行存储、处理和交换,可使通信网的管理、维护实现自动化、智能化。

(3)设备便于集成化、微型

  数字通信采用时分多路复用,不需要体积较大的滤波器。设备中大部分电路是数字电路,可用大规模和超大规模集成电路实现,因此体积小、功耗低。

(4)便于构成综合数字网和综合业务数字网

  采用数字传输方式,可以通过程控数字交换设备进行数字交换,以实现传输和交换的综合。另外,电话业务和各种非话业务都可以实现数字化,构成综合业务数字网

 

2

(5)占用信道频带较宽

  一路模拟电话的频带为4kHz带宽,一路数字电话约占64kHz,这是模拟通信目前仍有生命力的主要原因。随着宽频带信道(光缆、数字微波)的大量利用以及数字信号处理技术的发展,数字电话的带宽问题已不是主要问题了。

 

下面用MATLAB程序对该系统进行模拟,程序分四段:第一段(第2~7行)设置参数,并读入8位电话号码;第二段(第9~20行)根据输入的8位电话号码产生时域离散DTMF信号,并连续发出8位号码对应的双音频声音;第三段(第22~25行)对时域离散DTMF信号进行频率检测,画出幅度谱;第四段(第26~33行)根据幅度谱的两个峰值,分别查找并确定输入的8位电话号码。程序如下:

 

17

% DTMF双频拨号信号的生成和检测程序:

%clear all;clc;

tm=[1,2,3,65;4,5,6,66;7,8,9,67;42,0,35,68];   % DTMF信号代表的16个数

N=205;K=[18,20,22,24,31,34,38,42];              %8个基频对应的8个k值

f1=[697,770,852,941];                   % 行频率向量

f2=[1209,1336,1477,1633];               % 列频率向量

TN=input('键入8位电话号码= ');          % 输入8位数字

TNr=0;                                  %接收端电话号码初值为零

for l=1:8;                %分别对每位号码数字处理:产生信号,发声,检测

    d=fix(TN/10^(8-l));                   %计算出第l位号码数字

    TN=TN-d*10^(8-l);

    for p=1:4;

        for q=1:4;

            if tm(p,q)==abs(d); break,end     % 检测与l位号码相符的列号q

        end

if tm(p,q)==abs(d); break,end     % 检测与l位号码相符的行号p

    end

    n=0:1023;                               % 为了发声,加长序列

    x = sin(2*pi*n*f1(p)/8000) + sin(2*pi*n*f2(q)/8000);% 构成双音频信号

    sound(x,8000);                               % 发出声音

    pause(0.1)                            %相邻信号响声之间加0.1秒停顿

    % 接收检测端的程序

    X=goertzel(x(1:N),K+1);            % 用Goertzel算法计算8点DFT样本

    val = abs(X);                           % 列出八点DFT的摸

    subplot(4,2,l);                                                     

    stem(K,val,'.');grid;xlabel('k');ylabel('|X(k)|') % 画出8点DFT(k)的幅度

    axis([10 50 0 120])

    limit = 80;                           %基频检测门限为80

    for s=5:8;

        if val(s) > limit, break, end       % 查找列号

    end

    for r=1:4;

        if val(r) > limit, break, end       % 查找行号

end

18

    TNr=TNr+tm(r,s-4)*10^(8-l);    %将8位号码表示成一个8位数,以便显示

end

disp('接收端检测到的号码为:')         % 显示接收到的8位电话号码

disp(TNr)

 

运行程序,根据提示输入8位电话号码12345678,回车后可以听见8位电话号码对应的DTMF信号的声音,并输出响应的频谱图,如图5-1所示。左上角的第一个图在k=18和k=31两点出现峰值,所以对应第一位号码数字1,依次类推,其他7幅图分别表示数字2,3,4,5,6,7,8对应的DTMF信号DFT的8点采样的幅度值。最后显示检测到的电话号码12345678,如图5-2所示。

图5-1 8位电话号码12345678的DTMF信号在8个近似基频点的DFT幅度

 

  • 9
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值