• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: matlab  

资源简介

脏纸编码及TH编码,一张纸先写上字(对第一个用户的信息),然后再在这张脏纸上再写字(可能是第二个用户的信息)。怎么在利用这张纸让两个用户都能看到自己所需要的信息。 dirty paper coding指信息发送前,发射机已了解了信道的基本情况,通过在发射端处理信号,使接收机在接受信号时可以认为传输不存在干扰,从而增加了多输入多输出系统(MIMO)的总容量。dirty paper coding为非线性编码。

资源截图

代码片段和文件信息

% Dirty_or_TH_precoding.m

%MIMO-OFDM Wireless Communications with MATLAB㈢   Yong Soo Cho Jaekwon Kim Won Young Yang and Chung G. Kang
%?2010 John Wiley & Sons (Asia) Pte Ltd

clear all; clf
mode = 0; % Set to 0/1 for Dirty/TH precoding 
mode1 = 1;
mod_order=2;
N_frame=10; % Number of frames in a packet 1 frame=4 symbols 
N_packet=200; % Number of packets
b=2; % Number of bits per QPSK symbol
NT=4; N_user=10; N_act_user=4; I=eye(N_act_userNT); 
N_pbits = N_frame*NT*b; % Number of bits in a packet
N_tbits = N_pbits*N_packet; % Number of total bits
SNRdBs=[0:2:20]; sq2=sqrt(2);
for i_SNR=1:length(SNRdBs)
   SNRdB = SNRdBs(i_SNR); N_ebits = 0;N_ebits1 = 0; rand(‘seed‘1); randn(‘seed‘1);
   sigma2 = NT*0.5*10^(-SNRdB/10); sigma = sqrt(sigma2);
   %------------- Transmitter ----------------
   for i_packet=1:N_packet
      msg_bit = randi([01]1N_pbits); % Bit generation
      symbol = perm_modulation(msg_bitmod_order).‘;
      x = reshape(symbolNTN_frame); 
      H = (randn(N_userNT)+j*randn(N_userNT))/sq2;
      %----- user selection ----------
      Combinations = nchoosek([1:N_user]N_act_user)‘;
      for i=1:size(Combinations2)
         H_used = H(Combinations(:i):);
         [Q_temp R_temp] = qr(H_used);
         %diagonal entries of R_temp are real
         minimum_l(i) = min(diag(R_temp));
      end
      [max_min_lIndex] = max(minimum_l);
      H_used = H(Combinations(:Index):);
      [Q_tempR_temp] = qr(H_used‘);
      L=R_temp‘; Q=Q_temp‘;
%Dirty
      symbol_hat= dorth(modesigmaxLQ H_usedN_act_userN_frameNT);
      demapped = perm_demod(symbol_hatmod_order);      
      N_ebits = N_ebits + sum(sum(msg_bit~=demapped));
%TH      
      symbol_hat1= dorth(mode1sigmaxLQ H_usedN_act_userN_frameNT);
      demapped1 = perm_demod(symbol_hat1mod_order);      
      N_ebits1 = N_ebits1 + sum(sum(msg_bit~=demapped1));
   end
   BER(i_SNR) = N_ebits/N_tbits;
   BER1(i_SNR) = N_ebits1/N_tbits;
end
semilogy(SNRdBsBER‘b-o‘)hold on;
semilogy(SNRdBsBER1‘r-x‘) grid on;
legend(‘Dirty‘‘TH‘);
xlabel(‘SNR (dB)‘);
ylabel(‘BER‘);
hold on;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-04-06 16:54  Dirty or TH\
     文件        2159  2020-03-31 15:38  Dirty or TH\Dirty_or_TH_precoding.m
     文件         840  2020-03-31 15:25  Dirty or TH\dorth.m
     文件         295  2010-08-25 02:12  Dirty or TH\modulo.m
     文件        1774  2020-03-03 13:33  Dirty or TH\perm_demod.m
     文件        1234  2020-03-03 13:18  Dirty or TH\perm_modulation.m

评论

共有 条评论