⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alamqpsk_test.m

📁 MIMO多天线收发 各种性能比较(BER曲线) 包括MMRC EGC SC Alamouti V-BLAST。信道为瑞利信道
💻 M
字号:
function ber_22=alamqpsk_test(snr2,Nr)

Nt=2;
Nr=Nr;
%p=p;
no_bit_sym=1;

bits=10000;

%iter=0;
toterr=0;
% while toterr<soglia
%     iter=iter+1;
    
 for i=1:bits
    a=rand;
    if(a<0.25)
        trans1(i)=1+j;
    elseif(a<0.5)
        trans1(i)=1-j;
    elseif(a<0.75)
        trans1(i)=-1+j;
    else
        trans1(i)=-1-j;
    end
    
        b=rand;
    if(b<0.25)
        trans2(i)=1+j;
    elseif(b<0.5)
        trans2(i)=1-j;
    elseif(b<0.75)
        trans2(i)=-1+j;
    else
        trans2(i)=-1-j;
    end
data1=trans1(i);
data2=trans2(i);
        %Channel
        H=rey(Nr,Nt);
        %AWGN
        sig=sqrt(2*0.5/(10^(snr2/10)));
        n=sig*(randn(Nr,Nt)+j*randn(Nr,Nt));
        
        X=[data1 -conj(data2);data2 conj(data1)];
        
        R=H*X+n;
        %Combiner
        s0=0;
        s1=0;
        for i=1:Nr
            s0=conj(H(i,1))*R(i,1)+H(i,2)*conj(R(i,2))+s0;
            s1=conj(H(i,2))*R(i,1)-H(i,1)*conj(R(i,2))+s1;
        end
        %Decoding
        Decoded1=0;
        Decoded2=0;
        if(real(s0)>0&imag(s0)>0)
            Decoded1=(1+j);
        elseif(real(s0)>0&imag(s0)<0)
            Decoded1=(1-j);
        elseif(real(s0)<0&imag(s0)>0)
            Decoded1=(-1+j);
        elseif(real(s0)<0&imag(s0)<0)
            Decoded1=(-1-j);
        end
        
        if(real(s1)>0&imag(s1)>0)
            Decoded2=(1+j);
        elseif(real(s1)>0&imag(s1)<0)
            Decoded2=(1-j);
        elseif(real(s1)<0&imag(s1)>0)
            Decoded2=(-1+j);
        elseif(real(s1)<0&imag(s1)<0)
            Decoded2=(-1-j);
        end
        decoded=[Decoded1 Decoded2];
         
%         dh=sqrt(2)*[1 -1]/2;
%         d11=((dh(1)-real(S(1)))^2+(imag(S(1)))^2);
%         d12=((dh(2)-real(S(1)))^2+(imag(S(1)))^2);
%         D1=[d11 d12];
%         
%         d21=((dh(1)-real(S(2)))^2+(imag(S(2)))^2);
%         d22=((dh(2)-real(S(2)))^2+(imag(S(2)))^2);
%         D2=[d21 d22];
%         %Decision
%         [scelta1,posizione1]=min(D1);
%         [scelta2,posizione2]=min(D2);
%         decoded=[dh(posizione1) dh(posizione2)];
        err_m1=((data1)~=(Decoded1));
        err_m2=((data2)~=(Decoded2));
        toterr=err_m1+err_m2+toterr;
     end
    %end

ber_22=toterr/(bits*2)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -