无线通信基带处理的系统矩阵计算方法和装置转让专利

申请号 : CN200610149819.X

文献号 : CN101136882B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵兴山

申请人 : 中兴通讯股份有限公司

摘要 :

本发明公开了一种无线通信基带处理的系统矩阵计算方法和装置。计算每个VRU对应的31行1列的B向量,通过B向量生成B矩阵,通过B矩阵获得系统矩阵。B矩阵为虚拟扩频码C与相应信道冲激响应H的卷积运算结果。计算h(0)c(0),h(0)c(1),...,h(0)c(15),输出h(0)c(0)作为b(0),暂存h(0)c(1),...,h(0)c(15);计算h(i)c(0),h(i)c(1),...,h(i)c(15),输出所暂存的作为b(i),暂存h(i)c(1),...,h(i)c(15),i从1到15;输出所暂存的作为b(j),j=16,...,31。

权利要求 :

1.一种用于无线通信基带处理的系统矩阵计算方法,其特征在于,首先计算每个虚拟资源单元对应的31行1列的B向量,然后通过所述B向量生成B矩阵,从而通过所述B矩阵获得所述系统矩阵,所述B矩阵为虚拟扩频码C与相应信道冲激响应H的卷积运算结果,计算所述B向量的过程包括以下步骤:步骤S102,通过16个MAC寄存器计算h(0)c(0),h(0)c(1),...,h(0)c(15),输出h(0)c(0)作为b(0),暂存h(0)c(1),...,h(0)c(15),令i=1;

步骤S104,通过16个MAC寄存器计算h(i)c(0),h(i)c(1),...,h(i)c(15),输出所暂存的作为b(i),暂存h(i)c(1),...,h(i)c(15);

步骤S106,如果i小于15,则i=i+1,返回至步骤S104,否则进行至步骤S108;

步骤S108,输出所暂存的作为b(j),其中j=16,...,31,

其中,b(0),b(1),...,b(31)为所述B矩阵的矩阵元素,c(0),c(1),...,c(15)为所述虚拟扩频码C的矩阵元素,h(0),h(1),...,h(15)为所述相应信道冲激响应H的矩阵元素。

2.根据权利要求1所述的系统矩阵计算方法,其特征在于,在步骤S102中,由M(p)暂存h(0)c(p),其中p=0,1,...,15,M(p)为第p+1个寄存器,并且在输出h(0)c(0)之后M(0)清0。

3.根据权利要求2所述的系统矩阵计算方法,其特征在于,在步骤S104中,由M(q)暂存h(i)c(16-i+q),其中q=0,...,i-1,并且在i小于15时,由M(r)暂存h(i)c(r-i),其中r=i+1,...,15。

4.根据权利要求3所述的系统矩阵计算方法,其特征在于,在步骤S104中,在输出所暂存的之后,M(i)清0,通过M(q)中的累加器计算通过M(r)中的累加器计算

5.一种用于无线通信基带处理的系统矩阵计算装置,其特征在于,包括:

复合扩频码存储器单元,用于存储复合扩频码c(k);

信道冲激响应存储器单元,用于存储虚拟资源单元映射后的信道冲激响应值h(k);

B矩阵存储器单元,用于存储B矩阵数据;

控制单元,用于对数据进行读写控制、输出控制、以及运算控制;

运算单元,包括16个MAC寄存器,用于从所述控制单元读入控制信号及数据,按照计算步骤进行卷积运算,输出B矩阵数据到所述B矩阵存储器单元,在所述控制单元的控制下将结果数据写入所述B矩阵存储器单元;

根据所述控制单元的控制,所述运算单元用于通过所述16个MAC寄存器计算h(0)c(0),h(0)c(1),...,h(0)c(15),将h(0)c(0)作为b(0)输出至所述B矩阵存储器单元,暂存h(0)c(1),...,h(0)c(15);通过所述16个MAC寄存器计算h(i)c(0),h(i)c(1),...,h(i)c(15),将所暂存的作为b(i)输出至所述B矩阵存储器单元,暂存h(i)c(1),...,h(i)c(15),i从1到15;将所暂存的作为b(j)输出至所述B矩阵存储器单元,其中j=16,...,31。

