MIMO大作业_通信工程学院

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MIMO系统与OFDM传输技术
大作业
V-BLAST的ZF和MMSE检测算法比较
姓名:
学号:
学院:通信工程学院
摘要 (1)
第一章MIMO分析 (1)
1.1 MIMO简介 (1)
1.2 MIMO系统的原理框图 (1)
1.3 MIMO技术的分类 (2)
第二章BLAST (3)
2.1 BLAST简介 (3)
2.2 用于仿真的MIMO信号模型 (3)
2.3分层空时结构 (4)
2.4空时迭代接收机 (5)
2.5 ZF接收机 (5)
2.6 MMSE接收机 (6)
第三章算法仿真 (8)
3.1 部分算法仿真程序(具体见附件) (8)
3.2 仿真结果 (9)
3.3 仿真结果分析 (9)
参考文献 (10)
摘要
摘要:MIMO 系统的基本思想是在发射端与接收端同时使用多跟天线传输数据,分层空时码(BLAST)是贝尔实验室提出的一种基于多发多收传输方式的空时码系统。

不断增加的数据业务需求给无线通信提出了新的挑战,这时MIMO成为公认的有效解决途径。

与传统的通信系统一样,MIMO也存在有效性与可靠性的矛盾,即分集增益与复用增益之间的冲突。

前者主要是提高链路的可靠性,追求分集增益的最大化;而后者是追求数据量的最大化,目的在于提高系统容量。

MIMO系统中最为典型的例子就是VBLAST结构,本文对VBLAST系统进行仿真,分别使用迫零法(ZF)和最小均方误差法(MMSE)两种检测算法,并对两者的性能进行比较。

由于最小均方误差接收机同迫零接收机相比,以最小均方误差为准则,同时考虑了噪声和干扰,平衡了干扰和噪声增强,使总的误差最小,因此性能优于迫零接收机。

关键词:MIMO,VBLAST,ZF算法,MMSE
第一章MIMO分析
1.1 MIMO简介
MIMO(Multiple-Input Multiple-Output)技术指在发射端和接收端分别使用多个发射天线和接收天线,使信号通过发射端与接收端的多个天线传送和接收,从而改善通信质量。

它能充分利用空间资源,通过多个天线实现多发多收,在不增加频谱资源和天线发射功率的情况下,可以成倍的提高系统信道容量,显示出明显的优势。

MIMO系统是一项运用于802.11n的核心技术。

802.11n是IEEE继802.11b\a\g后全新的无线局域网技术,速度可达600Mbps。

同时,专有MIMO技术可改进已有802.11a/b/g网络的性能。

该技术最早是由Marconi于1908年提出的,它利用多天线来抑制信道衰落。

根据收发两端天线数量,相对于普通的SISO(Single-Input Single-Output)系统,MIMO还可以包括SIMO(Single-Input Multi-ple-Output)系统和MISO(Multiple-Input Single-Output)系统。

1.2 MIMO系统的原理框图
图1.1 MIMO系统的原理框图
图1.1是MIMO系统的一个原理框图。

发射端通过空时映射将要发送的数据信号映射到多根天线上发送出去,接收端将各根天线接收到的信号进行空时译码从而恢复出发射端发送的数据信号。

根据空时映射方法的不同,MIMO技术大致可以分为两类:空间分集和空间复用。

空间分集是指利用多根发送天线将具有相同信息的信号通过不同的路径发送出去,同时在接收机端获得同一个数据符号的多个独立衰落的信号,从而获得分集提高的接收可靠性。

1.3 MIMO技术的分类
MIMO技术大致可以分为两类:发射/接收分集和空间复用。

传统的多天线被用来增加分集度从而克服信道MIMO 衰落。

具有相同信息的信号通过不同的路径被发送出去,在接收机端可以获得数据符号多个独立衰落的复制品,从而获得更高的接收可靠性。

对于发射分集技术来说,同样是利用多条路径的增益来提高系统的可靠性,分集技术主要用来对抗信道衰落。

根据子数据流与天线之间的对应关系,空间多路复用系统大致分为三种模式:D-BLAST、V-BLAST以及T-BLAST。

第二章BLAST
2.1 BLAST简介
分层空时(BLAST)结构是无编码MIMO系统的一个应用实例,基于零位操作和干扰消除法,已经提出了各种BLAST检测方法,进而得到了各种MIMO迭代接收机,诸如:空时ZF接收机;MMSE 空时接收机;最大似然ML 接收机等。

其中前两个为线性接收机,而空时ZF 接收机的性能最差,该接收机是最简单的一种空时信号处理接收机,可得到宽带ZF检测算法,由于ZF接收机忽略了噪声的存在,因此在实际上放大了噪声,在存在大量噪声和ISI干扰时,性能不如MMSE接收机;由于MMSE接收机同ZF接收机相比,以MMSE 为准则,同时考虑了噪声和干扰,平衡了干扰和噪声增强,使总的误差最小,因此性能优于ZF接收机;最大似然接收机(ML)性能最好,但复杂度最高,复杂度和发射天线数成e 指数增长的关系;球形译码是近似最佳的BLAST检测方法,其复杂度为发送天线数的立方。

在编码MIMO系统中,当作为硬判决的上述各种方案与外信道译码相级连时,其性能上将遭到巨大的损失,因此有些文献提出了软判决的球形译码算法,但是其复杂度却大大增加了。

本文就上述的前两种接收机,即空时ZF接收机和MMSE空时接收机进行设计仿真,并比较两者的性能。

2.2 用于仿真的MIMO信号模型
发射端通过空时映射将要发送的数据信号映射到多根天线上发送出去,接收端将各根天线接收到的信号进行空时译码从而恢复出发射端发送的数据信号。

根据空时映射方法的不同,MIMO技术大致可以分为两类:空间分集和空间复用。

空间分集是指利用多根发送天线将具有相同信息的信号通过不同的路径发送出去,同时在接收机端获得同一个数据符号的多个独立衰落的信号,从而获得分集提高的接收可靠性。

假设一个点对点的MIMO系统,发送端和接收端均采用多天线,发送端天线数为T n,接收端天线数为R n,这样便构成了一个T n×R n的MIMO系统(在本论文的研究中,均假设传输信道是瑞利平坦衰落型的)。

针对该系统结构可写出系统的输入输出关系式为:
r=Hx+n(1)假设每个符号周期系统发送的信号为n T维列矢量,即上式中的x为x=
[x1 x2…..x n
T
]T,其中第i个分量x i表示从第i个天线发送的信号;上式中的r=
[r1 r2 ….r n
r
]T,其中第j个分量r j表示第j个天线接收的信号;H为信道响应矩阵,可以表示为:
H=[ℎ1,1⋯ℎ1,n
T
⋮⋱⋮
ℎn
R,1
⋯ℎn
R,n R
](2)
该信道响应矩阵中的每个元素ℎji表示从第i个发送天线到第j个接收天线的信道响应系数,且每个ℎji为0均值,1为方差的复高斯随机变量;上式中的
n=[n1 n2 …..n n
R ]T,是接收噪声矢量,且满足E(nn H)=N0I n
R
[1]。

2.3分层空时结构
Foschini提出的分层空时结构(BLAST)能够实现MIMO系统的最大容量,后来G.Golden等人提出了VBLAST算法,实际上VBLAST是DBLAST的简化版。

分层空时结构最大的优点在于:允许采用一维的处理方法对多维空间信号进行处理,因此极大的降低了译码复杂度。

一般情况下,分层空时码的结构机复杂度与数据速率成线性关系。

分层空时码描述了空时多维信号的发送结构,就是其中最为简单的一种,即未经信道编码分层空时码。

本仿真系统中系统的结构如图2.1所示:
BPSK调制
S/P ZF/MMSE接收机
.
.
.
.
.
.
P/S BPSK解调
x
x n T
1r1
r n R
图2.1 本仿真系统中系统的结构图
上图中,首先对信源产生的信息比特序列进行BPSK调制,调制符号经串并
变换后将其从n T个天线上发送出去,本仿真中的信道模型为平坦瑞丽衰落的;接
收端,首先将接收到的信号送入空时接收机中,其检测算法分为ZF和MMSE两种,译码的结果再进行BPSK解调、并串变换,得到恢复出的数据,将其与原始发送
数据进行比较,计算错误的比特数,进而得出误比特率BER。

2.4空时迭代接收机
在准静态衰落信道下,接收机t 时刻收到的信号矢量可以用下式来表示: r t =Hx t +n t (3) 其中,x t 为t 时刻的发送信号,是n T ×1维列向量;r t 为t 时刻的接收信号,是n R ×1维列向量;n t 为t 时刻叠加在接收信号上的高斯白噪声,是n R ×1 维列向量,且其每个元素都是均值为零,方差为σ2的相互独立的正态分布随机变量;H 即为信道响应矩阵。

2.5 ZF 接收机
从上面的式子可以看出,接收矢量是所有发送天线信号的叠加,也就是说,每个接收天线上收到的信号都是有用信号与干扰信号的混叠。

因此,我们可以利用迫零算法进行天线间的干扰抵消,从而进行信号检测。

而迫零算法的思想是:首先检测某一层的发送信号,然后从其他层中抵消掉这一层信号造成的干扰,逐次迭代,最后完成整个信号矢量的检测。

