資源簡介
很好的mimo仿真程序
for con_ro=1:co_time %Compute delta,epsilon,eta and conj matrices
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
代碼片段和文件信息
%------------------------------------------------------------------------
%NOTES:
%About?entering?matrix?O:
%--?O?is?Tp*Nt?matrixas?default?4*3?complex?orthogonal?is?defined?(rate?3/4).
%for?[x1?-x2?-x3;x2*?x1*?0;x3*?0?x1*;0?-x3*?x2*]?-----enter------>?O=[1?-2?-3;2+j?1+j?0;3+j?0?1+j;0?-3+j?2+j];
%--?Alamouti?Scheme:?[x1?x2;-x2*?x1*]?-----enter------>?O=[1?2;-2+j?1+j];
%--?A?real?orthogonal:?[x1?x2;-x2?x1]?-----enter------>?O=[1?2;-2?1];
%--?For?real?orthogonal?matrices?define?M_psk=2;?as?real?signal?constellation.
%--?O=[1];?is?uncoded?(no?diversity).
%--?In?this?program?entries?of?O?cannot?be?like?“a1*x1[*]+a2*x2[*]+...+an*xn[*]“?only?they?can?be?like?“x1?or?-x1?or?x1*?or?-x1*“.
%------------------------------------------------------------------------
clear?all
O=[1?-2?-3;2+j?1+j?0;3+j?0?1+j;0?-3+j?2+j];%非正交???????????????????????????%Complex?or?Real?Orthogonal?Matrix?**define?this**??
Nt=size(O2);???????%???4??????????????????????????????????????????????%Number?of?Transmit?antennas
co_time=size(O1);??%???3??????????????????????????????????????????????%Block?time?length
Nr=1;????????????????????????????????????????????????????????????????%Number?of?Receive?antennas????????**define?this**
Nit=100000;??????????????????????????????????????????????????????????%Number?of?repeates?for?each?snr???**define?this**
M_psk=4;?????????????????????????????????????????????????????????????%M-PSK??constellationM_psk=2^k????**define?this**
snr_min=3;???????????????????????????????????????????????????????????%Min?snr?range?for?simulation??????**define?this**
snr_max=15;??????????????????????????????????????????????????????????%Max?snr?range?for?simulation??????**define?this**
graph_inf_bit=zeros(snr_max-snr_min+12);????????????????????????????%Plot?information
graph_inf_sym=zeros(snr_max-snr_min+12);????????????????????????????%Plot?information
num_X=1;
num_bit_per_sym=log2(M_psk);%結(jié)果是2?
for?cc_ro=1:co_time
????for?cc_co=1:Nt
????????num_X=max(num_Xabs(real(O(cc_rocc_co))));%?
????end
end
co_x=zeros(num_X1);
for?con_ro=1:co_time?????????????????????????????????????????????????%Compute?deltaepsiloneta?and?conj?matrices
????for?con_co=1:Nt
????????if?abs(real(O(con_rocon_co)))~=0?%?
????????????delta(con_ro?abs(real(O(con_rocon_co))))=sign(real(O(con_rocon_co)));%元素賦值操作,每次對一個元素賦值,下同
????????????epsilon(con_roabs(real(O(con_rocon_co))))=con_co;
????????????co_x(abs(real(O(con_rocon_co)))1)=co_x(abs(real(O(con_rocon_co)))1)+1;
????????????eta(abs(real(O(con_rocon_co)))co_x(abs(real(O(con_rocon_co)))1))=con_ro;
????????????coj_mt(con_roabs(real(O(con_rocon_co))))=imag(O(con_rocon_co));
????????end
????end
end
eta=eta.‘;???????????????????????????????????????????????????????????%Sort?is?not?necessary
eta=sort(eta);
eta=eta.‘;
for?SNR=snr_min:snr_max??????????????????????????????????????????????%Start?simulation
????clc
????disp(‘Wait?until?SNR=‘);disp(snr_max);
????SNR
????n_err_sym=0;
????n_er
- 上一篇:基于MATLAB計步器算法研究
- 下一篇:雙站測角交叉定位GDOP推導與程序
評論
共有 條評論