• 大小: 7KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: mimo  

资源简介

很好的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);%结果是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

评论

共有 条评论