一种适用于OFDM系统的自动增益控制方法及控制电路
技术领域
本发明属于通讯技术领域,具体涉及一种适用于无线接收机的自动增益控制(AGC)的实现方法及电路。
背景技术
自动增益控制器是无线通讯系统重要的组成部分,无线接收机的增益可以动态的调整以适应接收不同强度的无线信号。
发射机产生的射频信号经过无线信道传输到接收机。由于路径衰减及阴影(shadowing)的影响,信号会在一个很大的范围内变化。为了使进入模数转换器(ADC)的信号保持在一个可以接收的范围内。需要合理设置射频中放大器的增益,以保证进入ADC的信号既不会饱和,还要能够充分利用ADC的量化范围。
AGC需要实现对信号强度的测量,并且根据信号的测量结果实现增益控制。对信号强度的测量既可以采用模拟电路测量进入ADC前的模拟基带信号,也可以使用数字电路测量经过ADC后的数字基带信号。采用数字电路实现增益控制可以简化设计,并且降低成本。
近年来,正交频分复用(OFDM)系统已受到越来越多的关注,比如Wimax和LTE都采用了这种技术。一般采用每帧调整时,当信号变化范围过大就会需要多帧时间去跟踪增益,这样会造成收敛时间过长。因此本领域需要一些技术以在OFDM系统中实现AGC的方案。
发明内容
本发明目的是提供一种适用于OFDM系统的自动增益控制方法,其可在OFDM系统中实现AGC技术,缩短收敛时间的同时不会影响有效数据的接收。
本发明的技术解决方案是:
一种适用于OFDM系统的自动增益控制方法,其特殊之处在于:包括以下步骤:
1]从模拟基带信号中提取出OFDM符号:
1.1]射频接收芯片接收来自天线的射频信号,解调成模拟基带信号,并通过内置的低噪声放大器和可变增益放大器按照当前增益值放大该信号;
1.2]模数转换器将放大后的模拟基带信号转换成数字基带信号,并送给测量电路;
1.3]测量电路测量当前数字基带信号的能量,并将测量值送给增益调整电路,
1.4]增益调整电路根据当前的数字基带信号能量的测量值、数据溢出个数以及射频接收芯片上次使用的增益,计算出当前天线处的接收信号强度以及下次接收射频信号应使用的增益值;
1.5]增益调整电路将计算得到的增益值写入射频接收芯片的低噪声放大器和可变增益放大器中;
1.6]重复步骤1.1至步骤1.5,直至模拟基带信号调整到设定的电平范围;
1.7]控制电路从接收到的数字基带信号中提取出OFDM符号;
2]进行OFDM符号自动增益控制:
2.1]射频接收芯片继续接收来自天线的射频信号,解调成模拟基带信号,并通过内置的低噪声放大器和可变增益放大器按照当前增益值放大该信号;
2.2]模数转换器将放大后的模拟基带信号转换成数字基带信号,并送给测量电路;
2.3]测量电路测量当前数字基带信号中OFDM符号的能量,并将测量值送给增益调整电路,
2.4]增益调整电路根据当前的数字基带信号OFDM符号能量的测量值、数据溢出个数以及射频接收芯片上次使用的增益,计算出当前天线处的接收信号强度以及下次接收OFDM符号应使用的增益值;
2.5]增益调整电路将计算得到的增益值写入射频接收芯片的低噪声放大器和可变增益放大器中,所述增益值的写入时间为下一个OFDM符号周期的CP时间段;
2.6]重复步骤2.1至步骤2.5;
3]如果射频接收芯片丢失射频信号,则重复步骤1至步骤2。
上述步骤2.4还包括前置判断的过程:
当前OFDM符号周期的能量测量值和目标的差值大于最大阈值,将最大调整增益值写入射频接收芯片的可变增益放大器中;
当前OFDM符号周期的能量测量值和目标的差值小于最小阈值,将最小调整增益值写入射频接收芯片的可变增益放大器中;
当前OFDM符号周期的能量测量值和目标的差值小于最大阈值并大于最小阈值,将计算得到的增益值写入射频接收芯片的可变增益放大器中。
上述步骤2.3测量电路测量当前OFDM符号数字基带信号的能量的步骤如下:
2.3.1]设定信号能量的总采样时间和采样点的个数;
2.3.2]将总采样时间内的每个采样点的能量累加得到信号能量测量值,平均后作为信号能量平均测量值;
2.3.3]每过一个采样点,将步骤2.3.2中计算得到的信号能量测量值加上该采样点的能量,再减去步骤2.3.2中总采样时间内的第一个采样点的能量,得到新的总采样时间内的信号能量测量值,平均后作为新的信号能量平均测量值。
上述步骤1.4和步骤2.4计算当前天线处的接收信号强度以及下次接收OFDM符号应使用的增益值的步骤如下:
4.1]根据测量的能量值得出当前的信号电平的能量窗口最大平均值:
其中:
Vlevel:当前测量的信号的最大电平;
Vref:ADC的满刻度电平;
wADC:ADC的位宽;
R:ADC的输入阻抗;
Em:当前从ADC进入基带芯片信号的能量测量值;
Energy_max:当前信号测量的能量窗口最大平均值;
4.2]根据当前的信号电平的能量窗口最大平均值得到天线处的接收信号强度RSSI:
Em=RSSI+Gain_cont+Gain_RF
其中:
RSSI:天线处的接收信号强度;
Gain_RF:射频接收芯片的增益值,包括LNA和VGA;
Gain_cont:射频接收芯片的固定增益值;
4.3]由能量窗口最大平均值和目标值计算得出下次射频接收芯片的配置增益:
Gain_RF_next=Etarget-Em+Gain_RF
其中:
Gain_RF_next:射频接收芯片下次的增益值;
Etarget:需要调整到的目标值;
Gain_RF:当前射频接收芯片的射频增益值。
一种适用于OFDM系统的自动增益控制电路,包括测量电路和增益调整电路;所述测量电路包括控制电路、数据缓存模块、能量计算模块、滑窗处理模块、能量存储模块、求最大平均值模块、对数计算模块以及溢出采样点计算模块;
所述数据缓存模块用于ADC采样数据从ADC的采样时钟域到测量电路的工作时钟域的转换;
所述能量计算模块采用乘法器实现信号能量的计算,其计算公式为
E=(I2+Q2)/2;
所述能量存储模块用于保存能量计算值;
所述求最大平均值模块可根据测量的能量值计算出当前的信号电平的窗口最大平均幅度值:
其中:
Vlevel:当前测量的信号的最大电平;
Vref:ADC的满刻度电平;
wADC:ADC的位宽;
R:ADC的输入阻抗;
Em:当前从ADC进入基带芯片信号的能量测量值;
Energy_max:当前信号测量的能量窗口最大平均值;
所述对数计算模块通过循环相减和查找表纠正误差的方法将测量得到的信号功率值换算成对数;
所述溢出采样点计算模块可根据从ADC送来的数字溢出指示信号判定在测量时间内有多少采样点已经溢出;
所述控制电路用于协调能量计算模块、滑窗处理模块、求最大平均值模块和对数计算模块的协同工作。
上述能量存储模块为双端口RAM或两块单端口RAM。
上述数据缓存模块由4组大小为wADC*4的寄存器组构成,第一组用于存储天线0的I路信号,第二组用于存储存储天线0的Q路信号,第三组用于存储天线1的I路信号,第四组用于存储存储天线1的Q路信号。
本发明的优点:
本发明为OFDM系统执行AGC技术,AGC包括两部分,一部分是对信号的测量,另一部分是根据测量值计算下次应该使用的增益。
一般的射频接收芯片中存在有可变的增益放大器,而测量和控制部分则适合用数字电路实现。根据测量值计算当前天线上的接收信号强度(RSSI)和上帧使用的增益选取下帧合适的射频增益值。能量的测量通过滑窗过程进行计算,简化了计算复杂度。
对于OFDM系统,数据是以OFDM符号的形式存在,如果在一个OFDM符号内调整射频接收芯片的接收增益,将会破坏这个OFDM符号的数据。而OFDM系统为减小多径(multipath)带来的符号间干扰(ISI),会在每个OFDM符号前加有循环前缀(CP)。信号完成同步后需要将循环前缀去掉,这样可以利用循环前缀这段时间实现对射频接收芯片增益的改变,在下个OFDM符号到来时确保射频接收芯片已经处于稳定状态,这样既实现了增益调整,又不影响有效数据的接收。利用OFDM系统的循环前缀(CP)时间去调整射频接收芯片的增益,可以实现一帧内的多次增益调整,缩短收敛时间,并且实现对接收信号的OFDM符号(symbol)级的跟踪,很大程度上加快了AGC的锁定,并且实现了一帧内对信号的跟踪。
附图说明
图1是本发明AGC的结构示意图;
图2是本发明AGC的测量电路的结构示意图;
图3是本发明数据缓存工作示意图;
图4是本发明滑窗处理过程示意图;
图5是本发明采用两块单端口RAM避免读写冲突示意图;
图6是本发明AGC调整流程图。
图7是本发明AGC按照CP调整示意图;
其中:LNA-低噪声放大器,VGA-可变增益放大器,ADC-模数转换器,
具体实施方式
自动增益控制电路(AGC)主要包括信号能量的测量电路和增益调整电路两部分。测量电路通过对ADC采样后数据的I路和Q路信号在一个滑窗内进行能量求和并做平均,选取一帧内的滑窗平均能量的最大值送给增益调整电路。增益调整电路根据能量测量电路的能量测量结果选取下次合适的增益配置反馈给前端射频接收芯片的低噪声放大器(LNA)和可变增益放大器(VGA)。
如错误!未找到引用源。所示为测量电路的结构示意图,它包括控制电路、数据缓存模块,能量计算模块,滑窗处理模块,能量存储模块,求最大平均值模块,对数(log)计算模块以及溢出采样点计算模块。
1.数据缓存模块和能量计算模块:
数据缓存模块主要完成ADC采样数据从ADC的采样时钟域到自动增益控制器的工作时钟域的转换。PHY工作在相比ADC采样频率更高的频率上。数据缓存模块的采样由4组大小为wADC(ADC的位宽)*4的寄存器组构成,第一组用于存储天线0的I路信号,第二组用于存储存储天线0的Q路信号,第三组用于存储天线1的I路信号,第四组用于存储存储天线1的Q路信号。数据缓存模块每一组的工作原理如错误!未找到引用源。所示,图中编号1,2,3,4分别表示4个宽度为wADC的寄存器。写入时钟fs为ADC的采样时钟,而读出时钟fphy-div为PHY的工作时钟通过分频器或者锁相环(PLL)分频后的时钟。在这里fs=fphy-div以保证数据缓存模块不溢出,fs和fphy-div的相位可以不固定。数据缓存模块保证写入的数据不会马上被读出,而是隔一个时钟后读出。这样会有一个时钟的时间让数据稳定后再被读出使用。能量计算模块采用E=(I2+Q2)/2公式实现信号能量的计算,这里通过引入乘法器来实现。
2.滑窗处理模块:
滑窗处理模块主要实现对信号能量在一个窗口内求和并累加的功能,采用滑窗处理可以简化求和计算的复杂性,如错误!未找到引用源。所示滑窗每滑动一个采样点,则相应只需将新进入滑窗的数据的能量累加,同时减去滑出窗外的数据的能量。这样每过一个采样时间,只需求一次能量,做一次加和一次减就可以完成对滑窗内所有数据的能量求和过程。Wind_length是滑窗的大小,这个值取得越大得到的测量值将更有代表性,但需要更大的存储器保存能量计算值和更长的测量时间。采用滑窗处理,需要加第k个采样值的能量值并且减去第k-128个采样值的能量,所以既要将第k个采样值的能量写进RAM,同时也要从RAM中读取第k-128个采样值的能量。所以要实现滑窗处理有两种方案:第一种是采用双端口RAM,支持同时读写;第二种方案是采用两块单端口RAM避免读写冲突。如错误!未找到引用源。所示,大括号表示对这部分信号的能量进行求和。此时从RAM1读数据而向RAM2写入数据,这个窗口会从RAM1到RAM2再到RAM1循环移动,这样避免了同时对一块RAM进行读写操作。虚线部分是向RAM1写入数据而从RAM2读出数据的情况。
3.求最大平均值模块,对数计算模块和溢出采样点计算模块:
求最大平均值模块完成对一个滑窗内的数据能量进行平均,这里可以选取滑窗的大小为Wind_length=2^N来避免除法器的使用。可以采用右移N位的方法来实现除法功能。溢出采样点计算模块主要完成根据从ADC送来的数字溢出指示信号,来判定在测量时间内有多少采样点已经溢出,这个统计值将和能量测量值配合一起作为增益调整的依据。对数(Log)计算模块主要完成将测量得到的信号功率值换算成对数上报给上层。对数(Log)计算模块通过循环相减和查找表纠正误差的方法来实现。
4.增益调整模块:
通过下面的公式可以实现测量能量到测量电平的转换,这样根据测量的能量值可以得出当前的信号电平的窗口最大平均幅度值。
其中:
Vlevel:当前测量的信号的最大电平;
Vref:ADC的满刻度电平;
wADC:ADC的位宽;
R:ADC的输入阻抗;
Em:当前从ADC进入基带芯片信号的能量测量值;
Energy_max:当前信号测量的能量窗口最大平均值。
一般射频手册会提供天线处不同的接收信号强度指示(RSSI)下的低噪声放大器(LNA)和可变增益放大器(VGA)应该采用的增益值。前面得到的能量测量值和天线处的RSSI值有如下关系:
Em=RSSI+Gain_cont+Gain_RF
其中:
RSSI:天线处的接收信号强度指示;
Gain_RF:射频接收芯片的增益值,包括LNA和VGA;
Gain_cont:板子上的固定增益值值,可以通过校准得到此值。
由测量值和目标值可以得出下次射频接收芯片的配置增益:
Gain_RF_next=Etarget-Em+Gain_RF
其中:
Gain_RF_next:射频接收芯片下次的增益值;
Etarget:需要调整到的目标值;
Gain_RF:当前射频接收芯片的射频增益值。
如错误!未找到引用源。所示为AGC调整电路的流程图,其中:
MAX_AGC_STEP:AGC一次调整的最大增益值;
GAIN_RF_MAX:射频接收芯片能提供的最大增益;
Gain0:射频接收芯片上次设置的增益;
Gain1:射频接收芯片本次需要设置的增益;
Target:从ADC输出的数字基带的目标功率;
Ouput:当前测量到的ADC输出的数字基带的功率值。
首先设置射频接收芯片的增益处于中间位置,当测到溢出点个数或者能量值超过规定门限值,则认为目前信号经射频接收芯片放大后幅度仍然很大,并部分数据已经溢出。这时可以认为输出功率为远大于目标功率的测量最大值,这样后边将会走调小WMX_AGC_STEP增益的这条路线。当测到溢出点个数或者能量值未超过规定门限值,将会将测量值和目标值进行比较,根据测量值和目标值的差值决定对射频接收芯片如何调整。当测量值大于目标值,表示当前信号经过射频接收芯片放大后幅度很大,这时需要调小射频接收芯片的增益。相反当测量值小于目标值,表示当前信号经过射频接收芯片放大后幅度很小,这时需要调大射频接收芯片的增益。如果测量功率值和目标功率值相差不超过WMX-AGC-STEP,AGC的调整值就是两者之间的差值,如果差值超过WMX-AGC-STEP,则相应最大增益调整量为WMX-AGC-STEP。如果上次射频接收芯片设置的增益Gain0=GAIN_RF_MAX,并且本次需要设置的射频接收芯片增益Gain1=GAIN_RF_MAX,表示射频接收芯片已经调整到了最大值。如果上次射频接收芯片设置的增益Gain0=0,并且本次需要设置的射频接收芯片增益Gain1=0,表明射频接收芯片的增益已经调整到了最小值。通过下式可以由当前的测量值,增益设置和板子上的固定增益计算出当前接收的天线端的RSSI值,根据RSSI值可以得到使得接收信号的EVM最小的LNA和VGA的配置。然后用这个配置去做为射频接收芯片调整后的增益。
增益的计算既可以采用查找表来实现,也可以采用存储少量点,其他点通过插值的方法来实现。查找表的大小和插值的方法需要根据射频接收芯片手册获取。同时增益调整算法设有最大调整阈值和最小调整阈值。
自动增益控制包括以下步骤:对于OFDM系统,可以选择按照OFDM符号对信号进行测量,如错误!未找到引用源。所示在循环前缀(CP)的时间内完成射频接收芯片增益的改变。这样做可以做到OFDM符号级的跟踪,很大程度上加快了AGC的锁定,并且实现了一帧内对信号的跟踪。这种方案要求在循环前缀的时间内可以完成对射频接收芯片写入,并且在下个OFDM符号到来时射频接收芯片已经处于稳定状态。
它的工作过程包括以下步骤:
1]射频接收芯片通过天线接收天线的射频信号,解调成模拟基带信号,射频接收芯片中置有可变增益放大器放大接收到的模拟基带信号;
2]射频接收芯片将放大后的模拟基带信号送给ADC转换成数字基带信号,并送给测量电路,测量电路测量当前数字基带信号的能量,并将测量值送给增益调整电路计算下次接收射频信号应该使用的增益;
3]增益调整电路将计算得到的增益值写入射频接收芯片的低噪声放大器和可变增益放大器中;
4]重复步骤1至步骤3,直至模拟基带信号调整到设定的电平范围;
5]控制电路从接收到的数字基带信号中提取出OFDM符号;
6]射频接收芯片继续接收来自天线的射频信号,解调成模拟基带信号,并通过内置的低噪声放大器和可变增益放大器按照当前增益值放大该信号;
7]模数转换器将放大后的模拟基带信号转换成数字基带信号,并送给测量电路;
8]测量电路测量当前数字基带信号中OFDM符号的能量,并将测量值送给增益调整电路,
9]增益调整电路根据当前的数字基带信号OFDM符号能量的测量值、数据溢出个数以及射频接收芯片上次使用的增益,计算出当前天线处的接收信号强度以及下次接收OFDM符号应使用的增益值;
10]增益调整电路将计算得到的增益值写入射频接收芯片的低噪声放大器和可变增益放大器中,所述增益值的写入时间为下一个OFDM符号周期的CP时间段;
11]重复步骤6至步骤10;
12]如果射频接收芯片丢失射频信号,则重复步骤1至步骤2。