基于FPGA的自动增益控制算法的设计与实现

2020-06-19 08:12杨康
卫星电视与宽带多媒体 2020年7期
关键词:接收机

杨康

【摘要】在一般的接收机系统中,由于天线接收时信号幅度变化较大,自动增益控制(AGC)算法在整个传输控制系统中起着至关重要的作用。在本文中,首先介绍了AGC算法的基本原理和结构,通过对AGC算法在工程中应用的总结,设计一种能够在工程中使用的快速AGC算法并对其性能进行理论分析,在FPGA中进行编程实现并完成仿真,证明该算法能够在工程中应用。

【关键词】接收机;AGC;FPGA

在目前的无线通信系统设计过程中,人们趋向于将越来越多的信号处理从模拟域转到数字域,无论是模拟AGC电路还是数字AGC算法在接收机中都是重要的组成。在射频前端,从天线接收的信号由于传输环境变化的影响,其幅度变化范围比较大,如果射频前端采用固定增益必然影响到ADC的工作性能。如果信号幅度过大,很可能烧毁ADC器件,如果信号过小,导致信号被噪声淹没而无法检测到有效信号。相对于基带信号,人们更多关注的是有用信号,其信号带宽一般远小于中频带宽,数字下变频(DDC)以后,大量的无用信号会被滤波器滤除,所以DDC之后的基带信号幅度可能比较小,这对后续的处理,像信号特征的提取,调制解调等十分不利。因此,在数字信号处理端添加自动增益控制算法具有相当重要的作用。在一般的工程设计上,自动增益控制成为了保证ADC的动态范围和保证良好的信号处理工作进行的重要技术,AGC算法的控制方式可以分为射频前端模拟控制和数字采集ADC端的控制两种,前者工作方式是通过接收机接收到的模拟信号作为控制参量,后者是通过ADC采集以后的数字信号作为控制参量,并经过一定的算法得到实际的控制信号,这是本文研究的重点。

1. AGC算法的基本原理及结构

自动增益控制模块主要作用于射频前端,其基本结构如下图1所示

射频前端:内部放大器主要由功率放大器、低噪声放大器组成。其中功率放大器主要作用是对发射通路的信号放大;低噪声放大器的作用是对接收通道中的小信号进行放大;在工程设计时,一般具有较大的增益调节范围,方便后端进行自动增益控制。

检波AD:典型的检波器如包络检波器,由中频或高频放大器输入的标准调幅信号,其经过检波后在负载上产生随输入信号的包络变化的输出信号,这种检波器的输出峰值与输入信号的峰值成正比例关系,所以也称为峰值检波器。检波AD的作用是将模拟的信号进行数字化采集,作为后端进行自动增益控制的依据。

AGC控制算法:在数字AGC系统中,输入信号通过射频前端后,通过包络检波电路,获取信号的幅度信息,再由ADC进行采集量化编码,通过预先设定合适的门限进行对比输入信号,调整射频前端放大器的增益,让信号处于一个幅度恒定或者某一范围内小幅变化的信号。

2. AGC算法在工程中的设计与FPGA代码的实现

在工程设计中,AGC控制算法主要流程设计如下:

(1)首先确定后端需要信号处理的信号门限,此门限有两个,较大门限记作Thd1,较小的门限记作Thd2。

(2)确定射频前端的最大增益,并将增益调至最大,在动态范围内,为了保证能量小的有用信号能够被足够的放大,供后端进行处理。由于AGC控制系统为非线性系统,因此需要通过实际测试获得增益调整的线性区域和非线性区域(饱和区域),此目的旨在保证整个AGC控制系统始终保持在线性区域内进行动态调整。

(3)由于AGC在控制过程中存在响应时间,所谓的响应时间是指:当检测到信号超过(1)中门限范围时,数字端通过配置射频前端的增益参数后,ADC检测到信号幅度发生改变的响应时间,这部分时间不同的射频前端设备差异较大,所以需要通过实际测试来确定参数的响应时间。

(4)确定AGC算法调节策略,因为由天线进来的无线信号处于动态变化中,然而AGC模块不可能每时每刻对其进行调整,因此AGC算法模块何时开始动作,如何动作,能够使得信号处于一个合适的幅度范围内至关重要。

本文提供一種可在FPGA中进行使用的AGC算法调节策略并对其进行分析:

为了满足AGC算法模块调整的实时性要求,在设计过程中,采用固定周期的方式进行AGC调整,此处取10us,对于目前的射频前端的设计水平而言,10us足够满足各个设备响应一次调AGC调节的时间。

在检波AD得到信号幅度后,由于得到的是信号的瞬时值,一般瞬时值变化较大,如果直接控制AGC增益容易出现震荡导致信号失真,因此,一般将采集的信号幅值进行多次存储取平均的方式,以消除瞬时值的剧烈变化带来的不利影响。其作用相当于低通滤波器。

对于AGC控制算法来说,控制增益变化时的步进是否固定,可分为固定步进和可变步进两种。对于步进控制方法主要有以下三种方式:直接法、二分之一法、精细控制法。

(1)直接法,此方法在执行过程中采用固定增益S的方式进行控制,根据设置的门限增益之差△S,确保S小于等于△S即可,大于较大门限,减小增益S,小于较小门限,增大增益S,处于两者之间,当前增益保持不变。

(2)二分之一法,此方法在执行过程中采用可变增益S(t)的方式进行控制,根据设置的上下门限,调整增益的大小,每次调整的大小分别为前一次增益S(t)的二分之一。

(3)精细控制法,由于每一个ADC均对应一个衰减值,只需要衰减到相应的门限即可。

三种方法对比:

处理速度上:精细控制法速度最快,二分之一法次之,直接法速度最慢。

处理精度上:精细控制法精度最高,二分之一法和直接法精度相当。

实现难度上:二分法和直接法相对比较简单,精细控制法相对比较麻烦。

在实际工程中,一般在进行AGC算法控制设计时,兼顾性能的基础上,考虑到实现难易程度,二分之一法和直接法显然符合要求。由于后端进行信号处理时,无需将任何信号精确控制到某一固定增益上,工程中也不现实,一般只需将信号控制到某个范围内即可,这样二分之一法和直接法相对就比较合适,由于在设计时,射频前端的增益采用增量控制方式,因此每次从数字端控制信号增益时,只需要配置相应的增量,数值为正,表示接收信号功率较小,外部相应增加相应值即可,数值为负,表示接收信号功率较大,外部相应减小相应值即可,否则保持不变,以下FPGA仿真以二分之一法和直接法为例,其实现方式类似。

在FPGA进行AGC控制算法实现时,主要由四个个部分组成如图2所示,AGC控制开关、周期控制模块、数据处理模块、门限比较模块。

其中,AGC控制开关由外部进行控制的单比特信号,1为开、0为关。

周期控制模块主要作用是:通过计数的方式,每10us产生一个脉冲,通过脉冲去响应AGC的增益设置。

数据处理模块主要根据输入的外部时钟和数据,对输入连续的16个数据进行求和求平均,实现过程中采用流水线的方法,每四个数据分别相加,再整体相加进行加和,均值计算方法采用移位的方式进行,数据右移一位相当于除以2,右移四位可获得最终的均值。

门限比较模块:根据周期控制脉冲每10us取一次均值模块的值,并与相应的门限进行比较,并确定增益增量值的正负,抑或为0。

具体仿真时序结果如下图3所示:

3. 结论

随着无线通信技术的不断提升,AGC技术在无线通信领域扮演着越来越重要的角色。本文通过对AGC算法结构原理的介绍,提出针对工程应用的AGC控制算法,通过FPGA实现该算法并进行时序验证,经过实际测试确定该算法具备快速实时响应的特点。同时在实际测试中发现,当信号在AGC算法参考门限的临近值时,信号幅值会在临界值附近出现上下抖动,这些问题的发现,有待后续进一步的研究。

参考文献:

[1]敬祥.监测接收机中突发信号检测及AGC电路设计与实现[D].电子科技大学,2014.

[2]高振兴.数字AGC及相关技术研究[D].北京邮电大学,2006.

猜你喜欢
接收机
基于频率引导的ESM/ELINT接收机的设计与实现
ATCR—33S雷达接收机故障诊断
DVB—S免费机刷机之五
CDMA系统中2-D RAKE接收机的性能研究
简单快速调星实践:近乎完美免外拉电源寻星法!