一种数字预失真自适应处理方法与流程

文档序号:14391830阅读:515来源:国知局
一种数字预失真自适应处理方法与流程

本发明涉及无线通信系统信号处理技术领域,更具体地说涉及一种数字预失真自适应处理方法。



背景技术:

在现代通信系统中,频谱资源越来越拥挤,为了提高频率效率,高阶调制体制和多载波信号体制应用越来越广泛。然而,这种体制的信号包络是非恒定的,具有较高的功率峰均比papr(peak-to-average-power,papr),这加剧了功率放大器的线性与效率的矛盾。为了提高功放效率,功放往往工作在饱和点,这会造成信号的频谱扩展,干扰邻近信道信号的正常传输,而且会恶化信号的误差矢量幅度evm(errorvectormagnitude,evm);为了满足系统的线性度,往往将功放的输入功率回退到线性区,而且papr越大,功率回退越多,这会牺牲功放效率,一方面需增加额外的散热设备,增加系统成本,另一方面造成能量浪费。为了满足功放的高效率和系统的线性需求,需对功放采取必要的线性化处理。数字预失真技术dpd(digitalpredistortion,dpd)是一种在基带对信号进行预失真,能够在数字上对功放产生的非线性进行抵销,使得发射机系统保持线性的线性化技术。由于dpd技术在数字上的灵活性好,线性化性能好及自适应性能好的特点,在当今的商业无线基站、手机终端、专用高效无线发射机等应用中,广泛采用了dpd技术。

如图1所示,dpd技术一般分为两个部分:预失真模型建立和系数提取两个模块,其中预失真模型一般采用记忆多项式模型mp(memorypolynomial,mp),其表达式为:

其中x(n)和y(n)分别为模型的输入输出,amk为模型的系数,k和m分别为模型的非线性阶数和记忆深度。系数提取模块在硬件实现时,一般采用最小均方误差算法lms(leastmeansquare,lms)。在5g及未来的通信系统中,信号的带宽越来越宽,传输速率越来越高,工作状态会因信道环境迅速变化,必须提高dpd的系数更新收敛速度。未来满足dpd系统的lms系数更新速度,只有通过高速率的fpga进行实现。图2是lms系数更新的原理示意图,在图2中,根据输入信号x(n)和反馈信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)利用lms算法可求解得到aimk。

其中μ为迭代的步长,(·)*为共轭运算。在fpga中实现(3)式时,消耗的乘法器资源为km(k+5),乘法器资源与k2成正比,消耗大量乘法器,增加fpga的功耗;且存在|yi(n-m)|k-1的运算,复杂度高,如用乘法器计算,一方面消耗大量的乘法器资源,另一方面其计算精度受到量化位宽和截位效应的影响。因此,lms系数更新算法在fpga中实现,存在以下困难:

(1)基于mp模型的lms算法,系数计算时有幅度高阶项,随着阶数的增加,乘法器资源消耗量大,甚至超出fpga中的乘法器资源,fpga无法实现高阶的lms算法。

(2)常规的lms系数更新算法计算复杂度高,消耗资源多,增加fpga的功耗,导致发射机的整机效率降低。



技术实现要素:

为了克服上述现有技术中存在的缺陷和不足,本发明提供了一种功率放大器数字预失真自适应处理方法,本发明通过对lms系数更新算法中幅度高阶项映射成查找表,减少fpga定点运算时量化位宽和截位效应造成的误差,然后将相同的因子的乘积项进行分步计算,降低系数更新算法消耗的乘法器资源,从而降低fpga的功耗。

为了解决上述现有技术中存在的问题,本发明是通过下述技术方案实现的:

一种数字预失真自适应处理方法,其特征在于:包括以下步骤:

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n);

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,直接进入到步骤g;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新,利用lms算法可求解得到模型系数;

步骤d、计算步骤c中的模型系数求解公式中的误差信号乘积,将误差乘积与幅度高阶项对应,将误差信号乘积计算完成后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,将信号幅度作为表地址进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入步骤c的模型系数求解公式中,,得到lms更新后的第i代模型系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束。

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用mp模型表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk为模型的系数,k和m分别为模型的非线性阶数和记忆深度;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,直接进入到步骤g;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到aimk,则

其中,μ为迭代的步长,(·)*为共轭运算;令(ei(n)(yi(n-m))*)为误差信号乘积,|yi(n-m)k-1,k=1,2,3…,为幅度高阶项;

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将|yi(n-m)|k-1,k=1,2,3…,提前计算好,并映射成查找表,根据幅度项|yi(n-m)|进行查表,分别查出幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的(ei(n)(yi(n-m))*)和|yi(n-m)|k-1,k=1,2,3…,在fpga中进行逻辑处理之后,代入公式(3),

得到lms更新后的第i代系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束。

所述步骤e中将|yi(n-m)|k-1,k=1,2,3…,映射成查找表,具体是指:将|yi(n-m)|归一化到(0,1),然后通过仿真确定表项大小,分别计算出|yi(n-m)|k-1,k=1,2,3…,中各表项的内容,映射成查找表,并写入fpga的rom中;将|yi(n-m)|作为表地址,在计算时根据其值即可查出|yi(n-m)|k-1,k=1,2,3…,的值。

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用一般记忆多项式模型(generalizedmemorypolynomial,gmp)表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk、bmlk、cmlk为模型的系数,ka,kb,kc和ma,mb,mc分别为模型的非线性阶数和记忆深度,lb和lc分别是模型的滞后记忆效应和超前记忆效应;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,得到预失真信号;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到

其中,μ为迭代的步长,(·)*为共轭运算,每个系数也可分开写成:

每个系数的求解方法是相同的,以求aimk为例,令(ei(n)(yi(n-m))*)为误差信号乘积,|yi(n-m)|k-1,k=1,2,3…,为幅度高阶项。

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,根据幅度项|yi(n-m)|进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入公式(3),得到lms更新后的第i代系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束,同理可求得bimlk,cimlk。

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用无记忆多项式模型表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk为模型的系数,k和m分别为模型的非线性阶数和记忆深度;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,得到预失真信号;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到aimk,则

其中,μ为迭代的步长,(·)*为共轭运算;令(ei(n)(yi(n))*)为误差信号乘积,|yi(n)|k-1,k=1,2,3…,为幅度高阶项;

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,根据幅度项|yi(n)|进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入公式(3),得到lms更新后的第i代系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束。

与现有技术相比,本发明所带来的有益的技术效果表现在:

1、通过将lms系数更新算法进行分步计算,并将幅度高阶项映射成查找表,一方面可节省硬件资源,另一方面将幅度高阶项映射成查找表,避免了量化位宽与截位效应对幅度高阶项造成的误差,提高计算精度。在传统的lms算法中,消耗的乘法器资源为km(k+5),在非线性阶数非常高的时候根本无法实现。而改进的算法消耗的乘法器资源为4(m-1)+2km。举一个实例,当mp模型的非线性阶数为7,记忆深度为4的时候,传统lms系数更新算法消耗的乘法器资源为336,而改进算法消耗的乘法器资源为68个,大大节省了fpga的乘法器资源,降低fpga的计算功耗,进而降低整机功耗。

2、在本发明中,所提出的lms系数改进算法不仅仅适用于mp模型的系数更新,也可以推广到基于多项式的模型的系数更新算法中,比如无记忆多项式模型、gmp模型中,具有很好的通用性。

3、在本发明中,在改进的lms系数更新算法的计算流程中,将幅度高阶项用查找表实现,降低系统复杂度和提高系统的精度的方法,不仅仅适用于lms算法中,也可推广到递归最小二乘算法rls(recursiveleastsquare,rls)中。

4、在本发明中,改进的lms系数更新算法是基于fpga实现结构而提出的,具有很好的可编程性。

5、相比于传统的lms系数更新算法,本提案的方法将幅度高阶项进行利用查找表实现,避免幅度高阶项计算时受到量化位宽和截位效应的影响,一方面降低了乘法器资源消耗,另一方面可提高计算的精度;相比于传统的lms系数更新算法,本提案的方法将具有相同的项的分步计算,大幅度地降低了fpga的乘法器资源,降低了fpga的计算功耗,提高了整机的效率。

附图说明

图1为数字预失真技术实现原理框图;

图2为本申请lms系数更新示意图;

图3为本申请lms系数更新流程图;

图4为本申请对带宽100mhz的信号进行了预失真的处理结果图。

具体实施方式

实施例1

作为本发明一较佳实施例,参照说明书附图1-3,本实施例公开了:

一种数字预失真自适应处理方法,包括以下步骤:

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n);

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,直接进入到步骤g;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新,利用lms算法可求解得到模型系数;

步骤d、计算步骤c中的模型系数求解公式中的误差信号乘积,将误差乘积与幅度高阶项对应,将误差信号乘积计算完成后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,根据幅度项进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入步骤c的模型系数求解公式中,,得到lms更新后的第i代模型系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束。

实施例2

作为本发明又一较佳实施例,参照说明书附图1-3,本实施例公开了:

一种数字预失真自适应处理方法,包括以下步骤:

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用mp模型表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk为模型的系数,k和m分别为模型的非线性阶数和记忆深度;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,直接进入到步骤g;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到aimk,则

其中,μ为迭代的步长,(·)*为共轭运算;令(ei(n)(yi(n-m))*)为误差信号乘积,|yi(n-m)|k-1,k=1,2,3…,为幅度高阶项;

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将|yi(n-m)|k-1,k=1,2,3…,提前计算好,并映射成查找表,根据幅度项|yi(n-m)|进行查表,分别查出幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的(ei(n)(yi(n-m))*)和|yi(n-m)|k-1,k=1,2,3…,在fpga中进行逻辑处理之后,代入公式(3),得到lms更新后的第i代系数aimk,并更新预失真器的系数;步骤g,预失真器系数更新,得到预失真信号,计算结束。

所述步骤e中将|yi(n-m)|k-1,k=1,2,3…,映射成查找表,具体是指:将|yi(n-m)|归一化到(0,1),然后通过仿真确定表项大小,分别计算出|yi(n-m)|k-1,k=1,2,3…,中各表项的内容,映射成查找表,并写入fpga的rom中;将|yi(n-m)|作为表地址,在计算时根据其值即可查出|yi(n-m)|k-1,k=1,2,3…,的值。

图4是本申请提案的实施案例在fpga中实现了自适应dpd系统,对功放的预失真结果。本实施案例对带宽100mhz的信号进行了预失真,从图4可以看出,预失真之前的信号经过功放后,信号发生了频谱扩展,邻近信道功率比(adjacentchannelpowerradio,acpr)为-36.46dbc。而经过了本申请提案的实施案例,信号的频谱扩展得到了抑制,信号的非线性失真能够得到线性化,acpr为-51.53dbc,信号改善了15.07dbc,说明了本申请提案的实施案例具有优越的线性化能力。

实施例3

作为本发明又一较佳实施例,参照说明书附图1-3,本实施例公开:

一种数字预失真自适应处理方法,包括以下步骤:

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用一般记忆多项式模型(gmp)模型表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk、bmlk、cmlk为模型的系数,ka,kb,kc和ma,mb,mc分别为模型的非线性阶数和记忆深度,lb和lc分别是模型的滞后记忆效应和超前记忆效应;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,得到预失真信号;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到aimk,bimlk,cimlk,则

其中,μ为迭代的步长,(·)*为共轭运算,每个系数也可分开写成:

每个系数的求解方法是相同的,以求aimk为例,令(ei(n)(yi(n-m))*)为误差信号乘积,|yi(n-m)|k-1,k=1,2,3…,为幅度高阶项。

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,根据幅度项|yi(n-m)|进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入公式(3),得到lms更新后的第i代系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束,同理可求得bimlk,cimlk。

实施例4

作为本发明又一较佳实施例,参照说明书附图1-3,本实施例公开:

一种数字预失真自适应处理方法,包括以下步骤:

步骤a、通过硬件反馈通道获取射频功放的反馈信号y(n),用无记忆多项式模型表示为:

其中,x(n)和y(n)分别为模型的输入输出,amk为模型的系数,k和m分别为模型的非线性阶数和记忆深度;

步骤b、观察y(n)是否存在频谱扩展,判断其是否线性,若y(n)的频谱没有发生扩展,则线性效果收敛,说明当前dpd系数收敛,不需要更新,得到预失真信号;若y(n)的频谱发生扩展,则发生非线性失真,dpd系数没有收敛,进入到步骤c;

步骤c、启动lms系数更新模块,根据输入信号x(n)和输出信号y(n)的误差进行lms系数更新:

ei(n)=yi(n)-xi(n)(2)

利用lms算法可求解得到aimk,则

其中,μ为迭代的步长,(·)*为共轭运算;令(ei(n)(yi(n))*)为误差信号乘积,|yi(n)|k-1,k=1,2,3…,为幅度高阶项;

步骤d、计算公式(3)中的误差信号乘积,将误差信号乘积与幅度高阶项对应,将误差信号乘积计算完成之后,进入步骤e;

步骤e、将幅度高阶项提前计算好,并映射成查找表,根据幅度项|yi(n)|进行查表,分别查出各幅度高阶项的值,进入步骤f;

步骤f,根据步骤d和步骤e中计算的误差信号乘积和幅度高阶项在fpga中进行逻辑处理之后,代入公式(3),得到lms更新后的第i代系数aimk,并更新预失真器的系数;

步骤g,预失真器系数更新,得到预失真信号,计算结束。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1