Skip to content

Codificador Convolutional

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

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

\[ \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} \]

O codificador convolucional, considerando \(G_0\) e \(G_1\) pode ser representado pelo diagrama de blocos abaixo.

pageplot

Parameters:

Name Type Description Default
G ndarray

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

array([[121, 91]])
Exemplo

pageplot

Referência:

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

CCSDS 131.1-G-2

calc_taps(poly)

Calcula os índices dos bits ativos (\('1'\)), ou taps, do polinômio gerador \(G_n\).

Parameters:

Name Type Description Default
poly int

Polinômio gerador \(G_n\) em formato binário.

required

Returns:

Name Type Description
taps int

Lista com os índices dos taps ativos.

calc_free_distance()

Calcula a distância livre \(d_{free}\) do código convolucional, definida como a menor distância de Hamming entre quaisquer duas sequências de saída distintas.

Returns:

Name Type Description
dist int

Distância livre \(d_{free}\) do codificador convolucional organizado com \(G\).

encode(ut)

Codifica uma sequência binária de entrada \(u_t\), retornando as sequências de saida \(v_t^{(0)}\) e \(v_t^{(1)}\). O processo de codificação pode ser representado pela expressão abaixo.

\[ \begin{equation} \begin{bmatrix} v_t^{(0)} & v_t^{(1)} \end{bmatrix} = \begin{bmatrix} u_{(t)} & u_{(t-1)} & u_{(t-2)} & u_{(t-3)} & u_{(t-4)} & u_{(t-5)} & u_{(t-6)} \end{bmatrix} \cdot \begin{bmatrix} G_{0} & G_{1} \end{bmatrix}^{T} \end{equation} \]
Sendo
  • \(v_t^{(0)}\) e \(v_t^{(1)}\): Canais de saída do codificador.
  • \(u_t\): Vetor de bits de entrada.
  • \(G_{0}\) e \(G_{1}\): Polinômios geradores do codificador.

Parameters:

Name Type Description Default
ut ndarray

Vetor de bits \(u_t\) de entrada a serem codificados.

required

Returns:

Name Type Description
tuple (ndarray, ndarray)

Tupla com os dois canais de saída \(v_t^{(0)}\) e \(v_t^{(1)}\).