电信技术研究 2008年第9期 多频信号识别算法研究 戴林乔哲向泽永 摘要:本文提出一种识别多频信号的相关检测算法,并给出计算机的模拟结果,同时 对该算法的频率泄漏现象进行理论分析,并提出以加窗来抑制频率泄漏的方法,最后 给出用FPGA实现该算法的硬件结构。 关键词:相关检测识别多频信号频率泄漏5号信令 1引言 程控交换机中的5号信令的交换是通过传输多频信号完成的,5号信令的识别首先 要完成识别多频信号。多频信号分为前向和后向两种,前向信号的频率为六种:1380Hz、 1500Hz、1620Hz、1740Hz、1860Hz、1980Hz,后向信号的频率为四种:780Hz、900Hz、 1020Hz、1 140Hz。前向信号以六中取二、后向信号以四中取二的原则构成15种前向信 号和6种后向信号。用数字信号处理的方法检测多频信号有FFT法、窄带滤波法等。本 文提出一种相关检测法识别多频信号,该算法简单、时延小,可以边取样边计算,特别 适用于同时处理多路多频信号的情况。 2相关检测法的提出 序列x(n)离散傅立叶变换为 _v一1 = 硼:∑ ,z) 删Ⅳ (1) n=O , : (0)+ (1) 一 ‘v+ (2) 一 Ⅳ+……x(N一1)e一 Ⅳ一 Ⅳ x(k)为序列x(n)中k频率分量的大小。设 为抽样频率,N为抽样点数,DFT法所 能检测信号的谱线频率f=kfjN(0<k<N.1/2),检测信号的频率最好在谱线上,使用这种 DFT法检测多频信号要求前后1 0种频率都在谱线上,但实际运用中要求很难得到满足。 多频信号为抽样频率8KHz的PCM信号,如果使得1 0种被检测的多频信号都在DFT的 谱线上,那么抽样点数为400个点,从第一到第400个数据的输入需用50ms时间,在 互控周期要求尽可能小的情况下,这样输入数据的时问显的太长,能否找到一种抽样点 数少同样把多频信号识别出来的算法?我们依然从原始的DFT入手。 设/’’为DFT变换的谱线间隔,T。为抽样时间间隔, 抽样频率,(1)式指数部分 的变量 2 ̄k/n=2万 I/ =2 ’ = 其中O3=2;r 。0<k<N一1/2 设Y(∞)=X(k)则DFT变换为 Ⅳ一l r(co)=∑x(n)e (2) n=0 6 科技论文 (2)式中国要求为DFT谱线间隔的整数倍,否用此式检测频率不在DFT谱线上的 频率,为此进行了计算机模拟,将Y(∞)分成实部和虚部则 Ⅳ一1 Ⅳ一l r(co)=∑x(n)cos(T/on)-j∑x(n)sin(T/on) =0 n=0 N取200个点,取200个点的原因后面再做解释,T 取125us,co/2 ̄分别为780Hz、 900Hz、1 020Hz、1 1 40Hz、1 3 80Hz、1 500Hz、1 620Hz、1 740Hz、1 860Hz、1 980Hz,每 输入一样值分别乘以10种频率的正弦和余弦分量,再与上一次的和值相加,当加到200 次时求出Y(0j)的模的平方。 199 199 z(co)=l r(co)l。=(∑x(n)cos(T/on)) +(∑x(n)sin(T ̄con)) n=0 n=0 输入为 f 1=sin(2z×1380×125×l0-6× +7t"/3)+sin(2z×1740×125×10曲×,2+4z/5) 计算机输出结果如下: Z(1980)=0,Z(1860)=0,Z(1740)=10000,Z(1620)=0,zo5oo)=0, z(1380)=10000,Z(1140)=0,Z(1020)=O,Z(900)=0,Z(780)=0 计算机仿真结果表明各项z((0)中(o为x(n)中的频率的项最大,其余的项为零,结果 识别正确,因此这种方法同DFT法的一样可以识别多频信号。这种方法是一种改进型的 DFT识别算法,因为输入信号分别乘了10种多频信号的正弦和余弦分量,该方法实际 是利用了信号的相关性,也可称之为相关检测法。 3频率泄漏问提的解决 改进型的DFT算法的表达式如下 Ⅳ一l Y(co)=∑x(n)e :0 =x(O)+ (1)P一 + (2)P一 ……+x(N一1)e一 Ⅳ一 ’ 为了分析频率泄漏产生的原因,令系统单位冲激响应 (3) f e-j( v+咖’ =0…Jv一1 ( )={ 0 <0 }0 冲激响应 ,(n)的一组滤波器在(N一1)时输出如下 Ⅳ一1 >Ⅳ~1 设输入序列为0、0、x(0)、X(1)、x(2)….、x(N一1)、0、0…把输入序列输入到单位 y(N—1):∑ ( ) (Ⅳ一1一,z) n=O =x(O)+ (1)P一 十x(2)e一 +……+ (Ⅳ一1)e一 ‘Ⅳ一 (4) (4)式与(3)式结果是一样的,说明r(co)的值是以序列x(n)为输入通过单位冲 激响应为 ( )的一组滤波器在(N一1)时刻的输出值, ( )的振幅特性表达式如下 7 电信技术研究 2008年第9期 ))= sin(N(2 ̄f -co )L/2I sin {( It" ,一缈}』 / }I, (2厂)l,其中∞为多频信号的10个频率,当N=200,N=100时其振幅频率特性分别如图1 和图2所示。 图1当N=200时振幅频率特性 图2当N=100时振幅频率特性 图l中N取200个点,l0个滤波器的中心频率分别为780Hz、900Hz、1020Hz、1140Hz、 1380Hz、1500Hz、1620Hz、1740Hz、1860Hz、1980Hz,图中只显示中心频率为1380Hz、 1500Hz、1620Hz、1740Hz的四个滤波器振幅频率特性,以中心频率为1380Hz的滤波器 为例,其旁瓣零点之问频率间隔为40Hz,且其余的滤波器的中心频率都在此滤波器振幅 特性曲线的零点上,这就验证了上节中计算机仿真模拟的结果,只有z(138o)和Z(1740) 不为零其余的都为零的原因。图2中当N取100个点时可以发现每一个滤波器的中心频 率都在相邻的滤波器的振幅特性曲线不为零的旁瓣上,这样其余的滤波器均有输出值, 从而产生频率泄漏。这说明当多频信号为标准值无频偏时,通过选择合适的抽样点数可 以有效克服频率泄漏现象,这也解释了上节中抽样点数取200个点的原因。 国标规定多频信号的中心频率允许 ̄i"+10Hz的频偏,这样即使选择了合适的抽样点 数依然会产生频率泄漏。从图1中可以发现当多频信号不为标准值时,则这个频率在相 邻的滤波器的旁瓣上都有分量输出,这样就会影响多频信号的识别,产生这种频率泄漏 的原因是输入信号是有限长的一段信号,可以通过加窗函数的方法抑制滤波器旁瓣的大 小,选择了汉宁窗p(n)=0.5(1一cos(27cn/Jv))(n=0……N 1),这样检测公式为 N1 -..一(∞ => ( p(n)e-j1 、 ‘_ 、… n=0 8 科技论文 对于多频信号出现频偏造成频率泄漏和加窗函数对频率泄漏进行了有效的抑制的现 象,进行了计算机模拟。设N=200输入信号为 x(n1:sin(2z×1390 X 125×10-b×,2+7 /3)+sin(2z×l730×125 Xl0 ×n+ /41 无窗函数时输出结果如下: Z(1980)=13.976,z(1860)=46.779,Z(1740)=8002。715,Z(1620)=100.715, z(15o0)=1o3.765,Z(1380)=7936.495,Z(1140)=10.233,Z(1020)=4.463, Z(900)=2.443。Z(780):1.5 1 6 加汉宁窗函数时输出结果如下: Z(I980)=0.002,Z(1860)=0.1l8,Z(1740)=2285.193,z(1620)=0.471 Z(1500)=0.471,Z(1380)=2285.189,z(1140)=0.002,z(1020)=0, Z(900):0,z(78o)=0 从计算机仿真输出结果中可以看到加汉宁窗函数后有效地抑制了频率泄漏。 4用FPGA实现多频信号识别的具体方案 近年来FPGA发展较快,规模越来越大、速度越来越快,特别是硬件乘法器和RAM 数量很多,用FPGA完成数字信号处理成为发展趋势。图3为FPGA实现多频信号的识 别的框图,整个结构需4个硬件乘法器、2个累加器、1个正余弦的BLOCK RAM表, 硬件结构非常简单。 图3 FPGA实现多频信号的识别的框图 5结束语 这种相关检测法不仅可以运用多频信号的识别,还可以推广应用于单频信号识别和 分析上,本文对该算法进行了深入的理论分析。该算法结构简单,速度快,具有广泛的 推广价值。 参考文献 [1]R.C。Agarwal,R.Sudhakar,and B.P Agarwal,"Multiplerless Implementtation of MFJDTMF Receivers",IEEE Trans.Communications,vo1.COM一32,PP.839-847,July 1984 [2】C.R.Baugh,"Design and Performance of a Digital Multifrequency Receiver'’,IEEE Trans. Communications,vo1.COM一25,PP.608—6 1 5,June 1 977 i 3]Digiml Signal Processing.Alan ̄Oppenheim Ronald WSchafer 【4】王世一编著. 数字信号处理 9