#$$# 年第 % 期
总 第 ! # % 期
!传输!
通 信 技 术
*’++,-./01.’-2 34/5-’6’78
&’( %)
#$$#
&’( !#%) 3’10668
一种新的基于 =’4>1?46 算法的 @3AB 信号检测方法
弋今朝! 张禄林" 钱玉美#
(
!、# 中国科技大学研究生院,北京 !$$$C%
)(
" 北京邮电大学,北京 !$$D<"
)
【摘 要】 首先根据高频组和低频组的不同频率特性,对计算窗口 ! 的值进行了优选,提出了
一种基于 =’4>1?46 算法的双滑动窗信号解码方案,比较好地满足了 E3F 规范,降低了计算复杂度。实
验表明,该算法比其他的方案更加有效。
【关键词】
@3AB
=’4>1?46 算法
@3AB 解码器
! "#$ %’()#* !*+&’,(-. /01#2 3456 7,+80* 3#(#9(&’
G !) # F-.H4>2.18 ’I J/.4-/4 0-K 34/5-’6’78 ’I *5.-0,L4.M.-7 !$$$C% N G " L4.M.-7 F-.H4>2.18 ’I O’21P3464/’++,-./01.’-) L4.M.-7 !$$D<" N
"# $#%&’() !
*’(%+ ,-.#% "
/#(% "-01# #
【
!:1(’09(
】
E- 15.2 Q0Q4> 154 ’Q1.+06 /’+Q,1.-7 R.-K’R .2 I.>21 21,K.4K 0//’>K.-7 1’ 154 K.II4>4-1 /50>S
0/14>.21./2 T41R44- 154 5.75 I>4U,4-/8 7>’,Q 0-K 154 6’R I>4U,4-/8 7>’,Q)
154- 0 1R’ 26.K.-7 R.-K’R2 =’S
4>1?46 067’>.15+ T024K @3AB 2.7-06 K414/1’> .2 Q>424-14K( 35.2 2/54+4 +4412 154 E3F 2Q4/.I./01.’-2 0-K >4S
K,/4 154 /’+Q64V.1.42( 354 1421.-7 >42,612 .-K./014 154 2/54+4 .2 +’>4 4II./.4-/8(
【
;#<$&’21
】
@3AB) =’4>1?46 067’>.15+) @3AB 2.7-06 K414/1’>
! 概述
双音多频(
@3AB:@,06 3’-4 A,61. 9 I>4U,4-/8
)信
令 W !,# X 是电信系统中一个广泛应用的标准。快速、准
确地检测 @3AB 信号是实现现代高密集、低成本语
音业务的关键。
@3AB 信号分为高频群和低频群,具体的频率键
值及信号标准如表 !、表 # 所示。
表 ! @3AB 频率及其对应的键值
高频群(
Y?
)
低频群 G Y? N
!#$%
!CC"
!;<<
!"CC
"%<
<<$
D:#
%;!
!
;
<
"
#
:
D
$
C
"
%
[
Z
L
*
@
表 # E3F 9 3 \( #; 中规定的 @3AB 信号规范
J ] &
3R.21
(高频群与低频群之间的功率差)
允许的频率失真
动态范围 G KL+) 6- G Q’R4> ] !$ 9 CR N N
信号持续时间
处理时间间隔
^ #;KL
_;KL
‘ !( :a
#:KL+
;$+2 _ 23 _::+2
_!$$+2
一般的专用芯片采用过零率检测) 但此法不适用
多路信号。这是因为在混有语音和噪声时,容易出现
误判。基于 @JO 的软件检测方法是目前主流的解决
方法 W ;," X。当计算的频率点较少时,=’4>1?46 W C X 算法是
计算 @B3 的有效算法,很多文献采用了该算法 W :) " X。
它的主要问题是算法的计算字长 (
! 值)取值比较随
意,没有在频率分辨率和时间分辨率两者之间进行
平衡。笔者对 ! 的取值进行了深入的探讨,根据高
收稿日期:#$$# 9 $: 9 !;。
弋今朝:男。!%<$ 年出生。现为中国科技大学研究生院研究生。主要研究方向为通信信号处理。
张禄林:男。!%": 年出生。现为北京邮电大学博士后。主要研究方向为无线通信网络和无线局域网。
钱玉美:女。!%;# 年生。中国科技大学研究生院电子学部教授。
·!"·
频组和低频组的不同特性选用了不同的 ! 值,对
#$%&’(%) 算法进行了改进,降低了它的复杂度。
* #$%&’(%) 算法及其 ! 的选择
#$%&’(%) 算法是计算离散傅立叶变换的方法,当
需要计算的频率点数不超过 *)$+* ! 时,#$%&’(%) 算法
将比 ,,- . ,/0’ ,$1&2%& -&/304$&5 6 更为有效 7 8 9。图 ! 是
算法框图。它相当于一个二阶滤波器,其转移函数
为:
(
#
)$
"#
! % %&*!’ ( !# % !
)
(
# % ! ) # % *
*!’ ( !
! ; *<$0
图 ! #$%&’(%) 算法的模拟框图
对输出的计算采用递归方式进行:
*!’
!
6 > *’. + ; !6 ; *’. + ; *6 ? ,. +6@
*’. +6 = * > <$0.
*’ . ; ! 6 = *’ . % * 6 = A,+ $ A@ !@ …,!
- . ’ 6 = .’ . ! 6 = *’ . ! 6 ; /0
其中,/0
由于只需要幅值信息,不需要相位信息,因此,对前
! > *’ . ! ; ! 6
! $ % % *!’
(
!
(
*
! 。
)
)
向部分进行改进,输出幅度平方值
(
’
) * $ ;’
(
!
)
;"
’
(
!
-
)$ **
’
(
!
)) **
’
(
! % !
)% *<$0
*!’
算法中,B-C, 频率 (
12
(
’
),它们之间存在如下的关系:
!
)变换成了离散傅立叶系数
’ $ ! 3 12
14
. D 6
! 是滤波器的计算长度,14
是采样频率
! 的选择应考虑如下的因素:
(
!
)时间分辨率。在 E-F 建议中,信号的持续时
间最小值为 DA50,在采样频率为 GAAAH( 情况下,对
应 8*A 个样本。大多数文献都把 ! 取值为 !AI 点 7J@ I9,
对应的时间为 !8K 850,对每个信号至少可以完成 *
次完整的检测。虽然增大 ! 取值可以保证更好的频
率分辨率,但 ! 的取值应小于每个信号样本长度
8*A,以保证对每个信号可以完成一次完整的计算。
另外,! 取值较大时,意味着 #$%&’(%) 算法中计算次
数的增加,对实时处理也有影响。
(
*
)频 率 分 辨 率 。 计 算 的 信 号 主 瓣 宽 度
(
)与 ! 的关系可以表示为 562+789: = 14 L
562+789:
!@ 其中 14
为采样频率。 ! 的取值过小,信号检测计
算时,相邻信号落入同一检测窗口会产生一定混
叠。
(
8
)频率偏移度。根 据 E-F 对 B-C, 频 率 偏
移 度 要 求 ,允 许 M !K J N 频 率 偏 移 时 识 别 ,当 信
号 频 率 偏 移 超 过 M 8K JN 时要拒绝。由表 8 可看到
在 E-F 规定的相对误差相等的情况下,频率 !I88 允
许的绝对频率误差大于频率 IO" 要拒绝的绝对频率
误差。由于低频群和高频群绝对误差是不同的,应该
区别处理,对于低频群选用较大的 ! 值,对于高频
群选用较小的 ! 值。
表 8 B-C, 频率偏移
B-C, 频率
允许误差 !K JN 时
频率偏移
拒绝误差 8K JN 时
频率偏移
IO"
OD!
!*AO
!I88
!AK DI
!DK !*
!GK !D
*DK JA
*DK DA
8*K OD
D*K 8*
J"K !I
. D 6 舍入误差。根据 . D 6 式,在 #$%&’(%) 算法进行
递归计算时 ’ 要取整数,因而存在舍入误差。舍入误
差是随机的和离散的,不同的 ! 值和不同的 12
舍入
误差是不同的,因此造成的频率的偏移也是不同
的。由于 ’ 的舍入误差反映的是频率的偏移,因此必
须兼顾每个频率,选择 ’ 舍入误差小的 ! 值。
*’
(
!
)
)
*’
(
! % !
) (
8
对 ! = !AA 到 8AA 之间的
’ 的舍入误差进行了统计,对
各个频率不同的 ! 值的 ’ 误
差进行比对,选择出比较理想的 ! 值,即对于低频
群取 ! = **G,对于高频群取 ! = !!D。当 ! = !!D
时,在 DA50 内能保证有两次完整的运算,满足时间
分辨率的约束。
8 算法实现
图 * 描述了 B-C, 检测器。由于需要检测 G 种
可能的频率信号,需使用 G 个 . ! 6 式给出的 #$%&’(%)
滤波器。通过取相应的 ’ 值,将每个滤波器分别调谐
到对应的每个频率上。对于每个检测器来说,当每个
新样本到来时,使用 . * 6 式进行一次前向计算,并存
储中间结果;当到达给定的 ! 值时,使用 . 8 6 式进行
一次反向计算,并输出结果。对于低频群来说,使用 D
·!"·
个处理样本长度为 ##" 的 $%&’()&* 滤波器。其中的低
频群滤波器在处理完 !!+ 个样本的前向计算时,完
成一次反馈计算。因此,相当于使用一个 !!+ 样本长
的滑动窗完成计算。对于高频群来说,每个频率使用
一个 !!+ 长的 $%&’()&* 滤波器。
值为 06748 以 !674 步长降低直到 9 3:674。在 9
#:674 时,正确率 !00; ;
(
#
)高、低频群的功率差测试。对双音信号高、低
频群的功率差测试范围由 9 !067 到 !1678 步长为
0< !678 每次进行 !0 次测试。在功率差为 9 +< 367 到
"< :67 区间,正确率 !00; 。对
于小于 9 +< =67 大于 "< =67 的
情况全部拒识;
(
3
)频率偏差测试。对于所
有 ,-./ 信号,频率偏差小于
!< 1; 时全部识别,频率偏差大
于 3< 1; 时全部拒识;
)音频信号测试。 使用
(
+
语音文件、音乐文件、其他声音
文件进行测试,在 100 次测试
中,正确率 ==< 1; ;
图 # 算法实现示意图
首先,分别检测出高、低频群中最强的信号频
率,并计算这两个最强频率的二次谐波。然后将信号
能量与整个频带内的能量进行对比,完成门限值检
测。在这里,没有对整个频带能量谱进行计算,而是
计算 " 个 ,-./ 频点和两个二次谐波上的能量谱,
利用计算值进行修正,完成对门限值的设定。计算两
个频率二次谐波的目的是为了防止与语音混淆。以
往的 ,-./ 语音检测固定使用 " 个 $%&’()&* 滤波器
计算二次谐波完成语音检测。这里简化为只对上一
步检测出的两个最强的频率进行 !!+ 样本长的二次
谐波计算,对它进行比较,完成本组样本的语音检
测。
+ 实验测试
在信号测试中,通过软件产生 ,-./ 信号并存
储为声音文件,考虑到信号中断、语音插入等情况,
)模拟测试。使用录制标
准电话信号进行测试,对 !0000 次信号测试,错误小
于 !0 9 3。
(
1
1 结论
高性能的 ,-./ 解码器能满足 >-? 标准,它使
用了双滑动窗,完成信号检测更加灵活、简单,使用
实系数、变长度运算节省了运算时间。对于低频群,
这里采用 ##" 的计算字长 (为高频群 !!+ 的两倍),
在满足 >-? 要求的同时解决了信号输入缓存的问
题。最后对算法的有效性给出了测试结果8 证明它适
合于多通道 ,-./ 信号解码。
参考文献
! >@(&’@A(B%@A* -&*&C%44D@BCA(B%@ ?@B%@< >-? 9 - E&C%44&@6A(B%@ F#3<
-&CG@BCA* /&A(D’&5 %H ID5G 9 7D((%@ -&*&JG%@& K&(5< KLB()&’*A@6M >-? 9
-8 N%O&4P&’ !=""
# >@(&’@A(B%@A* -&*&C%44D@BCA(B%@ ?@B%@< >-? 9 - E&C%44&@6A(B%@ F#+<
.D*(B 9 H’&QD&@CR ID5G 9 7D((%@ KBS@A* E&C&J(B%@< KLB()&’*A@6M >-? 9
同时改变信号的频率偏移、持续时间、间歇时间、信
-8 N%O&4P&’ !=""
号高频群和低频群的功率差。由于无法取得实时的
多路 ,-./ 信号,采用录制的文件进行输入。使用的
测试集有:软件生成标准 ,-./ 测试文件 !00 个,软
件生成非标准测试文件 !10 个,电话录制 ,-./ 信
号 20 个,语音文件 30 个,音乐文件 !1 个,其他文件
#0 个。对于信号的检测时间门限设定为 +045,检测
与比较结果如下:
)信噪比测试。 测试输入信号的信噪比起始
(
!
3 $%&’()&* $< T@ T*S%’B(G4 H%’ (G& UOA*DA(B%@ %H /B@B(& -’BS%@%4&(’BC
K&’B&5< T4&’BCA@ .A(G .%@(G*R8 !=1"V :1 W ! X M 3+ 9 31
+ ,&%5(GA*B T8 .CCA5*B@ E< T Y%L 9 Z%4J*&[B(R >-? 9 Z%4J*BA@( ,DA*
-%@& .D*(BJ*& /’&QD&@CR ,&(&C(%’< >UUU -’A@58 #000V +" W 3 X M =!! 9
=!2
1 7&C\ E8 ,&4J5(&’ $< /B@B(& 9 I’&CB5B%@ $%&’()&* /B*(&’5 ?5&6 H%’ KBS@A*
-%@& ,&(&C(B%@< >UUU -’A@58 #00!V +" W : X M :=! 9 200
: /&*6&’ , 8 .A5%@ Z< UHHBCB&@( ,DA* 9 -%@& .D*(BH’&QD&@CR ,&(&C(B%@
?5B@S (G& N%@D@BH%’4 ,B5C’&(& /%D’B&’ -’A@5H%’4<
>UUU KBS@A* I’% 9
C&55B@S Y&((&’58 !=="V 1 W 2 X M !:0 9 !:3
·!"·