一种用于music算法中计算协方差矩阵的硬件电路的制作方法

文档序号:10534792阅读:259来源:国知局
一种用于music算法中计算协方差矩阵的硬件电路的制作方法
【专利摘要】本发明公布了一种用于MUSIC算法中计算协方差矩阵的硬件电路,其特征包括:控制器模块、个乘累加器模块、交叉开关模块、M个源数据存储器、加法器、第一目的存储器和第二目的存储器。本发明能降低硬件实现的复杂度,减少资源消耗,加快运算速度,从而在硬件电路中高效地完成MUSIC算法中协方差矩阵的计算。
【专利说明】
一种用于MUSIC算法中计算协方差矩阵的硬件电路
技术领域
[0001] 本发明涉及阵列信号处理领域,具体地说是一种用于MUSIC算法中计算协方差矩 阵的硬件电路。
【背景技术】
[0002] 阵列信号处理属于现代信号处理的重要研究内容,在移动通信、电子对抗、参数估 计、信号识别等领域都有着广泛的应用前景。一般来讲,阵列信号处理是将多个传感器设置 在空间的不同位置来组成传感器阵列,通过对接收机输出的数据进行处理,利用各个信号 在空间位置上的差异,提取信号源的特征信息。这些特征信息包括:空间信号源的方向、数 目、频率、相位、调制形式等。
[0003] MUSIC算法是基于特征结构分析的空间谱估计方法,是空间谱估计技术的典型代 表,是阵列信号处理领域的一个重要分支。其基本原理是对阵列输出数据的协方差矩阵进 行特征分解,将信号空间分解为噪声子空间和信号子空间,利用噪声子空间与阵列的方向 矩阵正交的性质,估计出信号源的方向等信息。
[0004] MUISC算法的第一步就是计算阵列输出的协方差矩阵,计算公式如下:
(1)
[0006] 式(1)中X表示测向阵列输出矢量,N表示采样快拍数,它是一个复数矢量,可以通 过简单有效的预处理方法,将复矢量X用一个实矢量来代替,从而有效地将各种复数运算转 换为实数运算,具体方法是:构造一个线性变换矩阵T: T\ T\~
[0007] T= ^ (2) -T2T2


r--
[0008] 式(2)中,T1是一个: -列的对角阵,对角线元素为,T2也是一个 -列 的对角阵,对角线元素为_
ii〇2 = -l;加入预处理步骤后,协方差矩阵的计算公式如下: y=Tx
[0009] \f = yyb (3) G = rca!(F)
[0010] 式(3)中,F表示经过预处理步骤后,阵列输出的协方差矩阵;Y表示经过预处理的 阵列输出数据矩阵,F矩阵中任一元素的计算公式为: V
[0011] F{k\,k2) = Y, y\k\,k) -Y{k,k2) (4)
[0012] 式⑷中,1 <kl <M,1 <k2<M,N表示采集信号的快拍数。
[0013]已有的研究主要提出了两类计算协方差矩阵的硬件实现方案,分别是串行执行方 案和并行执行方案。串行执行方案通过一个乘累加运算模块完成协方差矩阵所有元素的运 算,并行执行方案通过多个乘累加器并行计算,共同完成协方差矩阵所有元素的运算。大部 分场合,MUSIC算法对实时性的要求较高,串行执行方案耗时较长,往往难以满足要求;并行 执行方案虽然通过分组减少了协方差矩阵计算需要的时间,但是已有的研究大都没有总结 出通用的分组方法,而且提出的并行分组方案往往控制电路较为复杂,资源消耗较多。

【发明内容】