6.根据权利要求5所述的系统矩阵计算装置,其特征在于,所述控制单元包括:

第一读写控制电路,连接至所述复合扩频码存储器单元,用于产生访问所述复合扩频码存储器单元的读写控制信号、片选信号、以及地址信号;

第二读写控制电路,连接至所述信道冲激响应存储器单元,用于产生访问所述信道冲激响应存储器单元的读写控制信号、片选信号、以及地址信号;

MAC运算控制电路,用于产生运算单元需要的MAC运算控制信号,按照计算步骤生成相应的控制信号,输出至所述运算单元的MAC寄存器;

运算数据控制电路,接收来自所述第一读写控制电路的复合扩频码c(k)和来自所述第二读写控制电路的信道冲激响应值h(k),用于产生所述运算单元所需的运算数据c(k)和h(k),执行每个时钟周期所需的运算数据的控制及生成;

数据输出控制电路,用于生成所述运算单元结果数据的输出使能,以及产生所述B矩阵存储器单元所需的控制信号并输出到所述B矩阵存储器单元。

7.根据权利要求5或6所述的系统矩阵计算装置,其特征在于,所述复合扩频码存储器单元的存储器结构为宽度64比特和深度40。

8.根据权利要求5或6所述的系统矩阵计算装置,其特征在于,所述信道冲激响应存储器单元的存储器结构为宽度32比特和深度5120。

9.根据权利要求5或6所述的系统矩阵计算装置,其特征在于,所述B矩阵存储器单元的存储器结构为宽度32比特和深度1240。

说明书 :

技术领域

本发明涉及无线通信领域和集成电路设计领域,尤其涉及一种无线通信基带处理的系统矩阵计算方法和装置。

背景技术

传统的CDMA(Code Division Multiple Access,码分多址)系统用匹配滤波器来接收信号,这样仅仅实现了单用户在加性高斯白噪声环境中的最优检测。在多用户通信系统中,由于扩频码资源的限制,各用户的扩频码序列不可能完全正交,因而使用传统接收方案的CDMA系统无法克服多址干扰(MAI,Multiple AccessInterference)的存在;另外由于用户信号的多径传播,同一用户在不同径上的信息符号间会存在符号间干扰(ISI,InterSymbolInterference)。
在TD-SCDMA(Time Division-Synchronization Code DivisionMultiple Access,时分同步码分多址接入)系统中,我们使用联合检测技术来消除MAI和ISI。从信号处理的角度讲,联合检测技术就是综合利用各种信息及信号处理的手段,对接收信号进行处理,从而达到对MAI和ISI抑制或消除的目的。其高效率主要是因为TD-SCDMA是一个时域和帧控的TDMA(Time Division MultipleAccess,时分多址)方案。因此,每载波的大量用户被分布到每个帧的每个传输方向的时隙中。最终使每时隙中并行用户的数量很少,这样,通过较低的计算量即可有效地检测到用户信号。
用户数据通过扩频加扰、空中信道,到达接收机,可以用如图1所示的模型表示:
图1中n为加性噪声,d为输入信号,为检测出的信号,而相应的接收序列e是M根天线K个用户数据序列与噪声的总和,而由b(1),…,b(k),…,b(K)组成的矩阵称为系统矩阵,表示了传输信道的空间特征。在TD-SCDMA系统中,每一个或每几个符号经过扩频加扰后,送入信道。通常不同用户信号的扩频因子不同,但扰码长度一定(这里扰码周期固定为16)。为了研究的方便起见,常常将扩频码和扰码一起考虑,一般以一个扰码周期为单位长度,复合多个扩频码,构成复合扩频码,即图1中c(1),…,c(k),…,c(K)值。然后将复合扩频码与信道冲激响应(即图中的h(1),…,h(k),…,h(K))进行卷积,这样可以将符号之间以及扩频码之间的关系考虑进去,而系统矩阵则是卷积的结果,表示了这种关系。系统矩阵的求解是后续联合检测算法的基础。
然而在系统矩阵求解中,涉及的运算为卷积运算(16点的卷积运算运算量),使用FFT(Fast Fourier Transform,快速傅里叶变换)变换方法计算比较浪费,只能使用卷积运算的定义进行计算。目前的计算方案都是基于DSP(Digital Signal Processing,数字信号处理)的软件处理方案,运算比较耗时。这种方案不适合在硬件处理中实现。所以尚没有一种比较高效结构简单的硬件实现方案被提出。
因此,为了采用硬件装置实现系统矩阵生成,需要一种高效且电路结构简单的实现方案及硬件装置。

