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

📄 sftest.m

📁 是关于空时编码的nrs
💻 M
字号:
function STBC_OFDM_CSI()
%clc;

Nt=2;
Nr=1;
%---------------------------
% Data for STBC demodulation
%---------------------------
data_for_destbc = [];
data_qpsk = [1+j -1+j -1-j 1-j]/sqrt(2);
for k=1:4
    for m=1:4
        data_qpsk_block = [data_qpsk(k) data_qpsk(m)];
        data_for_destbc = [data_for_destbc;data_qpsk_block];
    end 
end

framebits=64;

for snr=20:20

    BitFrame=(2*round(rand(Nt,framebits/2))-1)/sqrt(Nt);
    QpskData=BitFrame(1,:)+j*BitFrame(2,:);

    sig = sqrt(0.5/(10^(snr/10)));                              %Varianza del rumore 
           
    n   =   sig * (randn(1,2,framebits/2) + j*randn(1,2,framebits/2));                    %Rumore

    H=rey(2,2);


    for k=1:2:framebits/2
          
            X=[QpskData(k) -conj(QpskData(k+1)); QpskData(k+1) conj(QpskData(k))];              %Coded data

            R1=H(1,:)*X(:,1) + n(1,1,k);
            R2=H(2,:)*X(:,2) + n(1,2,k);
            R2conj = conj(R2);
            Rconj=[R1;R2conj];

        H_n2l = [H(1,1) H(1,2);conj(H(2,2)) -conj(H(2,1))];

        minNorm = 10000;
        num_min = 0;
        for m=1:16
            dec_norm = norm(Rconj-H_n2l*data_for_destbc(m,:)')^2;
            if dec_norm<minNorm
                    minNorm = dec_norm;
                    num_min = m;
            end
         end
         deStbc = data_for_destbc(num_min,:)';

         pause
         if deStbc==X(:,1)
             disp('ok');
         else
             disp('No');
         end
     end
end        

⌨️ 快捷键说明

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