一种带啸叫检测与抑制的D类功放系统设计
2022-01-04张小波牟琪琦周维川
杨 川 张小波 牟琪琦 周维川
(重庆机电职业技术大学,重庆 402760)
啸叫现象是音响系统中最常出现的不良现象之一,能够极度影响听众的听觉效果,严重时还有可能烧毁音响元件。本设计致力于啸叫检测和抑制,并采用高效率的D类功放进行设计。
1 方案设计
本文根据设计要求设计了信号放大、滤波以及功放电路系统,主要包括信号采集、信号放大、信号滤波、啸叫检测、啸叫抑制、功率检测控制、数模转换以及功率放大等功能[1]。系统的总体框图如图1所示。啸叫信号的检测与抑制由STM32F103实现,经过自适应陷波处理的音频信号将传输到音频功率放大器并正常播放。
图1 整体设计框图
本设计中硬件电路设计相对简单,软件算法设计相对较难,其中:硬件设计的核心是啸叫检测、啸叫抑制、功率检测控制、数模转换以及功率放大等模块;软件设计主要包括时间抽选奇偶分解快速傅里叶变换算法(Fast Fourier Transformation,FFT)和最小均方根自适应陷波算法(Least Mean Square,LMS)。FFT主要用于频谱分析,以找到啸叫的频率成分,LMS主要用于衰减音频中的啸叫频率[2]。
2 理论分析
对于N点序列X(n),可采用离散傅里叶变换(Discrete Fourier Transform,DFT)的变换公式:
应用FFT进行频谱分析时,需要找到实时音频信号中的频率成分,经过辨别处理检测出啸叫成分。把变化的啸叫频率作为中心频率ω0,当产生啸叫趋势时,基于FFT的啸叫频率检测算法会将啸叫频率作为滤波器中心频率赋给陷波器。赋值过程中,滤波器会将该频率成分的信号衰减、过滤,从而避免啸叫现象的产生。其传递函数如下:
该算法有以下两个特征:第一,当“啸叫”信号的角频率ω0发生改变时,零值点也会随着改变,因此陷波器的中心频率是可调的,其大小随着角频率ω0而变;第二,通过选择足够小的μ,可使陷波器达到更高的Q值。
3 硬件电路设计
3.1 电源设计
本方案采用2套供电电路用于控制系统和功放电路供电,由于功放电路中的滤波电感和单片机的数字干扰对电路中的电源存在污染,需要在每个电路的输入端VCC与GND之间均并联一个2 200 μF的大电容,以获取更加优质、平稳的电源。
3.2 前级放大电路设计
因为本设计采集的音频信号较弱,一般放大电路的放大效果不明显,所以选取运放OPA2376作为前级可调同向偏置放大电路。OPA2376的输入阻抗极大,过滤弱信号的能力强、稳定性高、漂移小[3]。OPA2376自身对于300~20 000 Hz外的信号有衰减作用,这一特性极大地减小了电路受通频带外噪声干扰的情况。
采用OPA2376构成二阶无限增益多路负反馈带通滤波器时,其自身对300~20 000 Hz外的信号有衰减作用,可以有效提高滤波效果。同时,因为多路负反馈电路对增益没有限制,而且Q值可以设计为很高的值,所以本设计虽然只用了二阶滤波器,但借助TI公司的设计工具,本电路的滤波效果依然很好,完全能够满足系统的滤波要求。
3.3 电流检测电路设计
计算功放的输出功率时,需要采用电流功率计算法,即通过使用ACS712测量输出电流I,根据已知电阻R计算出功率P,计算公式为[4]:
ACS712内部采用霍尔传感器检测原理,在其测试范围内的线性度非常好,通过对部分区域进行软件修正,可以使其测量精度达到很高的水平。另外,因为程控功率放大器对程控电压信号十分敏感,所以必须采用高精度的D/A转换器。本文采用TI公司的DAC8571 D/A转换芯片,支持I2C接口,自身耗能少,速率快,且占用配置空间少。
3.4 功率放大电路设计
功率放大电路如图2所示,该电路采用由TPA3112D1构成的D类音频放大器,该D类音频放大器自身带有供电电路、音频输入电流以及功率输出电流等模块电路。正常使用时通过调节电阻的阻值,可以改变其输出功率的大小,且可以直接通过D/A转换器向功放模块输入所需电压,以改变电压程控输出功率的大小。在功率放大器输出功率为5 W时,电路整体效率能够达到95%左右。
图2 功率放大电路
4 软件流程设计
本设计中软件算法起到了重要作用,设计过程中不仅设计难度非常大,而且算法对中央处理器(Central Processing Unit,CPU)的运算能力要求也较大。本系统主要有以下几种工作模式。
4.1 程控功率放大模式
在该模式下,CPU可以通过电流传感器得到功放的输出功率,并可以通过按键控制STM32输出数字信号,从而通过控制DAC8571输出精确的电压来控制功率放大器的输出功率,以达到程控的目的。设计时,需设置4个按键触发的外部中断,分别用于功率放大器的模式设置和设置程控D/A输出的电压,从而达到步进提高功率、降低功率以及功率复位的目的。其具体流程图如图3所示。当系统开始工作时,要先中断设置功放模式,并选择功放的最大输出功率。当触发升压中断时,要先判断是否达到了最大功率。若已达到,则保持当前功率继续下一步操作。降压中断的执行程序与此相同。
图3 程控功率放大模式中断子程序流程图
4.2 啸叫检测与抑制模式
该模式主要是实现检测音响系统的啸叫频率,并抑制啸叫现象,应用算法为FFT和LMS,流程如图4所示。先对输入的音频信号进行离散采样,通过FFT实时分析信号频谱找到功率因数最大的频率成分,并进行逻辑处理,从而判断该信号是否是啸叫信号。若是啸叫信号,则进行LMS最小均方根自适应陷波处理。在FFT频谱分析参数中,本设计的采样率为30 Hz,帧长为512 bit,帧移为172 Byte。
图4 啸叫检测与抑制流程图
5 测试
系统功率输出为5 W,经测试,其最大失真度误差仅为3.5%。测试功率放大器200~10 000 Hz的频率响应时,增益偏差最大值为0.3 dB;输出功率范围为50 mW~5 W;系统不同功率下的转换效率最低为93%。
将麦克风与喇叭相隔1 m面对面放置,调节功率实时监测输出功率和啸叫频率。通过A/D采样将信号离散化,并送入FFT进行频谱分析,其中帧长取256 bit,帧移取172 Byte,在保证FFT能够快速分析的前提下,尽量提高频谱精度。经过FFT分析后,通过逻辑比较测得啸叫,然后将啸叫频率送入LMS算法中,使陷波器将其作为陷波的中心频率ω0,通过LMS滤波处理后,最终测得各输出波形基本与输入信号一致。
6 结语
在本系统设计中,最难的问题是啸叫频率检测和啸叫抑制。设计过程中,采用经典的快速傅里叶变换和LMS自适应陷波器并经过反复调试,得到了所需结果,其中如何判定啸叫频率和如何实现自适应陷波并得到理想的结果是关键。经试验,采用TI公司出品的TPA3112D1构成的D类音频放大器实现了系统高效率滤波,其最低效率为93%。