Escolar Documentos
Profissional Documentos
Cultura Documentos
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
I Teoria da Informação 9
I.1 Revisão de Conceitos de Probabilidade . . . . . . . . . . 11
I.1.1 Freqüência Relativa, Probabilidade Condicional, Indepen-
dência, Distribuição Binomial . . . . . . . . . . . . . . . . . 11
I.2 Informação e Entropia . . . . . . . . . . . . . . . . . . . . . 15
I.2.1 Fonte de Informação . . . . . . . . . . . . . . . . . . . . . 15
I.3 Codificação de Fonte . . . . . . . . . . . . . . . . . . . . . . 19
I.3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
I.4 Codificação Ótima de Fonte . . . . . . . . . . . . . . . . . 25
I.4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
I.5 Canal Discreto Sem Memória . . . . . . . . . . . . . . . . 31
I.5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
I.5.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
I.5.3 Exercícios Adicionais . . . . . . . . . . . . . . . . . . . . . 35
I.6 Capacidade de Canal Discreto . . . . . . . . . . . . . . . . 37
I.6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
I.6.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
I.7 Capacidade de Canal Contínuo . . . . . . . . . . . . . . . 41
I.7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
I.7.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
I.8 Aplicações da Teoria da Informação . . . . . . . . . . . . 45
I.8.1 Desempenho de Sistemas de Comunicação Digitais . . . 45
I.8.2 Medidas adequadas para a intensidade do sinal e do ruído. 47
Estrutura do Texto
A disciplina de TIC conta com ..., o texto foi organizado em duas partes.
A Parte 1 serve de apoio para as aulas teóricas, tendo cada capítulo um
resumo da teoria, alguns exemplos e exercícios que podem ser usados
em sala de aula. A Parte 2 é formada por exercícios para cada uma das
aulas....
Agradecimentos
Este material foi elaborado ao longo dos vários oferecimentos da disci-
plina de Teoria da Informação e Códigos. Contou com a contribuição dos
alunos xx, xx, ..., em especial das primeiras turmas, que auxiliaram na re-
solução dos exercícios. Posteriormente, estes foram revisados e editados
pelo monitor da disciplina, José Fábio Santos Barros. A todos os autores
agradecem incondicionalmente.
nA
f (A) = lim ,
N →∞ N
Exercícios
1. [Ex. 10.4, p438, Lathi] Jogamos uma moeda quatro vezes. Determine a
probabilidade de obtermos exatamente 2 caras.
2. [Ex. 10.4, p443, Lathi] Em comunicação binária, uma das técnicas usadas
para aumentar a confiabilidade de um canal é repetir a mensagem várias
vezes. Por exemplo, podemos enviar cada mensagem (0 ou 1) três vezes.
Desta forma, os dígitos transmitidos são 000 (para mensagem 0) ou 111
(para mensagem 1). Devido ao ruído do canal, podemos receber uma
das 8 combinações possíveis de três dígitos binários. A decisão de qual
mensagem foi transmitida é feita pela “regra da maioria”; isto é, se pelo
menos dois dos três dígitos detectados forem 0, a decisão é 0, e assim por
diante. Para uma probabilidade de erro em um dígito P e = 10−4 , calcule
a probabilidade de erro de decisão P er r o deste esquema de comunicação
binário..
3. [Ex. 10.7, p442, Lathi] Uma das fontes de erros em sistemas PCM (Pulse-
Code Modulation) é o ruído no canal de comunicação binário no qual
um pulso p (t ) é usado para representar o dígito 1 e um pulso −p (t ) é
usado para representar o dígito 0. Para combater estes erros, repetidores
são frequentemente usados para regenerar pulsos digitais e retransmitir
pulsos “limpos":
Informação e Entropia
m
X m
X
H (X ) = E [I (X )] = P (x i ) I (x i ) = − P (x i ) log2 P (x i ) bits/símbolo
i =1 i =1
Exercícios
1. (HSU, 2012, 10.5) Uma TV preto e branco de alta resolução possui cerca
de 2 × 106 elementos de imagem (pixels) e 16 níveis de cinza. Imagens
são exibidas a uma taxa de 32 quadros por segundo. Supondo que todos
os pixels são independentes e que cada um dos níveis tenha igual proba-
bilidade de ocorrer, calcule a taxa de informação média dessa fonte de
informação.
(Resp.: 256 Mbits/s.)
2. (HSU, 2012, 10.6) Um telégrafo emite dois símbolos: “ponto” e “traço”.
A duração de um “ponto” é de 0.2 s e a de um “traço” é três vezes maior. A
probabilidade de um “ponto” ocorrer é o dobro daquela de um “traço” e
o intervalo entre símbolos é de 0.2 s. Calcule a taxa de informação média
dessa fonte de informação.
(Resp.: 1,725 bits/s.)
1
Normalmente, a taxa de símbolos (“taxa de sinalização” ou “baud rate”), r , é cons-
tante. Contudo, há aplicações, como a de um telégrafo, em que os símbolos têm
durações diferentes, devendo-se considerar a taxa média, r¯. Neste caso, R = r¯ H
(bits/s).
C APÍTULO I.3
Codificação de Fonte
I.3.1 Introdução
• A codificação de fonte consiste em converter a saída de uma fonte (aqui
considerada DMS) em uma seqüência de símbolos binários (palavras de
código binário). Um codificador de fonte eficiente deve empregar uma
pequena quantidade de bits em cada palavra de código.
O Teo. da Codificação de Fonte diz que para uma DMS X com entropia
H (X ), vale
L̄ ≥ L̄ min ≥ H (X ) bits/símbolo, (I.3.1)
onde L̄ min é o menor valor (médio) possível de bits por símbolo da fonte
(como, por exemplo, para um código de prefixo definido, a seguir, no
Exemplo 1). A eficiência do código C é definida como
H (X )
η= . (0 ≤ η ≤ 1)
L̄
Uma demonstração de (I.7.4) pode ser obtida calculando-se um li-
mitante superior para a diferença H (X ) − L̄ pela aplicação da inequação
ln x ≤ x − 1, para x > 0. [4, sec. 2.5.2]
• Exemplo 1 (HSU, 2012, p.252) Seja uma fonte com K = 4 símbolos codi-
ficada pelos códigos binários da tabela
20 Capítulo I.3. Codificação de Fonte
Exercícios
1
Em português, muitos autores usam o termo “códigos de prefixo” para se referirem
aos códigos “sem prefixo” (prefix-free codes).
2
[4, Theorem 2.5.1] - Entropy bounds for prefix-free codes.
I.3.1. Introdução 21
simbolo código C
x1 0
x2 1
(Resp.: 46.9%)
Obs.: Neste exercício, não é possível melhorar a eficiência do código,
uma vez que não é possível empregar menos de um bit para cada um dos
símbolos. Contudo, o próximo exercício sugere uma técnica que pode
ser empregada para aumentar a eficiência da codificação: agrupar os
símbolos x i em blocos com dois símbolos.
22 Capítulo I.3. Codificação de Fonte
I.4.1 Introdução
• Neste capítulo, consideramos algumas formas de se obter um código
de comprimento variável: primeiro, a proposta inicial de Shannon-Fano
e, em seguida, uma solução melhor para o problema descoberta por
Huffman. No final, apresentamos um algoritmo que fornece um código
melhor que estes últimos pois não supõe que a fonte seja discreta e sem
memória (DMS) e não exige o conhecimento das probabilidades dos
símbolos.
Por hora, consideramos códigos de prefixo pois sempre produzem
códigos distintos e instantâneos e supomos conhecidas as probabili-
dades dos símbolos da fonte (DMS), p 1 , p 2 , . . ., p K , e desejamos obter
palavras de código (binárias) que resultem num comprimento médio
L̄ próximo da entropia H da DMS. Num código ótimo, o comprimento
médio alcança o valor mínimo L min .
• Código de Shannon-Fano.
Estratégia: agrupar símbolos em pares de grupos aproximadamente
equiprováveis. Daí, a codificação ótima de cada grupo consiste em sim-
plesmente atribuir um dígito binário a cada grupo, por exemplo, “0” para
o primeiro e “1” para o seguindo.
Em geral, esta estratégia fornece um código com boa eficiência, isto
é,
H
η = ≈ 1,
L̄
mas não necessariamente ótimo.
Descrição do Algoritmo:
- Ordenação: listar os símbolos segundo ordem de probabilidade
decrescente.
- Partição: dividir em dois grupos tão equiprováveis quanto possível.
- Atribuir “0” ao primeiro grupo e “1” ao segundo.
- Repetir o procedimento até que cada grupo contenha um único
símbolo.
O código corresponde ao conjunto de dígitos (“0” ou “1”) atribuídos
a cada símbolo.
• Exemplo 1 (HSU, 2012, p.256) Abaixo, a codificação segundo Shannon-
Fano para uma fonte com 6 símbolos:
26 Capítulo I.4. Codificação Ótima de Fonte
• Código de Huffman.
Também supõe DMS e, também, exige que sejam conhecidas as pro-
babilidades dos símbolos. Sempre fornece um código ótimo (e, caso seja
possível, alcança eficiência η = 1); sempre produz código com eficiência
maior ou igual ao Código de Shannon-Fano.
Estratégia: atribuir mais bits para os símbolos menos prováveis usando
uma árvore binária. E, pelo fato de seguir uma árvore binária, sempre
fornece um código de prefixo.
Descrição do Algoritmo:
- Ordenação: relacionar os símbolos segundo ordem de probabilidade
decrescente.
- Redução: agrupar os dois símbolos menos prováveis e reordenar,
novamente, segundo probabilidades decrescentes. (Este é o passo de
redução 1.)
- Repetir a redução até que haja apenas dois grupos.
- Codificação: a partir da última redução, tomar “0” como primeiro
dígito de todos os símbolos do primeiro grupo e “1” para aqueles do
segundo.
- Repetir o procedimento anterior (decompondo os grupos) até al-
cançar a primeira coluna.
• Exemplo 2 (HSU, 2012, p.256) Na codificação de Huffman, quando um
grupo tem probabilidade igual a um símbolo pré-existente, na ordenação, é
aconselhável colocar o grupo acima deste símbolo. Pode-se demonstrar que
esta ordenação resulta menor variação (variância) no comprimento das palavras
de código, sendo preferível. Por exemplo, na figura seguinte, o grupo x 4 x 5 x 6
(com prob. 0.25) deveria ser colocado acima do símbolo x 2 (também, com
probabilidade 0.25).
• Código de Lempel-Ziv.
Na prática, normalmente, não conhecemos as probabilidades dos
símbolos da fonte. Além do mais, fontes práticas geralmente não são
DMS. Por exemplo, na codificação de texto, a letra “Q” quase nunca é
seguida de outra letra “Q”.
O código proposto por Lempel e Ziv é adaptativo: reconhece padrões
de bits que aparecem com mais frequência nos dados.
Cria um codebook (livro de código) a partir dos padrões mais frequen-
tes que aparecem nos dados.
Padrões de bits correspondentes a sequências pouco prováveis (como
“QQ”) acabam não sendo incluídos no codebook.
Pode-se demonstrar que, para uma longa sequência de dados, o có-
digo de Lempel-Ziv converge assintoticamente para o código ótimo.[4,
Sec. 2.9.2] E, para codificação de texto, supera a eficiência do código de
Huffman porque leva em conta a dependência entre os símbolos.[4, Sec.
2.10]
Atualmente, o algoritmo Lempel-Ziv é usado pelo programa de com-
pressão de dados 7zip para o formato “.7z” (www.7-zip.org), semelhante
ao formato “.zip”.
Estratégia: particionar a sequência de dados da fonte em segmentos
tão pequenos quanto possível mas que não tenham sido anteriormente
observados.
• Exemplo 3 (HAYKIN, 2004, p.580) Considere a sequência de dígitos
binários
0 0 0 1 01 1 1 0 0 1 0 1 0 0 1 0 1 . . .
Supõe-se que os símbolos binários “0” e “1” já estejam armazenados
no codebook:
½
Armazenado: 0, 1
A analisar: 0 0 0 1 01 1 1 0 0 1 0 1 0 0 1 0 1 . . .
Continuando:
Armazenado: 0, 1, 00, 01
½
A analisar: 0 0 | 0 1 | 01 1 1 0 0 1 0 1 0 0 1 0 1 . . .
−−−−→
Posição no codebook 1 2 3 4 5 6 7 8 9
Subseq. 0 1 00 01 011 10 010 100 101
Cód. Numérico 11 12 42 21 41 61 62
Cód. Binário 0010 0011 1001 0100 1000 1100 1101
1
Experimente usar o programa 7zip para comprimir uma arquivo com poucos bytes
e veja o resultado.
30 Capítulo I.4. Codificação Ótima de Fonte
Exercícios
1. (HSU, 2012, 10.34) Uma fonte discreta sem memória (DMS) emite cinco
símbolos com probabilidades
Pede-se:
a) Construa um código de Shannon-Fano.
b) Calcule a entropia da fonte, o comprimento médio do código do
item anterior e a sua eficiência.
c) Construa um código de Huffman.
d) Calcule a entropia da fonte, o comprimento médio do código do
item anterior e a sua eficiência.
e) Compare a eficiência alcançada nas duas formas de codificação.
Resp.: a) 00, 01, 10, 110, 111 (atenção: há outras soluções possíveis); b) 2.15,
2.25, 95.6%; c) 1, 000, 001, 010, 011 (atenção: há outras soluções possíveis);
d) 2.2; e) A eficiência do cód. de Huffman é maior do que a obtida usando
Shannon-Fano.
2. Conforme visto no texto, o algoritmo de Lempel-Ziv associa pala-
vras de código de comprimento fixo a trechos de dados de comprimento
variável. Na prática, blocos de 12 dígitos binários são normalmente em-
pregados. Determine o número máximo de subsequências que podem
ser armazenadas no codebook neste caso.
Resp.: 4096
3. Faça a codificação e a decodificação dos dados do “Exemplo 3”
usando o algoritmo Lempel-Ziv com palavras de código de 4 bits. Quantas
subsequências podem ser armazenadas no codebook neste caso?
C APÍTULO I.5
I.5.1 Introdução
• Nesta aula, passamos a considerar a transmissão da informação através
de um canal de comunicação que supomos capaz de transmitir símbolos
discretos.
I (X ;Y ) = H (X ) − H (X |Y ) . (I.5.5)
I.5.1. Introdução 33
I (Y ;X ) = H (Y ) − H (Y |X ) , (I.5.6)
Fonte: <http://ieg5154.pbworks.com/w/page/46171731/Scribe_Note_2_1>
34 Capítulo I.5. Canal Discreto Sem Memória
I.5.2 Exercícios
1. (HSU, 2012, 10.9) Um Binary Erasure Channel pode ser usado para mode-
lar situações práticas em que se pode receber um dado sinal interpre-
tado como “0”, outro sinal interpretado como “1” ou, no caso de dúvida,
apaga-se o bit recebido (considerado “e”, erasure, y 2 ). Este canal pode ser
descrito pela seguinte matriz de transição
· ¸
1−p p 0
[P (Y |X )] =
0 p 1−p
I (Y ;X ) = Ω ωp + ω̄p̄ − Ω p ,
¡ ¢ ¡ ¢
pede-se:
a) As probabilidades dos elementos na saída, [P (Y )].
b) A matriz de probabilidades conjuntas, [P (X ,Y )].
c) Verifique que a soma de cada coluna da matriz de transição dada é
igual a 1.
d) Explique como o conhecimento do elemento na saída pode ser
usado na decodificação. Temos decodificação hard ou soft?
e) Calcular a entropia na saída, H (Y ), e na entrada, H (X ).
f ) Explique por que a entropia na saída é maior.
g) Determinar a informação mútua “parcial”
X ¡ ¢ P (y j /x i )
I (Y ;x i ) = P y j /x i log2 ,
y j ∈Y P (y j )
para cada uma das saídas x i possíveis. É possível dizer algo sobre x i
quando é recebido y¡ 1 ? Justifique
¢ com base no valor da informação trans-
ferida neste caso, I y 1 ;x i .
h) Determinar, em média, quanta informação a observação da saída
fornece sobre o símbolo na entrada dada, ou seja, calcular a informação
mútua X
I (X ;Y ) = I (Y ;x i ) P (x i ) .
x i ∈X
0
Ref.: [0] RICHARD B. WELLS. Applied Coding and Information Theory for Engineers,
Pearson Education, 2009.
C APÍTULO I.6
I.6.1 Introdução
• A informação mútua é uma medida da quantidade de informação
transferida através de um canal. Entretando, na sua expressão, pode-se
observar que a informação mútua depende de P (x i ) que é um parâmetro
da fonte. Para contornar este problema, definimos a capacidade de canal
como a máxima transferência de informação que pode ocorrer
Adapt.: (?)
• Códigos de Bloco. A cada bloco de k bits de dados da fonte, acres-
centam-se n − k bits, produzindo blocos de n bits que são transmitidos.
A razão ρ = k/n é chamada de taxa de código.
Se a fonte produz um símbolo a cada T s segundos, a taxa de infor-
mação média da fonte é H (X ) /T s (bits/s). E, se o canal é usado a cada
Tc segundos, a sua capacidade é C s /Tc (bits/s).
• Teorema da Codificação de Canal
38 Capítulo I.6. Capacidade de Canal Discreto
H (X ) C s
≤ , (I.6.2)
Ts Tc
H (X ) C s
> , (I.6.3)
Ts Tc
I.6.2 Exercícios
1. Um canal binário simétrico realiza uma transmissão a cada TC = 1 s.
a) Calcule a capacidade deste canal em bits por segundo para proba-
bilidade de erro de bit p = 0.1.
b) Supondo que a taxa de código seja dada por ρ = 3/n, sendo n um
inteiro ímpar, qual o n mínimo que satisfaz a condição de existência de
um bom código?
(Resp.: 0,531 bits/s; n = 7.)
I.7.1 Introdução
As fontes e canais considerados até o momento eram discretos, entre-
tanto, no mundo real, muitas vezes, tem-se fontes e canais analógicos.
Os conceitos de entropia, informação mútua etc. podem ser estendidos
para estes casos. Basicamente, devemos substituir variáveis R discretas (x i )
por analógicas (x (t )) e somatórios (Σ) por integrais ( ), como se pode
observar no exemplo a seguir.
Exemplo 1 (HSU, 2012, Ex. 10.20) Determine a entropia diferencial
Z ∞
1
h (X ) , f X (u) log2 du (I.7.1)
−∞ f X (u)
de uma variável aleatória X uniformemente distribuída,
½
1/a, 0 ≤ u ≤ a
f X (u) = (I.7.2)
0, c.c.
com a) a = 1, b) a = 2 e c) a = 1/2.
Exemplo 2 (HSU, 2012, Ex. 15.4) Um sinal de amplitude x é um processo
aleatório uniformemente distribuído no intervalo [−1, 1]. Este sinal passa
por um amplificador de ganho 2 e produz ¡ ¢ a saída y também com distri-
buição uniforme. a) Calcule h (x) e h ¡y ¢; b) Dado
¡ ¢ que as entropias abso-
lutas H (x) = h (x) − lim log2 ∆x e H y = h y − lim log2 ∆y, mostre
∆x→∞ ∆y→∞
que a entropia absoluta (“quantidade de informação média") não muda
com o ganho.
Exemplo 3 Dado que para uma variável gaussiana X ∼ N 0, σ2 a
¡ ¢
entropia diferencial é
1
log2 2πeσ2 .
¡ ¢
h (X ) = (I.7.3)
2
a) Como o valor da entropia desta variável se compara com aquela de
uma variável uniforme de mesma variância? b) Existe uma distribuição
que produza maior entropia?
P
n o 1 µ ¶
C s = max I (X , Y ) : Pot (X ) = P = log2 1 + 2 [bits/símbolo].
{P (X i )} 2 σ
(I.7.4)
Para um canal contínuo com largura de banda B Hz, pertubado por
AWGN com potência N0 /2 (W/Hz) e, igualmente, limitado à banda B Hz,
a capacidade de informação é dada por
P
µ ¶
C = 2BC s = B log2 1 + = B log2 (1 + SN R) [bits/s]. (I.7.5)
N0 B
Devemos alertar que supomos ruído e sinal têm espectros (PSD, Power
Spectral Density) planos e, por isto, as amostras são independentes entre
si e, ainda, as amostras do sinal são independentes daquelas do ruído. Daí,
a quantidade de informação transmitida por segundo é 2B multiplicado
por C s .
Agora, quando o espectro não é plano, tem-se C < 2BC s , não valendo
(I.7.5). Já a equação (I.7.4), por sua vez, não exige que o ruído seja branco,
devendo-se apenas ter distribuição gaussiana pois, neste caso, a entropia
é dada por (I.7.3).
Exemplo 4 [3, Secs. 9.9-9.10] Sejam x i , i = 1, 2, . . ., M , amostras da
entrada x (t ) ∼ N (0, P ) e n i amostras do ruído n (t ) ∼ N (0, N0 B ) inde-
pendentes ¡ ¢de x i .¡Considerando
¡ ¢ a¡saída¢ y (t ) = x (t ) +¡n (t ),¢ determine: a)
h (n) e h y ; b) I x; y = h y −h y|x ; c) C s = max I x; y : x ∼ N (0, P ).
¢
I.7.2 Exercícios
1. Um canal de voz da rede telefônica tem uma largura de banda de 3,4
kHz (suposta plana). a) Calcule a capacidade de informação do canal
telefônico correspondente a uma SNR de 30 dB; b) Calcule a SNR mínima
necessária para suportar transmissão de informação através do canal
telefônico a uma taxa de 9600 bits/s.
(Resp.: 33888 bits/s ; 7.83dB)
2. Dados alfanuméricos são introduzidos em um computador através
de um canal telefônico de voz. O canal tem largura de banda de 3,4 kHz e
I.7.2. Exercícios 43
R b /B ≤ C /B.
A Equação (I.8.1) permite traçar uma curva que relaciona a taxa com
a potência de um sistema ideal (Figura 1).
46 Capítulo I.8. Aplicações da Teoria da Informação
A Fig. 9.17 traz a curva prevista por (I.8.1) juntamente com os valores
de R b /B para alguns sistemas. E a Fig. 9.18 apresenta o limite de desem-
penho para comunicação binária empregando sinalização bipolar num
canal AWGN. (Figuras do Haykin [3].)
I.8.2. Medidas adequadas para a intensidade do sinal e do ruído. 47
SNR
SNRnor m , Rb
> 1. (I.8.3)
2 B −1
2(Rb /B ) − 1
(E b /N0 ) > (I.8.5)
(R b /B )
Códigos de Bloco
Vale
GHT = {0}
56 Capítulo II.1. Códigos de Bloco
01 10 11 ←posição em binário
[P 1 , P 2 , D 1 ] (1)
b) Faça uma tabela com os vários padrões de erro (num único dígito)
que podem ocorrer. Lembre-se que a palavra recebida r = c + e.
Exercícios
de maneira geral.
C APÍTULO II.2
II.2.1 Introdução
Códigos de repetição, de verificação de paridade e os códigos de Ham-
ming, todos, são Códigos de Bloco Lineares (CBL), muitas vezes chama-
dos apenas de códigos de bloco, deixando-se implícito a linearidade que,
como foi vista, possibilita o tratamento algébrico desses códigos.
Também é comum se supor apenas o caso de comprimento fixo para
os dados, d = [D 1 , D 2 , . . . , D k ] (k-uplas), e para as palavras de código,
c = [C 1 , C 2 , . . . , C n ] (n-uplas).
Além disso, caso o código seja sistemático, os dígitos de dados D i
aparecerão em algumas posições da palavra de código e demais posições
poderão servir para verificação conforme exemplificado a seguir.
Exemplo 0 - Seja código de bloco C (n,k) = C (3,2) = {000, 010, 100, 110}.
Uma possível associação entre blocos de dado e de código é a seguinte:
Exercícios
1. [1,Probl.11.13] Para um Código de Bloco Linear C (6, 3) sistemático, os
três dígitos de verificação de paridade são formados pelas equações:
C4 = D1 + D3
C 5 = D 1 + D 2 + d3
C6 = D1 + D2
Pede-se:
a) Escreva a matriz geradora G.
b) Construa todas as palavras de código possíveis.
c) Suponha que a palavra de código recebida seja 010111. Decodifique
esta palavra encontrando a posição do erro e determinando os bits de
dados transmitidos.
2. [1,Probl..11.14] Um código de bloco possui a seguinte matriz de verifi-
cação de paridade H T , sendo
1 0 1 1 0 0
H = 1 1 0 0 1 0 .
0 1 1 0 0 1
II.3.1 Introdução
Os códigos cíclicos constituem uma classe de códigos de bloco lineares.
C (n,k) e
(iv) cada elemento de C pode ser expresso de maneira única pelo
produto
g0 g1 g2 · · · g n−k 0
g (x)
0 g0 g1 · · · g n−k−1 g n−k xg (x)
G= =
··· ··· ··· ..
.
0 g0 ··· g n−k x k−1 g (x)
Exercícios
1. [1,Probl.11.25] a) Mostre que C = {0000, 0101, 1010, 1111} é um código
de bloco linear cíclico.
b) Forneça um exemplo de código de bloco linear C 0 , também de
comprimento n = 4, mas que não seja cíclico.
2. [1,Probl.11.28] Considere o código cíclico do exercício anterior.
a) Forneça os parâmetros n, k e d . Em seguida, encontre o polinômio
gerador g (x).
b) Mostre que todos os polinômios do código são múltiplos de g (x),
isto é, c (x) = d (x) g (x), para todos os d (x) ∈ F2 [x] de grau estritamente
menor do que k.
c) Verifique que g (x) é fator de (x n + 1).
Notação: g (x) | (x n + 1), que pode ser lida, em inglês, como g (x)
divides (x n + 1).
d) Encontre os fatores de (x n + 1) e verifique que o fator (polinômio
mônico) de mínimo grau é único.
e) Para a palavra de código c = [0101] use a divisão longa c (x) /g (x)
para encontrar o vetor de dados d.
0
Ref.: [1] HWEI HSU, Schaum’s Outlines of Theory and Problems of Analog and Digi-
tal Communications, 2a. Ed., McGraw-Hill, 2003, Cap. 10. [2] LATHI, B. P. Modern
Digital and Analog Comunication Systems, 3a. Ed. [3] S. HAYKIN, “Sistemas de Co-
municação: Analógicos e Digitais”, Bookman, 4.a Ed., 2004. [4] OCW-MIT, Digital
Communications II, Chap. 7-8. [5] W. CARY HUFFMAN, Fundamentals of Error-
Correcting Codes.
C APÍTULO II.4
Códigos Cíclicos
(x n − 1) X k
h (x) = = hi x i . (II.4.6)
g (x) i =0
68 Capítulo II.4. Códigos Cíclicos
Disto, conclui-se que c (x) h (x) = d (x) g (x) h (x) = 0. Por isto h (x) faz as
vezes de polinômio de verificação de paridade.
• Relações entre os polinômios geradores, polinômios de verificação
de paridade e recíprocos:
1
Para campos binários, a soma é igual à multiplicação, de maneira que (x n − 1) =
(x n + 1) = (1 + x n ).
II.4.1. Tratamento de Erros 69
Exercícios
1. [1,Probl.11.33] Seja um código cíclico C (7, 4) com polinômio gerador
g (x) = 1 + x + x 3 .
a) Construa a tabela de síndromes:
1
Ref.: [1] HWEI HSU, Schaum’s Outlines of Theory and Problems of Analog and Digital
Communications, 2a. Ed., McGraw-Hill, 2003, Cap. 10. [2] LATHI, B. P. Modern Digital
and Analog Comunication Systems, 3a. Ed. [3] S. HAYKIN, “Sistemas de Comunica-
ção: Analógicos e Digitais”, Bookman, 4.a Ed., 2004. [4] OCW-MIT, Digital Commu-
nications II, Chap. 6. [5] W. CARY HUFFMAN, Fundamentals of Error-Correcting
Codes. [6] ABRANTES, S. A., Códigos Correctores de Erros em Comunicações Digitais,
1a ed., FEUP Edições, 2010.
C APÍTULO II.5
"I swear by Galois that I will be true to the noble of coding theory;
that I will speak of it in the secret language known only to my fellow
initiates; and that I will vigilantly guard the sacred theory from
those who would profane it by practical applications" –James L.
Massey. Coding Theorist’s Pledge.
g 1 (x) = 1+ x + x 5 + x 6 + x 7 + x 11 ou g 2 (x) = 1+ x 2 + x 4 + x 5 + x 6 + x 10 + x 11 .
C 2m − 1, 2m − 1 − mt , d ≥ 2t + 1 2
¡ ¢
(II.5.1)
Código n −k k g (x)
CRC-12 12 6 bits 1 + x + x + x 3 + x 11 + x 12
2
CRC-16 16 8 bits 1 + x 2 + x 15 + x 16
CRC-ITU 16 8 bits 1 + x 5 + x 12 + x 16
k ≤ n − d + 1. (II.5.2)
C (n, k, n − k + 1)q
Exercício
de bloco linear sobre o campo F11 . Mais especificamente, cada livro re-
cebe uma identificação única com nove dígitos x 0 -x 1 x 2 -x 3 x 4 x 5 x 6 x 7 x 8
indicando a língua, a editora e o livro. Em seguida, é anexado um último
dígito, x 9 , obedecendo
X9 ¡ ¢
j + 1 x j = 0,
j =0
Códigos Convolucionais
II.6.1 Introdução
Assim como os códigos cíclicos, os códigos convolucionais tornaram-se
populares por causa da facilidade de codificação e decodificação usando
registradores de deslocamento. No entanto, diferentemente dos códigos
cíclicos, nos quais blocos de dados (de comprimento fixo k) produzem
respectivos blocos de código (de comprimento fixo n), os códigos con-
volucionais produzem um fluxo contínuo de dígitos de código obtido
pela convolução do fluxo de dados com a resposta impulsiva de um sis-
tema linear invariante no tempo (SLIT). Nos codificadores binários, a
convolução é feita usando aritmética binária.
• Exemplo 1 No codificador binário da Fig. 1 (SLIT com 1 entrada e
2 saídas), supondo estado inicial 00, pede-se: a) Para entrada 1011 e o
restante 0s, obtenha a sequência de saída. b) Qual a taxa de codificação?
c) Forneça o diagrama de transição de estados. d) Faça o diagrama de
treliça. e) A partir do diagrama de treliça, determine a distância mínima
(d f r ee ).
Exercícios
1. [1,Probl.11.67] Dado o codificador convolucional
Exemplo 1
d) Ã !
6
[ 6
X 1 1
P (S) = P {ξi } = P ({ξi }) = +...+ = 1
i =1 i =1 |6 {z 6}
| {z }
evento certo
6 parcelas
| {z }
união de todos os eventos elementares
84 Solução I.1 – Revisão de Conceitos de Probabilidade
2 1 1
P (A.B ) = P (A).P (B |A) = . = ' 0,0754%
52 51 1326
nº de formas
z}|{
P e .P e . (1 − P e ) = P e2 .(1 − P e )3−2 logo: P (A) = 3 . P e2 .(1 − P e )3−2 .
| {z } | {z }
Probabilidade de acerto probabilidade de cada forma
à !
m
Em geral P (A) = .P ek .(1 − P e )n−k
k
D c ) = 0,05
P (Y | D) = 0,95. Daí resulta que: P (Y | |{z}
| {z }
(evento YES , tem defeito) (evento complementar ao evento D, ou seja , evento não tem defeito)
P (D).P (Y | D)
P (D | Y ) = → P (Y ) = P (D).P (Y | D) + P (D c ).P (Y | D c )
P (Y )
Exemplo 1
Para k = 2 símbolos.
S = {S 0 , S 1 }, S 1 com probabilidade P i = Probabilidade de{i }
1
∴ a) Caso "0" e "1" emitidos com igual probabilidade, temos p = 0,5 e H (S) = Ω(0,5) = 1.
símbolo
0 ≤ H (S) ≤ log2 K
88 Solução I.2 – Informação e Entropia
K
X X
H (S) = − p i .log2 .p i = −1log2 1 − p j .log2 p j = 0
i =1 j 6=i
| {z }
ZERO, prova: calcule o limite de p j →0+
Ω(p)
· ¸
1 1
= 0 → −log2 p − − −log2 (1 − p) − =0
dp ln2 ln2
1−p 1−p
µ ¶
log2 =0→ = 1 → p = 0,5
p p
e nesse caso, H (S) = Ω(0.5) = 1 = log2 k .
X Qi 1 X Qi
P i log2 = p i ln
i P i ln2 i Pi
Qi X Qi
µ ¶
X X X X
P i ln ≤ P i ln − 1 = (Q i − P i ) = Q i − P i = 0
i Pi i Pi | {z } | {z }
1 1
k
X
µ
Qi
¶
∴ P i log2 ≤ 0 ("Inequação Fundamental")
i =1 Pi
Agora, suponha que Q i = k1 ,i = 1, . . . ,k (equiprovável),essa fonte tem
entropia:
X
H (Q) = Q i log2 k = log2
89
Pi
µ ¶
X X ¡ ¢ X
− P i log2 ≥ 0 → − P i log2 P i log2 k ≥ o → − P i log2 P i ≥ log2 k
k | {z }
H (P )de fonte "P"arbitrária.
1)
2.106 pixels, 16 níveis de cinza, 32 quadros/segundo.
x i = {x 1 ,x 1 . . . ,x 6 } ← símbolos.
1
P (x i ) = 16 ; i = 1,2, . . . ,16 ←equiprováveis.
16
X 1
H (S) = − P (x i )(l og )2 P (x i ) → H (S) = (l og )2 ∴ H (S) = 4bits/símb.
i =1 16
Exemplo 1
D.M.S. com k=2
Xi Ci pi
x1 0 0,9
x2 1 0,1
L̄ = 1 ∗ 0,9 + 1 × ∗0,1
µ ¶1
= µ ¶
1 1
H (x) = 0,9 log2 + 0,1 log2 = 0,46
0,9 0,1
H
η = = 0,46 = 46%
L̄
Exemplo 2
Xi pi Ci
x1 x1 0,81 0
x1 x2 0,09 10
x2 x1 0,09 110
x2 x2 0,01 111
Ci
0
01
011
0111
c) VERDADEIRO; Como o código é não prefixado, só existe uma
sequênciade bits possível para cada palavra, e dessa forma é possível
identificar o símbolo transmitido ao fim de cada palavra no seu último
bit.
1)
a)
b)
X
H (x) = − p i l og 2 (p i ) = 2,149
X
L̄ = p i .L i = 2,25
c) Código de Huffman
código P (x i )
1 1 1 0
1 ← 0,40 0,40 0,40 0,60 1
000 01 00
000 ← 0,19 0,25 0,35 0,40
001 000 1
001 ← 0,16 0,19 0,25
010 01
010 ← 0,15 0,16
001
011 ← 0,10
011
d)
e)
H (x) 2,149
η= = = 0,955%
L̄ 2,25
94 Solução I.4 – Codificação Ótima de Fonte
H (x) 2,149
η hu f f man = = = 0,976%
L̄ 2,2
Ambos tiveram bom desempenho porém o código de Huffman ob-
teve maior eficiência.
2)
A lista é indexada para um valor binário de 12 bits, então o codebook
pode ter até 212 códigos N t ot al = 212 = 4096
3)
Sequência :
0 00 1 0 1 11 001 01 0010 1
0 2 1 0 1 6 3 5 8 1
Índice 0 1 2 3 4 5 6 7 8 9 10
Palavra 0 1 00 001 10 01 11 110 0010 010 00101
Cód. Dec. 0 1 00 21 10 01 11 60 30 50 81
Cód. Bin. 0 1 0000 0101 0010 0001 0011 1100 0110 1010 10001
Índice 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 10
Sequência :
Posição no codebook 0 1 2 3 4 5 6 7 8
Subseq. 0 1 00 01 011 10 010 100 101
Cód. Numérico 00 01 31 10 30 50 51
Cód. Binário 0000 0001 0111 0010 0110 1010 1011
Solução I.5 – Canal Discreto Sem Memória
Exemplo 1
a) Sem perdas 3 × 5 : nenhuma informação é perdida na transmissão.
0,75 0,25 0 0 0
[P (Y |X )] = 0 0 0,40 0,60 0
0 0 0 0 1
b) Determinístico 5 × 3
Quando um símbolo da fonte é enviado, está determinado qual será
o símbolo recebido
96 Solução I.5 – Canal Discreto Sem Memória
1 0 0
1 0 0
[P (Y |X )] =
0 1 0 ← um único elemento de cada linha deve ser 1
0 1 0
0 0 1
1 0 0
[P (Y |X )] = 0 1 0 ← Deve ter m=n, não é obrigatório y i = x i
0 0 1
d) B.S.C.
· ¸ · ¸
1−p p 0,9 0,1
[P (Y |X )] = = ← p=0,1
p 1−p 0,1 0,9
97
[P (Y )] = [P (x)] . [P (Y |X )]
1 0 0
[P (Y1 )P (Y2 )] = [P (x 1 )P (x 2 )] . 0 1 0
0 0 1
£ ¤
= (1 − p).P (x 1 ) + p.P (x 2 ) p.P (x 1 ) + (1 − p).P (x 2 )
· ¸ · ¸
P (x 1 ) 0 1−p p
[P (X ,Y )] = d i ag {P (X )}. [P (Y |X )] = .
0 P (x 2 ) p 1−p
· ¸
(1 − p).P (x 1 ) p.P (x 1 )
[P (X ,Y )] = d i ag {P (X )}. [P (Y |X )] =
p.P (x 2 ) (1 − p).P (x 2 )
onde p.P (x 2 ) é a probabilidade de transmitir x2 e receber y1
· ¸
P (x 1 ,y 1 ) P (x 1 ,y 2 )
[P (X ,Y )] =
P (x 2 ,y 1 ) P (x 2 ,y 2 )
Exemplo 3 Veja texto do Haykin.
Canal Determinante H (Y |X ) = 0 → I (X ; Y ) = H (Y )
b)
[p(y)] = [p(x)].[p(y|x)]
· ¸
0,8 0,2 0
[p(y)] = [0,5 0,5 ]. = [0,4 0,2 0,4]
0 0,2 0,8
c)
³ ´ ³ ´ ³ ´
P 1 1 1
H (x) = x P (x).l og 2 P (x)
= 0,5.l og 2 0,5
+ 0,5.l og 2 0,5
= 1 bi t
³ ´ ³ ´ ³ ´
P 1 1 1
H (y) = y P (y).l og 2 P (y) = 0,4.l og 2 0,4 + 0,2.l og 2 0,2
³ ´
1
+0,4.l og 2 0,4 = 1,5219 bi t
d)
Organizando os cálculos numa tabela :
³ ´
P 1
P (x i ) 0P (y i |x i ) P (y i ; x i ) P (y i |x i ).l og 2 P (y i |x i )
0,5 0.8 0,2 0 0,4 0,1 0 0,361
0,5 0 0,2 0,8 0 0,1 0,4 0,361
e)
µ ¶
X 1
H (y,x) = P (y,x).l og 2
y,x P (y,x)
µ ¶ µ ¶ µ ¶ µ ¶
1 1 1 1
H (y,x) = 0,4.l og 2 +0,1.l og 2 +0,1.l og 2 +0,4.l og 2
0,4 0,1 0,1 0,4
f ) 0,8 bis
99
2. a)
b)
wp +wp wp +wp
· ¸ · ¸
p p
[p(y)] = [p(x)].[p(y|x)] = [w w]. =
p p
| {z } | {z }
P (y 1 ) P (y 2 )
· ¸ · ¸ · ¸
w 0 p p wp wp
[p(y,x)] = d i ag .[p(x)].[p(y|x)] = . =
0 w p p wp wp
µ ¶ µ ¶ µ ¶ µ ¶
X 1 1 1 1
H (y|x) = P (y|x).l og 2 = w p.l og +w p.l og +w p.l og
P (y|x) p p p
³ ´
1
+w p.l og p
µ ¶ µ ¶
1 1
= Ω(p)
¡ ¢ ¡ ¢
H (y|x) = w p + w p .l og + w p + w p .l og (II.6.2)
| {z } p | {z } p
p p
1
0,9
Ω(α)
0,7
I(y,x)
0,6
Ω(p)
0,4
0,3
0,2
0,1
0
0 0,5 0
p α α p
Probabilidade p
c)
d)
Exemplo 1
a) Canal sem perdas : Para fixar as idéias, considere um canal |{z}
2 × |{z}
3
m n
· ¸
1 0 0
[P (X ,Y )] = →1
0 1 1
3
X 3 X
X 2
H (X |Y ) = − P (y j ).H (X |Y j ) = − P (y i ). P (x i |y j )log2 P (x i |y j )
j =1 j =1 i =1 | {z }
sempr e=0
∴ H (X |Y ) = 0 e I (X ; Y ) = H (X ) − H (X |Y ) = H (X ) ∴ C s = max H (X ) =
log2 m = log2 2 = 1bit/uso do canal
b)Canal determinístico:
P (y 1 |x 1 ) = P (y 1 |x 2 ) = 1
∴ H (Y |X ) = 0 e I (X ; Y ) = H (Y ) − H (Y |X )
I (X ; Y ) = H (X ) e C s = max H (X ) = log2 m = log2 1 = 0
| {z }
{P (x i )}
102 Solução I.6 – Capacidade de Canal Discreto
c) Sem ruído:
I (X ,Y ) = H (x) − Ω(p) → Ω(p) = −p.log2 p − (1 − p).log2 (1 − p)
C s = max I (X ,Y ) = max{H (Y )} −Ω(p) = 1 − ω(p) ∴ C s = 1 − plog2 p + (1 −
| {z } | {z }
{P (x i )} {P (x i )}
p)log2 (1 − p)
103
Exemplo 2
k
ρ=
n
Taxa de informação da fonte :
H (X ) 1
= bi t s/s
Ts Ts
Capacidade do canal :
Cs
bits/s , C s = 1 − Ω(p)
Tc
k Tc
k.T s = n.Tc −→ = =ρ
n Ts
∴ ρ ≤ Cs
Obs: Exemplo 2 A resolução está na seção "Aplication of The Channel
Coding Theorem to binary Symmetric Channels "pág.591, do texto [3,Sec.
9.8](livro do Haykin)
0,469.
então:
C = 1 − 0,469 = 0,531
3
b) e = para n ímpar inteiro
n
1
z }| {
H (x) C s Tc Rs
≤ ⇒ ≤ Cs ⇒ ≤ Cs ⇒ e ≤ Cs ⇒
Ts Tc Ts Rc
3 3
e ≤ Cs ⇒ ≤ Cs ⇒ ≤ 0,531 3 ≤ 0,531 n ≤ 5,6497
n n
(2)
P e = 10−2 B.S.C . Tc = 1ms.
a) Capacidade C s :
| {z } I (X |Y ) = 1 − Ω(p) = 1 − Ω(0,01) = 0,91921
C s = max
{P (x i )}
b)
e ≤ C s = 1 − Ω(p) Se ... então é possível obter p e quão pequeno quanto se
queira .
c) Ã !
n n i
p (1 − p)n−i
X
Pe =
i =m+1 i
Pois erramos caso haja pelo menos m =+1 erros individuais de proba-
bilidade p
d)
Pa 10−8 temos que utilizar p = 19 então ssó será possível decodificar o bit
enviado após 9 bits recebidos do canal → 9ms
e)
105
Sim , pois esta taxa corresponde a 19 = 0,111 que é bem inferior ao valor
máximo L s = 0,91921 Isto é possível usando técnicas mais eficazes de
codificação , porém estas provocam maiores atrasos e tem complexidade
computacional superior.
Solução I.7 – Capacidade de Canal Contínuo
Exemplo 1
Z a 1 1 1
h(x) = log2 d u = log2 a.u |0a = log2 a
0 a (1/a) a
a) a = 1, h(x) = 0
b) a = 2, h(x) = 1
c) a = 1/2, h(x) = −1
Exemplo 2
a)
Z a 1 1
h(x) = log2 d u = log2 (2a) = log2 (2×1) = 1h(y) = log2 (2×2) = 2
−a 2a (1/2a)
b)
n
1
X
H (x) = − P (x i )logP (x i ) ,onde x i = x(t )|t =i .Ts e T s = fs
i =1
O intervalo de amostragem do critério de Nyquist.
P (x i ) ∼
= f x (x i )∆x i é a probabilidade de x(t ) ∈ [x i ; x − i + ∆x i ]
108 Solução I.7 – Capacidade de Canal Contínuo
f x(x i )log∆x i ∆x i
X X
− f x (x i )log f x (x i )∆x i H (x) = −
No limite , ∆x i → 0+
Z +∞ Z +∞
H (x) = f x(u)log f x(u).d u − log∆x f x(u)d u
| −∞ } referência | −∞ {z
| {z }
{z }
h(x) 1
Exemplo 3
a)
b)
Exemplo 4
a)
média
z}|{
n(t ) ∼ N ( 0 ; N0 B ) → h(n) = 12 log2 (2πeN )
|{z}
(potência N )
b)
Ï∞
1
h(y|x) = f (y; x) .log2 d yd x
| {z } f (y|x)
−∞ f (y|x). f (x)
Z +∞ Z +∞
1
h(y|x) = f (y|x).log2 dy f (x)d x
−∞ f (y|x) −∞
| {z }
1
agora para x fixo, y = n + x =⇒ f (y|x) = f n (y − x) a distribuição do
ruído ( f n (n) ) deslocada de x substituindo acima, vem
Z +∞ µ ¶ Z +∞ µ ¶
1 1
h(y|x) = f n (y−x).log d y |{z}
= f n (z)log dz
−∞ f n (y − x) −∞ f n (x)
z=y−x
1
H (n) = 2
l og 2 (2πeN )
P
C s = 21 log2 1 + N
¡ ¢ © ª
pois C s = max{I : P x = P } = max h(y) : P x = P −h(n)
| {z }
é máx para y ∼N (0;P )
Exercício 2)
B= 3,4 kHz SNR =20dB =100 e 128 símbolos
b)
Rb 22,638
Rs = = = 3,240 Sps
7 7
1
Ts = = 0,3086 ms
Rs
Exercício 3)
N q ps = 30q ps
SN R = 30bB
H (X ) = 3,32 bpSymbol
29,88.106
B= = 2,997M H z
log2 (1 + SN R)
porém se forem usados Mbits por símbolo temos :
Rb 30 × 3.105 × 4
C= = = 3,61M H z
log2 log(1001)
Exercício 4
a)
111
Cs 44e 3
B= = = 3,78K hz
log2 (1 + SN R) 11,62
Solução I.8 – Aplicações da Teoria da Informação
Exemplo 1
a)
C
Eb 2B −1 2x − 1
Conforme equação (1) do Cap. I.8: lim = lim C
= lim
B →∞ N0 B →∞ |{z} x→0 x
B x= CB
x
2 l n2
Apl i c and o L 0 Hospi t al t emos : lim = l n2
x→0 1
Eb
∴ a razão N 0
mínima necessária tende a Ln2 = 0,693 ou 10. log10 (0,693) '
1,59d B quando B → ∞
b)
P P P
µ ¶ µ ¶
1
C ∞ = lim B.log2 1 + = lim ³ ´ .log2 1 +
B →∞ N0 B B →∞ N0 1 N0 B
N0 B
P
Fazendo x =
N0 B Ã 1 !
P 1 0 P (x+1).l n2
C∞ = lim .log2 (1+x) → Apl i c and o L Hospi t al → lim
N0 x→0 x N0 x→0 1
P 1 P
C∞ = . ' 1,44
N0 l n2 N0
Exemplo 2)
a)
£J¤
SR . h1 i .R S
³ ´
SR
µ
S
¶
SR
S RS bi t s
s RS
.R S SR
µ ¶
Eb Rs
= = = → = E b →= .
N R NR N0 .B T N0 B T SR N0 B T
S Eb
µ ¶
Como R s = 2B T vem = 2. (II.6.3)
N R N0
(obs ∴ neste exemplo , R b = R S )
b) BSC:
C
C = R S .C S = 2B (1 − Ω(p)) → = 2(1 − Ω(p)) (II.6.4)
B
114 Solução I.8 – Aplicações da Teoria da Informação
Agora,
"s # "sµ ¶ #
2.E b S
p = Pe = Q → da equeção (1) temos que: Q =
N0 N R
à "sµ ¶ #! (II.6.5)
C S
De (2) e (3), vem = 2 − 2Ω Q OBS: ∴ função Q(x) =
B N R
Z ∞
1 −u 2
p e 2 d u não tem fórmula "fechada".
2π x
vale a aproximação
µ ¶: 2
1 0,7 −x 1 −x 2
Q(x) ∼
= p . 1 − 2 e 2 ,para x > 2 ou Q(x) ∼
= p .e 2 ,para x >
x 2π x x 2π
3
Tabela
¡S¢
N R
-5 0 5 10 15 [dB]
¡C ¢
B
0.2705 0.7378 1.5369 1.98 2
l og 2 1 + NS R 0.3964
£¡ ¢ ¤
1 2.05 3.45 5.02
O comando no Matlab é :
1 snr=[-5:5:15];
2 y= sqrt(10.^(snr/10));
3 x= .5*erfc(y/sqrt(2));
4 cb=2+2*(x.*log2(x)+(1-x).*log2(1-x));
5 plot(snr,cb);
6 yideal=[ 0.3964 1 2.05 3.45 5.02];
7 hold on
8 plot(snr,yideal);)
e)
C/BT 4
0
−5 0 5 10 15
(S/N)R [dB]
f)
Qauando NS R é baixa e CB é baixa devido B ser muito grande (situação
¡ ¢ ¡ ¢
zar códigos corretores de erro. Estes permitem que se trabalhe com taxas
C maiores, sem que se tenha muitos erros.
Solução II.1 – Códigos de Bloco
Exemplo 4 a)
corrige erro em até t = 1 dígito binário
∵ 2t + 1 = 3
d = 3 =⇒
detecta erro em até t = 2 dígito binário
∵ t +1 = 3
b) C (2m − 1,2m − 1 − m, 3) =⇒ n = 3, k = 1 ea d = 3 ∵ m = 2.
Equações de H T
S 1 = R 2 + R 3 ( verifica erro nas posições 2 e 3 )
S = R + R (verifica erro nas posições 1 e 3 )
2 1 3
Forma Matricial :
118 Solução II.1 – Códigos de Bloco
1 0
1 0 1
[S 1 S 2 ] = [R 1 R 2 R 3 ] . 0 1 → H =
0 1 1
1 1
| {z } | {z }
s r
| {z } |{z}
| {z } I n−k pT
HT n×(n−k)
Matriz geradora :
G = [ P | I k ] = [1 1 | 1] (II.6.6)
ou seja , a palavra de código
Prova de ( II.6.6 )
d .G = c
d . [ Ik | P ] = [ d | p ]
| {z } |{z}
G
bits de par. p=d .P
vale: p + p = 0, logo :
¸ ·
P
d .P + p = 0 → [ d | p ] .
| {z } | {z Ik
c
}
HT
Exemplo de codificação e correção de erro :
er r o
D 1 = 0 ∴ c = [ 0 0 0 ] −−−→ [010] =r
| {z }
pos. 01 10 11
1 0 S1 S2
[ 0 1 0 ] . 0 1 = [ 0 1 ] → erro na posição(S 2 S 1 )bi n = (10)2 = 2
1 1
| {z }
r
| {z }
HT
Obs:
1
Livro : Floyd , Digital Fundamentals
119
01 10 11
z }| {
[C 1 C 2 C 3] = [P 1 P 2 D 1 ]
Os bits de dado ficam nas demais posições . Daí cada paridade veri-
fica os dados que tem 1 na mesma posição que o 1 da paridade:
pos. 01 10 11
P1 D 1 → P 1 ver i f i c a D 1
P2 D 1 → P 2 ver i f i c a D 1
Isto vale para demais valores de m. Por exemplo, para m=3 ;
Equações de HT :
et c.
m = n −k
Total disponível :
2n > 2k + n.2k
120 Solução II.1 – Códigos de Bloco
2n−k > 1 + n
2m > 1 + m + k
b) k=4
m = 2 → 22 > 1 + 2 + 4 (i ncor r et o)
m = 3 → 23 > 1 + 3 + 4 X (cor r et o)
m=3
n=7
c) m = 3 → P 1 P 2 P 3
Palavra =
[ P 1 r 2 y 1 r 3 y 2 y 3 y 4 ] → [ R1 R2 R3 R4 R5 R6 R7 ]
[ D 1 D 2 D 3 D 4 ].G = [ P 1 P 2 D 1 P 3 D 2 D 3 D 4 ]
r.H T = s = [P 1 P 2 P 3 ]
E1 E2 E3 E4 E5 E6 E7 P3 P2 P1
0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1 1
0 0 0 1 0 0 0 1 0 0
0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 1 1 1 1
d)
1 0 0
0 1 0
P1 = R1 ⊕ R3 ⊕ R5 ⊕ R7 1 1 0
P2 = R3 ⊕ R3 ⊕ R6 ⊕ T
R7 → H =
0 0 1
P3 = R4 ⊕ R5 ⊕ R6 ⊕ R7 1 0 1
0 1 1
1 1 1
f)
121
1 0 0
0 1 0
1 1 0
[ R 1 R 2 R 3 R 4 R 5 R 6 R 7 ]. 0 0 1 = [P 1 P 2 P 3 ]
1 0 1
0 1 1
1 1 1
| {z }
HT
1 0 1 0 1 0 1
H= 0 1 1 0 0 1 1
0 0 0 1 1 1 1
e )G.HT = 0
1 0 0 0 0 0
0 1 0 0 0 0
a b 1 c 1 0 0
1 1 0 0 0 0
d e 0 f 0 0 0
. 0 0 1 = 0 0 0
g h 0 i 0 0 0
1 0 1 0 0 0
j k 0 l 0 0 1
0 1 1 0 0 0
1 1 1 0 0 0
a +1 =0 → a =1
b +1 =0 → b=1
e =0 → e =0
d +1 =0 → d =1
e +0 =0 → e =0 1 1 1 0 0 0 0
f +1 =0 → f =1 1 0 0 1 1 0 0
G=
j =0 → j =0 0 1 0 1 0 1 0
h +1 =0 → h=1 1 1 0 1 0 0 1
i +1 =0 → i =1
j +1 =0 → j =1
k +1 =0 → k =1
l +1 =0 → l =1
122 Solução II.1 – Códigos de Bloco
2. a)
r = [0 0 1 0 0 0 1 ]
↑ ↑ ↑
P1 P2 P3
1 0 0
0 1 0
1 1 0
r.HT = [0 0 1 ] → [ 0 0 1 0 0 0 1 ]. 0 0 1 = [0 0 1]
1 0 1
0 1 1
1 1 1
posição de bit errado= P 3 P 2 P 1 = 100 = 4° posição
b) [ D 1 D 2 D 3 D 4 ].G = C
1 1 1 0 0 0 0
1 0 0 1 1 0 0
[1 0 0 1 ] . =[0011001]
| {z } 0 1 0 1 0 1 0 | {z }
d ad o 1 1 0 1 0 0 1 cod i f i c ad o
um"dois
Solução II.2 – Códigos de Bloco Lineares de Comprimento fixo
¥1 ¦
Exemplo 1 d > 2 + 1 → t 6 2
(d − 1)
à ! à !
0 n n n!
n−n
X
2
| {z } ≥ , ,
1 i =0 i i (n − i )!i !
| {z }
1
C (n, n − 1, 2) → SPC , t 6 12 (2 − 1) → t = 0
¥ ¦
à !
0 n
n−(n−1)
X
|2 {z } ≥
2 i =0 i
| {z }
1
C (2n − 1, 2n − 1 − m, 3) → Hamming , t 6 12 (3 − 1) → t = 1
¥ ¦
à !
0 n
m m
2 −1−(2 −1−m)
X m 1 2 3 4
2 }≥
| {z
i =0 i
n 1 3 7 15
2m | {z }
1+n
¥1 ¦
C (n, 1, n) → Código de Repetição , t 6 2 (n − 1)
n 2 3 4 5 . . . etc
t
à ! ..
n−1
X n t 0 1 1 2 .
2 ≥ ..
i =0 i
n−1
2 2 4 8 16 .
1 + n + n(n+1)
P
1 1+n 1+n 2!
. . . et c
∴ Códigos de repetição com n ímpar são perfeitos .
C (n , 0 , ∞) → Código Triviais , t 6 12 (∞ − 1) → t = ∞
¥ ¦
à !
∞ n n(n + 1) n(n + 1)(n + 2)
n−0
X
2 ≥ = 1+n + +1+n + +...
i =0 i 2! 3!
124 Solução II.2 – Códigos de Bloco Lineares de Comprimento fixo
¥1 ¦
Código Grolay[wi ki ] C ( n = 23 , k = 12 , d = 7), t 6 2 (d − 1) → t =
3
à ! à !
t n 3 n
2n−k ≥ → |223−12
X X
i {z } ≥
i =0 2048 i =0 i
| {z }
à ! à ! à ! à !
23 23 23 23
+ + +
0 1 2 3
1 23 253 1771
| {z }
2048
Exemplo 2
C (1,1,1) = R M (0, 0) = {0, 1} código universal
C (2,2,1) = R M (1, 1)
&
R M (1, 2) {00 00 , 0011, 0110 , 1010 , 1001 , 1111, 1100 }
u u+v
C (4,3,2)SPC
%
C (2,1,2) = R M (0,1)
&
R M (0, 2) {0000, 1111}
C (4,1,4) Código Repetição
%
C (2,0,∞) = R M (−1,1)
De maneira análoga, podem-se obter os demais códigos da Fig. 1
125
C 4 = d1 ⊕ d3
C 5 = d1 ⊕ d2 ⊕ d3
C 6 = d1 ⊕ d2
(a) C k+1 = p m1 .d 1 ⊕ p m2 .d 2 ⊕ · · · ⊕ p mk .d k⊕
p 11 p 12 . . . p 1k
p 21 p 22 . . . p 2k
P = .. ..
..
. . .
p m1 p m2 . . . p mk
C 4 = 1.d 1 ⊕ 0.d 2 ⊕ 1.d 3 1 0 1
C 5 = 1.d 1 ⊕ 1.d 2 ⊕ 1.d 3 ⇒ P = 1 1 1
C 6 = 1.d 1 ⊕ 1.d 2 ⊕ 0.d 3 1 1 0
1 0 0 1 1 1
G = [ I k |P T ] = [ I 3 |P T ] = 0 1 0 0 1 1
0 0 1 1 1 0
1 0 0 1 1 1
G= 0 1 0 0 1
1
0 0 1 1 1 0
(b) k = 3 → 23 = 8 palávras de dados
Para
d1 = [ 0 0 0 ]
1 0 0 1 1 1
c 1 = d 1 .G = [ 0 0 0 ]. 0 1 0 0 1 1 = [ 0 0 0 0 0 0 ]
0 0 1 1 1 0
d2 = [ 0 0 1 ]
1 0 0 1 1 1
c 2 = d 2 .G = [ 0 0 1 ]. 0 1 0 0 1 1 = [ 0 0 1 1 1 0 ]
0 0 1 1 1 0
d3 = [ 0 1 0 ]
126 Solução II.2 – Códigos de Bloco Lineares de Comprimento fixo
1 0 0 1 1 1
c 3 = d 3 .G = [ 0 1 0 ]. 0 1 0 0 1 1 = [ 0 1 0 0 1 1 ]
0 0 1 1 1 0
d4 = [ 0 1 1 ]
1 0 0 1 1 1
c 4 = d 4 .G = [ 0 1 1 ]. 0 1 0 0 1 1 = [ 0 1 1 1 0 1 ]
0 0 1 1 1 0
d5 = [ 1 0 0 ]
1 0 0 1 1 1
c 5 = d 5 .G = [ 1 0 0 ]. 0 1 0 0 1 1 = [ 1 0 0 1 1 1 ]
0 0 1 1 1 0
d6 = [ 1 0 1 ]
1 0 0 1 1 1
c 6 = d 6 .G = [ 1 0 1 ]. 0 1 0 0 1 1 = [ 1 0 1 0 0 1 ]
0 0 1 1 1 0
d7 = [ 1 1 0 ]
1 0 0 1 1 1
c 7 = d 7 .G = [ 1 1 0 ]. 0 1 0 0 1 1 = [ 1 1 0 1 0 0 ]
0 0 1 1 1 0
d8 = [ 1 1 1 ]
1 0 0 1 1 1
c 8 = d 8 .G = [ 1 1 1 ]. 0 1 0 0 1 1 = [ 1 1 1 0 1 0 ]
0 0 1 1 1 0
c1 → 000000
c2 → 001110
c3 → 010011
c4 → 011101
⇒ Distância mínima igual a 3
c5 → 100111
c6 → 101001
c7 → 110100
c8 → 111010
c) Palavra recebida ⇒ 010111
127
1 1 1
0 1 1
T
· ¸
P 1 1 0
HT =
=
I3
1 0 0
1 1 0
1 0 1
vetor r :
r =[010111]
síndrome S:
1 1 1
0 1 1
T
1 1 0
S = r.H = [ 0 1 0 1 1 1 ]. =[100]
1 0 0
1 1 0
1 0 1
S é igual a quarta linha de H T , logo o 4° bit do vetor r está errado . O
código recebido correto é igual a 010011 que equivale a sequência de bits
de mensagem d 3 = 010 .
2)
1 0 1 1 0 0
H = 1 1 0 0 1 0
0 1 1 0 0 1
(a) H tem dimensão 6 x 3, logo n=6 e k=3 .
1 1 0
· T ¸ 0 1 1
1 1 0
P 1 0 1
HT = T 0 1 1
I3 1 0 0 ⇒P
=
0 1 0
1 0 1
0 0 1
1 0 0 1 1 0
G = [ I3 | P T ] = 0 1 0 0 1 1
0 0 1 1 0 1
(b)d = [ 1 0 1 ]
1 0 0 1 1 0
c = d .G = [ 1 0 1 ]. 0 1 0 0 1 1 = [ 1 0 1 0 1 1 ]
0 0 1 1 0 1
128 Solução II.2 – Códigos de Bloco Lineares de Comprimento fixo
(c) r = [ 1 1 0 1 1 0 ]
1 1 0
0 1 1
T
1 0 1
S = r.H = [ 1 1 0 1 1 0 ]. =[011]
1 0 0
0 1 0
0 0 1
S é igual a 2° linha de H T , logo o 2° bit de r está errado , a sequência
correta equivale a 100110.
A sequência de dados equivalente
a esse código
é igual a :
1 0 0 1 1 0
1 1 0 1 1 0 = [ d 1 d 2 d 3 ]. 0 1 0 0 1 1
0 0 1 1 0 1
d1 = 0
d 2 = 0 ⇒ Sequência de bits equivalente aos dados = 100∗
d3 = 0
* pode ser lida diretamente na palavra de código c, já que o código é
sistemático.
Solução II.3 – Códigos Cíclicos: Introdução
c = [000] → c i = [000] ∈ C a , ∀i
ok
c = [110] → c 1 = [011], c 2 = [101], c 3 = [110] . . . et c ∈ C a
Exemplo 2
a) Polinômio Gerador g(x)=?
∴ g r au{g (x)} = n − k = 3 − 2 = 1.
pois :
C a = {α.[110] + β [011]; α, β ∈ F2 }
| {z }
Combinaçao Linear gera o Código C a
Neste exemplo ,
· ¸ · ¸
g (x) 110
G= = e c = d .G
x.g (x) 011
b)
fatores de (1 + x 3 ) ?
g (x) = 1 + x divide (1 + x 3 ) ?
1 + x3 1+x
1 + x 1 + x + x2
x + x3
x + x2
x2 + x3
x2 + x3
0
1 + x + x 2 ⇒ é primo , só é divisível por 1 e por si mesmo .
+ x} ; |1 + x{z+ x }2 }
∴ fatores de (1 + x 3 ) ⇒ {1| {z
g (x) g 0 (x)
Obs.: caso k = 1.
Dado Código
[ 0 ] → d (x) = 0 d (x).g 0 (x) = 0 →[000]
[ 1 ] → d (x) = 1 1. (1 + x + x 2 ) = 1 + x + x 2 →[111]
| {z }
g er au n−k=3−1=2
⇒ é o código dual C a .
∴ g (x) é o único fator (primo) de mínimo grau que gera o código C a .
131
Exemplo 1 a)
C a (n = 3, k = 2, d = 2)
Supomos LINEAR → [ 0 0 0 ] ∈ C a
(1 + x n ) = g (x).h(x)
(1 + x 3 ) = (1 + x).h(x)
∴ h(x) = 1 + x + x 2
x3 + 1 x +1
x3 + x2 x2 + x + 1
x2 + 1
x2 + x
x +1
x +1
0
| {z }
de fato g(x) é fator de (1+x 2 )
g 1 (x) = x k .h(x −1 )
g 1 (x) = x 2 .(1 + x −1 + x −2 ) = x2 + x + 1 = 1 + x + x2
h0 h1 h2 h0 h1 h2 h2 h1 h0
134 Solução II.4 – Códigos Cíclicos
Matriz G.
· ¸ · ¸
g0 g1 0 110
G= =
0 g0 g1 011 k×n=2×3
Matriz H.
£ ¤ £ ¤ 1
H= h2 h1 h0 (n−k)×n = 1 1 1 1×3 = 1
1 3×1
G1 =
£ ¤ £ ¤
h2 h1 h0 = 1 1 1 1×3 =H
¡ ¢T
Gk×n . H(n−k)×n = 0 k×(n−k)
· ¸ 1 · ¸
1 1 0 0
. 1 =
0 1 1 0 2×1
1
[0 0 ].G = [0 0 0 ]
[0 1 ].G = [0 1 1 ]
[1 0 ].G = [1 1 0 ]
[1 1 ] .G =[1 0 1 ]
k n
obs :
x2 + 1 x +1
x2 + x x +1
x +1 ∴ d (x) = 1 + x → d = [ 1 1 ]
x +1
0
r (x) g (x)
Síndrome : s(x) = r (x) mod g (x)
s(x) d 0 (x) + 1
Caso o peso de e(x) < 21 d , então a síndrome s(x) está associada a um
único e(x) e o erro pode ser corrigido : r (x) + e(x) = c(x)
b)
C b é (n = 3 , k = 1 , d = 3) = {[ 0 0 0 ] , [1 1 1 ]} é linear e cíclico.
| {z }
pol .g er ad or g (x)=1+x+x 2 com g r au (n−k)=2
¥1 ¦
Esse código é capaz de corrigir até t = 2 (d − 1) = 1 er r o
A tabela de síndromes é :
x2 x2 + x + 1
2
x +x +1 1
x +1
Obs :
Suponha que :
x + 1 x 2 + x + 1 = g (x)
0 0 s(x) = x + 1
x +1
consultando a tabela , obtém-se e(x) = x 2
i = ... 0 1 2 3 4 5 6 7 8 ...
di = . . . 0 0 0 1 0 0 0 0 0 . . .
k
ci = . . . 0 0 0 1 1 1 0 0 0 . . .
n
Note-se que após entrar o dado d i (de comprimento k = 1), deve-se
entrar com (n − k) = 2 zeros para produzir uma palavra de código c de
comprimento n = 3.
H (z) = 1 + z −1 + z −2
A decodificação (divisão r (x) por g (x) pode ser feita pelo filtro in-
verso G(z)) tal que :
H (z).G(z) = z −N
z −2
escolhendo: G(z) = , temos :
1 + z −1 + z −2
Y (z) z −2
= → X [n − 2] = Y [n] + Y [n − 1] + Y [n − 2]
X (z) 1 + z −1 + z −2
∴ Y [n] = X [n − 2] + Y [n − 2] |{z}
+ Y [n − 1]
⊕ ª é a mesma operação para Y [n],X [n]∈F2
i= 0 1 2 3 4 5 6 7 8
ci = 1 1 1 0 0 0 1 0 1
d i = R 10 = 0 0 1 0 0 0 0 0 1 1
R0 = ci + di = 1 1 0 0 0 0 1 0 0 1
& & & & & & & & &
R 00 = 0 1 1 0 0 0 1 0 0
R i0 = R 00 + d i = 0 1 0 0 0 0 0 1 1 1
resto resto resto
[R 0 R 1 ] = [00] [0 0] [01]*
Exemplo 1)
Fq é um campo algébrico ?
0 1 2 0 1 2
SOMA 0 0 1 2 MULT 0 0 0 0
e
(mod.3) 1 0 2 0 (mod.3) 1 0 1 2
2 1 0 1 2 0 2 1
C (3 , 2 , 2)3 tem palavra de código de comprimento n=3 dígitos , dimensão
k=2 (há q k = 32 = 9 palavras de código validas) e a distância de hamming mínima
d=2. Queremos códigos SPC, logo c = [C 0 C 1 C 2 ] deve obedecer à verificação de
paridade :
n−1
X
Ci = 0 (II.6.7)
i =0
Daí temos :
P
z}|{
1 · ¸
T = 0 l og o G = [ P | αI n−k ] = 1 2 0
H = 1
1 0 2
1
|{z}
I n−k
é a matriz geradora(α é uma constante , α ∈ F3 )
d c
z }| { z }| {
[00] .G = [000]
[01] .G = [1 0 2]
de fato , [ 0 2 ] .G= [2 0 1] ([ 204 ] mod 3 )
[10] .G = [1 2 0]
.. ..
. .
Obs: O código gerado por G não é sistemático ; contudo, pode-se
recuperar o dado a partir dos dois últimos dígitos do código : ÷2
Exemplo 2
A condição de Singleton (Richard Collen Singleton)
k 6 n −d +1 (II.6.8)
a) C (n = 20 , k = 19 , d = 17)2
b C (n = 20,k = 19,d )q
19 6 20 − d + 1 → d = 2 é possível.
c) C (n = 20,k = 18,d )q
141
18 6 20 − d + 1 → max(d ) = 3
Prova de (II.6.8)
Seja um C (n, k, d )2 com todas as palavras
de código relacionadas abaixo
Palavras Truncadas
z }| { Palavras Truncadas distintas
1
z }| {
2 1 0 0
0 1 1
3
1 1 1
4
2k palávras de código 5 Exemplo: C (3,2,2)2 0 0 0
1 0 0
. . . .
. . . . 0 1 1
.
. . .
1 1 1
2k
|{z}
|{z} d-1
apagar d-1 dígitos
comprimento n
2k 6 2n−(d −1)
,ou seja
k 6 n − (d − 1)
∴ Para comprimentos não fixados, ao se escolher ’d’ grande , deve-se
ter k pequeno e vice-versa.
Códigos como o C (3,2,2)2 , que obedecem à equação (II.6.8) com igual-
dade , são ditos de máxima distância (MDS do inglês Maximum Distance
Separeable).
a) 1 × 0 + 2 × 1 + 3 × 3 + 4 × 2 + 5 × 8 + 6 × 3 + 7 × 7 + 8 × 9 + 9 × 6 + 10 × X 9 = 0
10 + 10 × X 9 = 0
→ (÷10) → 1 + X 9 = 0
X 9 = 10 ou dígito 0 X 0
1
2
3
4
5
b)[x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ] .
6
=0
n = 10 dígitos
7
8
9
10
|{z}
Dígito X n×(n−k)
1
2
3
4
5
T
⇒H =
6
7
8
9
X
c) d = [x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 , x 8 ]
k = 9 dígitos
m = n − k = 10 − 9 = 1 dígito de verificação
c.1) C (10, 9, 2)
c.2) O código ISBN-10 é capaz de corrigir até t = 12 (d − 1) = 21 (2 − 1) = 0
¥ ¦ ¥ ¦
erros. E é capaz de detectar até 1 erro nos dígitos . (Obs ∴ É possível de-
monstrar que esse código também é capaz de detectar inversão de 2
dígitos , detectando eventual erro de digitação.)
Exercício 1
146 Solução II.6 – Códigos Convolucionais
Exercício 2
Dica (código Matlab):
1 function [y,sf]=Exerc2TIC14(u,si)
2 D0=u;
3 D1=si(1);
4 D2=si(2);
5 y1=mod(D0+D1,2);
6 y2=mod(D1+D2,2);
7 sf=[D0 D1];
8 y=[y1 y2];
147
Referências