MIMO系统的线性预编码和非线性预编码技术

无线通信是当今世界最活跃的科研领域之一,它突破了有线通信的物理限制,使得用户可以*地在任何无线电波能够到达的地方进行通信,这大大拓宽了通信的空间和活力,有很多有线通信不可比拟的优点。

传统的无线通信系统中,发射端和接收端通常是各使用一根天线,这种单天线系统也称为单输入单输出系统。对于这样的系统,信道容量的计算公式,它表明了在有噪声的信道中进行可靠通信的上限速率。以后的电信工作者无论使用何种调制方案和信道编码方法,都只能不断逼近它,却无法超越它。这一点在当前无线通信市场中形势尤为严峻,因为用户对更高的数据率的需求是非常迫切的,必须进一步提高无线通信系统的容量。

随着因特网和移动通信飞速发展,在第三代蜂窝移动通信中己经部分地引入了无线Intemet和多媒体业务。而在新一代移动通信系统,人们对传输速率提出了更高的要求,这就需要采用更先进的技术来实现更高的传输速率。因此,必须设法突破上述传统无线通信系统的容量界限。一般提高移动通信的信道容量主要有以下两种方法:(l)设置更多的基站;(2)拓宽带宽。设置更多的基站意味着增加更多的蜂窝,但会付出很大的代价。也有人建议把目前使用的频带扩展到微波波段,因为在微波波段有更宽的频带可供使用。

在单天线系统中,提高系统容量的另一个方法是加大系统的发射功率。加大系统的发射功率可能引起人的健康状况的变化,对硬件设计者来说,这也是非常困难的,因为功放器件在大功率区域下的线性工作特性是很难设计的。另外,散热及发射功率的加大所引起的功率消耗也是移动终端要考虑的问题。因此要支持高速率就要开发具有极高频谱利用率的无线通信技术。此时,一种新的不需要损失频带和发射功率资源就能提供前所未有的数据传输速率的技术进入了人们的视野,那就是多输入多输出无线通信技术。研究表明,MIMO技术可以显著提高无线系统的频谱利用率。

MIMO是多输入多输出(Multiple-Input Multiple-Output)的简称,该通信系统在其发射端和接收端采用多天线,从而实现了多个数据流在相同时间和相同频带内的传输和接收。Foschini等和Telatar已经证明,MIMO系统的信道容量随着发射天线数的增加呈近似线性的增长。由于MIMO通信能够极大地提高系统的频带利用率、满足高速率通信的需求,因此得到了广泛的关注和研究,MIMO技术已经成为下一代移动通信中非常具有发展前景的技术之一。

1.2 MIMO技术简介

下一代的宽带无线通信系统将为用户提供如高速无线Internet接入、无线视频以及移动计算等无线多媒体业务。然而无线信道中的衰落、多径干扰、噪声等成为了影响无线通信质量的主要因素。

从信息论的角度已经证明,多天线技术可以大大增加无线通信系统的容量,并改善无线通信系统的性能,非常适合新一代移动通信系统中高速率业务的要求。因此采用多入多出(MIMO,Multiple Input Multiple Output)技术是一种很自然的想法。MIMO技术是无线通信领域智能天线技术的重大突破,它利用空间中增加的传输信道,在发送端和接收端采用多天线同时发送信号。由于各发射天线同时发送的信号占用同一个频带,所以并未增加带宽,因而能够成倍地提高系统容量和频谱利用率。

