MIMO系统检测仿真.docx_第1页
MIMO系统检测仿真.docx_第2页
MIMO系统检测仿真.docx_第3页
MIMO系统检测仿真.docx_第4页
MIMO系统检测仿真.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MIMO系统检测算法仿真 一、引言随着无线通信业务的发展,人们对数据率的要求越来越高,而传统通信方式通过使用某些信道编码方法已接近香农极限,要想再提高频谱利用率已经很困难。在这种情况下,多输入多输出(MIMO,Multiple Input Multiple Output)技术由于能同时带来分集增益和空间复用增益,成为未来移动通信系统的有力竞争方案。MIMO通信系统的检测器是MIMO技术实用过程中关键的一个模块,选择一种检测性能好而且便于硬件实现的检测方法是人们追求的目标。传统的MIMO检查算法主要有:最大似然(ML,Maximum Likelihood)检测算法、迫零(ZF,Zero Forcing)检测算法、最小均方误差(MMSE,Minimum Mean-Square Error)检测算法、V-BLAST(ZF-OSIC)检测算法和基于QR分解的检测算法等。此外,通过把在给定格中寻求最短向量的球形解码思想应用于MIMO系统,形成了MIMO系统的球形解码算法,在保持优良检测性能的同时,大大减小了计算复杂度。本次课程设计主要针对最大似然算法,迫零算法和最小均方误差算法进行仿真和性能仿真比较。2、 MIMO系统 MIMO通信系统可以定义为收发两端分别采用多个天线或阵列天线的无线通信系统。MIMO的多输入多输出是针对多径无线传输信道而言的。 考虑nT根发射天线nR根接收天线的MIMO系统,如下图所示,数据流被分成nT个子数据流,每个子流通过星座点映射后送给发射天线。分别从个发射天线发射出去,再经多径传输信道后由nR个接收天线接收,同时用接收到的信号进行信道估计得到信道参数值,然后通过一定的检测算法处理分解出子信息流。因为nT个发射天线同时发射子信息流,各发射信号只占用同一频带,并未增加带宽,达到提高频谱利用率的目的,同时多个并行空间也实现了更高的数据传输速率。 在接收端的一根天线会收到每根发送天线送出的信号,将所有接收天线收到的符号作为一个矢量表示,那么,是发射信号矢量,是维的矩阵,其元素是发射天线到接收天线的信道增益,是各分量独立且都服从分布的复白高斯噪声。3、 检测算法(一)ZF算法迫零检测是MIMO系统中常用的检测器,其核心思想是在接收端通过线性变换消除不同天线发射信号间的干扰。将MIMO系统的信号检测模型改写成如下形式: 其中是H的第i列。为了在接收端恢复而排除其他分量的干扰,可以使用矢量与作内积,其中满足如下条件: 将作为行向量组成一个矩阵,显然它应该满足,所以(假设H列满秩),此时发射信号估计值为 协方差矩阵为 从上面这些式子可以看出,经过迫零检测器之后得到的对发射信号的估计值,完全消除了不同天线发送的数据之间的干扰,在高信噪比条件下有较好的性能。特别地,当噪声项为0时,严格地有。但在低信噪比或者信道矩阵H接近奇异时,检测性能严重恶化。(二)MMSE算法最小均方误差检测则是基于最大化输出信干噪比(SINR,Signal-Interference -and-Noise Ratio)的考虑,在抑制噪声和消除干扰之间找到一个最佳的平衡点。MMSE检测的目标是找到估计值,使其与真实值的差异尽可能小。MMSE的目标函数如下所示 经过求解得,其中,此时估计量的协方差矩阵为 (三)ML检测算法 最大似然(ML)检测计算接收信号向量和所有可能的后处理向量之间的欧氏距离,并找到一个最小距离,即所有可能的发出的信号矢量中进行搜索:当所有发射向量等可能性时,ML算法达到最大后验概率检测的最佳性能,但它的复杂度随调制阶数和发射天线的数量增加而上升,计算度量复杂度随天线数呈指数上升。但因为它具有最佳的性能,尽管计算复杂度比较高,仍将其作为其他检测方法的参考。改进的ML算法检测可以将ML度量复杂度降低,但NTX大于3时复杂度仍然很高。4、 实验结果与分析通过MATLAB仿真,对ML, ZF, MMSE三种算法进行误比特率(BER)性能分析。假设信道是具有丰富散射环境的平坦瑞利信道,发射天线间距和接收天线间距足够大,接收端确知信道状态且能够保持精确同步,各个天线之间的信道参数为零均值单位方差独立分布的复高斯随机变量。采用BPSK调制,天线配置2x2,信噪比范围为025dB,发送符号数目为106。对于ML算法,分别考虑 s1 s2 = +1,-1+1,+1,-1,+1,-1,-1四种情况,从四组数值中找出最小值并记录所在位置,然后统计错误个数。对ZF算法,首先计算伪逆矩阵 G = inv(HH*H)*HH,然后将HH*H 的矩阵维数记为nTx x nTx,即2 x 2,并根据a b; c d 的逆1/(ad-bc)d -b;-c a求逆,然后根据接收端硬判决解码计算其统计错误。对于MMSE算法我们也是类似地计算W = inv(HH*H+sigma2*I)*HH,其中HH*H i的维数为2 x 2,并按照a b; c d=1/(ad-bc)d -b;-c a求逆,然后根据接收端硬判决解码计算其统计错误。应用ML, ZF, MMSE三种算法进行信号检测的BER性能曲线仿真图如下: 在同等的情况下,ML检测的性能优于其他两种,MMSE检测的性能次之,ZF检测的性能最差。ZF检测算法会可能带来对高斯噪声的放大,从而影响了检测的准确性,而MMSE检测算法是在ML的基础上试图消除检测算法对噪声的方法,很好的抑制噪声,得到了比ZF检测算法更好的性能。这两种算法均属于线性调制,采用的硬判决的方式。相比于ML检测来说,ML检测是理论上的最优,在实际的应用中随着天线数目的增加和更多进制调制方式的采用会使得ML检测的计算量成指数增加,设计更复杂。考虑计算的复杂度问题,性能最优的ML检测算法复杂度是指数形式,算法复杂度随着发射天线数和调制阶数指数增长,算法复杂度为O(SM),线性检测算法ZF和MMSE虽然性能较差,但计算复杂度主要集中在矩阵求逆,复杂度为O(M3)。五、总结MIMO系统接收端收到的信号在时间和频率上式重叠的,可能会发生码间干扰,检测难度远远高出传统的单输入单输出的系统,如何在接收端将发射信号分离并正确检测发射信号是MIMO系统的关键问题。这次课程设计比较了几种基本的MIMO检测算法,进行了误比特率性能分析和复杂度分析,认识了主要算法的优缺点。6、 部分代码发送端N = 106; % 发送的符号数目Eb_N0_dB = 0:25; % 信噪比范围nTx = 2;nRx = 2;for ii = 1:length(Eb_N0_dB) % 发送端 ip = rand(1,N)0.5; % 等概率产生0和1 s = 2*ip-1; % BPSK 调制 0 - -1; 1 - 0 sMod = kron(s,ones(nRx,1); % sMod = reshape(sMod,nRx,nTx,N/nTx); % 将矩阵转换为nRx,nTx,N/nTx 形式 h = 1/sqrt(2)*randn(nRx,nTx,N/nTx) + 1i*randn(nRx,nTx,N/nTx); % 瑞利衰落信道 n = 1/sqrt(2)*randn(nRx,N/nTx) + 1i*randn(nRx,N/nTx); % 0均值高斯白噪声y = squeeze(sum(h.*sMod,2) + 10(-Eb_N0_dB(ii)/20)*n;EndML % 当sHat1 = 1 1 1 -1 -1 -1 -1 1,从四组数值中找出最小值及所在位置 sHat1 = 1 1; sHat1 = repmat(sHat1,1 ,N/2); sHat1Mod = kron(sHat1,ones(nRx,1); sHat1Mod = reshape(sHat1Mod,nRx,nTx,N/nTx);%发送矩阵 zHat1 = squeeze(sum(h.*sHat1Mod,2) ; %接收矩阵 J11 = sum(abs(y - zHat1),1);%将两行加为一行 sHat2 = 1 -1; sHat2 = repmat(sHat2,1 ,N/2); sHat2Mod = kron(sHat2,ones(nRx,1); sHat2Mod = reshape(sHat2Mod,nRx,nTx,N/nTx); zHat2 = squeeze(sum(h.*sHat2Mod,2) ;J10 = sum(abs(y - zHat2),1); sHat3 = -1 1; sHat3 = repmat(sHat3,1 ,N/2); sHat3Mod = kron(sHat3,ones(nRx,1); sHat3Mod = reshape(sHat3Mod,nRx,nTx,N/nTx); zHat3 = squeeze(sum(h.*sHat3Mod,2) ;J01 = sum(abs(y - zHat3),1); sHat4 = -1 -1; sHat4 = repmat(sHat4,1 ,N/2); sHat4Mod = kron(sHat4,ones(nRx,1); sHat4Mod = reshape(sHat4Mod,nRx,nTx,N/nTx); zHat4 = squeeze(sum(h.*sHat4Mod,2) ; J00 = sum(abs(y - zHat4),1); rVec = J11;J10;J01;J00; jj dd = min(rVec,1); ref = 1 1; 1 0; 0 1; 0 0 ; ipHat = zeros(1,N); ipHat(1:2:end) = ref(dd,1); ipHat(2:2:end) = ref(dd,2); f = find(ip - ipHat);%发生错误所在位置 nErrML(ii) = size(find(ip - ipHat),2);%错误个数ZF算法 % 接收端求伪逆矩阵 G = inv(HH*H)*HH ,HH*H 的矩阵维数为nTx xnTx, 求a b; c d 逆 1/(ad-bc)d -b;-c a hCof = zeros(2,2,N/nTx); hCof(1,1,:) = sum(h(:,2,:).*conj(h(:,2,:),1); % d hCof(2,2,:) = sum(h(:,1,:).*conj(h(:,1,:),1); % a hCof(2,1,:) = -sum(h(:,2,:).*conj(h(:,1,:),1); % c hCof(1,2,:) = -sum(h(:,1,:).*conj(h(:,2,:),1); % b hDen = (hCof(1,1,:).*hCof(2,2,:) - (hCof(1,2,:).*hCof(2,1,:); % ad-bc hDen = reshape(kron(reshape(hDen,1,N/nTx),ones(2,2),2,2,N/nTx); % hInv = hCof./hDen; % inv(HH*H) hMod = reshape(conj(h),nRx,N); % HH yMod = kron(y,ones(1,2); % 接收信号矩阵化 yMod = sum(hMod.*yMod,1); % HH * y yMod = kron(reshape(yMod,2,N/nTx),ones(1,2); % yHat = sum(reshape(hInv,2,N).*yMod,1); % inv(HH*H)*HH*y % 接收端 硬判决解码计算统计错误 ipHat = real(yHat)0; nErrZF(ii) = size(find(ip- ipHat),2);MMSE算法%W = inv(HH*H+sigma2*I)*HH,HH*H i维数为nTx x nTx,求逆1/(ad-bc)d -b;-c a hCof = zeros(2,2,N/nTx) ; hCof(1,1,:) = sum(h(:,2,:).*conj(h(:,2,:),1) + 10(-Eb_N0_dB(ii)/10); % d hCof(2,2,:) = sum(h(:,1,:).*conj(h(:,1,:),1) + 10(-Eb_N0_dB(ii)/10); % a hCof(2,1,:) = -sum(h(:,2,:).*conj(h(:,1,:),1); % c hCof(1,2,:) = -sum(h(:,1,:).*conj(h(:,2,:),1); % b hDen = (hCof(1,1,:).*hCof(2,2,:) - (hCof(1,2,:).*hCof(2,1,:); % ad-bc hDen = reshape(kron(reshape(hDen,1,N/nTx),ones(2,2),2,2,N/nTx); hInv = hCof./h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论