日图课堂|一种混合式高动态范围AGC算法与FPGA实现

     由于多径衰落等因素,接收机天线端的信号功率可能具有超过60 dB的波动[1]。而中频ADC具有的固定动态范围难以精确采样这样的大动态信号,为使基带能够正确解调、解码,接收机需要根据输入信号的强度自动调整其增益,从而为后级提供相对恒定的输出。这种功能正是由自动增益控制(Automatic Gain Control,AGC)环路实现的。

 
    常用的AGC环路分为3种:前馈式AGC、反馈式AGC与混合式AGC[2-4]。前馈式AGC表现为开环控制,输入信号功率被检测后经处理用作增益的调整;反馈式AGC则是闭环控制,输出功率与一个参考值作对比后得到功率误差,该误差经过运算后控制增益的大小。文献[3]的研究表明,前馈式的AGC具有更快的响应速度,且其算法较为简单,占用资源较少,因此得到了广泛的应用。然而正因为其灵敏的响应特性,前馈式AGC容易因电路参数的波动而产生误调。反馈式AGC则可以实现较为稳定的控制,但因其呈闭环结构,环路参数需要仔细确认,为设计带来一定的挑战。混合式AGC则是前馈与反馈式的结合,兼具两者的特性。
 
1 混合式AGC环路
 
    用于接收机中的混合式AGC环路由射频前馈式AGC电路与中频反馈式AGC电路组成。如图1所示,天线接收到的信号经过一定的耦合系数馈入射频检波器,检波器的输出电压由ADC转换为数字量,再由FPGA处理后控制信号通路上的单刀双掷开关与数控衰减器,从而控制射频部分的增益。其中,低噪声放大器(Low Noise Amplifier,LNA)具有22 dB增益,衰减网络具有-10 dB增益。射频信号与本地振荡器下混频得到中频输入信号IFIN,IFIN经过两级相同的可变增益放大器(Variable Gain Amplifier,VGA)放大后,通过耦合器向中频检波器馈入适当的电平,检波器的输出电压VIFDET由ADC转换为数字量,再由FPGA进行数据处理,处理结果决定DAC的输出电压,从而控制VGA的增益。其中IFOUT表示中频输出信号,VG为VGA的控制电压。
 
2 AGC算法
 
    在介绍AGC算法前,首先说明环路的设计指标。如引言中所述,所设计的AGC算法需要满足两种不同输入信号的需求。对于恒包络信号,需要AGC单次控制时间小于50 μs,输入动态范围不小于-95 dBm~5 dBm,输出功率为-19 dBm;对于非恒包络信号,需要输出信号包络不失真。
 
    根据AGC环路指标,设计了图2所示的总体算法,注意到输入信号的包络特性在本系统中可由外部获悉。环路启动时首先判断输入信号是否为恒包络信号,若是,则执行快速AGC算法,否则执行慢速AGC算法,顺序均为先射频后中频。中频AGC算法执行完毕后经过一定时间间隔再次返回射频AGC,如此循环。
 
    射频前馈式AGC算法如图3,首先配置ADC的射频通道采样,根据输入信号的包络特性,确定采样次数。根据耦合器与射频检波器的特性(式(1)),将均值电平转化为对应的输入功率。对于检测到的输入功率执行条件判断,从而确定LNA与数控衰减器的应配状态。若本次确定的状态与目前的电路状态一致,则跳过配置阶段结束射频AGC,否则按照所确定的状态配置电路后结束。
 
    射频AGC算法的仿真结果如图4所示,当射频输入功率从-95 dBm变化至5 dBm时,射频输出功率变化范围为[-73 dBm,-8.2 dBm],将输入信号的波动范围由100 dB降为64.8 dB。
 
    在射频调整的基础上,中频反馈式 AGC进行增益的连续精密调控,其算法如图5所示,首先为VGA的控制电压VGint赋初始值,接着根据输入信号的包络特性确定中频通道采样次数并求均值VIFDET,在非恒包络输入下,两次采样间具有T1秒的时间间隔。中频AGC环路中VGA的增益Gain与控制电压VG在正常工作状态下符合式(2)所示的线性关系,其中增益的单位为dB,控制电压的单位为V。
 
    根据所使用的VGA器件特性,式(2)中k取50,b取-5。中频检波器输出电压VIFDET与中频输出功率PIFOUT在正常工作区域符合式(3)的线性关系,其中电压的单位为V,被检测功率的单位为dBm。根据检波器与耦合器特性可以得:
 