广义的MIMO技术主要包括发射分集技术和空间复用技术。其中发射分集技术是指在不同的天线上发射包含相同信息的信号,从而达到空间分集的效果。为了保证无线通信系统的通信质量,分集技术是一种很好的抗多径衰落手段。根据获得独立路径信号方法的不同可以分为时间分集、频率分集和空间分集等。相对时间分集和频率分集,空间分集没有时延和环境的限制,能够获得更好的系统性能。这种分集分为接收分集和发射分集。而发射分集的实现只需要在基站端增加天线的数目。MIMO中的发射分集主要是采用空时码技术,其中基于发射分集的空时码主要包括空时分组码(STBC,Space Time Block Code)和空时格码(STTC,Space Time Trellis Code)。空间复用技术是指在不同的天线上发射不同的信息。空间复用技术可以明显地提高数据传输速率,体现了MIMO系统容量提高的本质。其基本思想就是把高速数据业务分解为多个低速业务,通过普通的并行信道编码器编码后,对其进行分层的空间编码。分层空时编码的优点是当接收天线数为Nr大于发射天线数Nt时,系统容量与发射天线数成正比增长。贝尔实验室的V-BLAST是空间复用技术的典型应用,它采用了垂直分层空时码技术。在本文中主要利用的就是MIMO空间复用技术。简化的MIMO传输系统结构如图1-1所示,假设MIMO系统有Nt根发射天线和Nr根接收天线,并且假设在窄带慢衰落的信道下,就可以建立Nt×Nr阶反映信道特征的矩阵,其构成元素为独立同分布的复高斯随机变量,这样系统获得的信道容量将比单天线高出min(Nt,Nr)倍。

MIMO系统的线性预编码和非线性预编码技术

图1-1 MIMO传输系统结构图

多入多出(MIMO)多天线技术由于能提供更高的容量、更大的分集增益和干扰抑制性能,因而成为下一代无线移动通信系统的重要组成部分。目前,MIMO技术在单用户点对点无线通信链路中的应用由于解决了容量、发射方案和接收检测算法等关键问题而趋于成熟。但在无线通信系统的应用中,考虑到多用户环境,因此对无线多用户MIMO系统的技术研究成为当今的热点问题。

与传统的单输入单输出系统相比,MIMO系统接收端接收到的是在时间上和频带上相互重叠的多路信号,在频率选择性系统中还存在不同时刻信号间的码间干扰。由于信号检测性能的好坏将直接影响到整个MIMO系统性能的好坏,因此对高性能、低复杂度的MIMO检测技术的研究已经成为MIMO通信中的一个重要内容。

从MIMO通信系统结构提出以来,国内外通信界已对MIMO信号检测进行了广泛和深入地研究,并且提出了多种信号检测算法。MIMO最大似然(ML)检测可以使系统获得最佳误码性能,但在实际系统中往往难以实现或不能实现。接近ML检测性能的信号检测算法一直是MIMO系统需要解决的问题。

由于最大似然检测的计算复杂性很高,因此又提出了多种兼顾性能和复杂度的次最优检测算法。目前普遍使用的线性次最优算法是迫零(ZF)检测、最小均方误差(MMSE)检测和VBLAST检测。除此以外还包括基于格约简辅助检测、MIMO Turbo检测和MIMO系统的自适应均衡和盲均衡等。

在点对多点的广播信道中,由于各用户在地理位置上的差异,不能协同接收,当各用户间的接收信号存在相互干扰时,也不能采用多用户检测的方法来避免干扰。因此在解决无线多用户MIMO广播信道多用户干扰问题的主要方法是采用预编码技术。理论分析证明:采用DPC(Dirty Paper Coding)等预编码方法可以达到MIMO高斯广播信道的容量,因此对无线多用户MIMO广播信道的预编码技术研究,是解决把MIMO技术应用于新一代蜂窝系统或无线局域网的关键问题,具有重大的研究价值。

目前,国内外对无线多用户MIMO广播信道的预编码技术进行了积极的研究。预编码的方法分为两大类,一类是线性预均衡的方法,另一类是非线性预编码方法。典型的线性预均衡方法包括基于迫零准则和最小均方误差(MMSE)准则的方案。典型的非线性预编码方法包括:Tomlinson-Harashima预编码(THP)、基于格译码的矢量预编码[30]和基于格约减辅助的矢量预编码(Lattice Reduction-Aided Precoding)。

1.3 预编码技术研究现状