发明内容

本发明的主要目的在于提供一种无线通信基带处理的系统矩阵计算方法和装置,用于结合并行处理和流水线处理方法使得系统矩阵生成的执行效率获得成倍提升。
为了实现上述目的,根据本发明的第一方面,本发明提供了一种用于无线通信基带处理的系统矩阵计算方法。首先计算每个VRU(Virtual Resource Unit,虚拟资源单元)对应的31行1列的B向量,然后通过B向量生成B矩阵,从而通过B矩阵获得系统矩阵,B矩阵为虚拟扩频码C与相应信道冲激响应H的卷积运算结果,计算B向量的过程包括以下步骤:
步骤S102,通过16个MAC寄存器计算h(0)c(0),h(0)c(1),...,h(0)c(15),输出h(0)c(0)作为b(0),暂存h(0)c(1),...,h(0)c(15),令i=1;
步骤S104,通过16个MAC寄存器计算h(i)c(0),h(i)c(1),...,h(i)c(15),输出所暂存的作为b(i),暂存h(i)c(1),...,h(i)c(15);
步骤S106,如果i小于15,则i=i+1,返回至步骤S104,否则进行至步骤S108;
步骤S108,输出所暂存的作为b(j),其中j=16,...,31,
其中,b(0),b(1),...,b(31)为B矩阵的矩阵元素,c(0),c(1),...,c(15)为虚拟扩频码C的矩阵元素,h(0),h(1),...,h(15)为相应信道冲激响应H的矩阵元素。
在步骤S102中,由M(p)暂存h(0)c(p),其中p=0,1,...,15,M(p)为第p+1个寄存器,并且在输出h(0)c(0)之后M(0)清0。
在步骤S104中,由M(q)暂存h(i)c(16-i+q),其中q=0,...,i-1,并且在i小于15时,由M(r)暂存h(i)c(r-i),其中r=i+1,...,15。
在步骤S104中,在输出所暂存的之后,M(i)清0,通过M(q)中的累加器计算通过M(r)中的累加器计算
为了实现上述目的,根据本发明的第二方面,本发明提供了一种用于无线通信基带处理的系统矩阵计算装置。系统矩阵计算装置包括:复合扩频码存储器单元,用于存储复合扩频码c(k);信道冲激响应存储器单元,用于存储VRU映射后的信道冲激响应值h(k);B矩阵存储器单元,用于存储B矩阵数据;控制单元,用于对数据进行读写控制、输出控制、以及运算控制;运算单元,包括16个MAC寄存器,用于从控制单元读入控制信号及数据,按照计算步骤进行卷积运算,输出B矩阵数据到B矩阵存储器,在控制单元的控制下将结果数据写入B存储器。
控制单元包括:第一读写控制电路,连接至复合扩频码存储器单元,用于产生访问复合扩频码存储器单元的读写控制信号、片选信号、以及地址信号;第二读写控制电路,连接至信道冲激响应存储器单元,用于产生访问信道冲激响应存储器单元的读写控制信号、片选信号、以及地址信号;MAC运算控制电路,用于产生运算单元需要的MAC运算控制信号,按照计算步骤生成相应的控制信号,输出至运算单元的MAC寄存器;运算数据控制电路,接收来自第一读写控制电路的复合扩频码c(k)和来自第二读写控制电路的信道冲激响应值h(k),用于产生运算单元所需的运算数据c(k)和h(k),执行每个时钟周期所需的运算数据的控制及生成;数据输出控制电路,用于生成运算单元结果数据的输出使能,以及产生B矩阵存储器单元所需的控制信号并输出到B矩阵存储器单元。
控制单元控制运算单元按照以下步骤执行计算:
步骤S202,运算单元通过16个MAC寄存器计算h(0)c(0),h(0)c(1),...,h(0)c(15),将h(0)c(0)作为b(0)输出至B矩阵存储器单元,暂存h(0)c(1),...,h(0)c(15),令i=1;
步骤S204,运算单元通过16个MAC寄存器计算h(i)c(0),h(i)c(1),...,h(i)c(15),将所暂存的作为b(i)输出至B矩阵存储器单元,暂存h(i)c(1),...,h(i)c(15);
步骤S206,如果i小于15,则i=i+1,返回至步骤S204,否则进行至步骤S208;
步骤S208,运算单元将所暂存的作为b(j)输出至B矩阵存储器单元,其中j=16,...,31。
控制单元控制运算单元在步骤S202中由M(p)暂存h(0)c(p),其中p=0,1,...,15,M(p)为第p+1个MAC寄存器,并且在输出h(0)c(0)之后M(0)清0。
控制单元控制运算单元在步骤S204中由M(q)暂存h(i)c(16-i+q),其中q=0,...,i-1,并且在i小于15时,由M(r)暂存h(i)c(r-i),其中r=i+1,...,15。
控制单元控制运算单元在步骤S204中在输出所暂存的之后,M(i)清0,通过M(q)中的累加器计算通过M(r)中的累加器计算
复合扩频码存储器单元的存储器结构为宽度64比特和深度40。信道冲激响应存储器单元的存储器结构为宽度32比特和深度5120。B矩阵存储器单元的存储器结构为宽度32比特和深度1240。
通过上述技术方案,本发明采用硬件装置进行系统矩阵的计算,每个VRU所对应的31个B矩阵元素的求解只需要16个处理时钟周期,充分发挥了并行处理和流水线处理结构的优势,而相同的数据运算量若采用软件实现方案则可能需要1024个时钟周期。所以基于本发明的系统矩阵计算方法及装置的运算处理效率相比软件实现方案获得极大提高,且硬件电路简单易于ASIC(Application Specific Integrated Circuit,特定用途集成电路)实现和FPGA(Field Programmable Gate Array,现场可编程门阵列)实现,具有很大的工程价值。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是TD-SCDMA系统模型框图;
图2是根据本发明的系统矩阵计算方法的流程图;
图3是根据本发明的系统矩阵计算装置的框图;
图4是根据本发明实施例的单用户单天线系统矩阵的示意图;
图5是根据本发明实施例的B矩阵生成计算式数据排列结构原始图;
图6是根据本发明实施例的B矩阵生成计算式数据排列结构调整图;
图7是根据本发明实施例的系统矩阵计算硬件装置结构图;
图8是根据本发明实施例的复合扩频码存储器数据结构图;
图9是根据本发明实施例的冲激响应存储器数据结构图;
图10是根据本发明实施例的单天线B矩阵元素存储器数据结构图。

