📄 trellis.m
字号:
function [out, proba] = trellis(t, mp, m, tau, G)%trellis du codeur R=1/n0; G est la matrice des coeffs des polynomes generateurs%valeur de sortie: vecteur de longueur n0%mp et m prennent des valeurs entre 1 et pow2(M)K = size(G, 2);%constraint lengthn0 = size(G, 1);%code rate rho=1/n0M = K-1;%memory lengthstate_start = my_de2bi(mp-1, M, 'left-msb');state_finish = my_de2bi(m-1, M, 'left-msb');if ( ((t>=M) & (t<=(tau-M)) & (~any(state_start(1:end-1)-state_finish(2:end)))) | ...%all transitions are possible ((t<M) & (~any(state_finish(t+1:end)))) )%begin of trellis state = state_start;%initial state bit_in = state_finish(1); bits_out = []; for k=1:n0 bits_out = [bits_out xorsum([bit_in state].*G(k, :))]; end out = (bits_out - 0.5)*2; proba = 0.5;elseif ( (t>(tau-M)) & (~any(state_finish(1:(t-tau+M)))) & (~any(state_start(1:end-1)-state_finish(2:end))) )%end of trellis state = state_start;%initial state bit_in = state_finish(1); bits_out = []; for k=1:n0 bits_out = [bits_out xorsum([bit_in state].*G(k, :))]; end out = (bits_out - 0.5)*2; proba = 1;else out = []; proba = 0;end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -