clc;
clear;
close all;
warning off;RandStream.setDefaultStream(RandStream.create('mt19937ar','seed',1));
%定義2*2天線
M = 2;
N = 2;
% Pt = 14;%發(fā)射功率
% Gt = 64;%發(fā)送天線的增益
% Gr = 64;%接收天線的增益
% R = 0.6;%小區(qū)半徑
% Phatloss = 128.1 + 37.6*log10(R);%路徑損耗
% Shadowfading = 8;%陰影衰落
% PN = 5;%噪聲功率
% SNRs = Pt + Gt + Gr - Phatloss - Shadowfading - PN;
SNRs = 10;
tc = 10;
Num_user = 24;
sel = 1;%1,2,3,4,選擇四種不同的方法進(jìn)行仿真
sel2 = 0;%0直接出圖,1進(jìn)行逐個(gè)仿真if sel2 == 1for j=1:Num_userj%計(jì)算第一個(gè)用戶(hù)的相關(guān)值In_index = zeros(1,10*j);though_Output = zeros(1,10*j);though_Input = zeros(1,10*j);SNR = SNRs*rand(1,10*j);%調(diào)用調(diào)度函數(shù)if sel == 1[H,number] = func_No_Scheduling(10*j,M,N);endif sel == 2[H,number] = func_Random_Paring_Scheduling(10*j,M,N);end if sel == 3[H,number] = func_Orthogonal_Paring_Scheduling(10*j,M,N);end if sel == 4[H,number] = func_Determinant_Paring_Scheduling(10*j,M,N);end %基于MMSE的接收 [M,Nes] = func_MMSE_receiver(H,SNR(number));sirer = zeros(1,10*j);sirer(number) = log2(1+Nes);[though_Output,indexout,uenow]=func_calc(sirer,though_Input,tc,In_index,number); though_Input = though_Output;In_index = indexout;S(1) = sum(log2(1+Nes));%計(jì)算其余用戶(hù)的相關(guān)值for k=2:10*jM = 2;H = zeros();%調(diào)用調(diào)度函數(shù) if sel == 1[H,number] = func_No_Scheduling(10*j,M,N);endif sel == 2[H,number] = func_Random_Paring_Scheduling(10*j,M,N);end if sel == 3[H,number] = func_Orthogonal_Paring_Scheduling(10*j,M,N);end if sel == 4[H,number] = func_Determinant_Paring_Scheduling(10*j,M,N);end %基于MMSE的接收 [M,Nes] = func_MMSE_receiver(H,SNR(number));sirer = zeros(1,10*j);sirer(number) = log2(1+Nes);[though_Output,indexout,uenow]=func_calc(sirer,though_Input,tc,In_index,number);though_Input = though_Output;In_index = indexout;S(k) = sum(log2(1+Nes));endfair(j) = sum(though_Output)^2/(length(though_Output)*sum(though_Output.^2));%計(jì)算信道容量SNR_Linear = 10^(SNRs/10);Capacity(j) = 0.5 * log10(1 + (SNR_Linear * sum(abs(fair(j))))); end%根據(jù)信道容量計(jì)算CDF值CDFs=func_CDF(Capacity,Num_user);if sel == 1save data0.mat CDFsendif sel == 2save data1.mat CDFsend if sel == 3save data2.mat CDFsend if sel == 4save data3.mat CDFsend
elseload data0.matfigureplot(1:0.5:12,CDFs,'k','LineWidth',2);grid onhold on;load data1.matplot(1:0.5:12,CDFs,'b','LineWidth',2);grid onhold on;load data2.matplot(1:0.5:12,CDFs,'r','LineWidth',2);grid onhold on;load data3.matplot(1:0.5:12,CDFs,'g','LineWidth',2);grid onhold on;axis([1,12,0,1]);legend('Receive Diverse','Random Pairing','Orthogonal Pairing','Determinant Pairing');xlabel('Thoughout');ylabel('CDF');
end
這里,主要是對(duì)論文最后的四個(gè)圖進(jìn)行仿真,下面一一對(duì)四個(gè)圖的仿真進(jìn)行介紹:
Figure3:
??? 下面在MATLAB中給出這個(gè)圖的仿真:
??? 從上面的仿真結(jié)果可以看到,采用行列式配對(duì)的方法后的系統(tǒng)容量大于采用正交配對(duì)后的系統(tǒng)容量大于隨機(jī)配對(duì)后的信道容量,而直接傳輸方法的系統(tǒng)容量最小。
Figure4:
??? 下面在MATLAB中給出這個(gè)圖的仿真及對(duì)應(yīng)的分析:
??? 從上面的仿真結(jié)果可以看到,配對(duì)的PF方法的容量大于配對(duì)的RR方法的容量大于一般PF方法大于一般RR方法。
Figure5:
??? 下面在MATLAB中給出這個(gè)圖的仿真及對(duì)應(yīng)的分析:
??? 從上面的仿真結(jié)果可知,當(dāng)用戶(hù)到達(dá)率標(biāo)高的時(shí)候,PF算法具有最大的丟包率,其次為RR算法,然后是配對(duì)后的PF算法,配對(duì)后的RR算法丟包率最低。
Figure6:
??? 下面在MATLAB中給出這個(gè)圖的仿真及對(duì)應(yīng)的分析:
從上面的仿真結(jié)果可知,采用全配對(duì)的方法,可以獲得較大的數(shù)據(jù)吞吐量,但是其數(shù)據(jù)丟失率也較大,所以設(shè)計(jì)了基于SINR的配對(duì)算法,這樣可以根據(jù)實(shí)際的噪聲等干擾因素的影響來(lái)進(jìn)行合理的配對(duì)。由于仿真較慢,所以仿真的點(diǎn)數(shù)較少,所以看起來(lái)不是很平滑。
A01-39
總結(jié)
以上是生活随笔為你收集整理的【LTE】LTEMIMO系统的MATLAB仿真的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。