预编码技术(precoding),是一种通过对信道信息的利用,在发射端进行一种预处理,以适应相应的信道环境,以此来提高系统性能。预编码技术中的关键问题可分为:发端如何获取信道信息,以及如何利用信道信息进行相应处理。接下来将主要对这两个问题进行简要介绍。

1.3.1 发端信道信息的获取

通常来说,信道信息是指式中信道矩阵H的值,即全信息;而广义的 CSIT还包括H的部分信息,如每一路的接收信噪比或者H的统计信息,等等;或者一些隐含H信息的“间接”信道信息,中提到的预编码矩阵的序号(index),其本质就是一种“间接”信道信息。

·基于反馈的获取方式

一般情况下,只有收端能够通过信道估计来获取信道信息(CSIR),发端并不能事先知道。因此,通常是采取在接收端利用导频做信道估计,再将信道信息反馈回发送端的方法见图 1-2所示。

MIMO系统的线性预编码和非线性预编码技术

图1-3 基于反馈的 CSI 获取

基于反馈的CSI获取可以用于TDD和FDD系统,更多的是用于FDD系统中。

 

·互易的获取方式

如果是全双工系统,那么利用前向信道(A到B)的信息,可以利用前向信道和反向信道(B 到A)的相似性,直接用前向信道的转置作为反向信道信息,见图1-3。这种方式可以用于TDD 系统,由于在FDD系统中,前向和反向的频偏值之差会远大于信道的频域相干带宽,因此这种方式一般不适用于FDD系统。

MIMO系统的线性预编码和非线性预编码技术

图1-4 基于双工的CSI获取

与单天线系统相比,MIMO技术的引入对于系统容量和频谱效率的提高主要体现在三个方面:阵列增益、复用增益和分集增益。阵列增益源于发送端和接收端将发送和接收的多个天线信号进行相关合并而获得信干噪比 (SINR)的提高。分集增益源于通过将相同信号经过多个不相关信道传输,从而改善等效信道的衰落特性。复用增益源于空间*度的增大和空间并行传输通道的增加,从而有效提高系统容量。

MIMO预编码技术要求发送端能够获得与信道状态信息相关的信息。目前发送端获得信道信息主要通过以下两种方法:在频分复用伊DD)系统中,发送端可以通过接收端反馈而获得信道状态信息;在时分复用 (TDD)系统中,发送端通过下行信道与上行信道所具有的互易性而获得信道状态信息。通过在发送端进行预编码,首先,可以在发送端提前消除MIMO信道的临道干扰,提升系统性能。其次,可以完全避免接收端检测带来的误码传播,降低差错概率最后,在移动通信系统中,从基站到移动台的下行链路中采用预编码算法可以大大降低移动台的复杂度,为用户和手机设备商降低成本。

 

1.3.3 MIMO预编码技术的应用前景

随着目前应用频段的不断提升,通信系统的载波频率在不断加大,对应的发送波长也变小了。这样,为MIMO系统的应用奠定了坚实的基础,在现在越来越小的手机上实现多根天线也成为了可能。并且,由于现在移动终端定义的扩展,对于笔记本电脑或者车载系统来说,多天线的配置极易实现。

目前,LTE协议中规定的预编码方式为基于码本的预编码,这种方式在TDD、FDD系统中具有通用性,并且反馈的比特数目较少,但是对系统带来的性能提升不是特别理想。在FDD系统中,随着反馈信道的带宽的提升以及反馈信道更新速度的加快,发送端可以获得越来越精确的信道信息。在TDD系统中,由于上下行信道的对称性,发送端更易获得信道信息,这种基于mD情况下的预编码设计往往能够充分的发挥预编码算法的优势。在多用户的情况下,典型应用就是多天线基站的无线通信,即多天线基站同时和多个移动台进行通信。另外,向多个移动台发送数据的多个蜂窝小区基站的协调也受到关注。

3.1 MIMO通信系统中的线性预编码技术

