《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > MIMO-GMC系统信道估计技术及FPGA实现

MIMO-GMC系统信道估计技术及FPGA实现

2008-03-17
作者:关 鑫, 高西奇, 尤肖虎

  摘 要: 研究了MIMO-GMC" title="MIMO-GMC">MIMO-GMC系统中高效信道估计" title="信道估计">信道估计及其FPGA实现技术。通过大量研究和设计,得到一种既能保证性能和速度,又适合硬件实现的信道估计算法。采用Xilinx公司的FPGA芯片Vertex-II Pro 100和适量的并行流水方案,设计出高速可行的MIMO信道估计器,单片实现3个载波的信道估计。经海量测试,验证了硬件的正确性和鲁棒性。
  关键词: MIMO-GMC DCT变换  单点" title="单点">单点滤波  FPGA

 

  为适应未来发展的需要,提高系统的频谱利用率,在后三代(B3G)或称第四代(4G)移动通信的MIMO-GMC系统中,采用了多天线发送和多天线接收的空中接口机制。为了可靠有效地支持高速传输,MIMO-GMC系统仍需要很高的带宽。宽带传输加重了频率选择性衰落,造成严重的多径干扰;而终端的高速移动性导致的多普勒频移,加重了时间选择性衰落。因而,在这种双选择性衰落的信道条件下,迫切需要采用一种高速率、高性能的信道估计技术。
  为了实现相干接收,需要估计信道的冲激响应系数和噪声方差。为了能够及时准确地估计出信道参数,设计了一种基于循环正交码的双循环时隙" title="时隙">时隙结构,采用循环正交序列不同相位的循环移位序列作为不同发送天线的导频" title="导频">导频序列。在接收端,利用循环正交序列的特性,以低实现复杂度获得最小二乘(LS)意义上最优的信道估计,利用时域相关性获得导频段更为精确的最小均方误差(MMSE)意义上最优的信道估计,进一步采用插值可获得数据段信道参数的估计。
1 信道估计原理[1]
  发送信号的时隙结构如图1所示。定义一个时隙有K个子时隙,每个子时隙都由保护段(G)、导频段(P)和数据段(D)组成,在每个时隙的最后一个子时隙后追加一个保护段和一个导频段来构成该时隙。


  在MIMO_GMC系统中,发送天线个数为NT,接收天线的个数为NR。假设信道冲激响应序列的长度为P,即假设有P径,则每个接收通道待估计的信道参数个数为NTP,相应的导频序列长度应该满足LP≥NTP。
  信道估计原理如图2所示。首先用接收的导频段数据与存储原始发送导频的共轭进行矩阵乘法运算,得到LS意义上的信道冲激响应系数。将得到的LS信道系数送到噪声方差估计模块进行能量统计,并结合接收导频数据的能量统计值得到噪声方差的估计;同时将每个时隙的LS信道参数变换到DCT域进行单点滤波。最后在IDCT变换的同时进行插值,得到数据段的MMSE信道冲激响应输出。


2 信道估计的FPGA实现
  在B3G的MIMO-GMC系统上行链路中采用4发8收的空中接口方案,接收符号速率为每载波1.28MHz,总共有12个载波传送数据,系统传输能力达到100Mbps。对于时隙结构,每个时隙包含5个导频段,导频长度32,保护段长度8,数据段长度216。采用高速可靠的信道估计器实现,假设总共有6径,使用92.16MHz的工作时钟来实现,则一个时隙总共有77 184个时钟周期。


  在MIMO-GMC硬件实现中,接收机总共使用了4块如图3所示结构的信号处理(SP)板,M1同时接收来自两块Rx-AMS(接收预处理)板各4根天线3个载波的同步接收信号。按照载波将8根天线的接收信号分配到3个相同的信道估计和空时合并模块进行处理;3个载波的合并结果通过接口输出到M2~M4分别进行迭代检测译码;最后将译码结果汇聚到M2板输出到数据交换板。其中M1~M4均采用Xilinx公司Vertex II Pro 100芯片[2]
  信道估计部分按照功能主要划分为三大模块,分别是最小二乘信道估计模块(LS)、噪声方差估计模块(Var)和DCT域插值滤波模块(DCTFilter),如图4所示,其中DCTFilter模块包含DCT变换、单点滤波和IDCT插值变换。图中Source模块接收分别来自两块AMS板的同步数据,将其合并,并按照载波分配到三个相同的信道估计模块进行处理。