在ZF 算法中,进行干扰抵消的顺序对于系统性能有重要影响,我们引入整数序列集{k 1 k 2……k n r }:该集合表示自然序数{1 2…..n T }的某种排列。

ZF 算法的迭代过程如下[3]:
初始化:i =1 G 1=H + (H +为H 的伪逆)
迭代过程:
k i =arg min j∉{k 1 k 2….k i−1}∥(G i )j ∥2 (4) W k i =(G i )k i (5)
y k i =W k i r i (6)
()i i k k x Q y ∧= (7)
()1i i i i k k r r x H ∧
+=- (8) G i+1=H k i
+ (9) i =i +1
详细描述上述迭代过程:
(4)式即求矩阵中范数最小的行数,将其赋给k i ;
(5)式将矩阵G i 的第k i 赋给W k i ,得到检测系数向量;
(6)式将第k i 个天线上的有用检测信号计算出来;
(7)式根据星座图对待检测信号进行硬判决;
(8)式更新接收向量r i ;
(9)式更新矩阵G ,其中H K I
+表示将矩阵H 的第k i 列置零后再求其伪逆。

从上述迭代过程可以看出,对于每一个时间点t ,都要进行n T 次迭代;而且整个检测过程中没有考虑噪声的因素[2]。

2.6 MMSE 接收机
基于最小均方误差算法我们可以得到另一种常用的VBLAST 迭代接收机,该算法的目标函数是最小化发送信号矢量x t 与接收信号矢量W H r t 的线性组合之间的均方误差,即:
arg min E W
[∥(G i )j ∥2] (10) 该式中,W 是的线性组合系数矩阵。

由于上述目标函数是凸函数,因此,可以求其梯度得到最优解,这样得到的MMSE 检测系数矩阵为:
W H =(H H H +σ2I n R )−1H H (11)
类似于上述ZF 接收机,我们下面给出MMSE 检测算法的流程:
初始化:i =n T r n T =r t
迭代过程:
W H =(H H H +σ2I n R )−1
H H (12)
y i =W i H r i (13)
()=i i x Q y ∧ (14) 1i i i i r r x H ∧
-=- (15)
H=H d i−1[ℎ1,1⋯ℎ1,i−1
⋮⋱⋮
ℎn
R,1
⋯ℎn
R,i−1
](16) i=i−1
详细描述上述迭代过程:
(12)式求得MMSE检测系数矩阵,其中σ2表示噪声的方差;
(13)式计算出第个接收天线上的有用检测信号;
(14)式根据星座图对待检测信号进行硬判决;
(15)式更新接收向量r i;
(16)式更新矩阵H,即仅取原矩阵的前i−1列;
(17)式仅在i≥2时进行。

从上述的迭代过程看出,与ZF 算法一样,MMSE算法在每一个时间点t也都需要进行n T次迭代;与ZF算法不同的是,MMSE算法考虑了噪声的因素[3]。

第三章算法仿真
3.1 部分算法仿真程序(具体见附件)
仿真参数设置:tx为发射天线数目,rx为接收天线数目,通过把不同的值赋给tx,rx改变MIMO的发射与接收形式,本次仿真采用2X2的系统。

数据帧长为10000,调制形式为BPSK。

tx=2;rx=2;L=10000;
Modulation='BPSK';
% 信源A
A=randint(tx*L,1);
% 经过BPSK调制的V-Blast发射矩阵X
X=zeros(tx,L);
for k=1:tx
X(k,:)=(-1).^(A(k:tx:end)+1);
End
% 信道传输,快衰落高斯信道H
H=sqrt(1/2)*(randn(rx,tx,L));
% 均值为0方差为1的高斯白噪声n
n=sqrt(1/2)*(randn(rx,L));
% 未叠加噪声的接收信号R
R=zeros(rx,L);
for k=1:L
R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);
end
3.2 仿真结果
3.3 仿真结果分析
从仿真结果可以看出MMSE算法具有比ZF算法的变化趋势基本一致,这一点可以从两者的加权矩阵可以看出,MMSE算法考虑了噪声的影响,如果把方差取为零,那它的加权矩阵就和ZF算法一样,故从这一点出发,ZF算法是MMSE 算法在无噪声的情况下的特殊情形。

并且MMSE算法具有更快的误码率下降速度的特性,这是因为ZF算法在计算过程中对系统中的噪声起了放大作用,而MMSE算法把噪声考虑在其最小化的代价函数中,因此MMSE算法具有更好的抗噪声性能。

