基于高速脉动阵列及Givens变换的基向量矩阵压缩装置
技术领域
本发明涉及一种基于高速脉动阵列及Givens变换的基向量矩阵压缩装置,属于信号处理、无线通信技术领域。
背景技术
IEEE 802.11n标准中提供了两种信道信息反馈方式,即隐式反馈和显式反馈,其中针对显式反馈定义了三种反馈的格式:CSI反馈、非压缩信道状态矩阵的奇异分解的右奇异矩阵反馈和信道状态矩阵的奇异分解的右奇异矩阵的压缩反馈。CSI反馈和非压缩信道状态矩阵的奇异分解的右奇异矩阵反馈为了必要的动态范围和量化精度需要大量的比特数。因此,IEEE 802.11ac标准只提供了压缩反馈方式,正在制定的毫米波无线局域网标准IEEE 802.11a也将支持压缩反馈方式。
标准IEEE 802.11n提供了信道矩阵奇异值分解后的右奇异矩阵压缩机制,即通过一系列的Givens旋转将波束成形权重矩阵V分解为极坐标值,通过角度值的量化减小反馈量。然而,一方面,由于无线信道的时变性,反馈的信道信息只在很短的相干时间内有效,另一方面,按照现有的标准,发送端发送探测信道的探测帧的短帧间距(SIFS:short inter-frame space)的时间之内,接收端必需计算需要反馈的角度信息。因此,对于一种低复杂度、高效并行的压缩装置非常有意义。
脉动阵列设计即多个相同的处理单元按一定的互联规则组成网络,具有如下的特性,首先,处理单元只与相连的处理单元通信,处理单元之间通信的局限性保证了硬件布局的规则性;其次,每个处理单元都有局部的存储器,这些存储器对应于逻辑上的延时,是脉动阵列流水运行的必要条件。
发明内容
发明目的:针对现有的Givens变换的基向量矩阵压缩方法硬件实现时序复杂,通用性不高,本发明所提供的一种基于高速脉动阵列及Givens变换的基向量矩阵压缩装置具,保证硬件实现的规律性及数据的并行化流水处理;通用性强,可以实现任意维度为M×N的基向量矩阵的压缩。
技术方案:一种基于高速脉动阵列及Givens变换的基向量矩阵压缩装置,用于维数为M×N(M≥N)的基向量矩阵V,包括预处理模块和压缩模块;
预处理模块主要由第一类预处理单元和第二类预处理单元构成;所述第一类预处理单元:该处理单元的输入参数是XIN,YIN,输出参数是XOUT,YOUT;所述第二类预处理单元:该处理单元的输入参数是XIN,YIN,输出参数是XOUT,YOUT;
压缩模块主要由实数化处理单元、Givens旋转处理单元和简化的Givens旋转处理单元构成;所述实数化处理单元:该处理单元的输入参数是YIN,输出参数是XOUT,φ,该处理单元具有内部的寄存器Dr;所述Givens旋转处理单元:该处理单元的输入参数是XIN,YIN,输出参数是XOUT,YOUT,φ,ψ,该处理单元具有内部寄存器Dg,Cg和Zg;所述简化的Givens旋转处理单元:该处理单元的输入参数是XIN,YIN,输出参数是YOUT,ψ,该处理单元具有内部寄存器Cs和Zs。
具体地,所述第一类预处理单元的处理步骤如下:
(1)计算中间变量Dp,计算公式如下:
在公式(1)中,表示对复变量XIN取共轭转置;
(2)计算输出参数XOUT,YOUT,计算公式如下:
XOUT=Dp (2)
YOUT=YIN×Dp (3)
在公式(2)表示输出中间变量Dp,公式(3)表示将输入变量YIN与中间变量Dp相乘之后输出。
具体地,:所述第二类预处理单元的处理步骤如下:
XOUT=XIN (4)
YOUT=YIN×XIN (5)
在公式(4)表示输入的XIN经过寄存器后输出,公式(5)表示将输入变量YIN与输出变量XIN相乘之后输出。
具体地,所述实数化处理单元的处理步骤如下:
(1)判断输入参数YIN是否为对角元素,如果YIN是对角元素,则更新寄存器Dr,更新方法如下:
如果YIN为非对角元素,保持寄存器Dr的值不变;
(2)计算XOUT,XOUT的计算公式如下:
XOUT=Dr×YIN (7)
(3)计算角度φ,计算公式如下:
φ=-asin(real(Dr)) (8)
在公式(8)中,asin{·}表示对反正弦值,real{·}表示取实部。
具体地,所述Givens旋转处理单元的处理步骤如下:
(1)判断输入参数YIN是否为对角元素,如果是对角元素,则更新寄存器Dg,Cg和Zg,其中,寄存器Dg的更新方法如下:
基于公式(9)的结果,将YIN实数化处理,其处理方法如下:
公式(10)表示将输入参数YIN和寄存器Dg的值相乘得到更新寄存器Cg和Zg,他们的计算公式如下:
如果YIN为非对角元素,则寄存器Dg,Cg,和Zg的值不变,并对输入参数YIN执行公式(10)所示的运算得到
(2)计算角度φ和ψ
φ=-asin(real(Dg)) (13)
ψ=asin(Z) (14)
(3)计算输出参数,计算公式如下:
具体地,所述简化的Givens旋转处理单元的处理步骤如下:
(1)判断输入参数YIN是否为对角元素,如果是对角元素,则更新寄存器Cs和Zs,更新公式如下:
如果YIN为非对角元素,则存器Cs和Zs的值不变。
(2)计算角度ψ,计算公式如下:
ψ=asin(Zs) (19)
(3)计算输出参数,计算公式如下:
YOUT=-Zs×XIN+Cs×YIN (20)。
具体地,所述第一类预处理单元的数量是1;所述第二类预处理单元的数量是M-1。
具体地,所述实数化处理单元的数量是min{N,M-1},其min{·}表示两数之间取较小的数。
具体地,所述简化的Givens旋转处理单元的数量min{N,M-1}。
具体地,所述Givens旋转处理单元的数量NG,计算公式如下:
有益效果:本发明提出了一种基于高速脉动阵列的实现形式,并给出各个处理单元的实现方法,对数据的流水线处理简化了时序设计,具有通用性,可以实现任意维度为M×N的基向量矩阵的压缩。
附图说明
图1为本发明实施例中维度为4×4基向量矩阵的压缩装置;
图2为本发明实施例中维度为4×2基向量矩阵的输入时序;
图3为本发明实施例中维度为2×2基向量矩阵的压缩装置;
图4为本发明实施例中维度为2×2基向量矩阵的输入时序;
图5为本发明实施例中维度为4×2基向量矩阵的压缩装置;
图6为本发明实施例中维度为4×2基向量矩阵的输入时序。
具体实施方式
本发明公开了一种应用于无线局域网中信道状态信息反馈的基向量矩阵压缩的并行计算方法。为了减小反馈量,无线局域网标准IEEE 802.11n和IEEE802.11ac提供了信道矩阵奇异值分解后的右奇异矩阵压缩机制。本发明针对上述机制的实现提供了一种基于高速脉动阵列及Givens变换的基向量矩阵压缩装置。
下面分别以维数为4×4,维数为2×2和维数为4×2的基向量矩阵为例,结合附图对本发明基于高速脉动阵列及Givens变换的基向量矩阵的压缩装置进一步详细说明。
实施例1
基于高速脉动阵列及Givens变换的维数为4×4的基向量矩阵压缩装置在本实施例中,设输入的基向量矩阵V的维数是4×4,V定义为:
压缩装置如图1所示,处理单元P11,P12,P13和P14构成预处理模块,其中P11是第一类预处理单元,P12,P13和P14是第二类预处理单元。本模块输入的配置方式是:P11的输出XOUT和P12的XIN相连,P12的输出XOUT和P13的XIN相连,P13的输出XOUT和P14的XIN相连。
处理单元P21,P22,P23和P24构成的模块的功能是完成对输入矩阵V的1列的Givens旋转,其中,P21是实数化处理单元,P22,P23是Givens旋转处理单元,P24是精简的Givens旋转处理单元。本模块输入的配置方式是:P21的YIN和P11的YOUT相连,P22的YIN和P12的YOUT相连,P23的YIN和P13的YOUT相连,P24的YIN和P14的YOUT相连,P21的输出XOUT和P22的XIN相连,P22的输出XOUT和P23的XIN相连,P23的输出XOUT和P24的XIN相连。
处理单元P31,P32和P33构成的模块的功能是完成对矩阵第2列的Givens旋转,其中,P31是实数化处理单元,P32是Givens旋转处理单元,P33是精简的Givens旋转处理单元。本模块输入的配置方式是:P31的YIN和P22的YOUT相连,P32的YIN和P23的YOUT相连,P33的YIN和P24的YOUT相连,P21的输出XOUT和P22的XIN相连,P22的输出XOUT和P23的XIN相连,P23的输出XOUT和P24的XIN相连。
处理单元P41和P42构成的模块的功能是完成对矩阵第3列的Givens旋转,其中,P41是实数化处理单元,P42是精简的Givens旋转处理单元。本模块输入的配置方式是:P41的YIN和P32的YOUT相连,P42的YIN和P33的YOUT相连,P41的输出XOUT和P42的XIN相连。
处理单元P11,P12,P13和P14输入端YIN的时序关系如图2左半部分所示。处理单元P11的输入端XIN的时序如图2右半部分所示,图中z表示任意复数,z取值的不同不会影响系统的性能和运算结果。第一个时序,分别将元素V1,1,z,z和z输入处理单元P11,P12,P13和P14的输入端YIN,同时将V4,1输入处理单元P11的输入端XIN,第二个时序,分别将元素V1,2,V2,1,z和z输入处理单元P11,P12,P13和P14的输入端YIN,同时将V4,2输入处理单元P11的输入端XIN,以此类推,在第7个时序,分别将元素z,z,z和V4,4输入处理单元P11,P12,P13和P14的输入端YIN,同时将z输入处理单元P11的输入端XIN。
等待3个时序之后即第11个时序之后,输出各个模块的φ和ψ。
实施例2
基于高速脉动阵列及Givens变换的维数为2×2的基向量矩阵压缩装置在本实施例中,设输入的基向量矩阵V的维数是2×2,V定义为:
压缩装置如图3所示,本实施例与上一个实施例的区别是整个装置只有4个处理单元,处理单元P11和P12构成预处理模块,其中P11是第一类预处理单元,P12是第二类预处理单元。本模块输入的配置方式是:P11的输出XOUT和P12的XIN相连。
处理单元P21,P22构成的压缩模块的完成对输入矩阵V的1列的Givens旋转,其中,P21是实数化处理单元,P22是精简的Givens旋转处理单元。压缩模块输入的配置方式是:P21的YIN和P11的YOUT相连,P22的YIN和P12的YOUT相连,P21的输出XOUT和P22的XIN相连。
处理单元P11和P12输入端YIN的时序关系如图4左半部分所示。处理单元P11的输入端XIN的时序如图4右半部分所示,图中z表示任意复数,z取值的不同不会影响系统的性能和运算结果。第一个时序,分别将元素V1,1,z输入处理单元P11和P12的输入端YIN,同时将V2,1输入处理单元P11的输入端XIN,第二个时序,分别将元素V1,2和V2,1输入处理单元P11和P12的输入端YIN,同时将V2,2输入处理单元P11的输入端XIN,第3个时序,分别将元素z和V2,2输入处理单元P11和P12的输入端YIN,同时将z输入处理单元P11的输入端XIN。
等待5个时序之后即第10个时序之后,输出各个模块的φ和ψ。
实施例3
基于高速脉动阵列及Givens变换的维数为4×2的基向量矩阵压缩装置在本实施例中,设输入的基向量矩阵V的维数是4×2,V定义为:
压缩装置如图5所示,处理单元P11,P12,P13和P14构成预处理模块,其中P11是第一类预处理单元,P12,P13和P14是第二类预处理单元。本模块输入的配置方式是:P11的输出XOUT和P12的XIN相连,P12的输出XOUT和P13的XIN相连,P13的输出XOUT和P14的XIN相连。
处理单元P21,P22,P23和P24构成的模块的功能是完成对输入矩阵V的1列的Givens旋转,其中,P21是实数化处理单元,P22,P23是Givens旋转处理单元,P24是精简的Givens旋转处理单元。本模块输入的配置方式是:P21的YIN和P11的YOUT相连,P22的YIN和P12的YOUT相连,P23的YIN和P13的YOUT相连,P24的YIN和P14的YOUT相连,P21的输出XOUT和P22的XIN相连,P22的输出XOUT和P23的XIN相连,P23的输出XOUT和P24的XIN相连。
处理单元P31,P32和P33构成的模块的功能是完成对矩阵第2列的Givens旋转,其中,P31是实数化处理单元,P32是Givens旋转处理单元,P33是精简的Givens旋转处理单元。本模块输入的配置方式是:P31的YIN和P22的YOUT相连,P32的YIN和P23的YOUT相连,P33的YIN和P24的YOUT相连,P21的输出XOUT和P22的XIN相连,P22的输出XOUT和P23的XIN相连,P23的输出XOUT和P24的XIN相连。
处理单元P11,P12,P13和P14输入端YIN的时序关系如图6左半部分所示。处理单元P11的输入端XIN的时序如图2右半部分所示,图中z表示任意复数,z取值的不同不会影响系统的性能和运算结果。第一个时序,分别将元素V1,1,z,z和z输入处理单元P11,P12,P13和P14的输入端YIN,同时将V4,1输入处理单元P11的输入端XIN,第二个时序,分别将元素V1,2,V2,1,z和z输入处理单元P11,P12,P13和P14的输入端YIN,同时将V4,2输入处理单元P11的输入端XIN,以此类推,在第5个时序,分别将元素z,z,z和V4,2输入处理单元P11,P12,P13和P14的输入端YIN,同时将z输入处理单元P11的输入端XIN。
等待3个时序之后即第8个时序之后,输出各个模块的φ和ψ。