电子发烧友网 > 可编程逻辑 > 正文

利用现场可编程门阵列实现DTMF信号接收及判别电路系统的设计

2020年08月06日 17:37 次阅读

DTMF的介绍

1.1 DTMF接受的频率标准

DTMF(双音多频)信号是电话网中常用的信令。DTMF拨号和解码在通信系统及其它方面有着广泛的应用。无论是家用电话、移动电话还是程控交换机上,多采用DTMF信号发送接收号码。DTMF技术还可以用于电力线载波通信等场合。

DTMF使用两个频率在电话系统中传输信息,表一中显示了使用频率和电话键盘的关系。

利用现场可编程门阵列实现DTMF信号接收及判别电路系统的设计

1.2 DTMF接受的时间序列标准

根据ITU-T Q.24建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过±1.5%的频率误差。任何超过给定频率 ±3.5%的信号,均被认为是无效的,拒绝承认接收。另外,在最坏的检测条件下,信噪比不得低于15dB。

2 DTMF整体设计思想和方法

要设计一个能够完成DTMF信号的接收及判别电路系统,可以考虑的方案有很多,可以选择利用MCU编程实现,利用DSP编程实现,但是为了实现较好的性能,以及合理的电路结构,设计采用了纯数字电路的实现方法。设计的主要功能是完成经A/D采样的数字信号的滤波和频率判断,检测整个信号的时序并完成接口控制。整体设计如图一所示。其中:

1)high_tone滤波和low_tone滤波完成数字信号的滤波(利用FIR设计BPF模块完成)。

2)high_tone过零检测和low_tone过零检测根据过零率大小来检测信号的频率。

3)decode结果输出部分完成译码并同时采用LED进行显示。

从上面的整体设计框图中可以看出,整个设计的核心部分在于完成输入DTMF信号的带通滤波,在完成信号的AD变化后,能够有效的滤除带外的噪声,同时输出反映DTMF信号的过零率的数字信号,便于后续的模块完成频率判断和时间序列的判别。下面分别介绍一下BPF滤波器,过零检测和时间序列判断的详细设计过程。

3 有限冲击响应来实现BPF滤波器的设计

3.1 BPF设计原理

带通滤波器主要是用FIR(Finite Impulse Response有限冲击响应)来实现了两个带通滤波器(HIGN_TONE_BPF ,LOW_TONE_BPF),主要功能为完成两组带通频率1100hz-1700hz,500-1000hz,分别来滤波DTMF信号的高频率组和低频率组信号。高组信号的频率为1209,1336,1447,16633hz,低组信号的频率为697,770,852,941hz。BPF的采样频率为13982.6hz(同AD变化的频率一致)。通过将输入采样频率为13.98Khz,10位A/D采样后的数字信号滤波,使有效的DTMF信号通过,将输入信号的噪声滤除,输出反映输入信号正负的过零信号,以供接下来的信号检测部分用于频率判断和时序判断。BPF处于整个设计的位置在图一中为high_tone滤波和 low_tone滤波。其设计要求的主要期望特性如表二和表三所示。

3.2 BPF设计实现

BPF模块是通过横截型FIR来完成带通滤波的。FIR滤波器的单位冲击响应是一个有限长序

模块的振幅和相位特性如图二所示,设计中使用的FIR的系数是通过MATLABLE来设计完成的,主要是使用了MATLABLE中的FIR1这个TOOLBOX。BPF 顶层图如图三所示。

3.3 BPF动作的主要时序和工作过程

为了比较好的描述BPF动作的主要时序,把图三中用到的一些主要信号定义介绍一下。

BPFPRS :整个设计数字电路工作的基本时钟

ADCROUT :A/D 采样结果输出,为10bit

TRANSGUID:A/D变化点

RAMWRBASE:RAM写信号,保持一个时钟周期

BASEPOINT:FIR计算起始点,每一个新的A/D结果增加1

BPFACT:BPF计算容许信号,容许进行FIR计算

RAMOUT1:RAM输出,依次输出前200个A/D结果

ROMZ1:FIRROM系数表1,为low_tone_bpf参数

ROMZ2:FIRROM系数表2,为high_tone_bpf参数

ZRAMPA1:RAM地址,每一个时钟递减1

ZROMPA:FIRROM系数表地址,每一个时钟递加1

工作过程描述如下:BASEPOINT记录了进行FIR计算的现在时刻,即差分方程 的I,然后在RAMWRBASE下写入RAM,ZRAMPA1每一个时钟递减1,ZROMPA每一个时钟递加1,将H(I),X(N-I)输入,在BPF_MAIN模块中完成FIR的计算。FIR计算的具体过程描述如下:1)读出RAM的A/D结果和BPF_VROM中的FIR系数 2)取出RAM和FIR系数的幅度和正负3)完成RAM和FIR系数幅度的乘法4)由RAM和FIR系数的正负,将乘法结果进行补码变化5)完成所有乘法结果的加法6)在下一个A/D到来完成时,将上一次的计算结果输出。典型的FIR的时间序图如图四所示。图四中表示了BASEPOINT=0和1两种情况下FIR计算时序。

4 过零检测的设计和时间序列的判断

通过带通滤波器后,实际输出为反映DTMF信号的数字信号,为此可以采用非常简单的,同时利用数字电路非常容易实现的非相干解调。非相干解调算法有过零检测法和包络检测法:过零检测法的基本原理是根据频键控信号过零率的大小来检测已调信号中频率的变化。 输入已调信号经过限幅,滤波等形成与频率变化相应的一定宽度的矩形波,然后进行抽样判决,即可得到原始的调制信号。过零检测法用硬件电路来实现。这个检测电路模块的主要功能包括1)判断通过BPF滤波输出的高频率段和低频率段信号,判断输入的DTMF信号的频率是否在容许的误差范围内,如果输入的频率超过容许范围,不进行判断。2)同时通过设计不同的数字计数器完成时间序列的检查,将满足时序要求的信号结果译码;如果不满足ITU-TQ.24的要求的序列,不输出结果。3)完成译码结果并同时采用LED进行显示。所以整个模块就是在输入信号的幅度满足电话传输要求,输入信号频率在容许的偏移内,在规定的输入信噪比下,能够正确的接受和判读输入信号,并译码进行显示。

5 总结

整个电路设计都采用的是纯数字方式,采用VHDL (Very high speed integrated circuit Hardware Description Language硬件描述语言)编写了整个数字电路的实现,同时在MAXPLUSII平台下进行了仿真,证明了电路的功能达到了预期的目的。同时利用 FPGA (Field Programmable Gate Array现场可编程门阵列)实现了整个电路。在实际的测试中,达到了ITU-T Q.24所要求的“For the codes 0-9,*, # A-D, 1 false/1500 calls”的设计指标。

本文创新点在于整个设计采用了纯数字方式,实现简单。同时由于在设计中采用了硬件描述语言编写了整个数字电路,所以整个电路便于移植,在使用时可以作为一个单独的模块,也可以作为其他设计中的一部分,非常灵活。

责任编辑:gt

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

写好状态机--从2019年全国FPGA竞赛谈Verilog编码技巧

理解Verilog编码技巧掌握FPGA中状态机的写法掌握非重叠序列检测代器Verilog代码编写
发烧友学院发表于 2020-04-21 00:00 21035次阅读
写好状态机--从2019年全国FPGA竞赛谈Verilog编码技巧

采用Cyclone系列EP1C6Q240C8 F...

振动模拟器的原理框图如图1所示,图中由ADC模块分别接收调频和调幅信号给FPGA模块,FPGA模块将....
发表于 2020-08-06 17:42 0次阅读
采用Cyclone系列EP1C6Q240C8 F...

采用FPGA器件控制ADC和数据传输实现数据采集...

数据采集系统是计算机测控系统中不可或缺的组成部分,是影响测控系统的精度等性能指标的关键因素之一。常用....
发表于 2020-08-06 17:22 5次阅读
采用FPGA器件控制ADC和数据传输实现数据采集...

基于FPGA器件XC2VP20-FF1152实现...

科学级CCD相机(Scientific grade CCD camera)是一种具有低噪声、高灵敏度....
发表于 2020-08-06 17:21 14次阅读
基于FPGA器件XC2VP20-FF1152实现...

基于现场可编程门阵列技术设计时钟分配网络的应用方...

自产生到现在,现场可编程门阵列(FPGA)以其独特的优点被成功应用在工业控制、数据通信、计算机硬件等....
发表于 2020-08-06 17:17 15次阅读
基于现场可编程门阵列技术设计时钟分配网络的应用方...

基于Altera的FPGA器件和VHDL语言实现...

传统的数据采集系统,通常采用单片机或DSP作为主要控制模块,控制ADC、存储器和其他外围电路的工作。....
发表于 2020-08-06 17:02 16次阅读
基于Altera的FPGA器件和VHDL语言实现...

对Xilinx Cyclone系列EP2C8Q2...

在验证和调试系统时,传统上是把信号线引到I/O引脚,然后采用示波器、逻辑分析仪或总线分析仪进行测量和....
发表于 2020-08-06 17:00 14次阅读
对Xilinx Cyclone系列EP2C8Q2...

采用Altera的FPGA器件实现电池管理系统的...

便携式设备的便携性是与电池的发展息息相关的,从最初的铅酸电池、镍镉(Ni-Cd)电池发展到镍氢(Ni....
发表于 2020-08-06 16:48 19次阅读
采用Altera的FPGA器件实现电池管理系统的...

基于FPGA EPlS30芯片和AD变换器实现导...

INS/GPS组合导航系统在军事领域和民用方面的运动载体中得到了广泛应用。INS是组合导航系统中的核....
发表于 2020-08-06 16:20 18次阅读
基于FPGA EPlS30芯片和AD变换器实现导...

基于可编程逻辑器件实现数字下变频系统的设计

数字下变频DDC(digital down lonvwrsionl作为系统前端A/D转换器与后端通用....
发表于 2020-08-06 15:31 33次阅读
基于可编程逻辑器件实现数字下变频系统的设计

mcu的应用场景_mcu的基本组成

工业控制应用中采用MCU时,系统性能改善和更加节能是两个主要好处。传统意义上,建立空调系统采用简单的....
发表于 2020-08-06 10:58 20次阅读
mcu的应用场景_mcu的基本组成

mcu芯片是指什么芯片_mcu芯片概念股

MCU是Microcontroller Unit 的简称,中文叫微控制器,俗称单片机,是把CPU的频....
发表于 2020-08-06 10:54 400次阅读
mcu芯片是指什么芯片_mcu芯片概念股

FPGA IO和GND之间是否存在低阻抗路径?

嗨专家, 我有一个名为WAKEUP_N的信号,它有一个单独的上拉至3.3V辅助电压,总是3.3V,无论FPGA上电还是...
发表于 2020-08-06 10:07 0次阅读
FPGA IO和GND之间是否存在低阻抗路径?

RGB接口和MCU接口对比分析

LCD的接口有多种,分类很细。主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种...
发表于 2020-08-06 10:07 101次阅读
RGB接口和MCU接口对比分析

如何用xc7z045 FPGA取代xc7z020 FPGA?

你好, 我目前正在修改电路设计,用xc7z045 FPGA取代xc7z020 FPGA。 目前的设计使用与Zedboard相同的电源排...
发表于 2020-08-06 10:04 0次阅读
如何用xc7z045 FPGA取代xc7z020 FPGA?

采用FPGA和DSP技术相结合实现图像采集和处理...

随着科学技术的发展和社会发展应用需求,人们对视频图像采集处理高清化,传输实时化和控制智能化的要求越来....
发表于 2020-08-06 09:08 97次阅读
采用FPGA和DSP技术相结合实现图像采集和处理...

在OMAPL138的ARM核与DSP核上实现TL...

TL_IPC是广州创龙独立开发的一种双核通讯协议,这种开发方式适用于通信逻辑相对简单的双核程序的的开....
发表于 2020-08-06 08:34 49次阅读
在OMAPL138的ARM核与DSP核上实现TL...

请问fpga晶振50Mhz电压幅值多少?

fpga晶振50Mhz电压幅值多少
发表于 2020-08-05 22:59 0次阅读
请问fpga晶振50Mhz电压幅值多少?

采用FPGA器件和高速模数转换器实现高精度信号卡...

在导弹型号的研制过程中,匹配装置是用于遥测系统中信号变换的关键部件,是弹上所有关键部件的信息送到遥测....
发表于 2020-08-05 18:00 134次阅读
采用FPGA器件和高速模数转换器实现高精度信号卡...

在FPGA芯片上使用VHDL语言实现UART模块...

在数据采集系统中, 常需要进行异步串行数据传输,目前广泛使用的RS232异步串行接口,如8250、N....
发表于 2020-08-05 17:45 65次阅读
在FPGA芯片上使用VHDL语言实现UART模块...

基于可编程逻辑器件实现Web服务器的应用设计

嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积....
发表于 2020-08-05 17:38 116次阅读
基于可编程逻辑器件实现Web服务器的应用设计

基于可编程逻辑器件实现多路数据采集系统的设计

对于国内而言,正如DSP在20年前出现的情形一样,如今,FPGA正处于数字信号处理技术的前沿。而DS....
发表于 2020-08-05 17:30 53次阅读
基于可编程逻辑器件实现多路数据采集系统的设计

基于可编程逻辑器件CPLD实现中压变频系统的设计

中压变频系统要求产生与分配多路SPWM脉冲,控制实时性要求较高,应用软件功能复杂,另外还需要控制多路....
发表于 2020-08-05 17:23 44次阅读
基于可编程逻辑器件CPLD实现中压变频系统的设计

基于EP1K30TC144-3芯片实现温控定时喷...

FPGA是新型的可编程逻辑器件,能够将大量的逻辑功能集成于单个器件中,它所提供的门数从几百门到上百万....
发表于 2020-08-05 17:17 47次阅读
基于EP1K30TC144-3芯片实现温控定时喷...

基于可编辑逻辑器件实现IEEE 802.11协议...

IEEE 802.11标准定义了能够统筹所有基于以太网的无线通信的协议。它是迄今为止最流行的无线局域....
发表于 2020-08-05 17:06 35次阅读
基于可编辑逻辑器件实现IEEE 802.11协议...

基于EP2S30 FPGA芯片实现MAC接收控制...

传统的测控网是将具有各种功能的仪器通过诸如VXI、CAN等专用总线连接起来构成一套完整的测控系统。现....
发表于 2020-08-05 17:00 41次阅读
基于EP2S30 FPGA芯片实现MAC接收控制...

采用现场可编程门阵列器件实现典型电路的设计方案

在科研和工程中,数据采集系统具有很广泛的应用,针对各类电压型传感器输出的信号伏值不同这种情况,本文提....
发表于 2020-08-05 16:55 62次阅读
采用现场可编程门阵列器件实现典型电路的设计方案

采用可编辑逻辑器件和VHDL语言实现波控系统设计...

相控阵是通过波控系统控制阵列天线各单元通道的相位、幅度以形成空间波束并控制其方位角和俯仰角。早期的波....
发表于 2020-08-05 16:43 30次阅读
采用可编辑逻辑器件和VHDL语言实现波控系统设计...

灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表

资料文档内包含MM32系列MCU产品应用手册,提供了详细的规格说明,引脚定义,电气特性及封装信息,完整的系统架构...
发表于 2020-08-05 15:51 101次阅读
灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表

基于DDS和FPGA器件实现频率特性测试仪的设计

在电路测试中。常常需要测试频率特性。电路的频率特性体现了放大器的放大性能与输入信号频率之间的关系。频....
发表于 2020-08-05 15:01 98次阅读
基于DDS和FPGA器件实现频率特性测试仪的设计

Glow神经网络编译器首次应用于MCU,面向边缘...

率先开发PyTorch的Facebook推出了开源社区项目Glow(Graph Lowering神经....
发表于 2020-08-05 14:32 223次阅读
Glow神经网络编译器首次应用于MCU,面向边缘...

基于EP1C6Q240C8的FPGA芯片实现对实...

利用FPGA开发振动模拟器研制开发费用低,不承担投片风险,通过开发工具在计算机上完成设计,电路设计周....
发表于 2020-08-05 14:29 88次阅读
基于EP1C6Q240C8的FPGA芯片实现对实...

fpga--矩阵键盘实现某些按键独特功能

矩阵键盘原来是按一下输出一个值,现在想把其中几个值改为一直按一直输出而不是一直按着只输出一个值 ...
发表于 2020-08-05 10:30 141次阅读
fpga--矩阵键盘实现某些按键独特功能

FPGA如何获得外部输入信号?

你好, 我们想使用LCD引脚,在FPGA中获得外部输入信号。 我们在上阅读了讨论,我们使用vivado逻辑进行了一些...
发表于 2020-08-05 07:12 0次阅读
FPGA如何获得外部输入信号?

【每周FPGA案例】至简设计系列_串口回环工程

至简设计系列_串口回环工程 --作者:小黑同学 本文为明德扬原创及录用文章,转载请注明出处! 1.1 总体设计1.1.1 概...
发表于 2020-08-04 20:31 182次阅读
【每周FPGA案例】至简设计系列_串口回环工程

基于FPGA器件实现UART适应自顶向下的设计

UART(通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。专....
发表于 2020-08-04 17:25 183次阅读
基于FPGA器件实现UART适应自顶向下的设计

将DSP的Flash里面的函数转移到RAM中

意思是到FLASH去下载InitFlash(),下载到SECURE_RAM,然后要到SECURE_R....
发表于 2020-08-04 17:10 95次阅读
将DSP的Flash里面的函数转移到RAM中

char数组转16进制HEX串

也就是说,只要这一个字符大于0x39,那它一定是字母;同时,在上面的分析也可以发现,如果这个字符是字....
发表于 2020-08-04 16:53 80次阅读
char数组转16进制HEX串

从架构到RTOS详解DSP和MCU的区别和联系

此外,DSP处理器几乎都不具备数据的高速缓存。这是因为DSP的典型数据是数据流。也就是说,DSP处理....
发表于 2020-08-04 16:47 142次阅读
从架构到RTOS详解DSP和MCU的区别和联系

一文详谈FMC标准和FMC连接器的

FMC标准描述了一个通用的模块,它是以一定范围的应用,环境和市场为目标的。
发表于 2020-08-04 16:35 34次阅读
一文详谈FMC标准和FMC连接器的

基于DSP的RS232串口连接设计

此芯片缺陷是不能够一对多发送数据,只能一对一,倒也能满足我使用需求。
发表于 2020-08-04 15:41 190次阅读
基于DSP的RS232串口连接设计

CAN控制器总线错误分析之CAN节点BusOff...

“ 总线关闭(bus off)是CAN节点比较重要的错误处理机制。那么,在总线关闭状态下,CAN节点....
发表于 2020-08-04 11:16 179次阅读
CAN控制器总线错误分析之CAN节点BusOff...

基于EP1C6Q240C8的FPGA芯片实现电子...

本文采用的是ALTERA公司的EP1C6Q240C8型号的FPGA,整个体统采用模块化设计的思想,将....
发表于 2020-08-04 09:39 251次阅读
基于EP1C6Q240C8的FPGA芯片实现电子...

基于FPGA和单片机构成的电子加密系统的设计

FPGA/CPLD技术是近年来计算机与电子技术领域的又一场新的革命,为了保护知识产权,出现了各种层次....
发表于 2020-08-03 17:58 116次阅读
基于FPGA和单片机构成的电子加密系统的设计

FPGA器件EP1C3T100I7实现高速传输速...

近些年来,各种电路功能,包括模拟电路和数字电路,越来越多地用单片集成电路来实现。采用单片集成电路不仅....
发表于 2020-08-03 17:54 170次阅读
FPGA器件EP1C3T100I7实现高速传输速...

基于可编辑逻辑器件实现ADPLL的应用设计

随着数字电路技术的发展,特别FPGA技术的普遍应用,采用FPGA实现全数字锁相环(ADPLL)的应用....
发表于 2020-08-03 17:40 45次阅读
基于可编辑逻辑器件实现ADPLL的应用设计

采用编程逻辑器件控制8个LED小灯电路的设计

演化硬件(EHW)是指能根据外部环境变化自动改变自身结构和功能的一类硬件,它把可编程逻辑器件的结构位....
发表于 2020-08-03 17:35 66次阅读
采用编程逻辑器件控制8个LED小灯电路的设计

基于FPGA器件实现AMI编码器和译码器的设计

实际的基带传输系统,含有丰富直流和低频成分的基带信号不适宜在信道中传输。而对具有易获取定时信息、无直....
发表于 2020-08-03 17:31 175次阅读
基于FPGA器件实现AMI编码器和译码器的设计

基于VHDL语言及SOPC技术实现全数字调频信号...

在常用的信号源及信号处理设计方案中,RC/LC振荡电路频率调整方便,但是它的工作频率稳定度较低。频率....
发表于 2020-08-03 17:19 74次阅读
基于VHDL语言及SOPC技术实现全数字调频信号...

采用EPM7064S芯片和TMS320F2812...

CCD驱动板完成CCD信号的驱动,产生CCD像元同步、帧同步信号和经过运放处理的视频信号,DSP电路....
发表于 2020-08-03 17:12 43次阅读
采用EPM7064S芯片和TMS320F2812...

采用SOPC技术和VHDL语言实现图像增强处理系...

图像增强最早起源于人类的空间探索计划。从卫星或飞船上获得的关于地球和太阳系中行星的图像因为多种原因而....
发表于 2020-08-03 17:07 33次阅读
采用SOPC技术和VHDL语言实现图像增强处理系...

基于FPGA XC3S400芯片和ARM相结合实...

在往复式压缩机状态在线监测系统中,由于压缩机结构复杂、零部件多、运动形式各不相同,发生的故障也就会多....
发表于 2020-08-03 17:01 68次阅读
基于FPGA XC3S400芯片和ARM相结合实...

请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?

请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?   前辈们做过的指导我一下。 ...
发表于 2020-08-03 15:53 134次阅读
请问zynq 怎么实现PS与PL数据交互,然后通过UART串口打印出来?

初学者烧入DSP的LED灯闪烁程序,只亮不闪烁

主程序:/* * main.c * *  Created on: 2018-3-21 *      Author: Adminis...
发表于 2020-08-02 22:46 101次阅读
初学者烧入DSP的LED灯闪烁程序,只亮不闪烁