📄 gen_trellis.m
字号:
function [state_from_input, state_from, to_state_output, to_state, phase_state] = gen_trellis(m, h, L)
p = 2/h;
to_state = zeros(p,m,m,m,L);
to_state_output = zeros(p,m,m,m);
state_from = zeros(p,m,m,m,L);
state_from_input = zeros(p,m,m,m);
phase_state = (1 : p);
for phk = 1:p
for ak2 = 1:m
for ak1 = 1:m
for ak = 1:m
phk_new = mod( phk-1 + 2*(ak2-1)-(m-1),p)+1;
to_state(phk,ak2,ak1,ak,:) = [phk_new,ak1,ak];
to_state_output(phk,ak2,ak1,ak) = ak - 1;
end;
end;
end;
end;
for a = 1:p
for b = 1:m
for c = 1:m
d = 1;
for i = 1:p
for j = 1:m
for k = 1:m
for l = 1:m
if(reshape(to_state(i,j,k,l,:),1,3) == [a,b,c])
state_from(a,b,c,d,:) = [i,j,k];
state_from_input(a,b,c,d) = l;
d = d + 1;
end;
end;end;end;end;
end;end;end;
%p = 2/h;
%state_num = p * m^(L-1);
%input_sym_num = m;
%
%to_state = zeros(state_num, input_sym_num);
%to_state_output = zeros(state_num, input_sym_num);
%phase_state = zeros(state_num, input_sym_num);
%state_from = zeros(state_num, input_sym_num); % State transition matrix
%state_from_input = zeros(state_num, input_sym_num); % State transition matrix corresponding input
%
%
%for i = 1:state_num
% for ak = 1:m
% phk = fix((i-1)/(m^2)) + 1;
% ak1 = fix( mod(i-1,m^2)/m ) + 1;
% ak2 = fix( mod(mod(i-1,m^2),m)) + 1;
% phk_new = mod( phk-1 + 2*(ak2-1)-(m-1),p)+1;
% to_state(i,ak) = (phk_new-1)*m^2 + (ak-1)*m + ak1;
% to_state_output(i,ak) = ak - 1;
% end;
%end;
%
%phase_state = (0 : p - 1);
%
%for k = 1 : state_num
% l = 1;
% for i = 1 : state_num
% for j = 1 : input_sym_num
% if to_state(i, j) == k
% state_from(k, l) = i;
% state_from_input(k, l) = j - 1;
% l = l + 1;
% end
% end
% end
%end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -