实验二啸叫检测与抑制系统一、实验目的1、认识扩音系统中的啸叫现象;2、了解啸叫产生的条件;3、分析啸叫信号的频谱;4、掌握啸叫信号检测的方法;5、掌握啸叫抑制的原理;6、实现啸叫抑制。二、实验设备1、音频功率放大系统;2、录音机;3、计算机;4、matlab软件三、实验内容1、认识啸叫及其危害声反馈现象在日常生活中非常常见。在多动能报告厅,KTV等同时出现扬声器和麦克风的场合,由于扬声器和麦克风之间存在电声耦合,必然会导致声反馈现象的产生。声反馈会在反馈回路中产生再生混响,使讲话、唱歌的声音严重失真,音质受到破坏,清晰度大大降低。严重时甚至会产生自激啸叫,限制扩声系统传声增益的提升,使整个系统的正常工作受到影响。还可能会烧毁系统放大器、扬声器中的高音单元,甚至会对人的听力造成损伤。所以,在应用到扩声系统的场合,啸叫的检测和抑制非常重要。2、啸叫信号产生的原理声音信号首先从麦克风拾入,经过扩声系统的功率放大器放大后由扬声器送出,经过各种障碍物的多次反射后,又被麦克风拾入,从而形成一个闭合环路。如果传声器对某些频点的拾音灵敏度过高,导致声音在这些频点的增益是正值,就形成了一个正反馈过程,声音信号经过多次反复循环放大后,在某些频点的声音强度超过一定的增益上限,就会发生自激振荡,从而产生啸叫。图1声反馈原理图啸叫的产生必须同时具备以下三个条件:(1)扬声器和拾音设备(麦克风)要处于同一声场中,从而保证扬声器输出的信号能被拾音设备再度采集,形成正反馈;(2)拾音设备的拾音灵敏度高,系统的传声增益大;(3)声场存在缺陷共振,即扩声系统的频谱特性不平坦,在某些频点上容易出现共振。3、啸叫信号的特征为了检测和抑制啸叫信号,需要对啸叫信号的基本特性做一定的分析,对啸叫信号在时域和频域上进行分析,最终得出以下结论:啸叫信号的时域波形是一个频率恒定的正弦波,其幅值随着时间的增加迅速增大,直到超出了功放放大区,进入饱和区和截止区时,产生削波现象,如图2所示。啸叫信号的频谱图中存在单一的,并且固定不变的啸叫频率点,并且啸叫频率点对应的幅值远远大于语音信号中其他频率点的幅值,如图2所示。图2啸叫时时域波形图3啸叫时频域波形该实验要做的主要工作就是在声反馈建立的初期,在尽可能少的时间内检测出啸叫对应的的频率点,并设计相应的陷波器将其抑制掉,保证系统工作在正常的线性放大区,预防谐波信号的产生。4、啸叫抑制的方法及原理对啸叫的抑制方法大体上分为被动型预防和主动型控制两大类。被动型预防是根据声场特性,从扩声系统的系统设计、设备选型、声场布局以及声场调整等环节着手做好预防啸叫的工作;主动型控制力求在控制啸叫的同时提高扩声系统的传声增益。主要有以下几种方法:基于建筑声学特性在音响界,最初解决回声啸叫的办法是通过降低扩声系统的增益来确保系统的稳定工作,但是,这样就无法完全满足扩声音量的需要。所以,工程技术人员开始在室内建筑声学、结构声学以及室内装饰装修方面下功夫,来解决声反馈问题和啸叫现象。但是,这种方法只是被动地抑制啸叫,造价及施工难度太大,不具有普遍推广意义。(2)均衡法图4均衡器均衡法的原理就是通过衰减或切除声音信号中某些过强的频率来抑制住声反馈。均衡器首先将声音频率进行分段,然后通过调节各频率段增益来弥补声场合扬声器的缺陷,达到抑制某一频点啸叫的目的。但是,这个方法需专业音响师手动调节,要求音响师准确判断啸叫频点并迅速做出反应;其次,在实际操作中,由于均衡器对啸叫频点的定位不够精确,会严重损伤音质。移频法移频就是移动频率,移频器的工作原理是对声音信号的频点向上或向下移几个或几十个频点,破坏构成声反馈的条件,最终达到防止啸叫的目的。但是,移频法导致了整个声音频率范围内的频率失真,对音质损伤较大;而且,移频器的工作状态与现场有无啸叫点没有关系,这样就会造成新的失真。因此,应该尽量少用这种方法。压限器它的工作原理是根据输入声音信号的大小自动改变输出信号的增益。当声音信号强度超过设定的电平值时,压缩器就将压缩比调到∞:1,语音信号强度就不会再继续增大,啸叫也就自然而然地被消除掉了。但是,这种抑制方法会对声音带来动态损失,不适宜要求较高的场合。(5)窄带陷波器利用频谱分析和判定条件找出声音信号的啸叫频率点,设计参数可调的数字陷波器对声反馈频点进行抑制。由于窄带陷波器在某个很窄的频带内有很大的衰减,因此对啸叫频点定位精度高,陷波器带宽窄,可以较为准确地抑制啸叫频点,而且对音质的损伤比较低,适合于对音质要求较高的场合。5啸叫抑制系统基本性能指标设计的啸叫抑制系统要具备以下条件:第一,陷波器的阻带带宽要越窄越好,这样可以减少声音的动态失真。第二,对啸叫频点进行抑制时,衰减量的陷波深度越深越好,保证对啸叫的完全抑制;第三,啸叫频率出现在任何频点,系统都可以自动检测到该频点,并对其进行抑制;该实验的性能指标如下:处理字长:16bit二阶IIR数字陷波器陷波滤波器频率范围:100Hz-5KHz陷波滤波器带宽:1/10倍频程频率定位精度:1Hz响应时间:1s6、系统算法及其实现6.1啸叫的检测和判定算法6.1.1简单的检判算法传统的啸叫检测是利用FFT算法实现的,用FFT算法对每帧信号}1,...,1,0{,Nnxn进行频谱分析,求得对应的功率谱}12/,...,1,0{,NkXk,然后计算出判决值R,计算公式如下:)/(log1010avpeakppR(1)在1式中,peakp是信号功率谱中的最大幅值,所对应得频率点是peakF,avp为每帧信号中所有功率幅值的平均值。如果在连续的一段时间,判决值都比预设门限值T高,且最大幅值对应的频点peakF都为同一个值,则判定peakF为啸叫频点。6.1.2细化频谱分析算法用上面的算法对声音信号的频谱进行分析时,分辨率为:HzKHzNFDsfft875.461024/48/(2)显而易见,该算法的频率分辨率过低,我们可以采用CZT算法来细化频谱分析。下面简单的介绍一下CZT算法:CZT(ChirpZ-transform)算法的实质就是对z变换采用螺线抽样。z变换的定义式为:10NnznnXxZ(3)其中,{0,1,...,1}nxnN是有限长序列。若令抽样点,0,1,...,1kkzAWkM,沿z平面上的一段螺线作等分角抽样,就可以得到抽样点处的z变换:10,0,1,...1kNnnkznnXxAWkM(4)其中,0022000,,jjAAeWWeA为起始抽样点0Z的矢量半径长度,0为起始抽样点的相角,0W为螺线的伸展率(当01W,为螺线内缩;当01W,为螺线外伸),0为相邻抽样点的角度差(当00,为逆时针;当00,为顺时针),M为要分析的复频谱点数。令0,0/()/lshlsFFFFF,就可以得到lhFF范围的频谱,CZT算法的频率分辨率为()/hlsFFF。可见,CZT算法可以任意选取~lFhF的频率范围进行分析,可以根据所需的频率分辨率来确定频率取样点数M。CZT算法的原理示意图如图5所示:图5CZT算法原理图CZT算法细化频谱效果如图6所示,第一幅图是直接利用FFT变换后的频谱图,第二幅图是利用CZT变换后的细化频谱图。图6CZT细化频谱效果图在对啸叫信号进行频域分析时,如果使用CZT对整个频域进行频谱分析,那么需要N*M次复乘,(N-1)M次复加,运算量非常大。按照CZT算法频率分辨率的公式()/czthlDFFM,其中hlFF为整个频带范围,要想提高分辨率,只能通过增加频率采样点数M来实现,而啸叫检测系统要求的频率分辨率又很高,需要的M值就会很大,使运算量大大增加。6.1.3频谱分析方案设计综上所述,FFT算法频率分辨率太低,达不到系统设计的要求,同时CZT算法运算量又太大。综合考虑FFT算法和CZT算法的优缺点,我们采用一个折中的办法:先利用FFT算法对整个频域进行粗分析,一旦检测到疑似声反馈频率点cF存在,就利用cF设定CZT算法的lF和hF,其中512clFF,512chFF,然后对hlFF~频带范围进行频谱细化分析,如图7所示。这种算法在保证较高频率分辨率的同时减小了CZT算法的运算量,综合性能较好。图7FFT+CZT算法示意图7、声反馈抑制算法实现7.1方案简述本实验采用参数可调的IIR陷波器来消除声反馈频点的自激啸叫。陷波器实质是一种带阻滤波器,它的阻带很窄,近似于一个特定的频点,因此又称为点阻滤波器。当声反馈检判算法检测到一个声反馈频点,就设计一个中心频率为该频点的陷波器对其进行抑制。图8陷波器频率特性图7.2陷波器设计数字陷波滤波器的设计要从滤波器的类型、模拟滤波器的设计准则以及模拟滤波器到数字滤波器的映射方法三个方面来考虑。陷波器的设计可以选用有限冲击响应FIR(FiniteImpulseResponse)滤波器或者无限冲击响应IIR(InfiniteImpulseResponse)滤波器。先比较一下两者的优缺点:FIR滤波器有严格线性相位,稳定,适合定点DSP实现等优点,但同时它运算量太大且频率选择性不高;相比之下,IIR滤波器有良好的频率选择性,在相同的技术指标下,可用比FTR滤波器少得多的阶数实现要求,计算量小,有利于陷波器设计的实时性。综合考虑两类滤波器的优缺点,我们最终选用采用IIR滤波器设计陷波器。IIR滤波器设计的基本步骤:第一,将数字滤波器技术指标,比如通带截止频率,阻带截止频率等,转换成对应的模拟滤波器技术指标;第二,设计模拟滤波器()aHs使其满足上述技术指标;第三,将设计出的模拟滤波器系统函数()aHs按某种方法转换成数字滤波器的系统函数()Hz。在整个设计过程中存在着两种不同的变换:一是频带变换,即将低通滤波器变换成高通、带通、带阻滤波器:二是变换域变换,即将模拟滤波器变换成数字滤波器。根据这两种变换的先后顺序,引出以模拟滤波器为基础的两种设计方法[7],如图9和10所示。图9IIR数字滤波器设计方法1图10IIR数字滤波器设计方法2模拟低通滤波器几种常见的类型有贝塞尔滤波器、巴特沃思滤波器、切比雪夫I型、II型和椭圆滤波器。它们的性能比较如表1所示。表1五类模拟低通滤波器性能对比图从模拟滤波器到数字滤波器,有两种常用的映射方法:脉冲响应不变法和双线性变换法。脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应h(n)模仿模拟滤波器的冲击响应()aht。只有当模拟滤波器的频率响应是带限的,且带限于折叠频率以内,才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率响应,保证不产生频率失真。脉冲响应不变法最大的缺点是有频率响应的混叠现象,因此只适用于限带的模拟滤波器,比如衰减特性很好的带通和带阻滤波器,而不适用于高通和带阻滤波器,所以本文采用双线性变换法。双线性变换法的基本原理:它是使数字滤波器的频率响应模仿模拟滤波器频率响应的一种滤波器设计方法。双线性变换法把整个s平面映射到整个z平面,s平面的左半平面映射到z平面的单位圆内,s平面的右半平面映射到z平面的单位圆外,s平面的虚轴映射到z平面的单位圆上。这样就使s平面与z平面是一一对应的关系,它克服了多值映射频谱混叠的缺点,同时也满足了因果稳定的模拟滤波器能够变换成因果稳定的数字滤波器的要求。用双线性变换法设计IIR数字滤波器的设计步骤是:(1)确定参数T。双线性变换法中的参数T的选择和最终设计出的数字滤波器无关,因此可以取实际关系中的值,也可以为设计简单起见,取T=2。由于参数T的取值会影响计算精度,所以一般地说,使1cT左右比较适当,不宜取太大或太小的数值。(2)将数字滤波器的边界频率p、s转换为模拟滤波器的边界频率p、s,转换公式为2tan()2ppT,2tan()2ssT。(3)按照模拟滤波器技术指标,,,ppss,设计模拟滤波器()aHs。(4)用双线性变换法将模拟滤波器()aHs变换成数字滤波器()Hz,即11211()()|zasTzHzHs本