Skip to content

Convolutional Decoder (Viterbi)

__init__(G=np.array([[121, 91]]))

Inicializa o decodificador convolucional (algoritmo Viterbi), com base em uma tupla de polinômios geradores \(G\) que determinam a estrutura do decodificador.

\[ \begin{equation} \begin{split} G_0 &= 121_{10} \quad \mapsto \quad G_0 = [1, 1, 1, 0, 0, 1, 1] \\ G_1 &= 91_{10} \quad \mapsto \quad G_1 = [1, 1, 0, 1, 1, 0, 1] \end{split} \end{equation} \]

Parameters:

Name Type Description Default
G ndarray

Tupla de polinômios geradores \(G\).

array([[121, 91]])
Exemplo

pageplot

Referência:

https://rwnobrega.page/apontamentos/codigos-convolucionais/

AS3-SP-516-274-CNES (seção 3.1.4.4)

build_trellis()

Constroi a trelica do decodificador Viterbi.

Returns:

Name Type Description
trellis dict

Trelica do decodificador Viterbi.

decode(vt0, vt1)

Decodifica os bits de entrada \(v_t^{(0)}\) e \(v_t^{(1)}\), retornando os bits decodificados \(u_t\).

Parameters:

Name Type Description Default
vt0 ndarray

Bits de entrada do canal I.

required
vt1 ndarray

Bits de entrada do canal Q.

required

Returns:

Name Type Description
ut_hat ndarray

Bits decodificados.