基于麦克风阵列声源定位系统的FPGA实现任勇D0l:10.16180/jki.issnl007-7820.2011.04.010电子•电路2011年第24卷第4期ElectronicSci.Tech./Apr.l5,2010基于麦克风阵列声源定位系统的FPGA实现任勇,胡方明,李自学(西安电子科技大学电子工程学院,陕西西安710071)摘要论述了基于麦克风阵列的声源定位技术的基本原理,给出了利用FPGA实现系统各模块的设计方法。重点介绍了其原理和模块的电路实现,给出的基于FPGA设计实验结果表明,系统最大限度发挥了FPGA的优势、简化了系统设计、缩短了设计周期、符合设计要求。关键词声源定位;时延估计;FFT;CORDICTN912文献标识码A1007-7820(2011)04-072-03RealizationoftheSoundSourceLocalizationSystemUsingFPGABasedontheMicrophoneArrayRenYong,HuFangming,LiZixue(SchoolofElectronicEngineering,XidianUniversity,Xi'an710071,China)AbstractThebasicprincipleofthesoundsourcelocalizationalgorithmbasedonthemicrophonearrayisdis-cussed.ThedesignmethodsforsystemmodulesusingFPGAarepresented.Emphasisisputontheprincipleandre-alizationofthecircuits.ExperimentresultsbasedonFPGAdesignshowsthatthesystemmakesfulluseoftheadvan-tagesofFPGA,simplifiesthesystemdesign,shortensthedesignperiodandmeetstherequirementsfordesign.Keywordssoundsourcelocalization;timedelayestimation;FFT;CORDIC声源定位,即确定一个或多个声源在空间中的位置,是一个有广泛应用背景的研究课题。基于麦克风阵列的声源定位技术在视频会议、声音检测及语音增强等领域有重要的应用价值。声源定位算法目前主要有3类:第一类算法是基于波束形成的方法。这种算法能够用于多个声源的定位,但是它存在着需要声源和背景噪声先验知识以及对初始值比较敏感等缺点;第二类算法是基于高分辨率谱估计的方法。这种算法理论上能够对声源方向进行有效估计,但是计算量较大,且不适于处理人声等宽带信号;第三类算法是基于到达时间差的方法。由于这种方法原理简单,计算量较小,且易于实现,在声源定位系统中得到了广泛应用。根据以上介绍,本文决定选择第三类即基于到达时间差的定位方法。基于到达时间差声源定位算法包括2个步骤:1)先进行时延估计,从中获得传声器阵列中相应阵元对之间的声音到达时延。常用的方法有最小均方自适应滤波法、互功率谱相位法和广义互相关函数法。收稿口期:2010-12-16作者简介:任勇(1986-),男,硕士研究生。研究方向:FPGA设计与应用。胡方明(1964-),男,教授。研究方向:物联网。李自学(1985-),男,硕士研究生。研究方向:FPGA设计与应用。2)利用时延估计进行方位估计,主要方法有角度距离定位法、球形插值法、线性插值法和目标函数空间搜索定位法。与其他几种方法相比,基于广义互相关函数的方法计算量小、计算效率高。优点明显,故时延估计采用此方法。方位估计则采用精度适中、易于实现的角度距离定位法。FPGA具有高速处理能力,而且开发灵活,易于在线系统升级,能较大缩短系统的开发周期。为此,采用Altera公司的FPGA处理器件实现本系统。1系统的基本原理及流程图算法的结构流程如图1所示,首先由麦克1和2获得说话人的语音信号,再经过A/D采样和低通滤波器,最后得到待处理输入语音信号,可以分别记为xn)和xn)。1(2(经过FIR带通滤波器后,用半重叠汉明窗对xn)和xn)加窗可得Xn)和Xn),然后即可l(2(lw(2w(求得xn)和xn)的互功率谱为1(2(Pk)=Xk)xXk)(l)12(lw(2w(为了减弱噪声和混响的影响,可以进行频域加权。加权后功率谱为Ck)=Xk)xPk)(2)12(12(12(为进一步突出峰值,在频域加权后,可对麦克信号间的互功率谱平滑,得72iz激.o任勇,等:基于麦克风阵列声源定位系统的FPGA实现电子•电路图1系统原理流程图am12Cm=112,am-1121+C,m》l112(3)分帧是用可移动的有限长度窗口进行加权的方法实现,这就是用某窗函数w(n)乘以s(n),从而形成加窗的语音信号sn)=s(n)Xw(n)/其中窗函数w(的值存储在内部存储资源中。常用的窗函数有汉明窗与矩形窗,汉明窗比矩形窗的平滑效果更好,故选择汉明窗,其表达式如式⑸所示w[n]=0.54-0.46c2nn其中,m表示累加平滑的帧数。接...