式(3)中k1取0.05,b1取2.575。
 
    在中频AGC环路中,若用PIFIN表示中频输入功率,PIFOUT表示中频输出功率,则所设计的环路目标为:当PMIN<PIFIN<PMAX时,PIFOUT保持在目标功率PAIM。假设某一时刻的输出功率为PNOW,VGA控制电压为VG1,中频检波器的输出电压为VIFDET,经过一次调整后,应使VGA控制电压变为VG2,输出功率达到PAIM,根据式(2)、式(3)及控制目标可以得到式(4)的控制算法,其中NSTAGE表示VGA的级数,在本文中取2,PAIM取-19 dBm。
 
    基于控制目标及式(4)所示的关系给出了图5中的判断条件与控制电压VG的计算公式,其中VGint为VGA目前的控制电压,Max[]表示取最大值运算,Min[]表示取最小值运算。由于检波器仅在一定范围内符合式(3)的关系,因此需要确定一个可置信的检波电压区间:[0.375 V,2.75 V]。在此区间内,认为检波电压VIFDET代表了真实的输出功率,此时按照式(4)所述的方法进行AGC控制;当VIFDET<0.375 V时,认为输出功率较小,需先增大VGA的控制电压以提高增益,使VIFDET于可置信区间,然后重新进行判断;VIFDET>2.75 V时,需先减小VGA的控制电压以降低增益,再重新判断。
 
    中频AGC算法仿真结果如图6所示。其中横坐标为AGC执行次数。中频输入信号的功率范围为-100 dBm~-10 dBm。当输入信号功率处于[-79.04,-9.3]dBm时,VGA控制电压VG能够随着输入功率的变化而改变,输出功率保持在-19 dBm,VIFDET与PIFOUT同步变化,实现了环路的功率控制目标。
 
3 算法的实现与测试
 
    根据第2节所述,在Xilinx Spartan 3E系列FGPA上实现了混合式AGC算法。算法控制的主要器件包括ADC、射频开关、数控衰减器与DAC。其中,射频与中频部分共用一片10 bit、4通道的模数转换器ADS7954;单刀双掷开关的状态由FPGA输出的单比特高低电平控制;数控衰减器为6 bit、0.5 dB步进的RFSA2644芯片。中频VGA的控制电压由12 bit DAC提供。ADC通道的切换及采样、数控衰减器的衰减值、DAC的输出电压均由FPGA通过串行外设接口(Serial Peripheral Interface,SPI)总线控制。为了方便数字部分的处理,所提出算法中的采样次数N1、N2、N3、N4均取2的整数次幂。
 
    在不同输入激励条件下Modelsim的功能仿真结果如图7所示。当输入为恒包络信号时(图7(a)),首先配置ADC射频通道,进行4次射频通道采样,经过计算后配置了数控衰减器。由于输入功率较高,LNA始终保持关断,随后预置了VGA增益。接着配置ADC切换至中频通道,进行连续的16次采样,最后配置DAC输出适当的VGA控制电压。恒包络输入信号下单次AGC过程耗时41.73 μs。
 
    当输入为非恒包络信号时(图7(b)),射频AGC采样变为64次,中频AGC仍然采样16次,但在采样间加入了6.68 μs时间间隔,总的控制时间为230.53 μs。使用示波器测量的时域输入输出波形如图8所示,其中通道1为输入正弦包络信号,包络周期为128 μs,通道2为中频输出信号,可以观察到输出信号包络保持完好,平均功率恒定。
 
    输入为恒包络信号条件下,混合式AGC环路中关键参数随射频输入功率变化的曲线如图9所示。图9(a)中按照式(1)拟合的曲线与实测曲线吻合良好;图9(b)中VGA控制电压呈现三次跳变,与射频AGC算法中的所设计的4种条件判断相符;图9(c)、图9(d)表明所设计的AGC系统在输入信号功率为-100 dBm~10 dBm时,输出可恒定地控制在-19 dBm,具有110 dB的动态范围。近年来所提出AGC系统的动态范围对比如图10[5-16]所示,对比表明本文所实现的动态范围具有一定的领先性。
 
4 结论
    本文针对输入信号的不同的包络特性,结合前馈式与反馈式AGC的特点,依据接收机中的硬件架构,提出了一种混合式高动态范围AGC算法,并在FPGA硬件平台上得以实现。在该算法的控制下,以射频开关、数控衰减器、检波器、可变增益放大器为核心器件,实现了一种输入动态范围110 dB、灵敏度-100 dBm、输出功率为-19 dBm的自动增益控制环路。在恒包络与非恒包络输入下,算法执行时间分别为41.73 μs与230.53 μs,信号包络保持完好。对比表明,所提出的AGC算法实现了优良的动态范围特性。

文章来源:日图科技

电话:800-716-0102、400-616-5217

在线咨询QQ:1403880343

阿里巴巴直通车:深圳市日图科技有限公司

邮箱:ritu@rituchina.com

微信:Ritu-17 微博:日图科技Ritu

    推荐产品