一种确定DPD系数的方法、FPGA及DPD处理系统与流程

文档序号:11215237阅读:894来源:国知局
一种确定DPD系数的方法、FPGA及DPD处理系统与流程

本申请涉及通信技术领域,尤其涉及一种确定dpd系数的方法、fpga及dpd处理系统。



背景技术:

射频功率放大器(poweramplifier,pa)是无线通信系统中最主要的非线性器件,它具有幅度—幅度失真特性和幅度—相位失真特性,这种非线性会导致信号带外的频谱扩展,从而对相邻信道产生干扰,还会造成信号带内失真,导致系统的误码率提高。因此,为了满足频谱要求和降低误码率,提高功率放大器在无线通信过程中的效率,对其进行线性化处理是十分必要的。

对功率放大器进行线性化处理的一种常用技术为数字预失真(digitalpre-distortion,dpd)技术,该技术具有精度高、适用带宽范围大、实现成本低等优点。

数字预失真的基本原理:在功率放大器前侧设置一个与其特性(非线性)相反的模块,使得整个链路呈现线性放大。参见图1,图1为一种常用的dpd系统结构示意图,在功率放大器(pa)前侧设置一个预失真器,根据功率放大器输入信号和功率放大器输出信号,通过dpd系数估计模块估计dpd系数,然后将该dpd系数发送给数字预失真器,以达到对功率放大器进行非线性补偿的目的。

然而,在具体的应用系统中,计算dpd系数的计算量很大,而现有技术中使用通用处理器(例如:arm处理器,dsp处理器)作为计算的载体,采用串行的方式进行运算,当计算dpd系数的算法比较复杂时,运算速度不能满足dpd系数更新的需求,导致了dpd系数更新过慢,不能在信号功率或 者信号形态变化较大时及时调整dpd系数,使得对信号的功率放大出现非线性的情况,从而导致了信号质量的降低。



技术实现要素:

本申请实施例提供了一种确定dpd系数的方法、fpga及dpd处理系统,用以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

本申请实施例提供的一种确定数字预失真dpd系数的方法包括:

现场可编程门阵列fpga根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵;

所述fpga计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵;

所述fpga根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数。

本申请实施例提供的方法,使用fpga作为计算dpd系数的载体,具体地所述fpga根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,所述fpga计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,所述fpga根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数,因此,利用fpga可以采用并行的方式进行计算dpd系数过程中的矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

较佳地,所述fpga计算所述系数矩阵的自相关矩阵的逆矩阵,具体包括:

所述fpga内嵌的矩阵相乘模块采用并行的方式对所述系数矩阵进行自相关运算,得到所述系数矩阵的自相关矩阵;

所述fpga内嵌的求逆模块计算所述系数矩阵的自相关矩阵的逆矩阵。

较佳地,在所述fpga根据功率放大器的反馈信号,确定系数矩阵之后,在计算所述系数矩阵的自相关矩阵的逆矩阵之前,该方法还包括:

所述fpga将所述系数矩阵中的每个元素存储到双倍速率同步动态随机存储器ddr;其中,所述ddr的行地址与所述系数矩阵的列地址一一对应,所述ddr的列地址与所述系数矩阵的行地址一一对应。

通过将ddr的行地址与系数矩阵的列地址一一对应,以及ddr的列地址与系数矩阵的行地址一一对应,这样可以通过直接寻址ddr,方便地从ddr中读取系数矩阵中相应位置的元素,从而可以提高dpd系数计算的速度。

较佳地,所述fpga内嵌的矩阵相乘模块采用并行的方式对所述系数矩阵进行自相关运算,得到所述系数矩阵的自相关矩阵,具体包括:

所述fpga内嵌的矩阵相乘模块针对需要得到的所述系数矩阵的自相关矩阵的任一元素位置:确定该位置的行地址和列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述fpga内嵌的第一随机存储器ram中;并按照该列地址从所述ddr中读取一行数据,并缓存到所述fpga内嵌的第二ram中;所述fpga内嵌的矩阵相乘模块根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,确定该位置的元素。

较佳地,所述fpga内嵌的矩阵相乘模块采用并行的方式对所述系数矩阵进行自相关运算,得到所述系数矩阵的自相关矩阵,具体包括:

所述fpga内嵌的矩阵相乘模块针对需要得到的所述系数矩阵的自相关矩阵的任一行元素的位置,确定该行位置的行地址,以及该行元素中的奇数列的列地址和偶数列的列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述fpga内嵌的第一随机存储器ram中;并依次按照一个奇数列的列地址从所述ddr中读取一行数据,并缓存到所述fpga内嵌的第二ram中;以及,依次按照一个偶数列的列地址从所述ddr中读取一行数据,并缓存到所述fpga内嵌的第三ram中;所述fpga内嵌的矩阵相乘模块根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,依次确定该行的奇 数列的元素;所述fpga内嵌的矩阵相乘模块根据所述第一ram和所述第三ram中缓存的数据,采用并行的方式进行运算,依次确定该行的偶数列的元素。

在采用并行的方式进行矩阵相乘的运算中,通过使用第二ram和第三ram进行乒乓运算,当其中一个ram在进行并行运算时,另一个ram缓存数据,因此,可以提高dpd系数计算的速度。

较佳地,所述计算所述系数矩阵的自相关矩阵的逆矩阵,具体包括:

所述fpga内嵌的求逆模块对所述系数矩阵的自相关矩阵进行乔叶斯分解,得到乔叶斯分解矩阵;

所述fpga内嵌的求逆模块计算所述乔叶斯分解矩阵的逆矩阵;

所述fpga内嵌的求逆模块采用并行的方式对所述乔叶斯分解矩阵的逆矩阵进行自相关运算,得到所述乔叶斯分解矩阵的逆矩阵的自相关矩阵,作为所述系数矩阵的自相关矩阵的逆矩阵。

通过将系数矩阵的自相关矩阵进行乔叶斯分解,得到的乔叶斯分解矩阵为下三角矩阵,故可以减少计算量,并且采用并行的方式对乔叶斯分解矩阵的逆矩阵进行自相关运算,因此,可以提高dpd系数计算的速度。

本申请实施例提供的一种现场可编程门阵列fpga包括:

第一单元,用于根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵;

第二单元,用于计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵;

第三单元,用于根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数。

本申请实施例提供的fpga,第一单元根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,第二单元计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,第三单元根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关 矩阵,确定dpd系数,因此,在计算dpd系数过程中,该fpga可以采用并行的方式进行矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

较佳地,所述第二单元包括:

第一矩阵相乘模块,用于采用并行的方式对所述系数矩阵进行自相关运算,得到所述系数矩阵的自相关矩阵;

求逆模块,用于计算所述系数矩阵的自相关矩阵的逆矩阵;

第二矩阵相乘模块,用于计算所述系数矩阵和所述前向矩阵的互相关矩阵。

较佳地,所述第一单元还用于:

将所述系数矩阵中的每个元素存储到双倍速率同步动态随机存储器ddr;其中,所述ddr的行地址与所述系数矩阵的列地址一一对应,所述ddr的列地址与所述系数矩阵的行地址一一对应。

通过将ddr的行地址与系数矩阵的列地址一一对应,以及ddr的列地址与系数矩阵的行地址一一对应,这样可以通过直接寻址ddr,方便地从ddr中读取系数矩阵中相应位置的元素,从而可以提高dpd系数计算的速度。

较佳地,所述第一矩阵相乘模块具体用于:

针对需要得到的所述系数矩阵的自相关矩阵的任一元素位置:确定该位置的行地址和列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述第一ram中;并按照该列地址从所述ddr中读取一行数据,并缓存到所述第二ram中;根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,确定该位置的元素。

较佳地,所述第一矩阵相乘模块具体用于:

针对需要得到的所述系数矩阵的自相关矩阵的任一行元素的位置,确定该行位置的行地址,以及该行元素中的奇数列的列地址和偶数列的列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述第一ram中;并依次按 照一个奇数列的列地址从所述ddr中读取一行数据,并缓存到所述第二ram中;以及,依次按照一个偶数列的列地址从所述ddr中读取一行数据,并缓存到所述第三ram中;根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,依次确定该行的奇数列的元素;根据所述第一ram和所述第三ram中缓存的数据,采用并行的方式进行运算,依次确定该行的偶数列的元素。

在采用并行的方式进行矩阵相乘的运算中,通过使用第二ram和第三ram进行乒乓运算,当其中一个ram在进行并行运算时,另一个ram缓存数据,因此,可以提高dpd系数计算的速度。

较佳地,所述求逆模块具体用于:

对所述系数矩阵的自相关矩阵进行乔叶斯分解,得到乔叶斯分解矩阵;

计算所述乔叶斯分解矩阵的逆矩阵;

采用并行的方式对所述乔叶斯分解矩阵的逆矩阵进行自相关运算,得到所述乔叶斯分解矩阵的逆矩阵的自相关矩阵,作为所述系数矩阵的自相关矩阵的逆矩阵。

通过求逆模块将系数矩阵的自相关矩阵进行乔叶斯分解,得到的乔叶斯分解矩阵为下三角矩阵,故可以减少计算量,并且采用并行的方式对乔叶斯分解矩阵的逆矩阵进行自相关运算,因此,可以提高dpd系数计算的速度。

本申请实施例提供的一种数字预失真dpd处理系统,该系统包括本申请实施例提供的上述现场可编程门阵列fpga。

由于本申请实施例提供的dpd处理系统,采用本申请实施例提供的上述现场可编程门阵列fpga,该fpga的第一单元根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,第二单元计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,第三单元根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数,因此,在计算dpd系数过程中,该fpga可以采 用并行的方式进行矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

附图说明

图1为现有技术中一种常用的dpd系统结构示意图;

图2为本申请实施例提供的一种确定dpd系数的方法的流程示意图;

图3为本申请实施例提供的系数矩阵中的元素在ddr中的摆放顺序示意图;

图4为本申请实施例提供的一种fpga的结构示意图;

图5为本申请实施例提供的fpga中第二单元的结构示意图。

具体实施方式

本申请实施例提供了一种确定dpd系数的方法、fpga及dpd处理系统,用以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

下面对本申请实施例提供的技术方案进行详细描述。

本申请实施例在图1所示的dpd系统结构基础上,通过对dpd系数估计模块进行改进,来提高dpd系数计算的速度。图1中功率放大器的非线性失真特性可用多项式来表示,因此,可以用多项式对功率放大器进行建模。常用的功率放大器模型有volterra模型、记忆多项式(memorypolynomial,mp)模型、wiener模型、hammerstein模型等,并且由于数字预失真器是通过模拟功率放大器模型的逆,对发送信号先进行预失真,来抵消信号经过功率放大器时产生的失真,因此,用于对功率放大器进行建模的多项式都能用于对数字预失真器进行建模。下面以记忆多项式模型为例,对本申请实施例提供的技术方案进行描述。

参见图1,记忆多项式模型的数学表达式如公式(1)所示:

其中,x(n)表示发送信号,z(n)表示数字预失真器的输出信号,k表示多项式阶数,q表示记忆深度,akq表示数字预失真系数。

为了利用上述公式(1)来进行预失真处理需要估计出dpd系数akq,而估计dpd系数akq有多种方法,目前一般采用最小二乘(leastsquare,ls)算法估计dpd系数akq。下面结合图1简要说明利用ls算法估计dpd系数akq的过程。

采集功率放大器的输入信号z(n)(即数字预失真器的输出信号)和输出信号y0(n),输出信号y0(n)经过一个延时调整模块,转换为反馈信号y(n),y(n)与z(n)之间没有延时,当y(n)=x(n)时,可以认为功率放大器没有失真,此时根据上述公式(1)可得z(n)与y(n)的关系式(2)如下:

其中,n=0,1,2,3,…,n-1,n,n为采样点数。

令ukq(n)=y(n-q)|y(n-q)|k-1,则式(2)可转化为:

z=ua(3)

其中,z=[z(0),z(1)……z(n-1)]t,称为前向矩阵;

u=[u10,u20,…,uk0,u11,…,u1(q-1),…,uk(q-1)],称为系数矩阵;

ukq=[ukq(0),ukq(1),…,ukq(n-1)]t

a=[a10,a20,…,ak0,a11,…,a1(q-1),…,ak(q-1)]t,称为dpd系数矩阵。

其中,t表示转置。

根据ls算法,z=ua的最小二乘解如公式(4)所示:

a=(uhu)-1uhz(4)

其中,h表示共轭转置。

定义r_uu=uhu为系数矩阵的自相关矩阵,r_uz=uhz为互相关矩阵,那么,式(4)可以写成:

a=(r_uu)-1r_uz(5)

通过分析所述系数矩阵u可知,所述系数矩阵u为n行、kq列的矩阵,且为共轭对称矩阵,其中kq为预失真系数a的个数,如果定义l=kq,则系数矩阵u的维数为n*l。

需要指出的是,采样点数n、kq值可根据实际需要进行取值,本申请并不限制其取值,下面都已采样点数n=12000,kq=121为例对本申请实施例提供的技术方案进行说明。

参见图2,本申请实施例提供的一种确定dpd系数的方法,可以用于确定上述的dpd系数,该方法包括步骤:

s101、现场可编程门阵列fpga根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵;

s102、所述fpga计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵;

s103、所述fpga根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数。

其中,步骤s101中根据功率放大器的反馈信号,确定系数矩阵,具体包括:

可由处理器(例如fpga内嵌的arm处理器)根据功率放大器的反馈信号,生成系数矩阵。

需要说明的是,本申请实施例通过fpga进行矩阵相乘运算时,可以采用并行的方式进行运算,也可采用串行的方式进行运算,只需采用并行的方式进行至少一组矩阵相乘运算,就可提高dpd系数计算的速度,优选地,通过fpga估计dpd系数时,所有的矩阵相乘运算都采用并行的方式进行运算。

在进行了步骤s101之后,可以将系数矩阵存储到fpga外部的存储器(例 如:双倍速率同步动态随机存储器ddr)中。

较佳地,参见图3,图3为系数矩阵中的元素在ddr中的摆放顺序示意图,图3中i表示实部,q表示虚部,fpga将系数矩阵中的每个元素(element)存储到ddr,并且采取ddr的行地址与系数矩阵的列地址一一对应,ddr的列地址与系数矩阵的行地址一一对应的方式摆放系数矩阵中的元素,这样可以通过直接寻址ddr,方便地从ddr中读取系数矩阵中相应位置的元素,从而可以提高dpd系数计算的速度。

需要说明的是,由于dpd系统接收和处理的都是复数信号,因此将系数矩阵中的每个元素的实部和虚部分开存储;并且系数矩阵中的每个元素都由两个双精度浮点数组成。

接下来,fpga内嵌的矩阵相乘模块可以针对需要得到的系数矩阵的自相关矩阵的任一元素位置:确定该位置的行地址和列地址,按照该行地址从所述ddr中读取一行数据,并缓存到fpga内嵌的第一随机存储器ram中;并按照该列地址从ddr中读取一行数据,并缓存到fpga内嵌的第二ram中;fpga内嵌的矩阵相乘模块根据第一ram和第二ram中缓存的数据,采用并行的方式进行运算,确定该位置的元素。

当然,fpga内嵌的矩阵相乘模块也可以针对需要得到的系数矩阵的自相关矩阵的任一行元素的位置,确定该行位置的行地址,以及该行元素中的奇数列的列地址和偶数列的列地址,按照该行地址从ddr中读取一行数据,并缓存到fpga内嵌的第一随机存储器ram中;并依次按照一个奇数列的列地址从ddr中读取一行数据,并缓存到fpga内嵌的第二ram中;以及,依次按照一个偶数列的列地址从ddr中读取一行数据,并缓存到fpga内嵌的第三ram中;根据第一ram和第二ram中缓存的数据,采用并行的方式进行运算,依次确定该行的奇数列的元素;根据第一ram和第三ram中缓存的数据,采用并行的方式进行运算,依次确定该行的偶数列的元素。例如确定系数矩阵的自相关矩阵的第一行元素,fpga内嵌的矩阵相乘模块读取ddr中第一行数据,并 缓存到fpga内嵌的第一ram中,并读取ddr中第一行数据,缓存到fpga内嵌的第二ram中,根据第一ram和第二ram中缓存的数据,采用并行的方式进行运算,确定系数矩阵的自相关矩阵的第一行第一列的元素,同时读取ddr中第二行数据,缓存到fpga内嵌的第三ram中,然后,根据第一ram和第三ram中缓存的数据,采用并行的方式进行运算,确定系数矩阵的自相关矩阵的第一行第二列的元素,同时,读取ddr中第三行数据,缓存到fpga内嵌的第二ram中,以此类推,可以确定系数矩阵的自相关矩阵的第一行所有元素。

在采用并行的方式进行系数矩阵的自相关矩阵的运算中,通过使用第二ram和第三ram进行乒乓运算,即当其中一个ram在进行并行运算时,另一个ram缓存数据,因此,可以提高dpd系数计算的速度。

其中,fpga内嵌的矩阵相乘模块从ddr中读取数据,可以通过该fpga上的hp端口或者ddrmig的axislave接口进行读取。

另外,系数矩阵u的维度为12000*121,那么系数矩阵的共轭转置矩阵uh的维度为121*12000,因此,系数矩阵的共轭转置矩阵uh乘以系数矩阵u(即uhu,也称为系数矩阵的自相关矩阵)的结果是维度为121*121的矩阵,该系数矩阵的自相关矩阵可以存储在fpga的uhu矩阵ram中。

需要指出的是,前面仅给出在采用并行的方式进行系数矩阵的自相关矩阵的运算中,使用第二ram和第三ram进行乒乓运算,基于相同的原理,在进行其它的矩阵相乘运算中,也可采用两个ram进行乒乓运算,本申请并不限制其使用的场景。

在步骤s102中,计算系数矩阵的自相关矩阵的逆矩阵,可以有多种方法,本申请实施例优选采用乔叶斯分解计算系数矩阵的自相关矩阵的逆矩阵,具体包括:

fpga内嵌的求逆模块对系数矩阵的自相关矩阵进行乔叶斯分解,得到乔叶斯分解矩阵;

fpga内嵌的求逆模块计算乔叶斯分解矩阵的逆矩阵;

fpga内嵌的求逆模块采用并行的方式对乔叶斯分解矩阵的逆矩阵进行自相关运算,得到乔叶斯分解矩阵的逆矩阵的自相关矩阵,作为系数矩阵的自相关矩阵的逆矩阵。

通过将系数矩阵的自相关矩阵进行乔叶斯分解,得到的乔叶斯分解矩阵为下三角矩阵,故可以减少计算量,并且采用并行的方式对乔叶斯分解矩阵的逆矩阵进行自相关运算,因此,可以提高dpd系数计算的速度。

下面使用数学表达式对采用乔叶斯分解计算系数矩阵的自相关矩阵的逆矩阵进行进一步说明:

定义r_uu=ggh为r_uu的乔叶斯(cholesky)分解形式。

其中g矩阵(即乔叶斯分解矩阵)是一个具有正的对角线元素的下三角矩阵,如式(6)所示:

其中,l=kq,gij计算如公式(7)所示:

则式(6)可以写成:

定义b=g-1,称为乔叶斯分解矩阵的逆矩阵,如式(9)所示:

其中,bij计算如公式(10)所示:

则式(10)可以写成:

那么,r-1_uu=(ggh)-1=g-hg-1=bhb,即系数矩阵的自相关矩阵的逆矩阵为乔叶斯分解矩阵的逆矩阵的自相关矩阵。

参见图4,本申请实施例提供的一种现场可编程门阵列fpga包括:

第一单元11,用于根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵;

第二单元12,用于计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵;

第三单元13,用于根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关 矩阵,确定dpd系数。

本申请实施例提供的fpga,第一单元11根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,第二单元12计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,第三单元13根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数,因此,在计算dpd系数过程中,该fpga可以采用并行的方式进行矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

较佳地,参见图5,所述第二单元12包括:

第一矩阵相乘模块21,用于采用并行的方式对所述系数矩阵进行自相关运算,得到所述系数矩阵的自相关矩阵;