[0014] 本发明为了避免上述技术不足之处,提出了一种用于MUSIC算法中计算协方差矩 阵的硬件电路,以期降低硬件实现的复杂度,减少资源消耗,加快运算速度,从而在硬件电 路中高效地完成MUSIC算法中协方差矩阵的计算。
[0015] 本发明为解决技术问题采用如下技术方案:
[0016]本发明一种用于MUSIC算法中协方差矩阵的运算电路的特点包括:控制器模块、
-个乘累加器模块、交叉开关模块、M个源数据存储器、加法器、第一目的存储器和第二目 的存储器;
[0017] 所述控制器模块将外部的阵列输出矩阵A中的M行实部数据依次存入所述M个源数 据存储器中;
[0018] 所述控制器模块控制所述交叉开关模块读取所述M个源数据存储器中的实部数据并 分别输出至所迓
个乘累加器模块中进行运算,获得实部运算结果岑;馬;…;爲;…, 并存入第一目的存储器中;其中Rk是由第k个乘累加器模块获得的,且R k=[rkk,rk(k+1),…, rkM,r(M-k+i)(M-k+i),r(M-k+i)(M-k+2),…,r(M-k+i)M];
[0019] 所述控制器模块将外部的阵列输出矩阵A中的M行虚部数据依次存入所述M个源数 据存储器中;
[0020] 所述控制器模块控制所述交叉开关模块读取所述M个源数据存储器中的虚部数据并 分别输出至所述个乘累加器模块中进行运算,获得虚部运算结果/=尔人:…乂;…;/,,, 2 L 并存入第一目的存储器中;其中Ik是由第k个乘累加器模块获得的,且Ik= [ikk,ik(k+1),…, ikM, i(M-k+l)(M-k+l),i(M-k+l)(M-k+2),???,i(M-k+l)M];
[0021] 所述加法器从所述第一目的存储中读取实部运算结果R和虚部运算结果I并进行 运算后获得协方差矩阵的上三角元素并存入所述第二目的存储器;所述协方差矩阵的下三 角元素通过对称性获得并存入所述第二目的存储器;从而实现所述协方差矩阵的运算。
[0022] 本发明所述的运算电路的特点也在于: M
[0023] 所述控制器模块包括y个控制器单元;每个控制器单元包含:2个寄存器即第一 寄存器和第二寄存器、2个选择器即第一选择器和第二选择器、第一加法器;
[0024] 任意个乘累加器模块包含:1个模为N的计数器、1个比较器、1个加法器、1个乘法 器、1个2选1的选择器;
[0025]所述交叉开关模块包括f组选择单元;每组选择单元包含:一个2选1的选择器和 一个多路选择器;
[0026]假设dmn表示Rk或者Ik中的任意一个元素,则按如下方式获得d mn:
[0027] 所述第k个控制器单元中的第一选择器读取常数"k"、"M+1-k"和第一寄存器中的 数值并进行选择后输出至第一寄存器中;
[0028] 所述第k个控制器单元中的第二选择器读取常数"k"、"M+1-k"和第一加法器的输 出值并进行选择后输出至第二寄存器中;所述第二寄存器将结果输出至第一加法器的一个 输入端,所述第一加法器的另一个输入端读取常数"1" ;
[0029] 所述第k个控制器单元中的第一寄存器控制第k组选择单元中的2选1的选择器读 取第k个源数据存储器和第M+1-k个源数据存储器中的数据,并输出第m个源数据存储器中 的数据给第k个乘累加器模块中的乘法器的一个输入端;
[0030] 所述第k个控制器单元中的第二寄存器控制第k组选择单元中的多路选择器读取M 个源数据存储器中的数据,并输出第n个源数据存储器中的数据给第k个乘累加器模块中的 乘法器的另一个输入端;
[0031] 经过所述第k个乘累加器模块中的乘法器运算的结果输出至第k个乘累加器模块 中的加法器的一个输入端;
[0032] 所述第k个乘累加器模块中的比较器读取计数器的数值和采样快拍数N并进行比 较,获得的比较结果输出至所述第k个乘累加器模块中的2选1的选择器;
[0033] 所述第k个乘累加器模块中的2选1的选择器读取常数"0"和所述第k个乘累加器模 块中加法器的输出,并根据比较器的比较结果输出至所述第k个乘累加器模块中加法器的 另一个输入端;经过所述第k个乘累加器模块中加法器运算的结果d mn输出至所述第一目的 存储器。
[0034] 与现有的技术相比,本发明的有益效果体现在:
[0035] 1、本发明创造性地提出了一种用于MUSIC算法中计算协方差矩阵的硬件电路,可 以根据阵元数目,利用对称性快速得出并行化分组计算方案。并行化分组方法可以适用于 不同的工作条件下,体现了设计的通用性和灵活性。
[0036] 2、本发明提出的并行化分组计算方案,使得控制器模块的硬件电路结构简单,资 源消耗少,综合频率较高,硬件电路可以工作在较高的时钟频率下;
[0037] 3、本发明可以采用不同的数据格式,硬件电路中的各类运算器,包括乘法器、加法 器均可以根据输入数据的格式,选择合适的IP核或者进行自定义设计。
[0038] 4、本发明中设计的乘累加器模块,适用范围很广,通用性较强,可以通过设计或者 使用不同精度的运算器来满足精度要求,灵活性较强,乘累加器模块不仅可以用于协方差 矩阵的计算,而且也能用来实现普通的乘累加运算或者矩阵乘运算。
【附图说明】
[0039] 图1为本发明协方差矩阵的运算电路的结构示意图;
[0040] 图2为本发明控制器模块第1个控制单元的结构示意图;
[0041 ]图3为本发明乘累加器模块的结构示意图;
[0042]图4为本发明交叉开关模块第一组选择单元的结构示意图。
【具体实施方式】
[0043]本实施例中,一种用于MUSIC算法中协方差矩阵的运算电路,包括:控制器模块、 M y个乘累加器模块、交叉开关模块、M个源数据存储器、加法器、第一目的存储器和第二目 的存储器,其中M表示阵元数目;
[0044] 控制器模块将外部的阵列输出矩阵A中的M行实部数据依次存入M个源数据存储器 中;
[0045] 控制器模块控制交叉开关模块读取M个源数据存储器中的实部数据并分别输出至 \4 「 ^个乘累加器模块中进行运算,获得实部运算结果孕;為;…;尺;…;,并存入第一 目的存储器中;其中Rk是由第可个乘累加器模块获得的,且Rk=[rkk,rk( k+1),…,rkM, M r(M-k+l)(M-k+l),r(M-k+l)(M-k+2),…,r(M-k+l)M」;1 S j ;
[0046] 控制器模块将外部的阵列输出矩阵A中的M行虚部数据依次存入M个源数据存储器 中;
[0047] 控制器模块控制交叉开关模块读取M个源数据存储器中的虚部数据并分别输出至 M 「 - i个乘累加器模块中进行运算,获得虚部运算结果/= A:/,;…:乂;,并存入第一目 2 L T」 的存储器中;其中Ik是由第k个乘累加器模块获得的,且Ik=[ikk,ik(k+1),…,i kM, i(M-k+l)(M-k+1),i(M-k+l)(M-k+2),???,i(M-k+l)M];
[0048] 加法器从第一目的存储中读取实部运算结果R和虚部运算结果I并进行运算后获 得协方差矩阵的上三角元素并存入第二目的存储器;协方差矩阵的下三角元素通过对称性 获得并存入第二目的存储器;从而实现协方差矩阵的运算。
[0049] 本实施例中,假设阵元数目M = 8,协方差矩阵的运算电路的结构如图1所示,主要 包括控制器模块control ler,8个源存储器me 1、me2、…、me8,1个交叉开关模块crossbar、4 个乘累加器模块mul_acc_l、mul_acc_2、…、mul_acc_4,第一目的存储器dst_mem_l、加法器 ADD、第二目的存储器dst_mem_2,具体运算流程如下:
[0050] 步骤a、控制器模块将外部的阵列输出矩阵A中的8行实部数据依次存入8个源数据 存储器mel、me2、…、me8中;
[0051 ]步骤b、控制器模块control ler控制交叉开关模块读取8个源数据存储器mel、 me2、…、me8中的实部数据并分别输出至4个乘累加器模块mul_acc j、mul_acc_2、…、mul_ acc_4中进行运算,获得实部运算结果R= [h; R2;…;Rk;R4],并存入第一目的存储器中; 其中Rk是由第k个乘累加器模块获得的,且Rk= [m,rk(k+i),…,rk8,r(9-k)(9-k),r(9-k)(io-k),…, r(9-k)8]; 1 < k < 4;
[0052]步骤c、控制器模块controller将外部的阵列输出矩阵A中的8行虚部数据依次存 入8个源数据存储器mel、me2、…、me8中;
[0053] 步骤d、控制器模块control ler控制交叉开关模块crossbar读取8个源数据存储器 me 1、me2、…、me8中的虚部数据并分别输出至4个乘累加器模块mul_acc_l、mul_acc_2、…、 mul_acc_4中进行运算,获得虚部运算结果I = [ h; 12;…;Ik;14],并存入第一目的存储 器dst_mem_l中;其中Ik是由第k个乘累加器模块获得的,且Ik= [ ikk, ik(k+i),…,iks, i(9-k)(9-k),i(9-k)(10-k),???,i(9-k)8];
[0054] 步骤e、加法器从第一目的存储器dst_memj中读取实部运算结果R和虚部运算结 果I并进行运算后获得协方差矩阵的上三角元素并存入第二目的存储器dst_mem_2中;协方 差矩阵的下三角元素通过对称性获得并存入第二目的存储器dst_mem_2中;从而实现协方 差矩阵的运算。
[0055] 具体的说,控制器模块包括#个控制器单元;每个控制器单元包含:2个寄存器即 2 第一寄存器和第二寄存器、2个选择器即第一选择器和第二选择器、第一加法器;
[0056] 任意个乘累加器模块包含:1个模为N的计数器、1个比较器、1个加法器、1个乘法 器、1个2选1的选择器; U
[0057] 交叉开关模块包括t组选择单元;每组选择单元包含:一个2选1的选择器和一个 多路选择器;
[0058]假设dmn表示Rk或者Ik中的任意一个元素,dmn的计算流程如下:
[0059]第k个控制器单元中的第一选择器读取常数"k"、"M+1-k"和第一寄存器中的数值 并进行选择后输出至第一寄存器中;
[0060] 第k个控制器单元中的第二选择器读取常数"k"、"M+1-k"和第一加法器的输出值 并进行选择后输出至第二寄存器中;第二寄存器将结果输出至第一加法器的一个输入端, 第一加法器的另一个输入端读取常数"1" ;
[0061] 第k个控制器单元中的第一寄存器控制第k组选择单元中的2选1的选择器读取第k 个源数据存储器和第M+1-k个源数据存储器中的数据,并输出第m个源数据存储器中的数据 给给第k个乘累加器模块中的乘法器的一个输入端,
[0062] 第k个控制器单元中的第二寄存器控制第k组选择单元中的多路选择器读取M个源 数据存储器中的数据,并输出第n个源数据存储器中的数据给第k个乘累加器模块中的乘法 器的的另一个输入端,
[0063] 经过第k个乘累加器模块中的乘法器运算的结果输出至第k个乘累加器模块中的 加法器的一个输入端;
[0064] 第k个乘累加器模块中的比较器读取计数器的数值和采样快拍数N并进行比较,获 得的比较结果输出至第k个乘累加器模块中的2选1的选择器;
[0065] 第k个乘累加器模块中的2选1的选择器读取常数"0"和第k个乘累加器模块中加法 器的输出,并根据比较器的比较结果输出至第k个乘累加器模块中加法器的另一个输入端; 经过第k个乘累加器模块中加法器运算的结果cU输出至第一目的存储器;
[0066]本实施例中,假设阵元数目M = 8,采样快拍数N=2048;
[0067]控制器模块包含4个控制单元,第1个控制单元的结构如图2所示,主要包括2个寄 存器row_r和〇〇 l_r、2个选择器以及1个加法器add;
[0068]任意乘累加器模块的结构如图3所示,主要包括1个模为2048的计数器c〇unter、l 个比较器comp、1个加法器Add、1个乘法器Mul、1个2选1的选择器;
[0069] 交叉开关模块包含4组选择单元,第一组选择单元如图4所示,主要包括1个2选1的 选择器和1个8选1的多路选择器;
[0070] 本实施例中,以Ri或者1:中的元素dn为例说明dmn的运算流程,具体流程如下:
[0071]步骤a、第1个控制器单元中的第一选择器读取常数"1"、"8"和寄存器中的数 值rl并进行选择后输出至寄存器row_r中;
[0072]步骤b、第1个控制器单元中的第二选择器读取常数"1"、"8"和加法器add的输出值 并进行选择后输出至寄存器col_r中;寄存器col_r将结果cl输出给加法器add的一个输入 端,加法器add的另一个输入端读取常数"1" ;
[0073] 步骤c、第1个控制器单元中的寄存器row_r控制第1组选择单元中的2选1的选择器 读取第1个源数据存储器中的数据E1和第8个源数据存储器中的数据E8,并输出第1个源数 据存储器中的数据E1给第1个乘累加器模块mul_aCC_l中的乘法器Mul的一个输入端;
[0074] 步骤d、第1个控制器单元中的寄存器col_r控制第1组选择单元中的多路选择器读 取8个源数据存储器中的数据E1、E2、…、E8,并输出第1个源数据存储器中的数据E1给第1个 乘累加器模块mul_aCC_l中的乘法器Mul的另一个输入端;
[0075]步骤e、经过第1个乘累加器模块mul_aCCj中的乘法器Mul运算的结果输出至第1 个乘累加器模块mul_acc_l中的加法器Add的一个输入端;
[0076] 步骤f、第1个乘累加器模块mul_acc_l中的比较器comp读取计数器counter的数值 和采样快拍数2048并进行比较,获得的比较结果输出至第1个乘累加器模块mul_aCC_l中的 2选1的选择器;
[0077]步骤g、第1个乘累加器模块mul_aCC_l中的2选1的选择器读取常数"0"和第1个乘 累加器模块mul_aCC_l中加法器的输出,并根据比较器的比较结果输出至第1个乘累加器模 ±夬!皿1_ &(^_1中加法器Add的另一个输入端;经过第1个乘累加器模块mul_aCC_l中加法器运 算的结果dn输出至第一目的存储器dst_mem_l中;
[0078]综上所述,本发明提出的一种用于MUSIC算法中计算协方差矩阵的硬件电路,所设 计的硬件电路结构简单,通用性较强,硬件实现的复杂度低并且资源消耗少,而且具有较高 的灵活性,为计算协方差矩阵提供了一种高效的硬件实现方法。
【主权项】
1. 一种用于MUSIC算法中协方差矩阵的运算电路,其特征包括:控制器模块、#个乘累 2 加器模块、交叉开关模块、M个源数据存储器、加法器、第一目的存储器和第二目的存储器; 所述控制器模块将外部的阵列输出矩阵A中的M行实部数据依次存入所述M个源数据存 储器中; 所述控制器模块控制所述交叉开关模块读取所述M个源数据存储器中的实部数据并分别 输出至所述f个乘累加器模块中进行运算,获得实部运算结男,并 存入第一目的存储器中;其中Rk是由第k个乘累加器模块获得的,且Rk=[rkk,r k(k+1),…,rkM, ^ M r(M-k+l)(M-k+l) ,r(M-k+l)(M-k+2) , ,r(M-k+l)M] -J <k < - I 所述控制器模块将外部的阵列输出矩阵A中的M行虚部数据依次存入所述M个源数据存 储器中; 所述控制器模块控制所述交叉开关模块读取所述M个源数据存储器中的虚部数据并分 别输出至所述f个乘累加器模块中进行运算,获得虚部运算结男并存入第一目的存储器中;其中Ik是由第k个乘累加器模块获得的,且I k= [ikk,ik(k+1),…, ikM, i(M-k+l)(M-k+l),i(M-k+l)(M-k+2),···,i(M-k+l)M]; 所述加法器从所述第一目的存储中读取实部运算结果R和虚部运算结果I并进行运算 后获得协方差矩阵的上三角元素并存入所述第二目的存储器;所述协方差矩阵的下三角元 素通过对称性获得并存入所述第二目的存储器;从而实现所述协方差矩阵的运算。2. 根据权利要求1所述的运算电路,其特征是: 所述控制器模块包括f个控制器单元;每个控制器单元包含:2个寄存器即第一寄存器 和第二寄存器、2个选择器即第一选择器和第二选择器、第一加法器; 任意个乘累加器模块包含:1个模为N的计数器、1个比较器、1个加法器、1个乘法器、1个 2选1的选择器; 所述交叉开关模块包括#组选择单元;每组选择单元包含:一个2选1的选择器和一个2. 多路选择器; 假设cU表示Rk或者Ik中的任意一个元素,则按如下方式获得dmn: 所述第k个控制器单元中的第一选择器读取常数"k"、"M+1-k"和第一寄存器中的数值 并进行选择后输出至第一寄存器中; 所述第k个控制器单元中的第二选择器读取常数"k"、"M+1-k"和第一加法器的输出值 并进行选择后输出至第二寄存器中;所述第二寄存器将结果输出至第一加法器的一个输入 端,所述第一加法器的另一个输入端读取常数"Γ ; 所述第k个控制器单元中的第一寄存器控制第k组选择单元中的2选1的选择器读取第k 个源数据存储器和第M+1-k个源数据存储器中的数据,并输出第m个源数据存储器中的数据 给第k个乘累加器模块中的乘法器的一个输入端; 所述第k个控制器单元中的第二寄存器控制第k组选择单元中的多路选择器读取M个源 数据存储器中的数据,并输出第η个源数据存储器中的数据给第k个乘累加器模块中的乘法 器的另一个输入端; 经过所述第k个乘累加器模块中的乘法器运算的结果输出至第k个乘累加器模块中的 加法器的一个输入端; 所述第k个乘累加器模块中的比较器读取计数器的数值和采样快拍数N并进行比较,获 得的比较结果输出至所述第k个乘累加器模块中的2选1的选择器; 所述第k个乘累加器模块中的2选1的选择器读取常数"0"和所述第k个乘累加器模块中 加法器的输出,并根据比较器的比较结果输出至所述第k个乘累加器模块中加法器的另一 个输入端;经过所述第k个乘累加器模块中加法器运算的结果cU输出至所述第一目的存储 器。
【文档编号】G06F17/16GK105893333SQ201610186685
【公开日】2016年8月24日
【申请日】2016年3月25日
【发明人】宋宇鲲, 张斌, 张多利, 杜高明
【申请人】合肥工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1