基于PSoC的嵌入式DTMF解码器实现方案

技术分类: 嵌入式系统  | 2008-05-09
来源:电子产品世界

  改进的Goertzel算法运算步骤如下:

  1. 对每个采样点递归计算(n=0,1,…,N)

  Si(n)=2cos(2πfi/fs)× Si(n-1)- Si(n-2)+x[n]

  其初始条件是Si[-1]= Si[-2]=0。

  2. 当N个样点采集并计算完成后,计算8个频谱值:

|Y(i)|2=Si2[N]+ Si2[N-1]- 2cos(2πfi/fs)× Si[N] × Si[N-1]

  在选定采样频率为7.8125Khz基础上,选取N=84个样点即可达到所需的频率分辨率。这对应约11ms信号的采样时间,这足以保证PSoC在100mS的信号码传输周期里的非采样时间里完成DTMF解码和用户应用系统的其它功能。

  当8 个频谱值计算出来后,还要进行DTMF有效性检验,以判定是否为有效的DTMF信号。有效性检验包括以下几项内容:(1)高、低频段的最大幅值都必须大于 某个门限值,而且二者之和也要大于某个门限值。(2)高、低频段的最大幅值与各自频段其它三个幅值相比,其差值必须大于某个门限值。(3)逆向绞度检验即 低频段最大幅值不得超过高频段最大幅值8dB,标准绞度检验即高频段最大幅值不得超过低频段最大幅值4dB。

  若上述检验通过,判定当前周期DTMF信号有效,根据频率组合可确定是对应哪个号码。为了避免重复识别,还需进行静音检测。

  DTMF解码程序流程图如图4所示。

ADC接口电路

  解码时需要大量的乘法运算,可以通过PSoC内部的8位有符号硬件乘法器完成,从而实现DTMF的实时解码要求。

  结语

  该方案所需PSoC的软硬件资源少,性能可靠,可方便地集成于基于PSOC的单片系统产品实现低成本的远程控制功能。

1】【2

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

;