要实现MIMO的线性预编码,必须有很多关键技术支持,比如天线的数量和天线间距的设置,接收机复杂度的降低,MIMO信道模型的建立,发射端的信道状态信息的获取,资源的充分利用等等。本章将从两方面重点讨论实现MIMO的线性预编码的关键技术,即获取发射端的信道状态信息和利用注水原理实现功率高效分配。

3.1.1发射端信道状态信息(CSIT)

无线网络中己经很好地体现了在发射端和接收端都使用多天线的优势。MIMO在发射速率随着两端天线数量最小值线性增加和在增强链路可靠性方面也有巨大的贡献。MIMO现在已经成为下一代蜂窝和无线网络的核心技术。

在无线通信体系中,单用户MIMO系统由于其获得了相当大的容量增益己经得到了极大的关注。但这些增益与发射机是否可获得信道状态信息(CSI)无关。然而在多用户的情况下,这将有很大的不同了,因为这时要考虑到干扰并平衡高吞吐量的需求。若使得网络中一个用户容量达到最大,则可能导致链路中的其他用户增加了不可接受的强干扰,这在多用户的情况下是不能容忍的。如果要获取高的吞吐量,一个较好的方法应该是使得网络的总容量或总的发射速率最大化,这里是考虑了用户之间的干扰的。而要实现这个目标,获取发射端的CSI是关键。原则上,接收机自身可通过多用户检测进行一部分干扰抵消,例如在蜂窝网络中,为了控制较低的成本需求和保证另一端用户的电池寿命,我们通常采用简易的接收机机制。

最大化多用户下行链路信道总容量常常得不到解决。例如,如果众多用户中有个用户相对其他用户拥有较大的信噪比(SNR),则整个链路中总的信道容量可能得牺牲那些获得较少或者没有吞吐量的稍弱用户。这种情况下一种可行的方法就是获得一定的服务质量(QOS),如信号干扰噪声比(SINR)或误比特率(BER)。用最小发射功率来满足服务质量的要求通常涉及到下行链路功率控制或干扰平衡问题。因此要获得最大的信道容量的解决方案是很有必要获得发射端的信道状态信息的。

3.1.2获取CSIT

在通信系统中,由于信号在离开发射机后进入信道,因此发射机只能间接地获取信道信息。然而,接收机可以从接受到的信号估计出信道信息。通常我们会在发射信号中插入特殊符号以便在接收机能较容易地进行信道估计。幸运的是,现代通信系统几乎都是全双工的,也就是说收发两端均有各自的发射机和接收机。因此发射机可通过互惠原则或使用反馈获取到发射端的信道状态信息。在无线通信中,互惠原则指的是从天线A到另一根天线B之间的信道等同于从天线B到天线A之间的信道,但前提是这两路信道必须是在同一时间,同一频率和同一天线分布情形下测量。这个原则说明发射机可通过反馈信道(从B到A)信息获得前向信道(从A到B)信息,如图3.1所示。这些信息包括瞬时信道或其他信道系数,这也包括信道统计量。然而,在实际的全双工通信中,前向和反馈链路不可能使用同样的频率,时间和空间距离。因为尽管时分复用系统的前向和反馈链路通常都有相同的频带和天线分布,但这两个链路也存在延迟。在语音系统中,这个延迟称为往复时间。而在异步数据系统中,这个延迟是指一个用户信号的接收和接下来发出信号之间的时序间隙。只要这些延迟相比信道的相关时间要小得多,就可忽略,就可适用一互惠原则。因此这种情况适用于时分复用(TDD)系统。因为此时上行链路和下行链路共享同一频带。当基站和移动台合理地设置好系数,使得上述可能存在的时延小于信道的相关时间以便正确地估计信道参数并进行之后的发射预编码。

MIMO系统的线性预编码和非线性预编码技术

图3.1适用互惠原则获取发射端信道状态信息

另一种方法,如图3.2所示,可通过前向链路的接收机反馈获取发射端信道状态信息。在前向链路(A到B)收发机B中的接收机测试到信道信息然后通过反馈链路转送给收发机A中的发射机。显然这种情况比较适合频分复用(FDD)系统。因为频分复用系统在前向和反馈链路通常都有相同的时间和空间维度,但两个链路之间的频率偏移都比信道的相关带宽要大得多,因此互惠原则不适用,而通常会采用反馈方法。由于频分复用系统的性质决定前向和反馈链路处于不同的频带,因此信道参数在两个链路是不同的。为了弥补这方面的缺憾,通常会研究与频率不相关的信道慢变化特性,如路径延迟和平均通路衰减。虽然反馈没有互惠

原则需求的限制,但反馈最大的不足在于它会造成获取信息的延迟并因消耗了发射资源而带来了额外的系统负担。

MIMO系统的线性预编码和非线性预编码技术

图3.2使用反馈方法获取发射端信道状态信息

    本节,我们将利用MATLAB对线性预编码技术进行仿真,并对其进行性能分析。其MATLAB代码如下所示:

for cnt = 1:Iter_num;% 信道的实现次数的循环

        H = sqrt(1/2)*(randn(Nr,Nt)+j*randn(Nr,Nt));% H

        MMSE_F = H'*inv(H*H'+sigma_n2/ea*eye(Nt));  % H的MMSE估计

        ZF_F = H'*inv(H*H');                        % H的ZF估计

        beta_mmse = sqrt(es/norm(MMSE_F,'fro').^2);

        beta_zf = sqrt(es/norm(ZF_F,'fro').^2);

        F_MMSE = beta_mmse*MMSE_F;                  % MMSE的预编码矩阵

        F_ZF = beta_zf*ZF_F;                        % ZF的预编码矩阵

            for sym_index = 1:num;              %在一帧数据符号中,信道保持不变

            Source = randint(Nt,1,M);

            Sym = pskmod(Source,M,pi/4,'gray');     %qpsk modulator

            Sym_mmse = F_MMSE*Sym;                  %对符号进行MMSE预编码

            Sym_zf = F_ZF*Sym;                      %对符号进行ZF预编码

            noise = sqrt(sigma_n2/2)*(randn(Nr,2)+j*randn(Nr,2));%生成噪声功率为sigma_n2

            y_mmse = H*Sym_mmse + noise(:,1);% 通过信道并加噪声

            y_zf = H*Sym_zf + noise(:,2);% 通过信道并加噪声

            r_mmse = 1/beta_mmse*y_mmse;% 进行接收端的缩放

            r_zf = 1/beta_zf*y_zf;% 进行接收端的缩放

            Rec_Data_mmse = pskdemod(r_mmse,M,pi/4,'gray');% 对接收信号进行判决

            Rec_Data_zf = pskdemod(r_zf,M,pi/4,'gray');% 对接收信号进行判决

            [err ratio] = biterr(Rec_Data_mmse,Source,log2(M));% ber

            ber_mmse(1,index) = ber_mmse(1,index) + ratio;

            [err ratio] = biterr(Rec_Data_zf,Source,log2(M));%ber

            ber_zf(1,index) = ber_zf(1,index) + ratio;

        end; % loop for num

    end; % loop for iteration

 

 

 

 

 

 

 

其仿真结果如下所示:

MIMO系统的线性预编码和非线性预编码技术

图5-1 Nt=Nr=4条件下的两种线性预编码性能仿真图(10-SNR的仿真)

MIMO系统的线性预编码和非线性预编码技术

图5-2 Nt=Nr=2条件下的两种线性预编码性能仿真图(10-SNR的仿真)

 

MIMO系统的线性预编码和非线性预编码技术

图5-3 Nt=Nr=4条件下的两种线性预编码性能仿真图(25-SNR的仿真)

MIMO系统的线性预编码和非线性预编码技术

图5-4 Nt=Nr=2条件下的两种线性预编码性能仿真图(25-SNR的仿真)

