以下代码需要较高的性能,不然每运行一次就要花费1h或者2h;

仿真:2根发射天线,1根接收天线,信道系数为独立瑞利衰落;得到误符号率性能曲线。

仿真:2根发射天线,2根接收天线,信道为瑞利衰落,接收信号按照MRC合并,分别得到两个符号的接收信号,并解调。

仿真:2根发射天线,3根接收天线。

仿真:2根发射天线,4根接收天线

其中调制方式为QPSK

 

运行方式:在窗口输入kechengsheji(n,SNR,N_Receiver)

n为点数,要求很大,SNR为信噪比,N_Receive为接收天线个数,输出结果为误码率

仿真代码

function error_rate=kechengsheji(n,SNR,N_Receiver)

%______________________信源部分________________________%

 c_source=rand(n,1);

 c_source(c_source==1)=[];%剔除1,强制[0,0.5)和[0.5,1)等概率

 c_source(c_source<0.5)=-1;%等概率前提近似取等号,免去信源编码;双极性。

 c_source(c_source>=0.5)=1;

 n_deng=length(c_source);%重新数出个数

 if mod(n_deng,2) ~= 0

     c_source(1)=[];

     n_deng=n_deng-1;%强制c_source为偶数个

 end

 c_element=c_source;

 c_length=n_deng;%结构体c储存

 %

 %不进行信道编码,防止对误码性能产生影响

 %

 %_____________________________________________________%

 

 %____________________QPSK调制_________________________%

 %B_map=[1+1i 1-1i -1-1i -1+1i];%%%%B方式调制

 n_phase=c_length/2;

 c_IQ=reshape(c_element,n_phase,2);%串并转换

 c_phase=((c_IQ(:,1)*1i)+(c_IQ(:,2)));%相位映射

 %scatterplot(c_phase)

 B_jugle=[[1+1i;1+1i],[1+1i;1-1i],[1+1i;-1-1i],[1+1i;-1+1i], ...

          [1-1i;1+1i],[1-1i;1-1i],[1-1i;-1-1i],[1-1i;-1+1i], ...

          [-1-1i;1+1i],[-1-1i;1-1i],[-1-1i;-1-1i],[-1-1i;-1+1i], ...

          [-1+1i;1+1i],[-1+1i;1-1i],[-1+1i;-1-1i],[-1+1i;-1+1i]];

 

 %_____________________________________________________%

 

 %____________________天线发射_________________________%

 n_antenna=2;%发射天线数目为二

 n_each_antenna=n_phase/n_antenna;

 antenna=reshape(c_phase,n_each_antenna,n_antenna);

 c_STBC = cell(n_each_antenna,1);%预设大小

 %X=cell(n_each_antenna,1);

 for i=1:n_each_antenna

     c_STBC{i}=[antenna(i,:);[-1*conj(antenna(i,2)),conj(antenna(i,1))]];

     %X{i}=antenna(i,:)';

 end

 %_____________________________________________________%

 

 

 %______________________分集合并_MRC合并_____________________%

 R_comphase_s=zeros(2*n_each_antenna,1);

%  Alpha_s=zeros(n_each_antenna,N_Receiver);

 H_comphase_s=zeros(2*n_each_antenna,2);

 for k=1:N_Receiver

     [R_comphase,H_comphase]=pass_rei(n_each_antenna,c_STBC,SNR);

     R_comphase_s=R_comphase_s+R_comphase;

%      Alpha_s(:,k)=alpha;

     H_comphase_s(:,1)=H_comphase_s(:,1)+H_comphase(:,1);

     H_comphase_s(:,2)=H_comphase_s(:,2)+H_comphase(:,2);

 end

 R=cell(n_each_antenna,1);

 H=cell(n_each_antenna,1);

 for i=1:n_each_antenna

     odd=2*i-1;

     even=2*i;

     R{i}= [R_comphase_s(odd);R_comphase_s(even)];

     H{i}= [H_comphase_s(odd,:);H_comphase_s(even,:)];

 end

%  for i=1:n_each_antenna

%      R{i}= [R_comphase_s(2*i-1,:)*Alpha_s(i,:)';conj(R_comphase_s(2*i,:)*Alpha_s(i,:))']/sum(Alpha_s(i,:));

%      for k=1:N_Receiver

%          H{i}(1,:)=H_comphase_s

%      end

%  end

 

 %_____________________________________________________%

 

 

 

 %_________________________判决________________________%

 x=zeros(n_each_antenna,2);%定义大小

 for i=1:n_each_antenna

     jugle=[norm(R{i}-H{i}*[1+1i;1+1i]),norm(R{i}-H{i}*[1+1i;1-1i]),norm(R{i}-H{i}*[1+1i;-1-1i]),norm(R{i}-H{i}*[1+1i;-1+1i]), ...

     norm(R{i}-H{i}*[1-1i;1+1i]),norm(R{i}-H{i}*[1-1i;1-1i]),norm(R{i}-H{i}*[1-1i;-1-1i]),norm(R{i}-H{i}*[1-1i;-1+1i]), ...

     norm(R{i}-H{i}*[-1-1i;1+1i]),norm(R{i}-H{i}*[-1-1i;1-1i]),norm(R{i}-H{i}*[-1-1i;-1-1i]),norm(R{i}-H{i}*[-1-1i;-1+1i]), ...

     norm(R{i}-H{i}*[-1+1i;1+1i]),norm(R{i}-H{i}*[-1+1i;1-1i]),norm(R{i}-H{i}*[-1+1i;-1-1i]),norm(R{i}-H{i}*[-1+1i;-1+1i])];

     x(i,:)=B_jugle(:,jugle==min(jugle))';%%%按书本方式解调

 

 end  

 x=reshape(x,1,n_phase)';

 x_comp=x-c_phase;

 x_comp(x_comp~=0)=1;

 error_rate=sum(x_comp)/n_phase;%误码率

 %_____________________________________________________%

end

 

 

function [R_comphase,H_comphase]=pass_rei(n_each_antenna,c_STBC,SNR)

  %____________________过瑞利信道_______________________%

 %%r=cell(n_each_antenna,1);

 %%H=cell(n_each_antenna,1);

 n_each_antenna_c2=n_each_antenna*2;

 H_comphase=zeros(n_each_antenna_c2,2);

 %%R=cell(n_each_antenna,1);

 Noise=zeros(n_each_antenna_c2,1);

 R_comphase_nn=zeros(n_each_antenna_c2,1);%

 R_comphase=zeros(n_each_antenna_c2,1);

 P_noise=zeros(n_each_antenna_c2,1);

 alpha=zeros(n_each_antenna_c2,1);

 for i=1:n_each_antenna

     odd=2*i-1;

     even=2*i;

     chan_1=rayleighchan; %scatterplot(r_rayleigh)

     chan_2=rayleighchan;

     %%h=[chan_1.PathGains;chan_2.PathGains];

     h_comphase=[norm(chan_1.PathGains);norm(chan_2.PathGains)];%同相

     %%r{i}=c_STBC{i}*h;

     %%H{i}=[chan_1.PathGains,chan_2.PathGains;conj(chan_2.PathGains),-conj(chan_1.PathGains)];

     %%R{i}=[awgn(r{i}(1),SNR);conj(awgn(r{i}(2),SNR))]; %scatterplot(r_pro)

     %%Noise{i}= [R{i}(1);conj(R{i}(2))]- r{i};

     %%R_comphase(2*i-1)=c_STBC{i}(1,:)*h_comphase+Noise{i}(1);

     %%R_comphase(2*i)=conj(c_STBC{i}(2,:)*h_comphase+Noise{i}(2));

     R_comphase_nn(odd)=c_STBC{i}(1,:)*h_comphase;%

     R_comphase_nn(even)=c_STBC{i}(2,:)*h_comphase;%

    

     R_comphase(odd)=awgn(R_comphase_nn(odd),SNR);%同相过后的ri

     R_comphase(even)=awgn(R_comphase_nn(even),SNR);%

    

    

     %Noise{i}= [R_comphase(odd)-R_comphase_nn(odd);R_comphase(even)-R_comphase(even)];%

     Noise(odd)=R_comphase(odd)-R_comphase_nn(odd);

     Noise(even)=R_comphase(even)-R_comphase_nn(even);

    

     P_noise(odd)=norm(Noise(odd))^2;%噪声功率Nk

     P_noise(even)=norm(Noise(even))^2;

    

     R_comphase(even)=conj(R_comphase(even));

     %alpha(i)=norm([R_comphase(odd),R_comphase(even)])/P_noise(i);%alpha

     alpha(odd)=norm(R_comphase(odd))/P_noise(odd);%%正比于rk/Nk

     alpha(even)=norm(R_comphase(even))/P_noise(even);%

%     alpha(i)=norm(R_comphase_nn(odd));%奇 偶等大

    

     R_comphase(odd)=R_comphase(odd)*alpha(odd);

     R_comphase(even)=R_comphase(even)*alpha(even);

     H_comphase(odd,:)=[h_comphase(1),h_comphase(2)]*alpha(odd);

     H_comphase(even,:)=[h_comphase(2),-h_comphase(1)]*alpha(even);

 end

 %_____________________________________________________%

 %scatterplot(reshape(cell2mat(r),1,n_phase))

 %scatterplot(reshape(cell2mat(R),1,n_phase))

 %scatterplot(reshape(cell2mat(R_comphase),1,n_phase))

end

仿真图:

Alamouti空时码

仿真分析:

Alamouti码的矩阵描述

Alamouti空时码

Alamouti空时码

于是,得到r=Hc + n;

最大似然估计:Alamouti空时码

MIMO利用发送端、接收端同时使用多天线技术来抑制信道衰落,从而大幅提高了信道容量、抗衰落性能。

空时编码在不同天线发射的信号之间引入时域和空域相关,使得在接收端可以进行分级,不牺牲带宽的情况下获得更高的编码增益,有效提高无线传输系统的质量。

相关文章:

  • 2022-12-23
  • 2021-11-15
  • 2021-11-27
  • 2021-04-11
  • 2021-09-30
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-27
  • 2021-09-13
  • 2021-08-11
  • 2021-06-18
  • 2021-09-27
  • 2022-01-28
相关资源
相似解决方案