一种基于FPGA的矩阵特征分解方法,包括以下步骤:步骤S1、初始化d0(k)和X0(8,k),(k=0~63);X0(8,k)为各通道64拍幅相采样的瞬时值8*1复向量,d0(k)为X0矩阵的列和向量;步骤S2、计算特征矢量,步骤S3、生成噪声子空间。本发明专利技术的基于FPGA设计的一种矩阵特征分解方法,有针对性的设计了信号处理流程,实现了高速矩阵特征分解运算;本发明专利技术有效提升了指定维度的矩阵特征分解运算时间,具有较强的实用性和通用性,对以后的类似设计具有一定的指导意义。
A matrix eigendecomposition method based on FPGA
【技术实现步骤摘要】
一种基于FPGA的矩阵特征分解方法
本专利技术涉及实时信号处理
,具体涉及一种基于FPGA的矩阵特征分解方法。
技术介绍
理想的实时信号处理方法,应具备快速数据处理能力。对矩阵特征分解计算速度的提高需要设计相应的计算方法,来适应高速矩阵特征分解处理需求。在进行矩阵特征分解时,应用通常不需要计算所有特征向量,根据需要计算对应个数的特征向量可以提高矩阵特征分解速度。矩阵特征分解是信号处理的常用算法,通常使用解算特征值,而后通过特征值计算特征向量的办法。采用解算特征值,而后通过特征值计算特征向量的办法,存在着以下问题:计算流程复杂,计算时间长,无法满足实时信号处理短时间计算需求。
技术实现思路
针对上述问题,本专利技术提出一种基于FPGA的矩阵特征分解方法,实现了快速指定维度矩阵特征分解,解决了特征分解计算速度慢的问题。本矩阵特征分解方法输入通道为8通道,处理64快拍复数据,复数据实部虚部位宽均为33bit;本矩阵特征分解方法解算矩阵的最大四个特征向量。输入通道个数和复数据实部虚部位宽根据实际输入信号路数及其位宽修改,64快拍复数据根据方法的测量精度需求和测量时间需求修改,拍数越少测量时间越短,拍数越多抗白噪声能力越强。解算矩阵特征向量的个数随不同应用修改,增加或减少特征向量的个数只需增加或减少步骤S202中的迭代次数即可。一种基于FPGA的矩阵特征分解方法,包括以下步骤:步骤S1、初始化d0(k)和X0(8,k),(k=0~63);X0(8,k)为各通道64拍幅相采样的瞬时值8*1复向量,d0(k)为X0矩阵的列和向量;包括以下分步骤:步骤S101、初始化X0(8,k),(k=0~63,后同);X0(8,k)为各通道天线64拍幅相采样的瞬时值,每拍为1个值;具体的,X0(8,k)为8通道64拍幅相采样的瞬时值,每通道为复向量,复向量实部位宽33bit,虚部位宽33bit;步骤S102、初始化d0(k),d0(k)为X0(8,k)矩阵的各通道向量复数加和,加和后为1通道64拍瞬时值,加和后实部位宽36bit,虚部位宽36bit;步骤S2、计算特征矢量包括以下分步骤:步骤S201、计算第一个特征矢量hn0(8,1)d0(k)为1*64复向量,X0(8,k)为8*64复矩阵,二者之积也为8*1复矩阵在k=1,2,……,64时累加后除以64,得到8*1复矩阵h0(8,1),复矩阵h0(8,1)随后进行归一化,归一化后的hn0(8,1)为8*1向量,其共轭转置hn0(8,1)’为1*8向量,与8*64矩阵X相乘,得到1*64向量d1(k),将8*1向量hn0(8,1)与1*64向量d1(k)相乘,乘积被X0(8,k)减,得到X1(8,k);所述计算h0(8,1)用到了复数共轭和复数乘法;在FPGA中实现时,对于复数共轭,由于实部和虚部分开存储,只需将虚部取反即可;对于复数乘法,一次复乘可以分解为四次实数乘法和两次加/减法,使用4个乘法器,2个时钟得到结果;所述d0(k)、X0(8,k)均流水产生,但时间上不对齐,X0(8,k)早于d0(k),通过将X0(8,k)使用FPGA寄存器延迟,使之与d0(k)对齐,进行复数乘法;所述复矩阵h0(8,1)随后进行归一化,即求出norm(h(:,1)),这个值为h0(8,1)的8个元素实部、虚部的平方和之和再开方,h0(8,1)的8个元素同时得到,因此在FPGA中实现时,并行计算各元素实部与虚部的平方,再求和,以减少计算时间;所述归一化时,h0(8,1)除以norm(h0(8,1)),归一化后的hn0(8,1)为8*1向量,其共轭转置h0(8,1)’为1*8向量,与8*64矩阵X0(8,k)相乘,得到1*64向量d1(k);所述X1(8,k),为8*1向量hn0(8,1)与1*64向量d1(k)相乘,乘积被X减,得到X1(8,k);d1(k)流水产生,因而hn0(8,1)与d1(k)乘积的各列也流水产生,流水得到X1(8,k)的各列;步骤S202、计算第二至四个特征矢量产生d1(k)与X1(8,k)后,根据S201方法,计算出第二个特征向量hn1(8,1)、d2(k)与X2(8,k);产生d2(k)与X2(8,k)后,根据S201方法,计算出第三个特征向量hn2(8,1)、d3(k)与X3(8,k);产生d3(k)与X3(8,k)后,根据S201方法,计算出第四个特征向量hn3(8,1);所述hn1(8,1)、hn2(8,1)、hn3(8,1),位宽同hn0(8,1);所述X2(8,k)、X3(8,k),位宽同X1(8,k);所述d2(k)、d3(k),位宽同d1(k);步骤S3、生成噪声子空间;设I为8*8单位矩阵,则噪声子空间矩阵Un=I-Us*Us’;所述Us为8*4矩阵,由hn0(8,1)~hn3(8,1)组成,其共轭转置Us’为4*8矩阵,二者相乘得到8*8矩阵,I为8*8单位矩阵。进一步,所述复矩阵h0(8,1)实部位宽54bit,虚部位宽54bit;所述hn0(8,1)实部位宽25bit,虚部位宽25bit;d1(k)实部位宽36bit,虚部位宽36bit;X1(8,k)实部位宽33bit,虚部位宽33bit。本专利技术的基于FPGA设计的一种矩阵特征分解方法,有针对性的设计了信号处理流程,实现了高速矩阵特征分解运算;本专利技术有效提升了指定维度的矩阵特征分解运算时间,具有较强的实用性和通用性,对以后的类似设计具有一定的指导意义。具体实施方式本专利技术的技术方案具体描述如下:一种基于FPGA的矩阵特征分解方法,包括以下步骤:步骤S1、初始化d0(k)和X0(8,k),(k=0~63)。X0(8,k)为各通道64拍幅相采样的瞬时值8*1复向量,d0(k)为X0矩阵的列和向量;具体包括:步骤S101、初始化X0(8,k),(k=0~63,后同)。X0(8,k)为各通道天线64拍幅相采样的瞬时值,每拍为1个值;具体的,X0(8,k)为8通道64拍幅相采样的瞬时值,每通道为复向量,复向量实部位宽33bit,虚部位宽33bit。步骤S102、初始化d0(k),d0(k)为X0(8,k)矩阵的各通道向量复数加和,加和后为1通道64拍瞬时值,加和后实部位宽36bit,虚部位宽36bit;所述X0(8,k)通道路数,由此方法的输入路数决定,所述X0(8,k)通道实部与虚部位宽由此方法的输入精度和硬件资源的限制共同决定,所述X0(8,k)输入拍数,由此方法的测量精度需求和测量时间需求共同决定,拍数越少测量时间越短,拍数越多抗白噪声能力越强。步骤S2、计算特征矢量步骤S201、计算第一个特征矢量hn0(8,1)d0(k)为1*64复向量,X0(8,k)为8*64复矩阵,二者之积也为8*1复矩阵在k=1,2,……,64时本文档来自技高网...
【技术保护点】
1.一种基于FPGA的矩阵特征分解方法,其特征是包括以下步骤:/n步骤S1、初始化d0(k)和X0(8,k),(k=0~63);X0(8,k)为各通道64拍幅相采样的瞬时值8*1复向量,d0(k)为X0矩阵的列和向量;/n包括以下分步骤:/n步骤S101、初始化X0(8,k),(k=0~63,后同);X0(8,k)为各通道天线64拍幅相采样的瞬时值,每拍为1个值;/n具体的,X0(8,k)为8通道64拍幅相采样的瞬时值,每通道为复向量,复向量实部位宽33bit,虚部位宽33bit;/n步骤S102、初始化d0(k),d0(k)为X0(8,k)矩阵的各通道向量复数加和,加和后为1通道64拍瞬时值,加和后实部位宽36bit,虚部位宽36bit;/n步骤S2、计算特征矢量/n包括以下分步骤:/n步骤S201、计算第一个特征矢量hn0(8,1)/nd0(k)为1*64复向量,X0(8,k)为8*64复矩阵,二者之积也为8*1复矩阵在k=1,2,……,64时累加后除以64,得到8*1复矩阵h0(8,1),复矩阵h0(8,1)随后进行归一化,归一化后的hn0(8,1)为8*1向量,其共轭转置hn0(8,1)’为1*8向量,与8*64矩阵X相乘,得到1*64向量d1(k),将8*1向量hn0(8,1)与1*64向量d1(k)相乘,乘积被X0(8,k)减,得到X1(8,k);/n所述计算h0(8,1)用到了复数共轭和复数乘法;在FPGA中实现时,对于复数共轭,由于实部和虚部分开存储,只需将虚部取反即可;对于复数乘法,一次复乘可以分解为四次实数乘法和两次加/减法,使用4个乘法器,2个时钟得到结果;/n所述d0(k)、X0(8,k)均流水产生,但时间上不对齐,X0(8,k)早于d0(k),通过将X0(8,k)使用FPGA寄存器延迟,使之与d0(k)对齐,进行复数乘法;/n所述复矩阵h0(8,1)随后进行归一化,即求出norm(h(:,1)),这个值为h0(8,1)的8个元素实部、虚部的平方和之和再开方,h0(8,1)的8个元素同时得到,因此在FPGA中实现时,并行计算各元素实部与虚部的平方,再求和,以减少计算时间;/n所述归一化时,h0(8,1)除以norm(h0(8,1)),归一化后的hn0(8,1)为8*1向量,其共轭转置h0(8,1)’为1*8向量,与8*64矩阵X0(8,k)相乘,得到1*64向量d1(k);/n所述X1(8,k),为8*1向量hn0(8,1)与1*64向量d1(k)相乘,乘积被X减,得到X1(8,k);d1(k)流水产生,因而hn0(8,1)与d1(k)乘积的各列也流水产生,流水得到X1(8,k)的各列;/n步骤S202、计算第二至四个特征矢量/n产生d1(k)与X1(8,k)后,根据S201方法,计算出第二个特征向量hn1(8,1)、d2(k)与X2(8,k);产生d2(k)与X2(8,k)后,根据S201方法,计算出第三个特征向量hn2(8,1)、d3(k)与X3(8,k);产生d3(k)与X3(8,k)后,根据S201方法,计算出第四个特征向量hn3(8,1);/n所述hn1(8,1)、hn2(8,1)、hn3(8,1),位宽同hn0(8,1);/n所述X2(8,k)、X3(8,k),位宽同X1(8,k);/n所述d2(k)、d3(k),位宽同d1(k);/n步骤S3、生成噪声子空间;/n设I为8*8单位矩阵,则噪声子空间矩阵Un=I-Us*Us’;所述Us为8*4矩阵,由hn0(8,1)~hn3(8,1)组成,其共轭转置Us’为4*8矩阵,二者相乘得到8*8矩阵,I为8*8单位矩阵。/n...
【技术特征摘要】
1.一种基于FPGA的矩阵特征分解方法,其特征是包括以下步骤:
步骤S1、初始化d0(k)和X0(8,k),(k=0~63);X0(8,k)为各通道64拍幅相采样的瞬时值8*1复向量,d0(k)为X0矩阵的列和向量;
包括以下分步骤:
步骤S101、初始化X0(8,k),(k=0~63,后同);X0(8,k)为各通道天线64拍幅相采样的瞬时值,每拍为1个值;
具体的,X0(8,k)为8通道64拍幅相采样的瞬时值,每通道为复向量,复向量实部位宽33bit,虚部位宽33bit;
步骤S102、初始化d0(k),d0(k)为X0(8,k)矩阵的各通道向量复数加和,加和后为1通道64拍瞬时值,加和后实部位宽36bit,虚部位宽36bit;
步骤S2、计算特征矢量
包括以下分步骤:
步骤S201、计算第一个特征矢量hn0(8,1)
d0(k)为1*64复向量,X0(8,k)为8*64复矩阵,二者之积也为8*1复矩阵在k=1,2,……,64时累加后除以64,得到8*1复矩阵h0(8,1),复矩阵h0(8,1)随后进行归一化,归一化后的hn0(8,1)为8*1向量,其共轭转置hn0(8,1)’为1*8向量,与8*64矩阵X相乘,得到1*64向量d1(k),将8*1向量hn0(8,1)与1*64向量d1(k)相乘,乘积被X0(8,k)减,得到X1(8,k);
所述计算h0(8,1)用到了复数共轭和复数乘法;在FPGA中实现时,对于复数共轭,由于实部和虚部分开存储,只需将虚部取反即可;对于复数乘法,一次复乘可以分解为四次实数乘法和两次加/减法,使用4个乘法器,2个时钟得到结果;
所述d0(k)、X0(8,k)均流水产生,但时间上不对齐,X0(8,k)早于d0(k),通过将X0(8,k)使用FPGA寄存器延迟,使之与d0(k)对齐,进行复数乘法;
所述复矩阵h0(8,1)随后进行归一化,即求出norm(h(:,1)),这个值为h0(8,1)的8个元...
【专利技术属性】
技术研发人员:赵晓明,刘彬,高嵩,张小玢,刘彬,裴肖和,
申请(专利权)人:北京华航无线电测量研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。