5.3 MIMO线性预编码技术的仿真与分析

    非线性预编码MATLAB代码如下所示:

for index = 1:Len;%不同信噪比的循环

    snr = 10.^(SNR(index)/10);

    ea = 1;% 每个天线发射的功率,也即信号向量中每个元素的功率

    es = ea*Nt; % 总共的发射功率

    sigma_n2 = es/snr;% noise power

    for cnt = 1:Iter_num;% 信道的实现次数的循环      

        H = sqrt(1/2)*(randn(Nr,Nt)+j*randn(Nr,Nt));% H             

        for sym_index = 1:num; %在一帧数据符号中,信道保持不变          

            Source = randint(Nt,1,M);% random data generator

            Sym = pskmod(Source,M,pi/4,'gray'); % qpsk modulator

            [d_thp,beta] = THP_encoder(Sym,H,period);% 对符号进行THP预编码

            noise = sqrt(sigma_n2/2)*(randn(Nr,1)+j*randn(Nr,1));%生成噪声功率为sigma_n2

            y_thp = H*d_thp + noise(:,1);% 通过信道并加噪声

            r_thp = beta*y_thp;% 进行接收端的缩放        

            Rec_thp = mod_thp(r_thp,period);

            Rec_Data_thp = pskdemod(Rec_thp,M,pi/4,'gray');% 对接收信号进行判决          

            [err ratio] = biterr(Rec_Data_thp,Source,log2(M));% ber

            ber_thp(1,index) = ber_thp(1,index) + ratio;

        end; % loop for num      

    end; % loop for iteration 

end % loop for snr

其中的核心算法THP编码的MATLAB代码如下所示:

THP:即 Tomlinson-Harashima Precoding,汤姆林森-哈拉希玛预编码。是通讯系统里的一种符号级(symbol level,区别于比特级)信道预编码。它的思想来自脏纸编码/污纸编码。原本用于单输入输出(SISO)系统中的ISI信道均衡,现在被用于MIMO-OFDM系统中的干扰消除。

function  [x, beta] = THP_encoder(u,H,period)

Tap_num = size(u,2);

 [N_r N_t] = size(H);

 [F,S] = qr((H'));%% h = F*S

s = S';%得到下三角矩阵

f = F';

t = diag(1./diag(s));

B = s*t; %% make B's diag element 

tmp_sum = 0;

for kk = 1:N_t;

    tmp_sum = tmp_sum + 1/s(kk,kk)^2;

end;

p = sqrt(N_t/tmp_sum);%% scale power beta

x = zeros(N_t,Tap_num);

for kk = 1:Tap_num;

    a = u(:,kk);

    % 反馈滤波

    x(1,kk) = a(1);

    for m = 2:N_t;                                                   

        g = 0;

        for k = 1:(m-1);

            g = B(m,k)*x(k,kk) + g;

        end

        x(m,kk) = a(m)-g;

        x(m,kk) = mod_thp(x(m,kk),period);

    end

    % 前向输出

    vec_tmp = p*F*t*x(1:N_t,kk);                                            

    x(1:N_t,kk) = vec_tmp;

    beta(kk) = 1/p;          %% prepare for the receiver mult 1/p

end;

其仿真结果如下所示:

MIMO系统的线性预编码和非线性预编码技术

 

图5-5 Nt=Nr=4条件下的THP非线性预编码性能仿真图(10-SNR的仿真)

MIMO系统的线性预编码和非线性预编码技术

 

图5-6 Nt=Nr=2条件下的THP非线性预编码性能仿真图(10-SNR的仿真)

MIMO系统的线性预编码和非线性预编码技术

 

图5-7 Nt=Nr=4条件下的THP非线性预编码性能仿真图(25-SNR的仿真)

MIMO系统的线性预编码和非线性预编码技术

 

图5-8 Nt=Nr=2条件下的THP非线性预编码性能仿真图(25-SNR的仿真)