计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

以MXS51为内核构造的单片集成系统(2)

2016-10-02 01:28
导读:2 DTMF数据处理 DTMF解码数据处理主要完成两个功能,一是数据截取,一是DTMG解码。 2.1 数据截取 根据抽样速率和DTMG占空比及持续时间,可以对接收的数据

2 DTMF数据处理

DTMF解码数据处理主要完成两个功能,一是数据截取,一是DTMG解码。

2.1 数据截取

根据抽样速率和DTMG占空比及持续时间,可以对接收的数据进行截断。根据FFT的要求,前后两段数据之间应该有一定长度的公共部分。计算出截新的数据帧的长度为128字。为了减少面积,我们比较了几个方案。在不会出现溢出的情况下,最后采取了图4所示的设计方案。

图3

数据截取由一个256字的双口RAM完成。复位时,对前32字清零。A/D采样的数据帧先放到写数据段1中,再放到写数据段2中,按照写数据段1和写数据段2交替写入数据。在每次写完一个数据段之后,产生一个数据改变脉冲。用来表明已完成1帧数据,可以进行数据读取,从而启动数据读取操作。

数据读取时,为了保证每次数据读取时与前后两段都有32字的公共部分,第一次从读数据段1中读出160字的数据,其前32字的数据为上一帧数据的最后32字的数据;下一次在读数据段2中读出160字的数据,然后两个数据段读出数据前后之间都有32字的共有数据。

2.2 DTMF解码

对于DTMF解码中用到的FFT,我们采用经典的Goertzel算法。其思想是利用简单的递归运算代替复杂的FFT运算,且只需要计算几个频率占上的值,大大简化了计算量,通过比较几个频率点上数值的大小和判断占空时间,就可确定发送的DTMG频率组合。为了减少设计中用到的乘法验证,在满足通信标准的前提下,将宽度降到12位。Goertzel算法的计算公式如下:

上一篇:IPM死区时间调整硬件解决方案 下一篇:没有了