带啸叫检测与抑制的音频功率放大器
2014-12-09秦伟轩廖红华
颜 炜,张 通,秦伟轩,廖红华
(1.湖北民族学院 信息工程学院,湖北 恩施445000;2.湖北民族学院 科技学院,湖北 恩施445000)
啸叫抑制是对于音响设备来说是一个必要的操作,已广泛应用于多种多媒体设备中.最初解决啸叫的办法是降低扩声系统的增益来使系统稳定工作,缺点是不能完全满足扩声音量的需要.基于移频、移相的啸叫抑制.这两种方法是通过改变输入信号的频率或相位来不断回避房间峰点施加的影响,从而破坏构成声音反馈的条件,最终达到啸叫抑制的目的.移频器一般只需移动输入信号频率3~8 Hz 即可较好的抑制啸叫.移频器的工作特点是操作简便,无须人工调试,抑制啸叫能力比较显著.本文介绍了利用FPGA 内部NCO 核配合数字乘法器可以很容易的实现数字移频,利用FIR 滤波器不但能滤除频谱搬移带来的低频震荡干扰还能通过时延的方式达到移相,且数字FIR 滤波器能实现良好的滤波特性.
1 抑制啸叫原理
对于使用扩声系统即麦克风时,其产生的频率比较频繁.首先房间自身就具有回声现象,麦克风收取到声音后经过一系列的设备扩大了声音,然后播出,当产生回声时以声反射这样的方式传入到麦克风中,这样周而复始的叠加,导致整个扩声系统产生正反馈,之后我们就会听到刺耳的啸叫声,破坏了整个扩声系统的平衡性,最终导致设备不能正常工作.
主要原理是使输出的峰点与反馈的峰点不在同一个频率上,这样从根本上有效的抑制啸叫的产生,使正反馈不能很好的工作,很大程度上提升了系统的整体增益.本设计在啸叫抑制方面通过FPGA 硬件描述语言Verilog HDL 编写各种硬件逻辑电路模块,实现对信号数字化后的各种功能处理.由FPGA 内部的数控振荡器产生低频数字信号源实现对音频信号的数字频谱搬移,再通过数字FIR 带通滤波器提取200 Hz~10 Khz 的音频数字信号.在啸叫检测方面通过FPGA 内部的FFT 模块实现频谱分析,在FPGA 内构建的CPU 上运行的是C 语言程序,主要是对FPGA 硬件部分采集的数据信号进行FFT 变换并判断计算其啸叫频率;对其AD/DA 控制器进行更改,以实现电压采样并转换为功率,通过按键检测、按键响应来实现对DAC 的控制,以实现程控功率放大,并在LCD 上显示采样转换之后的功率与啸叫频率.
2 系统设计
2.1 硬件设计
系统采用FPGA 作为信号处理及控制核心,利用数字移频技术实现啸叫抑制.借助DE2 内部的WM8731实现对音频的采集和输出,前端拾音电路以OPA134 作为主要器件,后端利用TPA3112D1 作为功率放大器件.在啸叫抑制方面通过FPGA 内部的数控振荡器产生低频数字信号源实现对音频信号的数字频谱搬移,再通过数字FIR 带通滤波器提取200 Hz~10 Khz 的音频数字信号.系统整体框图如图1 所示.
2.1.1 拾音电路设计 拾音电路采用运算放大器OPA134 将输入信号进行前级放大,在前期测试时通过一个加法器INA134 将正弦信号与音频信号进行叠加,测试啸叫检测以及啸叫抑制时将某一个通道与地相连.
考虑到本设计要求输出功率为50 mW~5 W程控可调,因此程控放大部分采用TI 的程控增益放大器VCA810,与其它程控芯片不同的是,其增益不是固定的,可以通过输入电压来控制增益的大小,这样就能通过DAC 输出一个模拟电压值来调节运算放大器的增益,从而达到连续增益可调的电路.程控放大电路由电压跟随器,增益为1 的反向放大器以及程控运算放大器VCA810 构成,DAC 程控输出的模拟控制电压信号经过输入输出阻抗匹配之后的信号输入程控运放的Gain 端,需要放大的信号从输入端输入之后经过指定放大增益放大之后从输出口输出.由于信号为交流信号,采用真有效值转化芯片AD637 将正弦波信号转化为有效值,采用ADS7818 直接采样.
2.1.2 功率放大电路设计 功率放大电路采用TI 的TPA3112D1 音频功率放大器,这是一款具有Speaker-Guard 的25 W 单声道、无需外加滤波器的D 类音频功率放大器,该芯片供电范围为8 V~26 V;采用H 桥 作为功率输出级,使得其可在输出没有传统LC 滤波器的情况下直接驱动感性负载;输入的音频信号可以是差分形式,其中在24 V 的供电情况下,满负载驱动8Ω 的桥接式扬声器,声音失真率仅为0.1%.TI 已经做好了评估板,由于是裸板,因此需要自己焊接对应的元器件.
音频信号转换采用集成音频解码芯片WM8731,通过内部两个ADC,DAC 对两个通道信号独立控制,并且带有高通滤波器构成数字音频采集芯片,通过I2C 通信配置寄存器来设置WM8731 的芯片采集方式,这种集成数字处理器廉价效果优点特优.
图1 系统整体方案框图Fig.1 The whole project diagrom of system
2.2 软件设计
在啸叫抑制方面通过FPGA 内部的数控振荡器产生低频数字信号源实现对音频信号的数字频谱搬移,再通过数字FIR 带通滤波器提取200 Hz~10 Khz 的音频数字信号.在啸叫检测方面通过FPGA 内部的FFT 模块实现频谱分析,采用一定的算法确定是否产生啸叫,并通过LCD 显示啸叫频率.在FPGA 内部构建一个NIOS 软核控制器,控制DAC8831 输出一个模拟电压信号控制程控增益运算放大器VCA810,从而控制系统的功率;通过对ADS7818 的控制实现电压采集,LCD 显示系统功率.主程序流程图如图2 所示.
3 结果与分析
3.1 啸叫频率分析
图3 为未发生啸叫与发生啸叫时,三次测试信号的幅频曲线.从图3 可以明显看出:发生啸叫时,信号输出幅度很大,且啸叫频率点在输入信号频率不变的情况下,啸叫频率点相对固定.
图2 主程序流程图Fig.2 The diagram of main program flow
图3 啸叫前(A)与啸叫时(B)三次测试信号的幅频曲线Fig.3 The amplitude-frequency curve of three times test signal
3.2 功率误差分析
实验测试数据见表1.经过对功率的实时显示分析,ADC 所采集得到的电压值转换为功率显示出来对应的误差小于10%.
表1 测试数据Tab.1 The test data
4 结语
经过计算和观测三组数据可以总结三个特点从而来判断发声系统是否发生啸叫,得到啸叫频点测得啸叫频率,其特点是:啸叫的最低频率都是大于2K 左右的频率;啸叫最大谱线出现的次数大于均值的10 倍;持续啸叫时,10 倍的出现测试均大于5~7 次.通过整体调试,实现了在输入音频信号有效值为20 mV 时,功率放大器的最大不失真功率为5.5 W,程控设置功放的输出功率范围为0~5.5 W,系统频率响应范围为200~10 kH,输出功率为5 W 时,电路整体效率≥80%,能很好的实现啸叫检测和啸叫抑制.
[1] 潘松.EDA 技术应用与发展之管窥[J].电子世界,2004(3):4-7.
[2] James H,McClellan,Thomas W Parks.A Personal History of the Parks-McClellan Algorithm[J].IEEE signal processing magazine,2005,3:82-86.
[3] 徐宁仪,周祖成.Avalon 总线与SOPC 系统架构实例[J].半导体技术,2003,28(2):17-20.
[4] 刘爱学.浅谈会议室的分类和音视频会议系统设计要点[J].智能建筑电气技术,2014,8(4):68-73.
[5] 官吉兴.FFT 的FPGA 实现[J].无线电工程,2005(2):43-46.
[6] 袁海林.基于Nios II 的嵌入式智能网络家居系统的设计[J].湖北民族学院学报:自然科学版,2007,25(1):24-25,59.
[7] 刘三军,冉文明,王信杰,等.数字信号传输性能分析仪设计[J].湖北民族学院学报:自然科学版,2011,29(4):382-385.
[8] Pele Z,Samardzic T,Maluckov N.One application of FPGA integrated circuits CMOS camera and LCD display controller design[C]//6th International Conference on Telecommunications in Modern Satellite,Cable and Broadcasting Service,2003:137-138.
[9] 刘庆良,卢荣军,李建清.FIR 数字滤波器的FPGA 实现研究[J].电子设计工程,2010,148(3):59-61,64.