Esta coluna contém o conhecimento básico de teoria e codificação da informação, organizado por pontos de conhecimento e pode ser usado como referência para ensino ou aprendizagem. A versão markdown foi arquivada no [repositório do Github: https://github.com/timerring/information-theory ] ou na conta pública [AIShareLab] para responder ao Information Theory .
Diretório de artigos
Noções básicas de código convolucional
Códigos de bloco—códigos sem memória
Códigos Convolucionais - Códigos de Memória
- Ser capaz de memorizar os conceitos básicos de códigos convolucionais;
- Capaz de desenhar o codificador do código convolucional de acordo com o vetor de conexão e codificá-lo;
- Capaz de desenhar o diagrama de transição de estado e diagrama de treliça do código convolucional de acordo com o codificador;
- Capacidade de decodificar códigos convolucionais usando o algoritmo de decodificação de Viterbi;
- Entenda o conceito de intercalação.
O conceito de código convolucional
O código convolucional é descrito por três inteiros, (n, k, L), onde k/n também representa a eficiência de codificação e L é chamado de comprimento de restrição; representa a série de k-tuplas no registrador de deslocamento de codificação e k representa o tempo de codificação O número de elementos de código alimentados no codificador de uma só vez.
Uma característica importante dos códigos convolucionais diferentes dos códigos de bloco é a memória do codificador, ou seja, as n-uplas geradas pelo processo de codificação convolucional não são apenas uma função das k-uplas de entrada atuais, mas também do L-1 anterior entrada k-tuplas A função. Normalmente, n e k assumem valores menores, e a capacidade de codificação e a complexidade são controladas pela alteração de L.
Estrutura do Codificador de Código Convolucional
(n, k, L) código convolucional: A figura a seguir mostra o codificador do código convolucional, no qual existem registradores de deslocamento de nível kL, L \boldsymbol{L}L é chamado de comprimento de restrição do código convolucional.
O codificador do código convolucional é uma máquina de estado finito, e seu número de estados é 2 ( L − 1 ) k 2^{(L-1) k}2( L − 1 ) k . estado e entrada atualk \boldsymbol{k}A k -tupla determina a n-upla de saída atual.
Representação do Codificador Convolucional
Este é um código convolucional (2,1,3), ou seja, n=2, k=1, L=3.
Por que é chamado de código convolucional?
Processo de codificação:
Suponha que a sequência de informações de entrada seja 100101.
A sequência de informações de saída é 11 01 11 11 01 00 01 11
O estado inicial do codificador de código convolucional é 0 e o estado deve ser limpo após a codificação
1. Conectar vetor (gerar vetor)
Uma maneira de descrever um codificador é especificar n vetores conectados, cada um correspondendo a um módulo-2 somador. Cada vetor é L-dimensional e representa a conexão entre o módulo-2 somador e o registrador de deslocamento codificado. Um 1 no i-ésimo bit no vetor indica que o estágio correspondente do registrador de deslocamento está conectado ao módulo 2 adicionador , e um 0 indica que não há conexão entre o estágio correspondente e o módulo 2 adicionador .
2. Descrição do estado e diagrama de estado
Os codificadores de código convolucional pertencem a uma classe de dispositivos conhecidos como máquinas de estado finito.
"Limitado" indica que a máquina de estado tem apenas um número finito de estados distintos. "Estado" pode usar a entrada atual do dispositivo e a quantidade mínima de informações para prever a saída do dispositivo. Um estado fornece restrições no processo de sequência passada e um conjunto de possíveis sequências de saída futuras, o próximo estado é sempre limitado pelo estado anterior.
Tomando um codificador de código convolucional com uma eficiência de codificação de 1/n como exemplo, o estado é representado pelo conteúdo do registrador de nível mais à direita (L-1) (observe que o mais à direita aqui se refere ao final mais à direita do registrador de deslocamento após o símbolo de informação atual é o registro de entrada).
Conhecer o estado atual e a próxima entrada é uma condição necessária e suficiente para determinar a próxima saída.
Uma maneira de representar um codificador simples é um diagrama de estado.
Os estados na caixa do diagrama de estado representam os possíveis conteúdos do nível mais à direita (L-1) do registrador, e os caminhos entre os estados representam as palavras de ramificação de saída dessa transição de estado. O estado do registro é expresso como a = 00, b = 01, c = 10, d = 11. Correspondendo a dois bits de entrada possíveis, há apenas duas transições de cada estado, e a palavra de ramificação de saída durante a transição de estado é marcada no correspondente ao lado do caminho de transferência. Na figura, a linha sólida indica o caminho onde o bit de entrada é 0 e a linha pontilhada indica o caminho onde o bit de entrada é 1.
Observação: as transições de estado não são arbitrárias. Como a informação é deslocada um bit por vez, existem apenas duas transições de estado possíveis para o registrador a cada tempo de bit.
3. Diagrama de árvore
Embora o diagrama de estado descreva completamente as características do codificador, é inconveniente usar o diagrama de estado para rastrear a transição de estado do codificador porque ele não representa o processo de tempo. Se você quiser mostrar todas as situações possíveis de entrada e saída do codificador, pode usar um diagrama de árvore para descrevê-lo. É formado expandindo o diagrama de estado do codificador no tempo.
4. O diagrama da treliça
O gráfico de grade combina nós no mesmo nível no gráfico de árvore que estão no mesmo estado.
A figura a seguir é um diagrama de treliça de um código convolucional (2,1,3). Os nós do gráfico de grade representam o estado do codificador; em cada unidade de tempo, o gráfico de grade usa 2 L − 1 2^{L-1}2L − 1 nós representam2 L − 1 2^{L-1}2L − 1 possíveis estados do codificador. Pode-se ver que haverá repetições.
O vetor de conexão de um código convolucional (2,1,3) é:
g 1 = [ 1 1 0 ] , g 2 = [ 0 1 1 ] g_{1}=\left[\begin{array}{lll} 1 & 1 & 0 \end{array}\right], \quad g_{2}=\left[\begin{array}{lll} 0 & 1 & 1 \end{array}\right]g1=[110],g2=[011]
(1) Desenhe o codificador, o diagrama de estado e o diagrama de treliça do código convolucional.
(2) Quando a sequência de entrada for 100011101001, encontre a saída codificada.
referências:
- Proakis, John G., et al. Engenharia de sistemas de comunicação . Vol. 2. Nova Jersey: Prentice Hall, 1994.
- Proakis, John G., et al. MANUAL DE SOLUÇÕES Engenharia de Sistemas de Comunicação . Vol. 2. Nova Jersey: Prentice Hall, 1994.
- Zhou Jiongpan. Communication Principles (3rd Edition) [M]. Beijing: Beijing University of Posts and Telecommunications Press, 2008.
- Fan Changxin, Cao Lina. Princípios de comunicação (7ª edição) [M]. Pequim: National Defense Industry Press, 2012.