2.1 Source模块FPGA实现
  Source模块主要由两块18KB双端口BlockRAM组成,如图5所示。将两块RAM当作FIFO使用,两个端口分别为输入和输出,分别接收存储来自两块Rx_AMS板各4根天线的同步数据。两块RAM每存满1个符号(3个载波各4根天线共12个复数数据),就将3个载波的数据按照8根天线的顺序分别输出到3个寄存器,同步输出给3个信道估计模块。
  这里考虑到来自两块Rx_AMS板的数据不可能完全同步到达,而且存在数据到达先后的问题,所以采用两块FIFO来实现。这样两路数据同一符号之间的输入时差即使达到3 000个时钟周期,亦能正常工作,大大增强了系统鲁棒性。

 


2.2 LS模块FPGA实现
  LS模块结构框图如图6所示,将存储的发送导频的共轭与接收到的导频信号进行矩阵乘法运算,得到信道冲击响应系数输出。
  由于本地共轭导频是由原导频循环右移产生各发送天线的导频段,所以这里只要存储第一个原始导频的32个数据。在读取时只要对读取地址加适当的偏移地址就可以读到发送到相应天线的导频数据。这里采用分布式RAM来存储,将初值直接置入,设置为只读模式。
  对于接收导频存储RAM,由于一个导频段有256个数据,为了保证接收存储和输出运算不冲突,这里采用深度为512B的双端口RAM构造乒乓结构,用最高位地址线进行两块存储区的区分,RAM两端口,一个只写另一个只读。
  虽然这里的接收存储RAM采用了乒乓结构来实现,但每个时隙最后一个导频段与下一时隙第一个导频段是连续输入的,而该时隙的后续估计工作需要在下一时隙第一个导频段开始LS估计前完成,否则后续的估计模块均需要乒乓结构才能保证两个时隙的估计不冲突,这样将耗费大量资源。为了解决这一冲突,首先设置了一个LS估计开始信号(Start LS)来控制每个导频段LS估计开始的时间,对于每个时隙的第一个导频段,总等到前一个时隙信道估计完全结束以后才能开始,以保证其输出对前一个时隙的估计不产生影响;对于其余导频段,接收完成即开始LS估计,以尽量减少输出时延。但仅仅进行以上措施依然不能解决冲突问题,所以还需要对各个估计模块进行并行处理,以保证工作速率,从而保证前一个时隙的信道估计完全输出以后,依然有足够的时间处理下一个时隙的接收导频,使得RAM中的数据在处理完成之前不被后续到来的导频数据刷新,即在下一个时隙的第一个子时隙内必须完成当前时隙的信道估计的全部工作。
  从图6可以看出,这里采用了两路复数乘法累加器来实现LS估计以提高速度。但这里对RAM的读写提出了特殊要求,两块RAM需要同时输出两个不同的信号。考虑到对于不同的接收天线,其发送导频顺序是一样的,这样如果当前处理的仅仅是不同接收天线同一位置同一径的数据,即所需读取的本地导频也一样,则本地导频输出仅需一个。对于接收导频存储RAM,利用双端口RAM的特性[2],将输出端口宽度设置为输入端口宽度的两倍,将接收导频的存储地址的低地址设置为接收天线,这样每次输出均能同时输出相邻两根接收天线的导频数据,保证了并行处理的数据源,最终将两路并行输出数据并串转换,串行输出。由于导频长度为32,所以两路数据每32个时钟分别输出1个信道参数。这样两路串行以后每32个时钟周期连续输出2个信道参数。
2.3 Var模块FPGA实现
  Var模块结构框图如图7所示。该模块同时接收系统输入的导频信号和LS模块输出的信道参数,将其分别进行能量累加,通过一个FIFO同步输出到噪声方差计算模块,得到当前时隙的噪声方差,与存储的前一时隙的噪声方差进行平滑处理得到当前噪声方差输出。

 


