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
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. |