参考文献
[1] 高展宏. V-BLAST的实现及其检测[J]. 中国科技论文在线.
[2] 郑淦. MIMO信道中V-BALST系统研究[D]. 天津: 天津大学, 2004.
[3] 纪晴. VBLAST系统检测算法的研究[J]. 中国科技论文在线.
[1]tx=2;rx=2;L=10000;
[2]Modulation='BPSK';
[3]EbN0=[0:5:20];
[4]B=30000;Ts=1/24300;
[5]SNR=EbN0-10*log10(Ts*B);% 建立EbN0与SNR之间的换算关系
[6]A=randint(tx*L,1); % 信源A
[7]X=zeros(tx,L); % 经过BPSK调制的V-Blast发射矩阵X
[8]for k=1:tx
[9]X(k,:)=(-1).^(A(k:tx:end)+1);
[10]end
[11]% 信道传输
============================================================
[12]H=sqrt(1/2)*(randn(rx,tx,L));% 快衰落高斯信道H
[13]n=sqrt(1/2)*(randn(rx,L)); % 均值为0方差为1的高斯白噪声n
[14]R=zeros(rx,L); % 未叠加噪声的接收信号R
[15]for k=1:L
[16]R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);
[17]end
[18]% ZF检测
[19]disp('berz');
[20]berz=[];
[21]for m=SNR %在不同的信噪比下计算ZF接收机误比特率
[22]m
[23]snr=10^(m/10); %每个子信道的平均信噪比为snr的接受信号R_noised
[24]R_noised=awgn(R,m,1);
[25]x=[];
[26]a=zeros(tx*L,1); %逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X的估计x
[27]for t=1:L
[28]r=R_noised(:,t);
[29]G=pinv(H(:,:,t)); %迫零矩阵G
[30]y=G*r;
[31]xtemp=(y>=0)-(y<0)+0;
[32]x=[x,xtemp];
[33]end
[34]for k=1:tx %从x求A的估计a
[35]a(k:tx:end)=(x(k:tx:end)+1)/2;
[36]end
[37][errbit,temp_ber]=biterr(A,a); %比较A和a计算错值率temp_ber
[38]berz=[berz,temp_ber];
[39]end
[40]semilogy(EbN0,berz,'o- r'),grid on
[41]text(9,0.25,'\fontsize{14}\color{red}\fontname{隶书}ZF')
[42]hold on
[43]% MMSE算法
[44]% 发射天线数tx,接收天线数rx,发射矩阵长度L(帧长)
[45]tx=2;rx=2;L=10000;
[46]Modulation='BPSK';
[47]EbN0=[0:5:20];
[48]B=30000;Ts=1/24300;
[49]SNR=EbN0-10*log10(Ts*B);%建立EbN0与SNR之间的换算关系
[50]A=randint(tx*L,1); %信源A
[51]X=zeros(tx,L); %经过BPSK调制的V-Blast发射矩阵X
[52]for k=1:tx
[53]X(k,:)=(-1).^(A(k:tx:end)+1);
[54]end
[55]H=sqrt(1/2)*(randn(rx,tx,L));% 信道传输快衰落高斯信道H
[56]n=sqrt(1/2)*(randn(rx,L)); %均值为0方差为1的高斯白噪声n
[57]R=zeros(rx,L); %未叠加噪声的接收信号R
[58]for k=1:L
[59]R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);
[60]end
[61]% MMSE检测
[62]disp('berz');
[63]berz=[];
[64]for m=SNR %在不同的信噪比下计算ZF接收机误比特率berz
[65]m
[66]snr=10^(m/10);
[67]R_noised=awgn(R,m,3); %每个子信道的平均信噪比为snr的接受信号R_noised
[68]x=[];
[69]a=zeros(tx*L,1);
[70]for t=1:L %逐时隙对接收符号矢量进行检测,合并得到一帧发射矩阵X 的估计x
[71]r=R_noised(:,t);
[72]HH=H(:,:,t);
[73]xtemp=zeros(tx,1);
[74]w=inv(HH'*HH+(1/snr)*eye(tx))*HH';
[75]y=w*r;
[76]xtemp=(y>=0)-(y<0)+0;
[77]x=[x,xtemp];
[78]end
[79]for k=1:tx %从x求A的估计a
[80]a(k:tx:end)=(x(k:tx:end)+1)/2;
[81]end
[82][errbit,temp_ber]=biterr(A,a); %比较A和a计算错值率temp_ber
[83]berz=[berz,temp_ber];
[84]end
[85]semilogy(EbN0,berz,'o- b'),grid on
[86]xlabel('Eb/N0(dB)');
[87]ylabel('误比特率');
[88]title('MMSE与ZF的误比特率比较')
[89]text(9,0.15 ,'\fontsize{14}\color{blue}\fontname{隶书}MMSE')
hold on。

相关文档
最新文档