www.pudn.com > CPM4TR.rar > gen_trellis.asv


function [state_from_input, state_from, to_state_output, to_state, phase_state] = gen_trellis(m, h, L) 
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_new,ak1,ak2] = dec_state(i); 
        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