1 实用AGC算法在实际应用中的原理
在通信设备使用过程中,语音通信是重要的组成部分,而在语言通信中音频信号的质量,决定着人们对通信系统的选择。当前在通信音频信号处理中会采用AGC,其可保证信号输出的稳定性,降低信号输出的干扰。通过实际验证,实用AGC算法与普通的AGC算法存在一定的差异,实用AGC算法是普通AGC算法的基础上产生,其不仅可将信号传输中的干扰因素有效降低,还可保证音频信号在传输中的稳定性,准确地将音频信号的幅度变化情况显示出来。随着科技的发展,数字处理技术,在音频信号处理中的应用,可降低信号的干扰,实现FPGA。
自动增益控制(Automatic Gain Control,AGC)。其主要由增益放大器以及反馈回路两部分组成。在其工作过程中,增益放大器组成部分,根据系统中反馈回路的幅度、阈值,采用一定的AGC算法,对增益值进行调整。即AGC通过放大电路中自动增益信号的强度,调整信号的自动控制。在信号强度增加时,AGC系统反馈回路的控制,按照一定关系进行相应的减小;反之,当AGC系统增益放大器中信号幅度降低时,反馈回路的增益,将按照两者之间存在的一定关系,进行相应的增大。通过此方法,在AGC算法放大调整后,确保了通信系统信号输出的幅度可基本维持在恒定的状态。文中将AGC算法应用于音频信号处理中,可实现FPGA,并可有效降低音频信号输出时的干扰,保证信号的稳定。
2 基于AGC算法的音频信号处理设计
在音频信号处理过程中,应用AGC算法分为4个步骤:
步骤1 确定音频信号输出的动态范围。在设计基于使用AGC算法的音频信号处理中,需根据音频信号的实际情况而定。若在设计过程中,实用AGC系统中期望值为一个定值时,此时音频信号输出的幅度将趋近AGC系统的这一期望值。在趋近这一期望值的过程中,输出信号会不断地调整,进而造成信号输出端幅度的不稳定,所以为保证音频信号输出的稳定性,可在AGC期望值的基础上,以期望值为中心,设计并确定音频信号输出稳定的一个动态范围。当AGC算法调整中,音频信号的幅度在这一动态范围内,则可认定音频信号的输出幅度是稳定的。一般情况下,音频信号输出幅度范围是AGC系统期望值加减0.1 dB,同时为了对音频信号输出的电路进行保护,需要将AGC系统的期望值,设置为音频信号输出满值下减少0.25 dB。
步骤2 确定增益调整速度。在正常语音通信中,语言信号的幅度在不停变化,为了确定、保证并呈现语音信号幅度的正常变化趋势,需确保其增益不变或是在一个较小的范围内变化,由此才可保证音频信号传输中的幅度不失真。在音频信号传输过程中受到的干扰,使得音频信号的平均幅度相对较小,所以需将其增益值加大,确保信号的整体幅度增加,以此保证音频信号不失真。实用AGC在音频信号中的应用,其增益值需遂慢而快,随着信号幅度的慢变化而进行忽快的变化。当音频信号增益调整的时间与音频信号正常情况下的调整时间相比较长时,此时的增益值不会发生较大变化,需根据音频信号输出的特点,设定其增益调整的时间为4 s。若音频信号输出较大时,此时的增益需快速减小,若不进行减小调整,则会造成器件的损坏。而当信号的输出值大于期望值的上限时,增益值调整时间需设定为0.5 ms。
实用AGC算法的增益值计算公式为
其中,A(n+1)是对信号传输调整后的增益值;A(n)是调整前的增益值;Ain是信号幅度值;A0是期望幅度值;2-a为一个常数。其中a值不同,AGC的调整速度也不同,根据实用AGC算法的实际要求,信号输出幅度小于期望值上限时,a=16,增益的调整将变慢,若a=3,此时的增益调整速度则将加快。
步骤3 确定输入信号的动态范围。在音频信号输入的过程中,若设定的输入值范围过大,将会使信号在传输过程中,产生较大的噪声,影响信号的输入、输出质量。相反若音频输入信号的设定的范围较小,因信号较小,会被忽略,进而造成音频输入信号的失真。根据音频信号的输入时间情况,将36 dB的信号强度确定为噪声。使用AGC算法,将音频信号的输入动态范围确定,可根据噪声存在的时间,判断噪声是否发生在音频信号传输的间隙,若噪声存在的时间相对较小,则可将其看成是音频信号的间隙。通常噪声的判断时间设定为5 s最佳。根据噪声存在的时间及信号输入的实际情况,将音频信号最小值到噪声门限之间约6 dB的范围,确定为音频信号输入的动态范围。在这一范围内噪声对音频信号的干扰强度较,因此需要将增益值固定。
步骤4 对增益值的大小进行限制。为避免发生增益过大,将信号传输器件或设备烧毁,需要将其增益值控制在一个范围内,若AGC计算得出的值,大于该范围的上限,此时增益值取最大值,反之取最小值。根据音频信号的实际传输情况,增益范围在-3~30 dB。
通过以上4个步骤,可将实用AGC算法在音频信号处理中的应用流程,设计如图1所示。
图1 实用AGC算法的流程图
3 AGC算法的音频信号处理仿真及实现
3.1 仿真实验
在音频信号处理中,根据音频输入、输出的幅度变化,制作AGC仿真实验。按照实用AGC算法的流程和信号计算式(2),将音频的输出信号计算出来,此时当音频信号突然减小时,就会出现过冲现象,为将过冲现象消除/避免,需按照实用AGC算法公式,为音频信号的输出增加延时,延时可按式(3)计算
y(n)=x(n)×G(n) (2)
y(n)=x(n-32)×G(n) (3)
增加音频信号延时,可将过冲现象解决和消除,虽增加延时会对音频信号产生一定影响,但其不利影响在可接受范围内。仿真实验结果如图2和图3所示。
图2 增加延时、输入信号增大,输出幅度的变化
图3 增加延时、输入信号减小,输出幅度的变化
在音频信号输入的过程中,当音频信号增益变大后,其将相对缓慢,此时进行的增益延时相对较小,增益增加的幅度也相对较小,虽造成输出的音频信号较大,但已接近理想输出幅度,因此对信号输出器件的安全性将不会造成影响。
3.2 FPGA的实现
实验中,FPGA的信号处理流程如图4所示。
图4 FPGA的信号处理流程
音频信号通过音频采样的形式进行数字过滤,得到图4中I、Q两路信号,可使用下式
将形成的两路信号幅值计算出来,AGC系统中反馈的幅值以A(n)=Ain(n)×G(n)式(5)计算得出。根据算出的A和Ain值对音频信号进行增益调整,调整时间为4 s。
当音频信号的幅度发生变化时,在增益开始阶段,进行的调整相对较快,此时对增益的影响较大,即信号增益变化较大。经过约4 s的增益调整,可将信号幅度的输出值调整到期望值,随着输入音频信号的快速变化,输出的音频信号也会随着输入信号的变化而发生相应的改变,但在输入信号突然增大时,音频输出信号不会产生明显变化,由此实现了基于AGC算法的音频FPGA。
4 结束语
针对AGC算法的工作原理、音频信号处理、FPGA等内容进行分析。在音频信号处理过程中,采用实用AGC算法,通过采取仿真实验,得到实用AGC算法在音频信号处理及FPGA实现中的应用,并可降低信号传输中的失真问题,有效提高了信号传输的稳定性。实验结果表明,将实用AGC算法,应用于音频信号处理方法与FPGA实现中,其具有良好的性能,且确保了信号的稳定性。