📄 t_mod_cod_intlv.m
字号:
% Interleaving,Coding and Mod received signal
% By Yuanye Wang
% CTIF,AAU
% yywang@kom.aau.dk
function [T_mod,T_sent,coded,intleav,fact1,real_len,raw_len,t] = ...
T_mod_cod_intlv(N,subN,B,P,Nsymbol,code_rate,rdstate,T_div,ps,state)
T_sent = cell(1,floor(N/subN)); coded = cell(1,floor(N/subN));
intleav = cell(1,floor(N/subN));T_mod = [];
t = cell(1,floor(N/subN));
for k = 1:floor(N/subN)
lens = subN*B(k)*Nsymbol;
if code_rate(k) == 2/3&&mod(floor(lens*code_rate(k)),2)~=0
raw_len(k) = floor(lens*code_rate(k))-1;
else
raw_len(k) = floor(lens*code_rate(k));
end
raw_bits = randint(1,raw_len(k));
T_sent{k} = raw_bits;
[coded{k},t{k},real_len(k)] = N_encoder(code_rate(k),raw_bits,lens);
if length(coded{k})==0
intleav{k} = [];
mod1 = zeros(1,subN*Nsymbol);
fact1(k) = 0;
else
intleav{k}=randintrlv(coded{k},rdstate);
mod1 = qmodulator2(intleav{k},2^B(k));
fact1(k) = sqrt(P(k)/pv(mod1));
end
tp = reshape(mod1,[],subN);
mod2 = tp.';
mod2 = mod2 *fact1(k);
T_mod = [T_mod;mod2];
end
T_temp = zeros(N,Nsymbol,T_div);
if state==5 || state == 7
for tx = 1:T_div
for k = 1:floor(N/subN)
if ps(k)~=tx
T_temp((k-1)*subN+1:k*subN,:,tx)=0;
else
T_temp((k-1)*subN+1:k*subN,:,tx)=T_mod((k-1)*subN+1:k*subN,:);
end
end
end
T_mod = T_temp;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -