公开/公告号CN106980600A
专利类型发明专利
公开/公告日2017-07-25
原文格式PDF
申请/专利权人 普天信息技术有限公司;
申请/专利号CN201610031810.2
申请日2016-01-18
分类号
代理机构北京路浩知识产权代理有限公司;
代理人李相雨
地址 100080 北京市海淀区海淀北二街6号普天大厦
入库时间 2023-06-19 02:53:54
法律状态公告日
法律状态信息
法律状态
2022-12-27
未缴年费专利权终止 IPC(主分类):G06F17/16 专利号:ZL2016100318102 申请日:20160118 授权公告日:20190906
专利权的终止
2019-09-06
授权
授权
2017-08-18
实质审查的生效 IPC(主分类):G06F17/16 申请日:20160118
实质审查的生效
2017-07-25
公开
公开
技术领域
本发明涉及LTE接收系统中复数矩阵乘法处理领域,尤其涉及一种LTE接收系统中FPGA处理复数矩阵乘法的方法及系统。
背景技术
现场可编程门阵列FPGA芯片在许多领域均有广泛的应用,FPGA内部不仅包含逻辑单元(查找表/触发器)、存储单元(BRAM)、乘加单元(MAC)等一系列常规资源,还包括DSP、乘法器等复杂计算单元。随着FPGA芯片的不断升级,FPGA的功能越来越强大,因此新型FPGA完全胜任复杂计算工作。
近年来无线通信技术取得了飞速的发展,从最早的1G网络到如今已经投入使用的LTE 4G网络,对信号的快速处理提出了越来越高的要求。另外,由于多输入多输出系统MIMO技术的广泛应用,使得通信系统中的计算越来越复杂,复数矩阵乘法越来越普遍,如LTE上行基带处理中的MMSE滤波、均衡处理等。在这种情况下,使用FPGA进行无线信号的处理,能同时兼顾实时性与准确性。
目前基于FPGA实现矩阵乘法一般有两种方式:一是使用浮点进行计算,这种方式计算效率跟复杂度都很高,效率低下;二是使用定点进行计算,这种方式由于将浮点转换为定点,因此能极大的提高计算的效率。
通过查阅文献发现,目前提出的关于定点矩阵的乘法,平台落后,控制复杂,方法不够灵活等,不能很好的利用FPGA器件自带器件达到节省资源的目的。如徐云雯等人的基于FPGA的通用矩阵定点乘法器及其计算方法,其核心计算模块定点乘法器中采用Xilinx Virtex-4芯片中得DSP48硬核搭建。
发明内容
针对现有技术中的缺陷,本发明提供一种LTE接收系统中FPGA处理复数矩阵乘法的方法及系统,通过采用串行流水线结构,既节省加法器,不浪费多余布局布线资源,而且统一简单,可以搭建任意级数的矩阵乘法。
第一方面,本发明提供一种LTE接收系统中FPGA处理复数矩阵乘法的方法,所述方法包括:
接收MMSE滤波数据,所述MMSE滤波数据包括待进行乘法运算的第一复数矩阵和第二复数矩阵,所述第一复数矩阵为M×K阶,所述第二复数矩阵为K×N阶;
根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n),相应地:
其中,m表示第m+1行,其取值范围为m=0至M-1,n表示第n+1列,其取值范围为n=0至N-1,k表示所述第一复数矩阵中的第k+1列,还表示所述第二复数矩阵中的第k+1行,其取值范围为k=0至K-1;arm,k为am,k的实部,aim,k为am,k的虚部,所述am,k为第一复数矩阵中第m+1行,第k+1列的数;brk,n为bk,n的实部,bik,n为bk,n的虚部,所述bk,n为第二复数矩阵中第k+1行,第n+1列的数;
根据所述第一参数COMM(m,n),所述第二参数REAL(m,n)和所述第三参数IMAG(m,n),获取实部Cr(m,n),虚部Ci(m,n),相应地:
其中,Cr(m,n)为C(m,n)的实部,Ci(m,n)为C(m,n)的虚部,所述C(m,n)为第三复数矩阵中第m+1行,第n+1列的数,所述第三复数矩阵为所述第一复数矩阵和所述第二复数矩阵的乘积,所述第三复数矩阵为M×N阶;
根据所述实部Cr(m,n),虚部Ci(m,n),获取第三复数矩阵,并将所述第三复数矩阵输出。
优选地,所述根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),包括:
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、brk,n、bik,n;
根据所述arm,k、brk,n、bik,n,获取MCOUT(k),相应地:
MCOUT(k)=arm,k×(brk,n+bik,n)+MCOUT(k-1),
当k=K-1时,获取第一参数COMM(m,n),相应地:
COMM(m,n)=MCOUT(K-1)。
优选地,所述根据所述第一复数矩阵和所述第二复数矩阵,获取第二参数REAL(m,n),包括:
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、bik,n;
根据所述arm,k、aim,k、bik,n,获取LCOUT(k),相应地:
LCOUT(k)=(arm,k+aim,k)×bik,n+LCOUT(k-1),
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=LCOUT(K-1)。
优选地,所述根据所述第一复数矩阵和所述第二复数矩阵,获取第三参数IMAG(i,j),包括:
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、brk,n;
根据所述arm,k、aim,k、brk,n,获取GCOUT(k),相应地:
GCOUT(k)=(arm,k-aim,k)×brk,n+GCOUT(k-1);
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=GCOUT(K-1)。
第二方面,本发明提供一种LTE接收系统中FPGA处理复数矩阵乘法的系统,其特征在于,所述系统包括:
接收单元,用于接收MMSE滤波数据,所述MMSE滤波数据包括待进行乘法运算的第一复数矩阵和第二复数矩阵,所述第一复数矩阵为M×K阶,所述第二复数矩阵为K×N阶;
第一处理单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n),相应地:
其中,m表示第m+1行,其取值范围为m=0至M-1,n表示第n+1列,其取值范围为n=0至N-1,k表示所述第一复数矩阵中的第k+1列,还表示所述第二复数矩阵中的第k+1行,其取值范围为k=0至K-1;arm,k为am,k的实部,aim,k为am,k的虚部,所述am,k为第一复数矩阵中第m+1行,第k+1列的数;brk,n为bk,n的实部,bik,n为bk,n的虚部,所述bk,n为第二复数矩阵中第k+1行,第n+1列的数;
第二处理单元,用于根据所述第一参数COMM(m,n),所述第二参数REAL(m,n)和所述第三参数IMAG(m,n),获取实部Cr(m,n),虚部Ci(m,n),相应地:
其中,Cr(m,n)为C(m,n)的实部,Ci(m,n)为C(m,n)的虚部,所述C(m,n)为第三复数矩阵中第m+1行,第n+1列的数,所述第三复数矩阵为所述第一复数矩阵和所述第二复数矩阵的乘积,所述第三复数矩阵为M×N阶;
输出单元,用于根据所述实部Cr(m,n),虚部Ci(m,n),获取第三复数矩阵,并将所述第三复数矩阵输出。
优选地,所述第一处理单元包括:
第一计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n);
第二计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第二参数REAL(m,n);
第三计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第三参数IMAG(m,n)。
优选地,所述第一计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、brk,n、bik,n;
根据所述arm,k、brk,n、bik,n,获取MCOUT(k),相应地:
MCOUT(k)=arm,k×(brk,n+bik,n)+MCOUT(k-1),
当k=K-1时,获取第一参数COMM(m,n),相应地:
COMM(m,n)=MCOUT(K-1)。
优选地,所述第二计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、bik,n;
根据所述arm,k、aim,k、bik,n,获取LCOUT(k),相应地:
LCOUT(k)=(arm,k+aim,k)×bik,n+LCOUT(k-1),
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=LCOUT(K-1)。
优选地,所述第三计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、brk,n;
根据所述arm,k、aim,k、brk,n,获取GCOUT(k),相应地:
GCOUT(k)=(arm,k-aim,k)×brk,n+GCOUT(k-1);
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=GCOUT(K-1)。
由上述技术方案可知,本发明提供一种LTE接收系统中FPGA处理复数矩阵乘法的方法及系统,接收包括待进行复数矩阵乘法运算的MMSE滤波数据,将所述复数矩阵进行拆分后,通过加法器级联的方式计算。本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的方法的流程示意图;
图2为本发明一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的系统的结构示意图;
图3为本发明一实施例提供的获取第一参数COMM(m,n)的示意图;
图4为本发明一实施例提供的获取第二参数REAL(m,n)的示意图;
图5为本发明一实施例提供的获取第三参数IMAG(m,n)的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1示出了本发明一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的方法的流程示意图,如图1所示,本实施例的一种LTE接收系统中FPGA处理复数矩阵乘法的方法,包括:
S11、接收MMSE滤波数据,所述MMSE滤波数据包括待进行乘法运算的第一复数矩阵和第二复数矩阵。
可以理解的是,由于MIMO技术的广泛应用,使得通信系统中的计算越来越复杂,复数矩阵乘法越来越普遍,如LTE上行基带处理中的MMSE滤波、均衡处理等。
其中,所述第一复数矩阵为M×K阶,所述第二复数矩阵为K×N阶。
S12、根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n)。
在本实施例中,第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n)对应的公式如下:
其中,m表示第m+1行,其取值范围为m=0至M-1,n表示第n+1列,其取值范围为n=0至N-1,k表示所述第一复数矩阵中的第k+1列,还表示所述第二复数矩阵中的第k+1行,其取值范围为k=0至K-1;arm,k为am,k的实部,aim,k为am,k的虚部,所述am,k为第一复数矩阵中第m+1行,第k+1列的数;brk,n为bk,n的实部,bik,n为bk,n的虚部,所述bk,n为第二复数矩阵中第k+1行,第n+1列的数。
S13、根据所述第一参数COMM(m,n),所述第二参数REAL(m,n)和所述第三参数IMAG(m,n),获取实部Cr(m,n),虚部Ci(m,n)。
在本实施例中,实部Cr(m,n),虚部Ci(m,n)对应的公式如下:
其中,Cr(m,n)为C(m,n)的实部,Ci(m,n)为C(m,n)的虚部,所述C(m,n)为第三复数矩阵中第m+1行,第n+1列的数,所述第三复数矩阵为所述第一复数矩阵和所述第二复数矩阵的乘积,所述第三复数矩阵为M×N阶。
S14、根据所述实部Cr(m,n),虚部Ci(m,n),获取第三复数矩阵,并将所述第三复数矩阵输出。
本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
在本发明另一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的方法中,上述的步骤S12还包括图1中未示出的步骤S121-S123:
S12、根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n)。
S121、根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n)。
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、brk,n、bik,n;
根据所述arm,k、brk,n、bik,n,获取MCOUT(k),相应地:
MCOUT(k)=arm,k×(brk,n+bik,n)+MCOUT(k-1),
当k=K-1时,获取第一参数COMM(m,n),相应地:
COMM(m,n)=MCOUT(K-1)。
S122、根据所述第一复数矩阵和所述第二复数矩阵,获取第二参数REAL(m,n)。
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、bik,n;
根据所述arm,k、aim,k、bik,n,获取LCOUT(k),相应地:
LCOUT(k)=(arm,k+aim,k)×bik,n+LCOUT(k-1),
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=LCOUT(K-1)。
S123、根据所述第一复数矩阵和所述第二复数矩阵,获取第三参数IMAG(i,j)。
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、brk,n;
根据所述arm,k、aim,k、brk,n,获取GCOUT(k),相应地:
GCOUT(k)=(arm,k-aim,k)×brk,n+GCOUT(k-1);
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=GCOUT(K-1)。
本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
图2示出了本发明一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的系统的结构示意图,如图1所示,本实施例的一种LTE接收系统中FPGA处理复数矩阵乘法的系统20,包括:
接收单元21,用于接收MMSE滤波数据,所述MMSE滤波数据包括待进行乘法运算的第一复数矩阵和第二复数矩阵。
其中,所述第一复数矩阵为M×K阶,所述第二复数矩阵为K×N阶。
第一处理单元22,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n)。
在本实施例中,第一参数COMM(m,n),第二参数REAL(m,n),第三参数IMAG(m,n)对应的公式如下:
其中,m表示第m+1行,其取值范围为m=0至M-1,n表示第n+1列,其取值范围为n=0至N-1,k表示所述第一复数矩阵中的第k+1列,还表示所述第二复数矩阵中的第k+1行,其取值范围为k=0至K-1;arm,k为am,k的实部,aim,k为am,k的虚部,所述am,k为第一复数矩阵中第m+1行,第k+1列的数;brk,n为bk,n的实部,bik,n为bk,n的虚部,所述bk,n为第二复数矩阵中第k+1行,第n+1列的数。
第二处理单元23,用于根据所述第一参数COMM(m,n),所述第二参数REAL(m,n)和所述第三参数IMAG(m,n),获取实部Cr(m,n),虚部Ci(m,n)。
在本实施例中,实部Cr(m,n),虚部Ci(m,n)对应的公式如下:
其中,Cr(m,n)为C(m,n)的实部,Ci(m,n)为C(m,n)的虚部,所述C(m,n)为第三复数矩阵中第m+1行,第n+1列的数,所述第三复数矩阵为所述第一复数矩阵和所述第二复数矩阵的乘积,所述第三复数矩阵为M×N阶。
输出单元24,用于根据所述实部Cr(m,n),虚部Ci(m,n),获取第三复数矩阵,并将所述第三复数矩阵输出。
本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
在本发明另一实施例提供的一种LTE接收系统中FPGA处理复数矩阵乘法的系统中,上述的第一处理单元22还包括图2中未示出的结构:
第一计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第一参数COMM(m,n)。
其中,第一计算单元通过FPGA由加法器、乘法器和寄存器构成。具体来说,包括K个输入端串联的第一加法器,所述第一加法器的另一输入端与第一模块相连,所述第一模块用于根据所述arm,k、brk,n、bik,n,获取第一中间量MCOUT(k)=arm,k×(brk,n+bik,n),所述第一计算单元输出第一参数COMM(m,n),其中,
第二计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第二参数REAL(m,n)。
其中,第二计算单元通过FPGA由加法器、乘法器和寄存器构成。具体来说,包括K个输入端串联的第二加法器,所述第二加法器的另一输入端与第二模块相连,所述第二模块用于根据所述arm,k、aim,k、bik,n,获取第二中间量LCOUT(k)=(arm,k+aim,k)×bik,n,所述第二计算单元输出第二参数REAL(m,n),其中,
第三计算单元,用于根据所述第一复数矩阵和所述第二复数矩阵,获取第三参数IMAG(m,n)。
其中,第三计算单元通过FPGA由加法器、乘法器和寄存器构成。具体来说,包括K个输入端串联的第三加法器,所述第三加法器的另一输入端与第三模块相连,所述第三模块用于根据所述arm,k、aim,k、brk,n,获取第三中间量GCOUT(k)=(arm,k-aim,k)×brk,n,所述第三计算单元输出第三参数MAG(m,n),其中,
优选地,所述第一计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、brk,n、bik,n;
根据所述arm,k、brk,n、bik,n,获取MCOUT(k),相应地:
MCOUT(k)=arm,k×(brk,n+bik,n)+MCOUT(k-1),
当k=K-1时,获取第一参数COMM(m,n),相应地:
COMM(m,n)=MCOUT(K-1)。
优选地,所述第二计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、bik,n;
根据所述arm,k、aim,k、bik,n,获取LCOUT(k),相应地:
LCOUT(k)=(arm,k+aim,k)×bik,n+LCOUT(k-1),
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=LCOUT(K-1)。
优选地,所述第三计算单元,具体用于,
根据所述第一复数矩阵和所述第二复数矩阵,获取arm,k、aim,k、brk,n;
根据所述arm,k、aim,k、brk,n,获取GCOUT(k),相应地:
GCOUT(k)=(arm,k-aim,k)×brk,n+GCOUT(k-1);
当k=K-1时,获取第二参数REAL(m,n),相应地:
REAL(m,n)=GCOUT(K-1)。
本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
在本发明的一个具体实施例中,假设第一复数矩阵为2×8阶,采用FPGA中的DSP48E1级联方式,计算COMM(0,0),REAL(0,0),IMAG(0,0)。
可以理解的是,若第一复数矩阵为2×8阶,则M=2,K=8。计算COMM(0,0),则m=0,n=0。由上述可知:
具体来说,MCOUT(k)=arm,k×(brk,n+bik,n)+MCOUT(k-1),其中,k的取值范围为0-7。由上述可知:
MCOUT(0)=ar0,0×(br0,0+bi0,0)
MCOUT(1)=ar0,1×(br1,0+bi1,0)+MCOUT(0)
MCOUT(2)=ar0,2×(br2,0+bi2,0)+MCOUT(1)
……
MCOUT(7)=ar0,7×(br7,0+bi7,0)+MCOUT(6)
如图3所示,将brk,0、bik,0通过加法器进行加法运算后的输出结果与ar0,k进行乘法运算,获取每一层级的MCOUT(k),其中,k的取值范围为0-7。将每一层级的MCOUT(k)通过加法器级联进行加法运算,获取当k=7时的MCOUT(7)。此时,MOMM(0,0)=MCOUT(7)。
进一步的,为了保障复数矩阵乘法计算的时序性,每一层级的MCOUT(k)在计算前应当经历一定的延时,等待MCOUT(k-1)的计算完成。优选地,在ar0,k、brk,0、bik,0的输入端设定k个寄存器进行延时。
如图4、图5所示,REAL(0,0),IMAG(0,0)的计算步骤与COMM(0,0)相同,此处不再赘述。
由上述可知:
故可求得:
C(0,0)=Cr(0,0)+j×Ci(0,0),
由此,求得第三复数矩阵的第1行,第1列的数,最终求得第三复数矩阵。
本发明不仅节省加法器资源,而且流水线的方式使复杂计算变得简便可控。本发明还能节省布局布线资源,统一简单,可以搭建任意级数的矩阵乘法,在大工程编译时,会起到十分关键的作用。
本领域普通技术人员可以理解:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
机译: 一种在用于制造纸浆和纸的接收系统中抑制倾斜的方法以及一种在接收系统中抑制倾斜的方法
机译: 在FPGA中重建图像处理系统中的电路的方法,图像处理设备,FPGA(现场可编程门阵列)和电路重新配置程序
机译: 图像处理系统,图像处理装置,FPGA中的电路重构方法以及FPGA中的电路重构程序