核心提示:基于MATLAB的MIMO系统仿真与分析|Matlab代做...

近年来,人们对无线通信业务需求的爆炸式增长激励着研究工作者们在相关领域的各个层面不断寻求技术突破,期望以更完美的解决方案来满足日益苛刻的要求,那就是:更大的信道容量、更高的信号传送质量、更实时的信号处理以及更经济便携的终端设备。多入多出(MIMO)技术的出现是历史性的,是无线移动通信领域智能天线技术的重大突破。该技术能在有限的频谱上提供更高的传输速率和系统容量。MIMO技术可以利用信道提供的空间复用增益来提高信道的容量,同时,利用MIMO信道提供的空间分集增益也可以提高信道的可靠性,降低误码率。从一定意义说,MIMO技术仅仅是一个通信系统构架,优秀的构架还需要配合优秀的信息传送控制技术才能发挥应有的效能。空时码正是作为MIMO的一项核心技术而出现在了历史的舞台上。本文就是对结合STBC与VBLAST各自的优点组成新的MIMO系统进行了研究,主要工作如下,随着现代社会无线通信业务的发展,人们对通信的有效性和可靠性有了更高的要求。在任何时间、任何地点能够方便的进行语音、数据、图像和视频等信息的交流是人们对未来通信的美好愿望。为了达到对高性能通信的要求,近年来涌现出了很多高性能的技术,其中MIMO技术是未来无线通信实现高传输速率、高系统容量及提高传输质量的重要途径。本文所研究的STBC与V-BLAST相结合的空时系统正是MIMO技术中一个重要的组成部分。在对STBC与V-BLAST相结合的空时编码系统的研究中,本文结合理论分析与仿真验证,主要进行了以下的工作:

·研究了MIMO系统的基本概念、信道模型及其国内外研究的现状,分析推导了慢衰落平坦瑞利信道下的MIMO系统容量,并对影响MIMO系统容量的因素做了相关介绍。

·深入研究了空时编码的重要技术一分集技术的基本概念、原理及其分类。尤其着重研究了在多径衰落环境下的多径信号的分离和合并以及基于发射端的发射分集技术。

·在深入研究了排序算法以及在瑞利衰落信道下,STBC与VBLAST的编译码的基础上,提出了一种结合STBC与VBLST的MIMO系统模型,推导出了在接收端运用排序QR分解方法的结合STBC与VBLAST的MIMO系统的空时分组码和空时分层码的判决统计的表达式。

·使用MATLAB作为仿真工具,对提出的系统与基于传统算法的VBLAST系统和STBC与VBLAST结合的系统进行了仿真对比。

附录

·MIMO系统

clc;

clear;

N = 1000;

%噪声幅度

a = 1;

%帧数

FrameLim = 1000;

%发送天线

nT = 2;

%接收天线

nR = 2;

EbN0db = [-30 -27 -24 -21 -18 -15 -12 -9 -6 -3 0];

FRAME = N;

for i = 1:length(EbN0db)

fprintf('%10.2f',EbN0db(i));

end

for nEN = 1:length(EbN0db)

%DB值变Eb/No值

en = 10^(EbN0db(nEN)/10);% dB转为数值dB = 10*lg(nv)

sigma = sqrt(nT/en/10); %添加噪声

cber0(nEN) = 0;

cerrs0(nEN) = 0;

nframe = 0;

while nframe < FrameLim

nframe = nframe + 1;

data = randint(1, N);%出现0的概率为1/2的一个1*N维数组。

H = (randn(nR, nT) + j*randn(nR, nT))/sqrt(2*nR); %VMIMO信道模型

for k=1:N/nT

for m=1:nT

sMatrix0(m,k)= data(1,m+(k-1)*nT);%串并变换

end

end

sMatrix0 = 2 .* sMatrix0 - 1;%PSK调制

rMatrix0 =H * sMatrix0;%接收信号

nMatrix0 = sigma*(randn(nR,FRAME/nT)+j*randn(nR,FRAME/nT));% AWGN噪声

%===========================================================

rMatrix0 = rMatrix0 + nMatrix0; %接收信号

dMatrix0= H'* rMatrix0;%检测接收信号

dec1(1:nT,1:N/nT)=real(dMatrix0(1:nT,1:N/nT));%PSK解调

for k=1:N/nT

for m=1:nT

dec2(1,m+(k-1)*nT)=dec1(m,k); %并转串

end

end

dec = (sign(dec2)+1)/2;

cerr0 = length(find(dec(1:N) ~= data(1:N)));

cerrs0(nEN) = cerrs0(nEN) + cerr0;

end

cerrs0(nEN);

cber0(nEN) = cerrs0(nEN)/(N)/nframe;

end

semilogy(cber0,'o-r');axis([1,10,0,0.7]);grid on;

·时空编码

clc;

clear;

O=[1 -2 -3;2+j 1+j 0;3+j 0 1+j;0 -3+j 2+j];

Nt=2;%发送天线个数

Nr=2;%接收天线数量

timer=4;

Number_bit=5000;%发送符号数量

mod=4;

min_snr=3;%最小信噪比

max_snr=15;%最大信噪比

num_X=1;

num_bit_per_sym=log2(mod);%每个符号所有的比特数

for cc_ro=1:timer

for cc_co=1:Nt

num_X=max(num_X,abs(real(O(cc_ro,cc_co))));

end

end

co_x=zeros(num_X,1);

for con_ro=1:timer

for con_co=1:Nt

if abs(real(O(con_ro,con_co)))~=0

delta(con_ro,abs(real(O(con_ro,con_co))))=sign(real(O(con_ro,con_co)));

epsilon(con_ro,abs(real(O(con_ro,con_co))))=con_co;

co_x(abs(real(O(con_ro,con_co))),1)=co_x(abs(real(O(con_ro,con_co))),1)+1;

eta(abs(real(O(con_ro,con_co))),co_x(abs(real(O(con_ro,con_co))),1))=con_ro;

coj_mt(con_ro,abs(real(O(con_ro,con_co))))=imag(O(con_ro,con_co));

end

end

end

eta=eta.';

eta=sort(eta);

eta=eta.';

for SNR=min_snr:max_snr

clc

disp('Wait until SNR=');disp(max_snr);

SNR

n_err_sym=0;

n_err_bit=0;

graph_inf_sym(SNR-min_snr+1,1)=SNR;

graph_inf_bit(SNR-min_snr+1,1)=SNR;

for con_sym=1:Number_bit

bi_data=randint(num_X,num_bit_per_sym);

de_data=bi2de(bi_data);

data=pskmod(de_data,mod,0,'gray');

H=randn(Nt,Nr)+j*randn(Nt,Nr);

XX=zeros(timer,Nt);

for con_r=1:timer

for con_c=1:Nt

if abs(real(O(con_r,con_c)))~=0

if imag(O(con_r,con_c))==0

XX(con_r,con_c)=data(abs(real(O(con_r,con_c))),1)*sign(real(O(con_r,con_c)));

else

XX(con_r,con_c)=conj(data(abs(real(O(con_r,con_c))),1))*sign(real(O(con_r,con_c)));

end

end

end

end

H=H.';

XX=XX.';

snr=10^(SNR/10);

Noise=(randn(Nr,timer)+j*randn(Nr,timer));

Y=(sqrt(snr/Nt)*H*XX+Noise).';

H=H.';

for co_ii=1:num_X

for co_tt=1:size(eta,2)

if eta(co_ii,co_tt)~=0

if coj_mt(eta(co_ii,co_tt),co_ii)==0

r_til(eta(co_ii,co_tt),:,co_ii)=Y(eta(co_ii,co_tt),:);

a_til(eta(co_ii,co_tt),:,co_ii)=conj(H(epsilon(eta(co_ii,co_tt),co_ii),:));

else

r_til(eta(co_ii,co_tt),:,co_ii)=conj(Y(eta(co_ii,co_tt),:));

a_til(eta(co_ii,co_tt),:,co_ii)=H(epsilon(eta(co_ii,co_tt),co_ii),:);

end

end

end

end

RR=zeros(num_X,1);

for ii=1:num_X

for tt=1:size(eta,2)

for jj=1:Nr

if eta(ii,tt)~=0

RR(ii,1)=RR(ii,1)+r_til(eta(ii,tt),jj,ii)*a_til(eta(ii,tt),jj,ii)*delta(eta(ii,tt),ii);

end

end

end

end

re_met_sym=pskdemod(RR,mod,0,'gray');

re_met_bit=de2bi(re_met_sym);

re_met_bit(1,num_bit_per_sym+1)=0;