具体实施方式

下面将参考附图详细说明本发明。
在根据本发明的用于无线通信基带处理的系统矩阵计算方法中,首先计算每个VRU对应的31行1列的B向量,然后通过B向量生成B矩阵,从而通过B矩阵获得系统矩阵,B矩阵为虚拟扩频码C与相应信道冲激响应H的卷积运算结果,参照图2,计算B向量的过程包括以下步骤:
步骤S102,计算h(0)c(0),h(0)c(1),...,h(0)c(15),输出h(0)c(0)作为b(0),暂存h(0)c(1),...,h(0)c(15),令i=1。
由M(p)暂存h(0)c(p),其中p=0,1,...,15,M(p)为第p+1个寄存器,并且在输出h(0)c(0)之后M(0)清0。
步骤S104,计算h(i)c(0),h(i)c(1),...,h(i)c(15),输出所暂存的作为b(i),暂存h(i)c(1),...,h(i)c(15)。
由M(q)暂存h(i)c(16-i+q),其中q=0,...,i-1,并且在i小于15时,由M(r)暂存h(i)c(r-i),其中r=i+1,...,15。
在步骤S104中,在输出所暂存的之后,M(i)清0,通过M(q)中的累加器计算通过M(r)中的累加器计算
步骤S106,如果i小于15,则i=i+1,返回至步骤S104,否则进行至步骤S108。
步骤S108,输出所暂存的作为b(j),其中j=16,...,31。
上面步骤中,b(0),b(1),...,b(31)为B矩阵的矩阵元素,c(0),c(1),...,c(15)为虚拟扩频码C的矩阵元素,h(0),h(1),...,h(15)为相应信道冲激响应H的矩阵元素。
参照图3,根据本发明的用于无线通信基带处理的系统矩阵计算装置10包括:复合扩频码存储器单元20,用于存储复合扩频码c(k);信道冲激响应存储器单元30,用于存储VRU映射后的信道冲激响应值h(k);B矩阵存储器单元40,用于存储B矩阵数据;控制单元50,用于对数据进行读写控制、输出控制、以及运算控制;运算单元60,包括16个MAC寄存器,用于从控制单元50读入控制信号及数据,按照计算步骤进行卷积运算,输出B矩阵数据到B矩阵存储器单元40,在控制单元50的控制下将结果数据写入B矩阵存储器单元40。
控制单元50包括:第一读写控制电路,连接至复合扩频码存储器单元20,用于产生访问复合扩频码存储器单元20的读写控制信号、片选信号、以及地址信号;第二读写控制电路,连接至信道冲激响应存储器单元30,用于产生访问信道冲激响应存储器单元30的读写控制信号、片选信号、以及地址信号;MAC运算控制电路,用于产生运算单元60需要的MAC运算控制信号,按照计算步骤生成相应的控制信号,输出至运算单元60的MAC寄存器;运算数据控制电路,接收来自第一读写控制电路的复合扩频码c(k)和来自第二读写控制电路的信道冲激响应值h(k),用于产生运算单元60所需的运算数据c(k)和h(k),执行每个时钟周期所需的运算数据的控制及生成;数据输出控制电路,用于生成运算单元60结果数据的输出使能,以及产生B矩阵存储器单元40所需的控制信号并输出到B矩阵存储器单元40。
控制单元50控制运算单元60按照以下步骤执行计算:
步骤S202,运算单元60通过16个MAC寄存器计算h(0)c(0),h(0)c(1),...,h(0)c(15),将h(0)c(0)作为b(0)输出至B矩阵存储器单元40,暂存h(0)c(1),...,h(0)c(15),令i=1;
步骤S204,运算单元60通过16个MAC寄存器计算h(i)c(0),h(i)c(1),...,h(i)c(15),将所暂存的作为b(i)输出至B矩阵存储器单元40,暂存h(i)c(1),...,h(i)c(15);
步骤S206,如果i小于15,则i=i+1,返回至步骤S204,否则进行至步骤S208;
步骤S208,运算单元60将所暂存的作为b(j)输出至B矩阵存储器单元40,其中j=16,...,31。
控制单元50控制运算单元60在步骤S202中由M(p)暂存h(0)c(p),其中p=0,1,...,15,M(p)为第p+1个MAC寄存器,并且在输出h(0)c(0)之后M(0)清0。
控制单元50控制运算单元60在步骤S204中由M(q)暂存h(i)c(16-i+q),其中q=0,...,i-1,并且在i小于15时,由M(r)暂存h(i)c(r-i),其中r=i+1,...,15。
控制单元50控制运算单元60在步骤S204中在输出所暂存的之后,M(i)清0,通过M(q)中的累加器计算通过M(r)中的累加器计算
复合扩频码存储器单元20的存储器结构为宽度64比特和深度40。信道冲激响应存储器单元30的存储器结构为宽度32比特和深度5120。B矩阵存储器单元40的存储器结构为宽度32比特和深度1240。
本发明涉及集成电路设计领域、FPGA设计领域、以及无线通信领域,具体地说,是用于无线通信基带处理中基于卷积运算的系统矩阵生成的VLSI(Very Large Scale Integration,超大规模集成电路)和FPGA设计的装置和方法。
TD-SCDMA中,存在以下几种系统模型:单用户单天线,多用户单天线,多用户多天线。在不同的情形下,系统矩阵T的表示形式不尽相同,图4表示的是单用户单天线系统矩阵结构。在几种不同系统模型中,相同的是系统矩阵都是由图4中基本的B矩阵按特定方式排列而成。所以系统矩阵可以通过只求解B矩阵得到。图4中每个B矩阵由Nr列b元素组成。与每个天线对应的系统矩阵T是由其B矩阵得到的,具体实现时只需写出B矩阵,即对每个处于激活状态的天线,求出各自的B矩阵。B矩阵的产生是基于虚拟码道的(即,将不同扩频因子的码道归一化为长度为16的虚拟码),其每一列是某一激活的虚拟扩频码与相应的信道冲激响应卷积的结果,即:
for ka=0:Ka-1
{
SJ_b1_datakVRUka(0:15+WFL-1)=CIRVRUka,kVRU(0:WFL-1)virtual_scrambling_codekVRU(0:15)
}
其中Ka表示激活的天线数,WFL表示窗长。
可知B矩阵是虚拟扩频码C和VRU映射后的冲激响应H卷积的结果,每个VRU对应的B向量为31行1列单列矩阵(31*1),每个矩阵元素为实部虚部都是16比特的复数。考虑到直接作卷积运算不容易实现,可以根据卷积运算的定义将C和H的卷积转化为如下计算式:
b(n)=c*h=Σk=0Q-1c(k)·h(n-k)n=0....30
分析上式中的将其展开变为下列式子:
Σk=0Q-1c(k).h(n-k)=c(0)h(n)+c(1)h(n-1)+c(2)h(n-2)+...+c(q-1)h(n-q+1)
继续对n=0...30展开上式等号右边积和式,因为我们这里计算是基于VRU进行的,所以这里扩频因子Q=16,W值取16,并且注意到h(n-k)当n-k<0时没有意义,n-k>w-1时h(n-k)=0,上式展开后如下表示:

每个VRU对应的B向量的31个矩阵元素的值根据上述计算式求解,每个元素的运算都包括1个或多个复数乘法运算,以及0次或多次的累加运算。所以每个元素的运算等价于一次或多次的MAC运算。
每个VRU对应的31个元素中,最多的MAC运算次数为16次,出现在b(15)元素的求解。将上述计算展开式书写格式进行排列,如图5所示:图中共31行即31个B矩阵元素,共16列代表最多16次乘法运算,每行的b元素的值等于该行各列乘积结果的累加和。每列都包含16次(个)乘积运算,而且每列的16个乘积运算式都具有相同的被乘数(第0列为h0,第1列为h1,依次类推,第15列为h15)。将图5中第16行之后的数据搬移到上部的空白部分,得到如图6所示数据。
如果按列每次计算16个乘积项的值,则16次可以计算出所有乘积项的值,通过求和可以得出所有B矩阵的1列31个b元素的值。
所以采用本发明的16个乘法器的并行处理硬件结构来进行B矩阵的运算,每次可以并行处理16个乘积项的计算,通过16次的并行处理就能够得出所求的31个b元素的值。
本发明的系统矩阵硬件实现装置如图7所示。
图7中包含3块存储器单元,分别为复合扩频码存储器单元,信道冲激响应存储器单元,B矩阵存储器单元。包含由读写控制电路1、读写控制电路2、MAC运算控制电路、运算数据控制电路、数据输出控制电路组成的控制单元,还有一个运算单元,该运算单元由16块MAC运算单元(MAC0到MAC15)组成。
其中复合扩频码存储器单元中保存的数据为复合扩频码c(k),和读写控制电路1相连,读写控制电路1产生访问复合扩频码存储器的读写控制信号,片选信号以及地址信号,从存储器读出的数据通过读写控制电路1输出到运算数据控制电路;信道冲激响应存储器中保存的数据为VRU映射后的信道冲激响应值h(k),和读写控制电路2相连,读写控制电路2产生访问信道冲激响应存储器的读写控制信号,片选信号以及地址信号,从存储器读出的数据通过读写控制电路2也输出到运算数据控制电路;控制单元中的MAC运算控制电路产生运算单元模块需要的MAC运算控制信号,按照流水线处理和并行处理硬件结构生成相应得控制信号,输出连接到运算单元模块的各个MAC运算单元;运算数据控制电路产生运算单元所需的运算数据c(k)和h(k),产生的数据直接连接到运算单元各MAC运算单元的数据输入端,运算数据控制电路负责每个时钟周期所需的运算数据的控制及生成;数据输出控制电路负责生成运算单元结果数据的输出使能及产生B矩阵存储器所需的控制信号并输出到B矩阵存储器单元,包括访问B矩阵存储器所需的读写控制信号,片选信号和地址信号;运算单元从控制单元读入控制信号及数据按并行处理和流水线处理方式进行卷积运算,输出的B矩阵数据直接连接到B矩阵存储器,在控制单元的控制下将结果数据写入存储器。
采用本发明的硬件装置进行系统矩阵的计算,每个VRU所对应的31个B矩阵元素的求解只需要16个处理时钟周期。
与每个天线对应的系统矩阵A是由其B矩阵得到的,具体实现时只需写出B矩阵,即对每个处于激活状态的天线,求出各自的B矩阵。B矩阵的产生是基于虚拟码道的(即,将不同扩频因子的码道归一化为长度为16的虚拟码),其每一列是某一激活的虚拟扩频码与相应的信道冲激响应卷积的结果,即:
for ka=0:Ka-1
{
SJ_b1_datakVRUka(0:15+WFL-1)=CIRVRUka,kVRU(0:WFL-1)virtual_scrambling_codekVRU(0:15)
}
根据业务及用户数的不同,不同时间处于激活的状态的虚拟码道数不同,因此B矩阵的维数是动态的,最大为31×16。当一个或多个天线处于故障状态时,这些天线上的B矩阵也不产生。
下面结合附图以具体实例来阐述本发明的计算过程及技术优势。
TD-SCDMA系统中,上行解调模块采用多小区联合检测方案时,B矩阵生成包括本小区最大8天线,16个VRU的B向量的求解,同时也包括最多6个临小区最多24个VRU的B向量的求解。所以最大的运算量为8天线,7个相邻小区的40个VRU的B向量的求解。
最基本的计算为1个VRU所对应的B向量的求解,基于本发明的硬件装置运算处理流程描述如下:
在计算一个VRU的B矩阵的31个元素时,其计算过程为,
1)计算第0列的乘积项
第一列的计算16个MAC单元的数据输入分别为:16个MAC的被乘数都为h0,乘数依次为c0,c1,到c15。即MAC0的输入为h0和c0,MAC1的输入为h0和c1,......,MAC15的输入为h0和c15,如图6所示。第一列16个计算结果得出后,只有第1个MAC单元的结果可以作为b(0)的值输出,并将MAC0寄存器值清0;而第2个MAC单元到第16个MAC单元的运算结果继续保存在累加器中。
2)第一步中得出了第一个b(0)的值,此时第一个MAC单元的累加器被清0,再进行第1列的计算。注意第二列计算时各MAC的输入数据为:被乘数都为h(1),但乘数和第一列计算有变化,将16个C(k)的值左移1个值,即MAC0输入c(15),MAC1输入c(0),然后依次MAC2输入c(1),直到MAC15输入c(14),如图6所示。此时除了第二个MAC单元(MAC1)外其他MAC单元将此次的乘积结果继续保存在累加器中,而MAC1将累加器的值作为b(1)的值输出,同时将MAC1累加器清0,准备第三列的计算。
3)依次类推,直到算出最后一列即第15列的乘积项。计算第15列时16个MAC单元的输入分别为:每个MAC单元的被乘数都是h15,而乘数分别为MAC0输入c1,MAC1输入C2,......,MAC14输入c15,MAC15输入C0,如图6所示。此时16个MAC单元中累加器的值恰好都为尚未得出的最后16个b元素的值(其中MAC0对应b16的值,MAC1对应b17的值,......,MAC14对应b30的值,而MAC15对应b15的值)。此时将16个MAC单元累加器的结果同时输出作为b(15)~b(30)的值。并将MAC单元累加器清0。准备进行下一个VRU的B矩阵元素计算。
由以上分析的模块运算流程可得出如下规律:每次h(n)元素n每增加1时,输入16个MAC单元的乘数C(k)需要每次左移1个C元素。每个VRU对应的B矩阵元素的求解正好对应1个运算循环,如果共有40个VRU,则每根激活的天线对应的系统矩阵计算需要执行这一运算循环40次。如果激活天线数为8个则需要执行这一循环40*8次。
根据本发明的系统矩阵计算方法及硬件装置进行运算,存储器的数据保存方式及结构直接关系到数据处理的效率,下面结合上面的具体实施例,利用附图详细说明三块存储器单元的设计。
a)复合扩频码存储器结构
经分析复合扩频码可知:每个VRU对应的复合扩频码共有16个数值c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c 15。这16个数值每个都是一个复数值,其实部和虚部分别表示为I和Q,即在保存其数值时分别保存其实部I和虚部Q的数值。在DSP软件设计中,每个C值的I和Q值都被保存为16位的值,其格式为Q(16,15)。而分析c0~c15元素的计算方法可知,元素c0~c15数值的实部和虚部只存在三种情况:
I:+1,-1,0Q:+1,-1,0即:实部:+1,-1,0;虚部:+j,-j,0
所以c0~c15元素的值可以用2bit的值来表示:
00:001:110:nul11:-1
又根据本发明阐述的系统矩阵计算方法及硬件结构,16个并行的MAC运算单元,需要同时读入(即在同一个时钟上升沿读入)16个不同的C元素的值C0~C15,所以在存储C元素时将同1个VRU对应的16个C元素的值依次保存在CMEM(code memory,码存储器)的一行,每个C元素为4bit数据(I和Q各2个bit数据,按IQ的顺序存放,即I在高位,Q在低位),所以CMEM每行共16*4=64bit数据。再分析CMEM的深度:多小区联合检测中最多支持40个VRU,所以CMEM深度为40。即CMEM存储器结构为宽度是64比特深度为40(40*64)总数据容量为320byte的双端口SRAM(Static Random Access Memory,静态随机存取存储器),存储器的数据结构如图8所示。
b)信道冲激响应存储器结构
经分析VRU映射后的信道冲激响应可知:每个VRU对应的信道冲激响应共有16个点的数值H0~H15,其中每个h元素的值都是一个复数值,其实部和虚部分别用16位数据表示,数据格式为Q(16,15)。且根据B矩阵生成模块设计思路及硬件结构可知,16个MAC单元每次运算只需要读入1个H元素的值。所以HMEM(信道冲激响应值存储器)存储器设计为数据宽度32bit(I和Q各16bit数据),存储器的深度为8*40*16(8根天线,40个VRU,每个VRU对应16个h元素的值),存储器的数据结构如图9所示。
c)B矩阵存储器结构
经分析B矩阵的求解的硬件处理流程可知每次(可能是每个时钟周期,也可能是每个流水线节拍)写入BGMEM(B元素存储器)一个b元素的值,因为b元素的I和Q都为16bit宽度,所以将BGMEM设计成数据宽度为保存1个b元素的32bit位宽(I和Q各16比特)。考虑到别的模块如AR矩阵生成模块以及ARA矩阵生成模块设计的需要,BGMEM设计时将8个天线的B矩阵元素分成不同的存储器存储,即8根天线的B矩阵分别保存在8个完全相同的存储器中,每个BGMEM的大小都是数据宽度为32bit,深度为31*40=1240(每根天线的B矩阵包括最大40个VRU,每个VRU对应31个b元素),即1240*32/8=4960byte。
其中每个BGMEM存储器的数据结构如图10所示,一共保存40个VRU,每个VRU对应31个b元素,共40*31=1240行(即存储器深度)数据元素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。