求逆模块22,用于计算所述系数矩阵的自相关矩阵的逆矩阵;

第二矩阵相乘模块23,用于计算所述系数矩阵和所述前向矩阵的互相关矩阵。

较佳地,所述第一单元11还用于:

将所述系数矩阵中的每个元素存储到双倍速率同步动态随机存储器ddr;其中,所述ddr的行地址与所述系数矩阵的列地址一一对应,所述ddr的列地址与所述系数矩阵的行地址一一对应。

通过将ddr的行地址与系数矩阵的列地址一一对应,以及ddr的列地址与系数矩阵的行地址一一对应,这样可以通过直接寻址ddr,方便地从ddr中读取系数矩阵中相应位置的元素,从而可以提高dpd系数计算的速度。

较佳地,所述第一矩阵相乘模块21具体用于:

针对需要得到的所述系数矩阵的自相关矩阵的任一元素位置:确定该位置的行地址和列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述第一ram中;并按照该列地址从所述ddr中读取一行数据,并缓存到所述 第二ram中;根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,确定该位置的元素。

较佳地,所述第一矩阵相乘模块21具体用于:

针对需要得到的所述系数矩阵的自相关矩阵的任一行元素的位置,确定该行位置的行地址,以及该行元素中的奇数列的列地址和偶数列的列地址,按照该行地址从所述ddr中读取一行数据,并缓存到所述第一ram中;并依次按照一个奇数列的列地址从所述ddr中读取一行数据,并缓存到所述第二ram中;以及,依次按照一个偶数列的列地址从所述ddr中读取一行数据,并缓存到所述第三ram中;根据所述第一ram和所述第二ram中缓存的数据,采用并行的方式进行运算,依次确定该行的奇数列的元素;根据所述第一ram和所述第三ram中缓存的数据,采用并行的方式进行运算,依次确定该行的偶数列的元素。

在采用并行的方式进行矩阵相乘的运算中,通过使用第二ram和第三ram进行乒乓运算,当其中一个ram在进行并行运算时,另一个ram缓存数据,因此,可以提高dpd系数计算的速度。

较佳地,所述求逆模块22具体用于:

对所述系数矩阵的自相关矩阵进行乔叶斯分解,得到乔叶斯分解矩阵;

计算所述乔叶斯分解矩阵的逆矩阵;

采用并行的方式对所述乔叶斯分解矩阵的逆矩阵进行自相关运算,得到所述乔叶斯分解矩阵的逆矩阵的自相关矩阵,作为所述系数矩阵的自相关矩阵的逆矩阵。

通过求逆模块将系数矩阵的自相关矩阵进行乔叶斯分解,得到的乔叶斯分解矩阵为下三角矩阵,故可以减少计算量,并且采用并行的方式对乔叶斯分解矩阵的逆矩阵进行自相关运算,因此,可以提高dpd系数计算的速度。

本申请实施例提供的一种数字预失真dpd处理系统,该系统包括本申请实施例提供的上述现场可编程门阵列fpga、数字预失真器、pa和延时调整模 块。

由于本申请实施例提供的dpd处理系统,采用本申请实施例提供的上述现场可编程门阵列fpga,该fpga的第一单元根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,第二单元计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,第三单元根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数,因此,在计算dpd系数过程中,该fpga可以采用并行的方式进行矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

综上所述,本申请实施例提供的技术方案,使用fpga作为计算dpd系数的载体,具体地所述fpga根据功率放大器的输入信号,确定前向矩阵,以及根据功率放大器的反馈信号,确定系数矩阵,所述fpga计算所述系数矩阵的自相关矩阵的逆矩阵,并且计算所述系数矩阵和所述前向矩阵的互相关矩阵,所述fpga根据所述系数矩阵的自相关矩阵的逆矩阵和所述互相关矩阵,确定dpd系数,因此,利用fpga可以采用并行的方式进行计算dpd系数过程中的矩阵相乘运算,因此,可以提高dpd系数计算的速度,从而能够及时更新dpd系数以实现对功率放大器的非线性补偿,进而提高信号质量。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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