for con_dec_ro=1:num_X

if re_met_sym(con_dec_ro,1)~=de_data(con_dec_ro,1)

n_err_sym=n_err_sym+1;

for con_dec_co=1:num_bit_per_sym

if re_met_bit(con_dec_ro,con_dec_co)~=bi_data(con_dec_ro,con_dec_co)

n_err_bit=n_err_bit+1;

end

end

end

end

end

Perr_sym=n_err_sym/(num_X*Number_bit);

graph_inf_sym(SNR-min_snr+1,2)=Perr_sym;

Perr_bit=n_err_bit/(num_X*Number_bit*num_bit_per_sym);

graph_inf_bit(SNR-min_snr+1,2)=Perr_bit;

end

x_sym=graph_inf_sym(:,1);

y_sym=graph_inf_sym(:,2);

subplot(211);

semilogy(x_sym,y_sym,'r-*');

x_bit=graph_inf_bit(:,1);

y_bit=graph_inf_bit(:,2);

subplot(212);

semilogy(x_bit,y_bit,'b-*');

·STBC与VBLAST结合的MIMO系统

clear;

clc;

min_se = 0;

max_se = 15;

se = 5;

BlockSize = 2^8;

BlocksPerEnergy = 20;

SamplingRate = 1;

WGNPower = 1;

RayleighParam = 1;%RayleighParam瑞利信道参数

Tx=[2];

Rx=[2];

EnergiesdB = 10.*log10((10.^(min_se./10))./WGNPower):se:10.*log10((10.^(max_se./10))./WGNPower);

Energies = WGNPower*10.^(EnergiesdB./10);

for a=1:size(Tx,2)

Transmitters = Tx(a);

Receivers=Rx(a);

for ee = 1:size(Energies,2)

Eb = Energies(ee)/Transmitters;

for bb=1:BlocksPerEnergy

disp(['Eb = ',int2str(Energies(ee)),'; Block ',int2str(bb)]);

RayleighMat = RayleighParam^2*randn (Receivers,Transmitters)

+ j*RayleighParam^2*randn(Receivers,Transmitters);

A = randint(Transmitters,BlockSize,16);

B = mod16qam (A,1,SamplingRate,Eb,Transmitters)';

noise = (WGNPower).*randn(size(RayleighMat*B)) + j*(WGNPower).*randn(size(RayleighMat*B));

C = RayleighMat*B + noise;

k = [];

H = RayleighMat;

r=C;

for tt=1:Transmitters

% find best signal

G=pinv(H);

normG = sum(abs(G).^2,2);

normG(k) = inf;

k(tt) = find(normG == min(normG));

w = G(k(tt),:) ;

y = w*r;

[E(k(tt),:),Eb_rec(k(tt))] = demod16qam (y,1,SamplingRate,Transmitters); % Demodulate

% nulling starts here

r = r - H(:,k(tt))*(mod16qam (E(k(tt),:),1,SamplingRate,Eb_rec(k(tt)),Transmitters))';

H(:,k(tt)) = zeros(size(H(:,k(tt))));

end

SER(:,bb) = 1-sum(A==E,2)/size(A,2);% Measure BER per T-R pair.

end

p = mean(SER,2);

q = mean(p,1);

NC_ESER(a,ee)=mean(mean(SER,2),1);

SER=[];

end

end

semilogy(EnergiesdB,NC_ESER(1,:),'r-*');

