資源簡介
臟紙編碼及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
評論
共有 條評論