一种基于维度加权盲K近邻算法的数字预失真技术

2023-03-01 08:13蒋卫恒段耀星李明玉徐常志
电子与信息学报 2023年2期
关键词:聚类建模维度

蒋卫恒 段耀星 李明玉* 靳 一 徐常志 李 立

①(重庆大学微电子与通信工程学院 重庆 400044)

②(中国空间技术研究院西安分院 西安 710100)

1 引言

在5G时代,随着无线通信系统对高速率、大容量以及更高效率的不断追求,复杂的调制方式和大带宽信号在发射系统中得到广泛应用[1],这就要求在发射机系统中使用更加复杂的功率放大器构架和线性化设计方法。同时,作为发射机中最为耗电的器件,功放的效率通常会对整个发射机的效率产生很大的影响,为了提高其工作效率,功率放大器通常会工作在其非线性区[2],这会导致发射信号产生非线性失真,必须采用有效的方法对功率放大器产生的非线性失真进行补偿,数字预失真是目前最常用的方法[3]。

在过去数十年中,涌现了许多数字预失真方法。基于沃特拉(Volterra)级数,业界进行了删减并降低其复杂度的模型成为主流,比如记忆多项式(Memory Polynomial, MP)模型[4]、广义记忆多项式(Generalized Memory Polynomial, GMP)模型[5]、动态偏差减少(Dynamic Deviation Reduction,DDR) 模型[6]。对于带宽更宽的信号,需要更高的反馈采样率,高采样率对模数转换是极大的开销。文献[7]利用信号的循环平稳特性,使用欠采样的反馈信号解决这个问题。同时,基于兰德韦伯(Landweber)迭代算法的预失真方法也用来降低反馈通道的采样率[8]。对于常用的预失真系统,模型的复杂度和建模精度之间是一种矛盾的关系,提高建模的精度需要使用复杂度更高的模型。功率放大器在不同的功率级别上会表现出不同的非线性和记忆性[9],因此业界提出了针对功放的功率分段建模的方法。文献[10]提出了一种模型选择方法,根据输入信号的幅度选择不同的模型,来达到分段建模的目的,然而这种方法没有考虑功放的记忆效应,是一种无记忆模型。这种分段方法也被运用到双带传输系统[11],通过两个基带的信号幅度选择合适的模型,但同样没有考虑记忆性。文献[12]提出了一种向量选择模型,通过聚类算法将输入向量做聚类,不同的类选择不同的模型系数,但这种模型在做聚类时,模型的记忆输入项和当前输入项权重相同,这不符合功率放大器的记忆性质,会使建模精度降低。分段仿射函数的方法同样被用在分段建模方法中[13],在不同的输入信号幅度上选择不同的仿射函数作为非线性算子来构建功放的非线性行为。文献[14]提出了一种基于增强模型树的模型选择方法,这种方法利用模型树分类为每一类输入数据选择对应的系数。但模型树的训练计算复杂度很高,并且用模型树算法对输入序列进行分类选择系数,也有着很大的计算量。

针对以上问题,本文提出一种基于维度加权的盲K近邻(K-Nearest Neighbor, KNN)分类算法,与记忆多项式模型进行结合,组成维度加权盲KNN记忆多项式(dimensional-Weighted blind KNN Memory Polynomial, WKMP)模型。KNN算法的基本应用业界已有报道,文献[15]利用调制信号的星座图特点进行聚类得到已知数据集,提出了一种无数据辅助的KNN算法运用于盲均衡。与上述方法不同的是,本文在进行KNN分类之前首先使用K-means算法对数据集进行聚类,得到有标签的数据集,完成KNN分类算法的数据集准备。进一步在进行KNN分类时,每一级记忆延迟项使用单独的权重进行加权,越靠近当前时刻输入,权重越大,使输入项对分类的影响随记忆阶数增加而降低,以吻合功率放大器的实际记忆特性。同时,确保聚类之后的数据中,每一类的输入信号序列都是相似的,使功放可以用同一个行为模型进行描述,再对同一类的输入数据使用相同的行为模型,以此来提高建模的精度。实验证明,基于维度加权的KNN分类模型与记忆多项式模型结合形成的WKMP模型在功放的正向建模精度和数字预失真效果均超过了广义记忆多项式的水平,有着优良的性能。

本文结构如下,第2节介绍所提基于维度加权的盲KNN分类模型以及子模型的系数提取方法,第3节给出实验结果和各个模型之间的性能对比,第4节总结。

2 基于维度加权的盲KNN记忆多项式模型

为了对功放在不同输入信号功率上的非线性记忆性进行建模和预失真,本节提出基于维度加权的盲KNN记忆多项式(WKMP)模型。所提模型对输入信号序列进行维度加权的KNN分类,使同类数据之间具有较高的相似性,为每一类数据进行非线性系统辨识,获得单独的系数,以提高模型的性能。

2.1 维度加权的盲KNN算法

KNN分类算法是一种监督学习的机器学习分类算法,以所有已知类别的样本作为参考,计算未知类别的样本与所有参考样本的相似程度,并从中选取与未知样本最为相似的K个已知类别的样本,根据投票规则,将未知类别的样本与K个选中样本中相似程度最高的归为一类[13]。

未知类别的样本与参考类别的样本之间的相似性通过欧几里得距离衡量。参考样本集T={(x1,y1),(x2,y2),...,(xN,yN)},xi ∈X ⊆Rn表 示n维参考样本,yi ∈Y={c1,c2,...,ck}表示参考样本所属的类别。对于未知样本xj,使用欧几里得距离计算与其他参考样本之间的相似程度,如式(1)所示

其中,k表示样本数据的维数,即向量中的元素序号,通过计算出未知样本与所有参考样本的距离,可找出前K个最小距离,根据前K个与未知样本之间的距离最小的参考样本的所属类确定未知样本的所属类。

在对未知样本进行投票确定其所属类时,考虑到数据之间越相似,应该在投票时拥有更大的权重,因此,使用距离对投票的权重进行加权,使投票的结果更加合理。加权总和投票规则的表达式如式(2)所示

使用与未知样本距离最近的K个参考样本进行加权投票,最终票值最大的类别即为未知样本的类别。但传统的KNN分类算法运用于数字预失真时存在不足之处。首先,传统的KNN分类算法在进行欧几里得距离运算时,每一个特征权重相同,对数据分类的影响程度是一致的。但是在进行功率放大器(Power Amplifier, PA)建模的时候,PA的输出更多会受到当前的输入信号的影响,并随着记忆深度加深,此前输入的信号的影响逐渐减小。因此,在进行模型输入信号序列分类时,应使用加权因子使特征的权重随记忆深度加深而减小。其次,由于KNN算法是监督学习的算法,算法的运行依赖参考样本集,且算法的性能也与样本集的精度相关。要使用KNN算法进行分类,首先必须有一组参考样本集。针对以上两个问题,提出了维度加权的盲KNN算法。

针对功放记忆效应,应该为输入向量的不同维的数据在分类时赋予不同权重的问题,提出了维度加权的KNN算法。KNN算法在进行分类时,使用欧几里得距离来衡量样本间的相似度,因此,在计算距离时,应该对不同维度的数据进行加权,使其对距离计算的贡献程度不同。将KNN算法的距离计算公式改写为

ωk是对不同维的数据的加权值,如此,在计算未知样本与参考样本集距离最近的K个样本时,权重的不同就能使不同维的数据对分类结果的影响程度不同。

针对KNN需要参考样本集的问题,提出了基于K-means辅助的盲KNN分类算法。在进行KNN分类之前,首先使用K-means聚类算法对已知数据集进行聚类,K-means聚类算法在进行聚类时,也使用距离相近原则,使式(5)代价函数的值最小

其中,j表 示第j个 类别,i表 示第i个 样本,k表示样本的第k个特征,ui,j表 示第i个 样本对第j个类别的从属度,zj表 示第j个类别的聚类中心。使用K-means聚类之后的每一类数据集之间,天然便有着距离相近的特点。并且,每一个数据都有着聚类之后的标签,可以作为KNN分类算法参考样本集。

同时,对于参考样本,同样希望同一个类的数据之间相似程度的衡量方式对向量中不同维数据有所侧重,因此,在使用K-means进行预训练时,也需要对K-means的聚类方法进行修改,使用加权的K-means聚类算法[16],即修改K-means代价函数为

其中,ωk对距离计算时不同维数据的加权值。通过迭代优化样本类别从属度和聚类中心来使代价函数达到最小。样本类别从属度通过式(7)进行优化

其中,ui,a表 示第i个 样本对第a个类别的从属度,从属度通过类别与聚类中心的加权距离进行衡量。聚类中心通过式(8)进行优化

zj表 示更新之后的第j类的聚类中心。至此,得到了加权K-means聚类算法,通过维度权值ωj来调节每个维度数据对聚类结果的影响程度,使聚类的过程贴近于功放的记忆效应。

终上所述,所提维度加权的盲KNN分类算法在进行分类时,可以调节每个特征对于分类结果的影响,运用于数字预失真时更加接近功放的实际工作特性。同时,使用K-means聚类进行辅助,克服了KNN分类算法需要有参考样本的问题。所提维度加权的盲KNN分类算法由两部分组成,如图1所示。

图1 维度加权的盲KNN算法流程

维度加权的盲KNN算法由两部分组成,首先是训练模型,使用加权K-means聚类算法,对一部分样本进行聚类,得到带有标签的参考样本集。然后是进行加权KNN分类,对于未知样本,使用维度加权的距离选择参考样本中最近的K个样本,再使用加权投票规则得到未知样本的类别。

2.2 基于维度加权的盲KNN记忆多项式模型

对于一个数字预失真模型(比如记忆多项式模型),记忆深度为M,则每一次模型的输入数据设为M维向 量X(n)=(x(n),x(n −1),...,x(n −M+1))。对于每个输入向量,令模型的输出为y(n),其输入输出表达式为

输入输出之间可以一种函数关系描述,即y(n)=F(x(n),x(n −1),...,x(n −M+1)),对 于记忆多项式模型来说,这种函数关系是固定的,由模型系数确定,这种固定的关系表明对过去时刻不同功率的输入信号产生的记忆效应,通过固定的映射关系影响当前输出。然而不同输入功率的信号会使功放行为不同,记忆效应也不同。在不同的输入功率下采用不同的函数F,会极大地提高模型的精准度,其表达式为

同时,由于记忆效应,模型当前的输出还和过去时刻的输入有关,而过去时刻的输入由于功率的不同,产生的记忆效应影响也不同。功率放大器的行为不仅和当前的输入信号x(n)的功率有关,还和过去时刻的输入信号x(n −1),x(n −2),...的功率有关。

针对这种特性,提出了基于维度加权的盲KNN记忆多项式预失真模型(WKMP),将模型的输入 序 列X(n)=(x(n),x(n −1),...,x(n −M+1))作为未知样本,以每一维数据的幅度为特征,即XKNN(n)=(|x(n)|,|x(n −1)|,...,|x(n −M+1)|),通过加权KNN分类算法进行分类,分类后的每一类数据在数据的幅度上有着距离相近的特点,对应相似的功放行为,再通过不同的子模型进行处理。预失真采用直接学习结构实现,在加入基于维度加权的盲KNN算法后,其结构如图2所示。

图2 WKMP模型DPD结构框图

首先是进行参考样本集的训练,将已知的发射数据重新排列,形成每一次的输入是包含记忆项的向量形式,以向量的中每一维数据的幅度作为聚类依据,并选择合适的维度加权值来表征记忆项对当前输出的影响程度,进行加权K-means聚类,得到带有标签的参考样本集。进行数字预失真(Digital PreDistortion, DPD)处理或PA建模时,再根据输入序列X(n)=(x(n),x(n −1),...,x(n −M+1))的加权KNN分类结果选择对应的子模型进行处理。

对于每一个模型输入序列,同一类的输入信号向量之间会有很高的相似性,所造成的功放非线性和记忆效应都是相似的,对同一类输入序列采用同一子模型对功率放大器进行建模,可以极大提高模型的精度。并且将模型的输入序列进行分类,可以视作将输入空间进行划分,对应着将功放的行为模型进行划分,每一段子输入空间对应着一段功放行为模型,在通过子模型的输入输出数据进行建模后,子模型的数学模型与功放的实际模型进行匹配,组合在一起构成完整的功放行为模型。每一个子模型拥有独立的系数,只对功放的一部分行为进行建模,因此可以获得较高的精准度。例如,在进行参考样本集的训练时,在幅度上将输入信号序列划分为8类,对于模型的输入信号来说,输入信号向量被划分为了8类,并且每一类输入信号由对应的DPD模型单独处理,每一个DPD模型有着自己独立的系数,充分对功率放大器在不同工作条件下产生的不同的非线性效应与记忆效应进行建模,提高模型的建模和预失真的能力。

2.3 模型参数提取

对于一般的直接学习结构的预失真模型,文献[17]给出了基于牛顿迭代的系统辨识方法。然而,在WKMP模型中,输入的信号向量使用了维度加权的KNN分类方法进行了分类,每一类的输入向量由对应的子模型进行处理。这种情况下,对于模型的输入信号序列X(n)=(x(n),x(n −1),...,x(n −M+1)),X(n)表 示n时刻模型的输入信号序列,当时刻n发生变化时,输入信号序列X(n)所属的子模型会发生变化。则原输入信号所形成的预失真模型基函数矩阵将不再适用于各个子模型,需要为各个子模型的输入序列计算其基函数矩阵,并寻找合适的系统系数计算方法。

对于功率放大器的正向建模,模型的输入序列X(n)与 模型的输出y(n)之间是一一对应的关系。当采用记忆多项式模型作为子模型的结构时,令第k个子模型的基函数矩阵Hk, 其系统系数为ωk,则模型输出可用式(11)表示yk表 示第k个子模型的输出,如y1=(y(1),y(3),...,y(L)), 整个模型的输出由所有的子模型输出一起构成。对于单个子模型而言,输入数据所构成的基函数矩阵和输出之间是一种线性关系,则子模型对功率放大器的正向建模的系统系数可以通过最小二乘的方法求得,如式(12)所示

将WKMP模型运用于数字预失真时,每一个子模型的系数不同,并且进行维度加权的盲KNN分类之后,输入信号序列会根据分类结果由不同的子模型进行处理,模型输出y的各元素y(n)由不同的子模型输出,同时,由于功率放大器的记忆效应,功率放大器的输出z(n)是与多个子模型的输出相关的,因此需要一种适合的算法计算各个子模型的系数。对于预失真系统而言,目的是使模型的输入信号与功放的输出信号一致,输入输出误差可由式(13)表示

令代价函数如式(14)表示

代价函数和系统系数紧密相关,其变化可以通过代价函数对子系数的共轭ωk∗的导数体现,使代价函数对第k个子系统的系数共轭ωk∗求导为

3 仿真实验与结果

为了验证所提基于维度加权的盲KNN记忆多项式模型的性能,本节使用了一套包含计算机(Personal Computer, PC)、矢量信号发生器(Vector Signal Generator, VSG)、Doherty功率放大器、频谱分析仪(Vector Spectrum Analyzer,VSA)、电源、衰减器等模块的实验平台进行验证。测试使用的PA工作在2.2 GHz,输出信号的平均功率为34 dBm。计算机和矢量信号发生器使用局域网(Local Area Network, LAN)进行连接,VSG发射信号经驱动放大后传输到功率放大器,组成传输路径。功率放大器的输出信号经过衰减器后传输到VSA,再由VSA通过LAN连接到计算机构成反馈路径。图3 给出了实验平台现场图。使用ADS2020进行基带信号的产生,所有信号处理和训练过程均在MATLAB中进行。基带信号使用了带宽为30 MHz、采样率122.88 MHz、峰值平均功率比为8.52 dB的3载波长期演进(Long Term Evolution, LTE)信号。

图3 实验平台现场图

在功率放大器的行为正向建模时,使用归一化均方误差(Normalized Mean Squared Error,NMSE)作为建模精度的指标。在DPD测试中,使用相邻信道功率比(Adjacent Channel Power Ratio, ACPR)来衡量模型的线性化性能,并使用归一化均方误差(Normalized Mean Squared Error,NMSE)来衡量模型预失真的信号还原效果。

在实验中,WKMP模型的子模型使用阶数为3,记忆深度为3,即有16个参数的记忆多项式模型,选择子模型数量为1~9,进行对比不同子模型数量对于WKMP模型正向建模能力的影响。为了直观了解所提出模型的性能,使用了仅使用未加权KNN的记忆多项式模型(KMP)作为对比,子模型和WKMP采用同样16个参数的MP模型,同时,使用记忆深度为5,阶数为4,总共92个参数的GMP模型和阶数为3,记忆深度为3,16个参数的MP模型作为性能对比。

在进行PA的正向建模时,信号不经过处理,直接通过矢量信号发生器发射,经过PA放大和衰减器的衰减,接入频谱分析仪,MATLAB通过局域网对VSA采集到的信号进行对齐,再进行功放行为模型的建模。WKMP模型的建模信号的功率谱信号与PA实际输出信号的功率谱如图4所示。

图4 WKMP建模功率谱

随着子模型数量的增多,WKMP模型和KMP模型的建模精度均会提高,但WKMP模型的建模精度在所有子模型分类数上均比KMP模型有着较大的提升,这一点可以在图5中看出。并且,太多的子模型数量会使模型训练所需要的数据增多,同时也将会增大系数确认的计算量,因此,需要考虑子模型的数量和性能的关系,在实验中选择8个子模型。

图5 建模精度和子模型数量的关系

如表1所示,在PA的正向建模精度上,根据结果,所提出WKMP模型相比于MP模型,其归一化均方误差降低13.95 dB,从–36.72 dB提升到了–50.67 dB,而与GMP模型相比提高了2.68 dB,同时相比于仅使用了未加权的KNN的KMP模型,在子模型数量为8时,WKMP模型的建模精度提高了6.36 dB。可以看出,所提出的WKMP模型在PA正向建模能力上,已经远超MP模型,也超过了GMP模型的建模能力,表现出了优异的PA建模能力。

表1 3种模型PA正向建模精度对比(dB)

进一步验证提出模型的DPD性能,实验采用的4种模型均采用直接学习结构,迭代次数设置为10次,再验证系数更新完善后的模型的DPD能力。4种模型的DPD后PA输出信号的功率谱如图6所示。可以看出,在4种模型的线性化效果对比中,WKMP模型表现出了最为优异的性能。

图6 4种模型DPD输出信号功率谱

所提模型线性化后的幅度调制-幅度调制(Amplitude Modulation-Amplitude Modulation, AMAM)曲线和相位调制-相位调制(Phase Modulation-Phase Modulation, PM-PM)曲线如图7所示。可以从AM-AM曲线中看出,即使PA表现出了显著的非线性和记忆性,但所提出的WKMP模型仍然能够表现出很好的线性化能力,具体的DPD性能结果如表2所示。

表2 各模型的DPD性能对比

图7 WKMP模型AM-AM和PM-PM曲线

所提WKMP模型在DPD表现上与PA的正向建模表现一致,均表现出了极高的性能,相比于未经过DPD的输出信号,其ACPR提高了14.4 dBc,并且相较于MP模型,有着3.34 dBc的性能提高,而与GMP模型相比,则超过了GMP模型1.02 dBc,也超过了KMP模型1.40 dBc。而仅经过未加权KNN分类的KMP模型虽然相较于MP模型有着1.94 dBc的性能提升,但相较于GMP模型还有着0.38 dBc的差距。同时,在信号还原效果上,WKMP模型也在4种模型中表现出最为优秀的性能,其NMSE达到了–43.28 dB的水平,相较于MP模型和GMP模型分别提升了11.81 dB和12.63 dB。

同时,相较于MP模型而言,本文所提WKMP模型仅会在确定模型输入信号序列的类别时增加计算复杂度,在信号的预失真处理和模型系数确认中由于采用相同阶数和记忆深度的多项式,计算复杂度不会有大的变化,总的计算复杂度虽会超过MP模型的计算复杂度,但相较于GMP模型,仍然有着很大的优势。表3给出几种模型计算复杂度的对比,计算复杂度使用迭代一次所用的复数乘法次数来衡量,其中,K是进行加权KNN判别的已知数据集个数,K=500,N代表训练所用的数据总的点数,N=16384,Ni和Nj分别表示WKMP模型和KMP模型的第i个子模型和第j个子模型的数据点数,P代表模型的基函数数量,即系数的数量,PMP=PKMP=PWKMP=16, PGMP=92。

从表3给出的各模型的计算复杂度对比, WKMP模型虽然相比于MP模型的有较大的计算复杂度,但换来了性能的大幅度提升,同时WKMP模型计算复杂度与KMP模型相当,却做到了更好的数字预失真和建模表现。并且,在计算复杂度只有GMP模型的1/3的情况下,WKMP模型表现出了比GMP模型更加优异的性能。

表3 各模型的计算复杂度对比

4 结束语

本文提出一种基于维度加权的盲KNN记忆多项式数字预失真算法,充分考虑到功率放大器的行为模型与当前输入信号的幅度以及此前输入信号的幅度有关,即功放的非线性和记忆效应受输入信号幅度的影响的特点。通过引入维度加权的方法,对未知样本分类时不同维的数据对分类结果的影响进行加权,更加贴近功放的实际记忆特性,并使用维度加权的K-means聚类算法进行参考样本的预训练,克服了KNN算法需要参考样本集的问题。使用维度加权的盲KNN算法,对模型的当前时刻和记忆输入项分别进行分类,并根据分类结果确定模型的输入信号序列所属的类,不同的类进行不同的行为模型建模。实验证明,本文所提WKMP模型拥有优良的功放建模能力和线性化能力,在功放呈现出显著非线性记忆效应的条件下,仍然能很好地补偿功放的非线性记忆效应,为新一代无线通信系统中的数字预失真系统设计提供了一种有效的方案和思路。

猜你喜欢
聚类建模维度
理解“第三次理论飞跃”的三个维度
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
浅论诗中“史”识的四个维度
基于K-means聚类的车-地无线通信场强研究
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
基于高斯混合聚类的阵列干涉SAR三维成像
光的维度
一种层次初始的聚类个数自适应的聚类方法研究
三元组辐射场的建模与仿真