?? interleaver.m
字號:
%%傳輸bit的交織, 將相鄰的信息bit分別映射到不相鄰的子載波上
function interleaved_bits=interleaver(out_bits)
global ofdm_para;
users=ofdm_para.Users; %得到用戶數(shù)
single_user_NumDataSubc=ofdm_para.SinUser_NumDataSubc; %一個用戶使用的數(shù)據(jù)子載波數(shù)
n_bits_per_sym=ofdm_para.Modulation_bits; %每個調制符號(子載波)占用的bit數(shù)
ofdm_bits=single_user_NumDataSubc*n_bits_per_sym; %一個用戶一個OFDM符號占的bit數(shù)
single_user_n_bits=size(out_bits,2); %一個用戶的數(shù)據(jù)流長度
num_symbols=single_user_n_bits/ofdm_bits; %OFDM符號數(shù)
idx=interleaver_pattern(ofdm_bits); %確定交織模式
intlvr_patt=ofdm_bits*ones(ofdm_bits,num_symbols);
intlvr_patt=intlvr_patt*diag(0:num_symbols-1);
intlvr_patt=intlvr_patt+repmat(idx.',1,num_symbols);
intlvr_patt=intlvr_patt(:).'; %確定一個時隙內(nèi)數(shù)據(jù)交織后的編號(位置)
interleaved_bits=zeros(users,single_user_n_bits);
for k=1:users
interleaved_bits(k,intlvr_patt)=out_bits(k,:);
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -