1、啸叫信号的时域波形是一个频率恒定的正弦波,其幅值随着时间的增加迅速增大,直到超出了功放放大区,进入饱和区和截止区时,产生削波现象,如图2所示。啸叫信号的频谱图中存在单一的,并且固定不变的啸叫频率点,并且啸叫频率点对应的幅值远远大于语音信号中其他频率点的幅值,如图2所示。图2 啸叫时时域波形图3 啸叫时频域波形该实验要做的主要工作就是在声反馈建立的初期,在尽可能少的时间内检测出啸叫对应的的频率点,并设计相应的陷波器将其抑制掉,保证系统工作在正常的线性放大区,预防谐波信号的产生。4、啸叫抑制的方法及原理对啸叫的抑制方法大体上分为被动型预防和主动型控制两大类。被动型预防是根据声场特性,从扩声系统的系
2、统设计、设备选型、声场布局以及声场调整等环节着手做好预防啸叫的工作;主动型控制力求在控制啸叫的同时提高扩声系统的传声增益。主要有以下几种方法:基于建筑声学特性在音响界,最初解决回声啸叫的办法是通过降低扩声系统的增益来确保系统的稳定工作,但是,这样就无法完全满足扩声音量的需要。所以,工程技术人员开始在室内建筑声学、结构声学以及室内装饰装修方面下功夫,来解决声反馈问题和啸叫现象。但是,这种方法只是被动地抑制啸叫,造价及施工难度太大,不具有普遍推广意义。(2)均衡法图4 均衡器均衡法的原理就是通过衰减或切除声音信号中某些过强的频率来抑制住声反馈。均衡器首先将声音频率进行分段,然后通过调节各频率段增益
3、来弥补声场合扬声器的缺陷,达到抑制某一频点啸叫的目的。但是,这个方法需专业音响师手动调节,要求音响师准确判断啸叫频点并迅速做出反应;其次,在实际操作中,由于均衡器对啸叫频点的定位不够精确,会严重损伤音质。移频法 移频就是移动频率,移频器的工作原理是对声音信号的频点向上或向下移几个或几十个频点,破坏构成声反馈的条件,最终达到防止啸叫的目的。但是,移频法导致了整个声音频率范围内的频率失真,对音质损伤较大;而且,移频器的工作状态与现场有无啸叫点没有关系,这样就会造成新的失真。因此,应该尽量少用这种方法。压限器 它的工作原理是根据输入声音信号的大小自动改变输出信号的增益。当声音信号强度超过设定的电平值
4、时,压缩器就将压缩比调到:1,语音信号强度就不会再继续增大,啸叫也就自然而然地被消除掉了。但是,这种抑制方法会对声音带来动态损失,不适宜要求较高的场合。(5)窄带陷波器利用频谱分析和判定条件找出声音信号的啸叫频率点,设计参数可调的数字陷波器对声反馈频点进行抑制。由于窄带陷波器在某个很窄的频带内有很大的衰减,因此对啸叫频点定位精度高,陷波器带宽窄,可以较为准确地抑制啸叫频点,而且对音质的损伤比较低,适合于对音质要求较高的场合。5 啸叫抑制系统基本性能指标设计的啸叫抑制系统要具备以下条件:第一,陷波器的阻带带宽要越窄越好,这样可以减少声音的动态失真。第二,对啸叫频点进行抑制时,衰减量的陷波深度越深
5、越好,保证对啸叫的完全抑制;第三,啸叫频率出现在任何频点,系统都可以自动检测到该频点,并对其进行抑制;该实验的性能指标如下:处理字长:16bit二阶IIR数字陷波器陷波滤波器频率范围:100Hz-5KHz陷波滤波器带宽:1/10倍频程频率定位精度:1Hz响应时间:1s6、系统算法及其实现6.1 啸叫的检测和判定算法6.1.1 简单的检判算法传统的啸叫检测是利用FFT算法实现的,用FFT算法对每帧信号进行频谱分析,求得对应的功率谱,然后计算出判决值R,计算公式如下: (1)在1式中,是信号功率谱中的最大幅值,所对应得频率点是,为每帧信号中所有功率幅值的平均值。如果在连续的一段时间,判决值都比预设
6、门限值T高,且最大幅值对应的频点都为同一个值,则判定为啸叫频点。6.1.2 细化频谱分析算法用上面的算法对声音信号的频谱进行分析时,分辨率为: (2)显而易见,该算法的频率分辨率过低,我们可以采用CZT算法来细化频谱分析。下面简单的介绍一下CZT算法:CZT(Chirp Z-transform)算法的实质就是对z变换采用螺线抽样。z变换的定义式为: (3)其中,是有限长序列。若令抽样点,沿z平面上的一段螺线作等分角抽样,就可以得到抽样点处的z变换: (4)为起始抽样点的矢量半径长度,为起始抽样点的相角,为螺线的伸展率(当,为螺线内缩;当,为螺线外伸),为相邻抽样点的角度差(当,为逆时针;,为顺
7、时针),M为要分析的复频谱点数。令,就可以得到范围的频谱,CZT算法的频率分辨率为。可见,CZT算法可以任意选取的频率范围进行分析,可以根据所需的频率分辨率来确定频率取样点数M。CZT算法的原理示意图如图5所示:图5 CZT算法原理图CZT算法细化频谱效果如图6所示,第一幅图是直接利用FFT变换后的频谱图,第二幅图是利用CZT变换后的细化频谱图。图6 CZT细化频谱效果图在对啸叫信号进行频域分析时,如果使用CZT对整个频域进行频谱分析,那么需要N*M次复乘,(N-1)M次复加,运算量非常大。按照CZT算法频率分辨率的公式,其中为整个频带范围,要想提高分辨率,只能通过增加频率采样点数M来实现,而
8、啸叫检测系统要求的频率分辨率又很高,需要的M值就会很大,使运算量大大增加。6.1.3 频谱分析方案设计综上所述,FFT算法频率分辨率太低,达不到系统设计的要求,同时CZT算法运算量又太大。综合考虑FFT算法和CZT算法的优缺点,我们采用一个折中的办法:先利用FFT算法对整个频域进行粗分析,一旦检测到疑似声反馈频率点存在,就利用设定CZT算法的和,然后对频带范围进行频谱细化分析,如图7所示。这种算法在保证较高频率分辨率的同时减小了CZT算法的运算量,综合性能较好。图7 FFT+CZT算法示意图7、 声反馈抑制算法实现7.1 方案简述本实验采用参数可调的IIR陷波器来消除声反馈频点的自激啸叫。陷波
9、器实质是一种带阻滤波器,它的阻带很窄,近似于一个特定的频点,因此又称为点阻滤波器。当声反馈检判算法检测到一个声反馈频点,就设计一个中心频率为该频点的陷波器对其进行抑制。图8 陷波器频率特性图7.2 陷波器设计数字陷波滤波器的设计要从滤波器的类型、模拟滤波器的设计准则以及模拟滤波器到数字滤波器的映射方法三个方面来考虑。陷波器的设计可以选用有限冲击响应FIR(Finite Impulse Response)滤波器或者无限冲击响应IIR(Infinite Impulse Response)滤波器。先比较一下两者的优缺点:FIR滤波器有严格线性相位,稳定,适合定点DSP实现等优点,但同时它运算量太大且
10、频率选择性不高;相比之下,IIR滤波器有良好的频率选择性,在相同的技术指标下,可用比FTR滤波器少得多的阶数实现要求,计算量小,有利于陷波器设计的实时性。综合考虑两类滤波器的优缺点,我们最终选用采用IIR滤波器设计陷波器。IIR滤波器设计的基本步骤:第一,将数字滤波器技术指标,比如通带截止频率,阻带截止频率等,转换成对应的模拟滤波器技术指标;第二,设计模拟滤波器使其满足上述技术指标;第三,将设计出的模拟滤波器系统函数 按某种方法转换成数字滤波器的系统函数在整个设计过程中存在着两种不同的变换:一是频带变换,即将低通滤波器变换成高通、带通、带阻滤波器:二是变换域变换,即将模拟滤波器变换成数字滤波器
11、。根据这两种变换的先后顺序,引出以模拟滤波器为基础的两种设计方法7,如图9和10所示。图9 IIR数字滤波器设计方法1图10 IIR数字滤波器设计方法2模拟低通滤波器几种常见的类型有贝塞尔滤波器、巴特沃思滤波器、切比雪夫I型、II型和椭圆滤波器。它们的性能比较如表1所示。表1 五类模拟低通滤波器性能对比图从模拟滤波器到数字滤波器,有两种常用的映射方法:脉冲响应不变法和双线性变换法。脉冲响应不变法是从滤波器的脉冲响应出发,使数字滤波器的单位脉冲响应h(n)模仿模拟滤波器的冲击响应只有当模拟滤波器的频率响应是带限的,且带限于折叠频率以内,才能使数字滤波器的频率响应在折叠频率以内重现模拟滤波器的频率
12、响应,保证不产生频率失真。脉冲响应不变法最大的缺点是有频率响应的混叠现象,因此只适用于限带的模拟滤波器,比如衰减特性很好的带通和带阻滤波器,而不适用于高通和带阻滤波器,所以本文采用双线性变换法。双线性变换法的基本原理:它是使数字滤波器的频率响应模仿模拟滤波器频率响应的一种滤波器设计方法。双线性变换法把整个s平面映射到整个z平面,s平面的左半平面映射到z平面的单位圆内,s平面的右半平面映射到z平面的单位圆外,s平面的虚轴映射到z平面的单位圆上。这样就使s平面与z平面是一一对应的关系,它克服了多值映射频谱混叠的缺点,同时也满足了因果稳定的模拟滤波器能够变换成因果稳定的数字滤波器的要求。用双线性变换
13、法设计IIR数字滤波器的设计步骤是:(1)确定参数T。双线性变换法中的参数T的选择和最终设计出的数字滤波器无关,因此可以取实际关系中的值,也可以为设计简单起见,取T=2。由于参数T的取值会影响计算精度,所以一般地说,使左右比较适当,不宜取太大或太小的数值。(2)将数字滤波器的边界频率、转换为模拟滤波器的边界频率,转换公式为(3)按照模拟滤波器技术指标,设计模拟滤波器(4)用双线性变换法将模拟滤波器变换成数字滤波器,即本课题中采用双线性变换设计二阶IIR数字陷波器的步骤,假设二阶模拟陷波器的传输函数为 (5)其中B为3dB带宽。用双线性变换,可以得到二阶数字滤波器的传输函数为: (6)令:则上式
14、可改为: (7)根据双线性变换法中数字频率与模拟频率的对应关系有: (8)则求得IIR陷波器差分方程系数如下: (9) (10)二阶 IIR 数字陷波器通过离散时间系统来实现,用差分方程描述如下: (11)四、实验过程及结果分析该实验在matlab下完成,对IIR滤波器设计全过程中的各个步骤,Matlab都提供了相应的工具箱函数,使IIR数字滤波器设计变得非常简单。IIR数字滤波器的设计步骤和所用的工具箱函数如图11所示。图11 IIR数字滤波器设计步骤流程图1、运行算法程序,给出如下结果:啸叫时语音信号的时域波形图啸叫时语音信号的频谱图啸叫抑制后的时域波形图啸叫抑制后的频谱图2、对上述结果进
15、行分析,说明滤波后的结果。附录:fs = 10000; %设置采样频率N = fs * 58; %设置信息长度% 读入音频 x,fs= wavread(yuyin1.wav,N); %将音频输入到程序中%显示语音信号时域波形figure(1);subplot(2,1,1);plot(x);xlabel(n);ylabel(幅度/ Vtitle(带啸叫的语音信号时域波形%显示语音信号x的频谱;n=0:1:N-1;f=n*fs/N; %频谱图中的频率轴temp=fft(x,N); %对语音信号x作fft 变换mag=abs(temp); %求功率谱figure(2);plot(f(1:N/2),m
16、ag(1:N/2); %画语音信号 x的频率谱带啸叫的语音信号频谱频率/Hz幅度axis(0,6000,0,10000); grid on;%对啸叫点进行检测maxs index=max(mag(1: %找出所有频点中幅值最大的点A=f(index);%利用CZT做细化频谱分析f1 =A-512; f2 =A+512; %细化频率范围Fs=1000;m=1024;w=exp(-j*2*pi*(f2-f1)/(m*Fs);a = exp(j*2*pi*f1/Fs);z = czt(x,m,w,a);fz = (0:length(z)-1)*(f2-f1)/length(z) + f1;figur
17、e(4);plot(fz,abs(z);axis(f1 f2 0 10000);Hz ylabel(MagnitudeCZT 细化频谱图maxs index=max(abs(z);B=fz(index) %从声卡播放x数组,听到带有啸叫的语音sound(x,fs);%设计陷波器%模拟指标 阻带下截止频率fs1=A-200, 阻带上截止频率fs1=A+200,阻带最小衰减as=50db% 通带下截止频率fp1=A-300, 通带上截止频率fp2=A+300,阻带最小衰减ap=0.1dbrp=0.1; %通带衰减dBrs=50; %阻带衰减dBwp1=B-1500;wp2=B+1500;ws1=B
18、-1600;ws2=B+1600;%模拟指标wp=wp1,wp2/(fs/2); %利用奈奎斯特频率归一化ws=ws1,ws2/(fs/2);N_j,wc=ellipord(wp,ws,rp,rs,z %求滤波器阶数num,den=ellip(N_j,rp,rs,wc,stop %求滤波器传递函数H,W=freqz(num,den); %绘制陷波器的频率响应figure(3);plot(W*fs/(2*pi),abs(H);grid;频率、Hz幅值带阻滤波器频率响应axis(0,8000,0,1);y=x;y=filter(num,den,x); %对x的啸叫点进行抑制 %做抑制后信号的频谱图temp=fft(y,N); %对语音信号y作fft 变换 subplot(2,1,2);grid on;%显示处理后语音信号时域波形subplot(2,1,2);plot(y);啸叫抑制后语音信号时域波形axis(0,600000,-1,1);%利用声卡测试陷波输出后的语音信号 ysound(y,fs);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1