2.4 DCTFilter模块FPGA实现
  DCTFilter模块结构框图如图8所示。该模块接收初次信道估计参数对其进行DCT变换,存储结果的同时对其按照块和径进行信道增益矩阵统计。一个时隙的信道参数全部输入完成以后,对得到的信道增益矩阵与存储的前一时隙的信道增益矩阵进行平滑处理得到当前时隙的信道增益矩阵,计算出单点滤波矩阵,接着用其对信道参数进行单点滤波,最后做IDCT插值变换输出,得到MMSE信道参数输出。
  从图8可以看出,这里仅用一块RAM存储一个17×5的IDCT阵,而没有存储DCT阵,这是由于5×5的DCT矩阵是IDCT矩阵模4余1行全部元素的转秩。
  DCT子模块接收来自LS模块的信道参数,按照公式:
  
  计算出DCT域的信道参数,其中5x192代表输入的信道参数,其5行分别代表5个导频段的信道参数,是按照时间顺序输入的。如果按照通常设计方案,需要存储输入的信道参数,等到一个时隙的数据完全存储以后才开始DCT变换,并用另外一个存储单元来存储DCT域的信道参数。但这样的设计有两个缺点:(1)需要大量的存储空间来存储信道参数,存储压力很大;(2)大量时间系统处于等待状态,对于时延要求如此苛刻的系统,这更加重了后续模块的处理压力。这里将公式(1)变形为:
  
  其中Ui是DCT阵的列,而i对应的则是第i个导频段信道参数。从变形以后的公式可以看出,输入信道参数无需存储,每输入一个数据,与相应DCT系数相乘,与存储的DCT信道参数累加再存储,便可以得到DCT域的信道参数;另一方面,LS信道参数的输入完成以后只需经过几个时钟周期,DCT域信道参数计算就可完成了,大大压缩了系统延迟。
  每计算出一个DCT域的信道参数以后,除了送到存储单元以外还直接送到信道增益矩阵(PG)统计模块,按照块和径进行统计。这里每得到一个DCT域信道参数便进行一次统计,所以对系统产生极少的系统延时。其输出结果与存储的上一个时隙的增益矩阵进行平滑,得到当前时隙的增益矩阵存储;同时输出到滤波矩阵计算模块计算出滤波系数。
  在所有滤波系数计算完成以后,就开始对DCT域的信道系数进行单点滤波,接着进行IDCT变换输出。这里是个计算密集型单元,数据输出速度完全受计算速度控制。乘法器并行程度越高,输出时延越小,但同时消耗的资源也越多,这就需要找一个合适的折衷方案在满足时延的需求下尽量减少资源开销。对于单点滤波,每一个DCT域的信道参数均要进行单点滤波,即每读取一个存储的DCT域的信道参数都要进行一次乘法运算;对于IDCT变换,每输出一个数据需要进行5次乘法运算,总共要输出3 264个数据,即进行16 320次乘法。如果不复用则总共需要16 320个时钟周期,而一个子时隙只有18 432个时钟周期,加上其他模块的处理延迟,就不能满足系统时延要求了,因此,这里采用两路并行处理。
  在单点滤波和IDCT变换处理过程中涉及3个RAM的存取:滤波矩阵存储RAM、DCT域信道参数存储RAM和IDCT系数存储RAM。这里采用与DCT变换类似的方法来解决从不同的RAM中同时读取两路数据的方法,这是因为对于相同发送天线、相同导频段、相同径的DCT域信道参数其滤波系数和IDCT系数都是相同的,这里不再重述。
3 信道估计器硬件测试
  信道估计器的硬件测试主要由单模块测试和系统测试两部分组成。


  模块测试方案如图9所示,利用DSP的linkport口与计算机之间的通信能力,对FPGA进行海量数据测试,通过大量测试保证硬件设计的鲁棒性。
  系统测试主要是将信道估计器放入MIMO-GMC系统中进行测试,保证系统正常运行,达到仿真预计的性能。
  本文重点研究了MIMO-GMC系统中的信道估计的硬件实现,设计出一套适合硬件实现的MIMO信道估计算法,完成FPGA设计,并通过大量模块测试和系统测试,包括大量的现场测试,支持12个载波100Mbps无误码的无线传输速率,得到了一个高速率、高鲁棒、高性能的信道估计器。
参考文献
[1] GAO Xi Qi, JIANG Bin, YOU Xiao Hu,et al. Efficient channel estimation for MIMO single-carrier block transmi-ssion with dual cyclic timeslot structure. Submitted to IEEE Trans. Commun.
[2] Virtex-II Pro Platform FPGA Handbook. UG012(v1.0).Xilinx January 31, 2002.
[3] YOU Xiao Hu,CHEN Guo An,CHEN Ming,et al.Toward beyond 3G:the FuTURE project of China[J].IEEE Comm-unications Magazine, 2005,43(1):70-75.
[4] GAO Xi Qi. MIMO-GMC Wireless Transmission Technique [R]. National 863 FuTURE Project Research Report,Southeast University, 2004.
[5] PETER H, FICDRIK T. Channel estimation with superim-posed pilot sequence. Advanced Signal Processing for Comm-unications. Global Telecommunications Conference-Globecom’99.
[6] 高西奇,尤肖虎,江彬等.面向后三代移动通信的MIMO-GMC无线传输技术. 电子学报,2004,(12A)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。