刘品
学以致用---博主简介:专注语音、视频数字信号处理方面的研究以及算法在手机平台上面的移植和优化。涉及语音/音频编解码,语音增强,语音识别,语音音质客观评估,VOIP语音引擎 Qos算法模块和声音变速不变调和变调不变速等功能实现。熟悉ARM 各个系列的CPU,用ARMv4,ARMv5,ARMv6 and Cortex Neon 汇编优化相关算法代码,争取perforamance 最优。目前主要Windows mobile and Android platform上做相关speech/audio算法以及应用开发, HEVC 编解码器PC 和手机上的开发与应用。(交流Email:liupin.2008@gmail.com)

这一项目是准确的找出DTMF信号的起点,当检测到后,触发DTMF decoder, 对此后接收的数据进行解码,等到相应的拨号键值。
       1. 分析输入信号特征: 信号是DTMF信号加信道中的电路噪声,现初步分析,这背景噪声是高斯背景噪声,这种噪声好在对DTMF频率特性损失不是很大,这样问题会好解决一点。
      2. 信号是由一个或一串 DTMF 信号,但处理情况一样。这有一个难点,就是在有背景噪声的情况下,能很准确的检测出信号的起始点,常用的端点检测算法可能会失效。常用算法是以帧为单位,一帧长128samples或256samples, 误差往往有一到五帧,但DTMF标准信号是一个拨号键声音持续100ms, 采样率为8KHz,也就是800samples, 其中只有400samples有信号, 剩下的是静音。这就得好好研究一下VAD算法,确保至少保留住每个拨号的信号75%的samples,也即200samples+400sample 静音,才能在后续DTMF decoder中解析出相应的数值。
      3. 对算法的复杂度有要求,要实时对电话信道中的(P(CM+ 电路背景噪声的信号)进行检测。

     4. 实现软件的结构要好好考虑一下,之间怎么个调用关系,数据流怎么流。初步分析:VAD 这个程序要一直运行,当检测到信道中有信号时,再去触发DTMF decoder, 经过DTMF decoder得到相应的键值或状态号。

     While(1)

    {
       DTMF_real_VAD();
       if(flag)
      {
      DTMF_Dec();
      }
    }
  现分析这么多,到时边写代码再修改。

posted on 2008-07-17 21:35  liupin  阅读(1365)  评论(6编辑  收藏  举报

-->