忙音是某一频率单音和静音交互出现的一种提示音,通常用于表示电话占线。在某些实际应用过程中,需要对这种忙音进行检测。现阶段这类的信号音检测大多是用专用芯片实现的,多数是在出厂前需要预先设定需要检测的频率值等参数。提出一种基于DSP 的软件实现忙音检测的方法,利用单音和静音通过陷阱滤波器后的能量幅值不同来检测单音,再根据单音和静音所占的比例来检测忙音。软件实现不需要额外的芯片,可以集成于已有的DSP 软件中,而且可以灵活配置检测参数,同时检测多种频率忙音。
1 单音检测的DSP 实现
1.1 单音检测原理
单音信号检测的方法是将输入信号通过一个陷阱滤波器,然后通过比较输出信号和原始信号的平均幅值来判断是否单音信号,信号的幅值通过一个IIR低通滤波器计算,检测原理框图如图1所示。
图1 单音检测原理
检测过程是先将信号通过陷阱滤波器,陷阱滤波器的谷点频率即为待检测的频率,然后通过一阶IIR计算其长时平均幅度,输出与原始信号通过IIR计算出的长时平均幅度相比较,如果经陷阱滤波器后的信号幅度远远小于原始信号的幅度,则认为存在该频率的单音信号。
检测不同频率单音信号的滤波器系数不同,通过比较经过陷阱滤波器的输出信号和原始信号的平均幅值来判断是否存在单音信号。
1.2 单音检测的DSP 实现方法
检测芯片采用TI 的5510 系列芯片,处理能力达到200 MMIPS,单音信号经过DSP 的串口进入,处理框图如图2 所示,检测过程是先将信号通过陷阱滤波器,然后计算其长时平均幅度,输出与不经过陷阱滤波器的长时平均幅度相比较,如果经陷阱滤波器后的信号幅度远远小于原始信号的幅度,则认为存在该频率的单音信号。
图2 单音检测的算法框图2 忙音检测的DSP 实现
忙音是由某一频率单音和静音交互出现的一种声音。电信标准中常用的忙音包含的单音信号为450 Hz 或500 Hz,单音和静音持续时间相同,周期为500 ms 或700 ms 2 种。
周期为500 ms 的单音频率为450 Hz 的忙音检测是先通过一个450 Hz 的陷阱滤波器,然后比较输出信号与原始信号的包络. 程序实现时,10 ms 为一个检测样本。如图3 所示,计算500 ms 内检测到450 Hz 的个数,如果个数是50 的一半左右,则检测到1 次周期为500 ms 频率为450 Hz 的忙音,因为交换机送出的忙音都至少有5 个周期以上,为了提高检测准确度,需要持续检测5 次。如果5 次都检测到,则认为检测到持续时间至少为2. 5 s 的忙音。
检测周期为500 ms 的单音频率为500 Hz、周期为700 ms 的单音频率为450 Hz、周期为700 ms 的单音频率为500 Hz 的忙音的方法相同,在程序设计时可以将这4 种不同频率和周期的忙音同步进行。
图3 忙音检测框图
3 忙音检测实验和性能分析
3. 1 忙音检测实验
如图4 所示,电信交换机用户口接二台普通话机,计算机通过交换机维护口监控检测寄存器。
图4 忙音检测实验图