基于Matlab的MIMO通信系统仿真设计.docx
《基于Matlab的MIMO通信系统仿真设计.docx》由会员分享,可在线阅读,更多相关《基于Matlab的MIMO通信系统仿真设计.docx(15页珍藏版)》请在冰豆网上搜索。
![基于Matlab的MIMO通信系统仿真设计.docx](https://file1.bdocx.com/fileroot1/2022-10/11/86337b78-a370-4812-b3dc-10e6734ad88c/86337b78-a370-4812-b3dc-10e6734ad88c1.gif)
基于Matlab的MIMO通信系统仿真设计
北京邮电大学
基于Matlab的MIMO通信系统仿真
专业:
信息工程
班级:
2011211126
:
学号:
一、概述
1、背景
MIMO表示多输入多输出。
在第四代移动通信技术标准中被广泛采用,例如IEEE802.16e(Wimax),长期演进(LTE)。
在新一代无线局域网(WLAN)标准中,通常用于IEEE 802.11n,但也可以用于其他802.11技术。
MIMO有时被称作空间分集,因为它使用多空间通道传送和接收数据。
只有站点(移动设备)或接入点(AP)支持MIMO时才能部署MIMO。
MIMO技术可以显著克服信道的衰落,降低误码率。
该技术的应用,使空间成为一种可以用于提高性能的资源,并能够增加无线系统的覆盖围。
通常,多径要引起衰落,因而被视为有害因素。
然而研究结果表明,对于MIMO系统来说,多径可以作为一个有利因素加以利用。
MIMO系统在发射端和接收端均采用多天线(或阵列天线)和多通道,MIMO的多入多出是针对多径无线信道来说的。
传输信息流s(k)经过空时编码形成N个信息子流ci(k),I=1,……,N。
这N个子流由N个天线发射出去,经空间信道后由M个接收天线接收。
多天线接收机利用先进的空时编码处理能够分开并解码这些数据子流,从而实现最佳的处理。
2、课程设计的研究目的
设计一个基于Matlab的MIMO通信系统仿真。
3、MIMO系统
【1】MIMO的三种主要技术
当前,MIMO技术主要通过3种方式来提升无线传输速率及品质:
(1)空间复用(SpatialMultiplexing):
系统将数据分割成多份,分别在发射端的多根天线上发射出去,接收端接收到多个数据的混合信号后,利用不同空间信道间独立的衰落特性,区分出这些并行的数据流。
从而达到在相同的频率资源获取更高数据速率的目的。
(2)传输分集技术,以空时编码(SpaceTimeCoding)为代表:
在发射端对数据流进行联合编码以减小由于信道衰落和噪声所导致的符号错误率。
空时编码通过在发射端增加信号的冗余度,使信号在接收端获得分集增益。
(3)波束成型(BeamForming):
系统通过多根天线产生一个具有指向性的波束,将信号能量集中在欲传输的方向,从而提升信号质量,并减少对其他用户的干扰。
【2】MIMO系统的概述
多输入多输出(Multi-inputMulti-output;MIMO)是一种用来描述多天线无线通信系统的抽象数学模型,能利用发射端的多个天线各自独立发送信号,同时在接收端用多个天线接收并恢复原信息。
该技术最早是由马可尼于1908年提出的,他利用多天线来抑制信道衰落(fading)。
根据收发两端天线数量,相对于普通的单输入单输出系统(Single-InputSingle-Output,SISO),MIMO此类多天线技术尚包含早期所谓的“智能型天线”,亦即单输入多输出系统(Single-InputMulti-Output,SIMO)和多输入单输出系统(Multiple-InputSingle-Output,MISO)。
由于MIMO可以在不需要增加带宽或总发送功率耗损(transmitpowerexpenditure)的情况下大幅地增加系统的数据吞吐量(throughput)及发送距离,使得此技术于近几年受到许多瞩目。
MIMO的核心概念为利用多根发射天线与多根接收天线所提供之空间自由度来有效提升无线通信系统之频谱效率,以提升传输速率并改善通信质量。
【3】MIMO系统的信道模型
采用多发送多接收的天线系统,副发送天线,副接收天线的MIMO的系统信道模型如图1.3所示。
用表示第i根发送天线到第j根接收天线之间的信道衰落系数,表示i副发送天线发送的信号,为第j副接收天线接收到的信号,考虑平坦的衰落信道则它们之间关系写成矩阵的形式为:
其中定义表示n发射天线在发射的信号向量;表示n接收天线在时间t接收的信号向量;
表示t时刻的加性高斯白噪声向量;
,H为信道衰落系数矩阵。
其中的幅度服从Rayleigh分布。
二、基本原理
1、基本流程
2、MIMO原理
核心思想:
时间上空时信号处理同空间上分集结合。
时间上空时通过在发送端采用空时码实现:
空时分组、空时格码,分层空时码。
空间上分集通过增加空间上天线分布实现。
此举可以把原来对用户来说是有害的无线电波多径传播转变为对用户有利。
MIMO系统模型:
MIMO信道模型
分集与复用
⏹根据各根天线上发送信息的差别,MIMO可以分为发射分集技术和空间复用技术。
⏹发射分集:
在不同的天线上发射包含同样信息的信号(信号的具体形式不一定完全相同),达到空间分集的效果,起到抗衰落的作用
典型代表:
空时块码(STBC)
⏹空间复用:
在不同的天线上发射不同的信息,获得空间复用增益,从而大大提高系统的容量和频谱利用率
典型代表:
分层空时码
3、空时块码
⏹Alamouti提出了采用两个发射天线和一个接收天线的系统可以得到采用一个发射天线两个接收天线系统同样的分集增益。
⏹将每k个输入字符映射为一个矩阵,矩阵的每行对应在p个不同的时间间隔里不同天线上所发送的符号。
⏹2*2举例:
三、仿真设计
1、流程图
2、主要模块及参数
3、信源产生
⏹产生独立等概二进制信源
⏹Matlab函数:
randsrc()
⏹编码块长度:
40-6114(3GPPTS36.212Table5.1.3-3)
推荐值:
320,1024,2560,5120
利用randsrc()随机产生0与1的数,利用公式将其变成1与-1,即产生信源。
4、信道编码
Option1:
卷积码(3GPPTS25.2124.2.3.1)
根据要求,卷积码编码器为(3,1,8)编码器,G0=(001101111)转换为八进制为557;G1=(010110011)转换为八进制为663;G1=(011001001)转换为八进制为711.卷积码记忆长度为9.
5、调制
调制模块基本要求:
QPSK
QPSK调制的函数可以利用matlab函数库自带的QPSK函数进行编写。
但是由于QPSK是M=4进行映射的,所以将随机产生的信源利用reshape函数变成两列,即00映射成,01映射成,10映射成,11映射成。
解调时利用matlab自带的demodulate函数。
6、AWGN信道
Matlab实现:
randn()
信噪比与AWGN噪声的关系:
由于信源经过QPSK调制,相当于在两条坐标轴的平面(一条实数轴,一条虚数轴)每一个方向都有随机的高斯白噪声分布,然后各自乘以相应的幅度,将得出的噪声加入QPSK调制的信号里,得到的便是经过AWGN信道的信号。
7、输出统计
⏹误码率统计
⏹输出:
横坐标-SNREb/N0(Eb/N0vsEs/N0?
)
纵坐标-BER(误比特率),BLER(误块率)
⏹画图:
semilogy(x,y)
四、程序块设计
1、代码
[1]、MIMO:
SNR_dB=0:
1:
30;%信噪比围
LOOP=500;
%------------------------------------------
%--------------信源产生---------------------
%------------------------------------------
fori=1:
length(SNR_dB)
snr=10^(SNR_dB(i)/10);%信噪比转换
sgma=sqrt(8/snr/3);%噪声方差
error0=0;
error1=0;
error2=0;
error3=0;
fora=1:
LOOP
N=2560;%仿真序列长度
S=randsrc(1,N,[0,1]);%二进制序列信源产生n个随机数
%-------------------------------------------
%------------有信道编码----------------------
%-------------------------------------------
S00=convolutionalcode(S);
%--------------QPSK调制---------------------
s=QPSK(S00);
s0=zeros(1,3*N/4);%将调制后的信息奇偶拆分成两个信息以进行MIMO发射
s1=zeros(1,3*N/4);
forb1=1:
2:
(3*N/2)
s0(ceil(b1/2))=s(b1);
s1(ceil(b1/2))=s(b1+1);
end
N1=size(s0,2);
%--------有信道编码(2发2收)-----------------
h0=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));%设置信道冲激响应
h1=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));
h2=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));
h3=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));
%------接收到的信号(冲激响应与发送序列卷积)---
R0=h0.*s0+h1.*s1;%接收信号矢量(不含高斯噪声)
R1=-conj(s1).*h0+h1.*conj(s0);%移动通信P166
R2=h2.*s0+h3.*s1;
R3=-conj(s1).*h2+h3.*conj(s0);
%通过AWGN信道加入噪声后的冲击序列
r0=(R0+sgma.*(randn(1,N1)+1i*randn(1,N1)));%接收信号矢量(有噪声)
r1=(R1+sgma.*(randn(1,N1)+1i*randn(1,N1)));
r2=(R2+sgma.*(randn(1,N1)+1i*randn(1,N1)));
r3=(R3+sgma.*(randn(1,N1)+1i*randn(1,N1)));
s_0=conj(h0).*r0+h1.*conj(r1)+conj(h2).*r2+h3.*conj(r3);%STBC空时译码
s_1=conj(h1).*r0-h0.*conj(r1)+conj(h3).*r2-h2.*conj(r3);
forl0=1:
3*N/4%将接收到的信号合并
Y0(2*l0-1)=s_0(l0);
Y0(2*l0)=s_1(l0);
end
y0=DEQPSK(Y0);%QPSK解调
m0=viterbi(y0);%维特比译码
[n0,e0]=biterr(m0,S);%计算误比特率
error0=error0+n0;
%有信道编码2发1收
hr0=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));%瑞利信道函数
hr1=sqrt(0.5).*(randn(1,N1)+1i.*randn(1,N1));
Rr0=hr0.*s0+hr1.*s1;%接收信号矢量(不含高斯噪声)
Rr1=-conj(s1).*hr0+hr1.*conj(s0);
rN0=(Rr0+sgma.*(randn(1,N1)+1i*randn(1,N1