基于matlab的mimo仿真,基于MATLAB的MIMO系统仿真与分析|Matlab代做相关推荐

  1. matlab飞行数据仿真,基于MATLAB的飞行仿真

    收稿日期: 2005 - 05 - 15 第 23卷 第 06期 计 算 机 仿 真 2006年 06月 文章编号: 1006 - 9348 (2006) 06 - 0057 - 05 基于 MATL ...

  2. 基于matlab的msk仿真,基于MATLAB的MSK系统原理仿真分析

    <基于MATLAB的MSK系统原理仿真分析>由会员分享,可在线阅读,更多相关<基于MATLAB的MSK系统原理仿真分析(39页珍藏版)>请在读根文库上搜索. 1.分类号 密级 ...

  3. 基于matlab的msk仿真,基于MATLAB的MSK系统的仿真

    基于MATLAB的MSK系统的仿真Tag内容描述: 1.基于MATLAB的MSK系统的仿真设计1绪论11数字通信的发展通信按照传统的理解就是信息的传输与交换,为了传递消息,各种消息需要转换成电信号,消 ...

  4. 基于matlab的信道编码仿真,基于matlab的信道编码仿真(可编辑).doc

    基于matlab的信道编码仿真(可编辑).doc 基于matlab的信道编码仿真 Abstract With the rapid development of communication techno ...

  5. matlab抽样定理的仿真,基于MATLAB的抽样定理仿真研究

    通信中,常常需要将模拟信号进行数字化.数字化的第一步就是抽样,抽样是通信理论中的一个非常重要的定理,是模拟信号数字化的理论依据.抽样是对时间连续的信号隔一定的时间间隔T抽取一个瞬时样值.实际抽样从数学 ...

  6. 基于matlab的64QAM,通信调制体制设计之64QAM性能分析MATLAB仿真及代码

    通信调制体制设计之64QAM性能分析MATLAB仿真及代码 通信调制体制设计之64QAM性能分析MATLAB仿真及代码 任务背景 弗雷泽岛旅游经理在审查您之前建立无线链路任务的解决方案时,正在研究使用 ...

  7. 基于matlab信道均衡仿真,基于MATLAB的数字自适应信道均衡器仿真研究.doc

    摘要:科技的迅速发展带动了我们生活中各个领域的进步,通信领域也不例外.在基带传输的通信系统中,实际波形不可避免的会发生失真,因为时变通信质量与传输速度的主要干扰因素是码间串扰ISI.信道均衡技术[2] ...

  8. 【Matlab 控制】仿真含时滞多智体一致性分析,附代码

    Matlab 仿真含时滞多智体一致性分析,附代码 系统结构如下图所示: clear; clc; % 2014_多智能体网络的一致性问题研究_纪良浩 % 此为Paper中的示例代码 % 例2.1: A ...

  9. CDMA直接序列扩频系统仿真和分析——matlab实现

    目录 一.实习目的及要求 目的: 要求: 二.实习选题的背景及目标 背景: 目标: 三.设计方案 四.实习环境与主要步骤描述 实验环境: 实验步骤: 五.实习的结果与讨论 结论: 待解答的问题: 实验 ...

最新文章

  1. SCI写作常用句式总结,帮你迅速提升paper档次
  2. 橡皮筋进度条ElasticProgressBar
  3. fluent计算进出口的流量差
  4. sutton 强化学习 中文版pdf_互联网数据驱动力简书-《数据推动力-创造数据文化》免费pdf分享...
  5. 变量的比较之equals 与 == 的区别
  6. jQuery中的end()
  7. python函数isdisjoint方法_Python学习之---Python中的内置函数(方法)(更新中。。。)...
  8. win10卸载电脑管家就蓝屏_新电脑WIN10出现蓝屏 系统重装也不行
  9. Spring面试问题和答案
  10. jdk api 1.8 中文版 下载
  11. BeX5使用疑难总结
  12. 格式化小数(去尾法,不四舍五除)
  13. 使用html语言制作表格步骤,HTML表格标记教程(1):制作表格
  14. 移动硬盘在电脑上显示为本地磁盘并且出现打不开的情况
  15. CentOS-7磁盘扩容之殇
  16. HDOJ---1431 素数回文[素数筛选+ltoa函数(将长整形转换成字符数组)+打表]
  17. 分布式存储系统——《Neo4j》
  18. 某程序员哀叹:做码农真的很悲哀,有的35岁就没人要了
  19. smart-link monitor-link
  20. c语言什么是测试环境,vscode搭建与测试c语言运行环境

热门文章

  1. 扎拉赞恩 服务器 微信群,魔兽8.0剧透 回归的扎拉赞恩与沃金的骨灰
  2. keras导入weights方式
  3. ssh开启图形界面_【工具大道】ssh登录Linux服务器,并显示图形化界面
  4. HTML / CSS / JS 编程入门 —— 使用 Lightly 制作可切换主题的简单网页
  5. UWB DW1000 TWR测距定位功能实现
  6. Typora 常用快捷键
  7. 神经网络 和 NLP —— 语言模型和词向量
  8. c语言中!与~的区别
  9. C语言 键盘编码 及 用法
  10. 安卓机如果相册不选图片就退出_微商相册如何在「多台设备登录」?