Escolar Documentos
Profissional Documentos
Cultura Documentos
Ementa
• Conceitos e Medidas da Informação
• Modelo Fonte-Canal
• Codificação da Fonte
• Compressão de dados
• Bases algébricas para detecção e correção de erros
• Códigos de Bloco e Polinomiais
• Criptografia
Bibliografia
Livro Texto
WELLS, RICHARD. Applied Coding and Information Theory for Engineers
Livros Complementares
GALLAGER. Information theory and reliable communication
CSISZAR, ELIAS. Topics on Information Theory
LATHI. Random Signal and Information Theory
HAMMING. Coding and Information Theory
BLAHUT. Principles and Practice of Information Theory
Provas
• 09 de Outubro
• 02 de Dezembro
2 P1 + 2 P2 + MT
NF =
5
Homepage :www.ene.unb.br/juliana/cursos/teoriainf
Material elaborado por Eduardo Wolsky e digitado por Rafael Oliveira em 03/07/2003
Primeira Aula
26/08/03
Imaginando uma moeda "desonesta" que tem uma probabilidade de
1/4 de cair como cara. Para um milhão de lançamentos quantos bits são
necessários para transmitir os resultados?
À primeira vista acreditamos que sejam necessários 1.000.000 bits
mas apenas 811.300 bits podem transmitir esta informação.
Pensando numa moeda mais viciada, com probabilidade de 1/1000
para cair cara, podemos enviar estas informações de várias maneiras
possíveis. Eis algumas idéias:
pA = 1/2
pB = 1/4
pC = 1/8
pD = 1/16
pE = 1/32
pF = 1/64
pG = 1/128
pH = 1/128
∑p
n= A
n × número de bits na representação
1 1 1 1 1 1 1 1
= × 1 + × 2 + × 3 + × 4 + × 5 + × 16 + ×7 + × 7 = 1,98 bits
2 4 8 16 32 64 128 128
Representação A
1 1 1 1 1
× 4 + × 4 + × 3 + × 2 + × 1 = 2,5 bits
8 8 4 4 4
Representação B
1 1 1 1 1
× 2 + × 2 + × 3 + × 3 + × 3 = 2,75 bits
8 8 4 4 4
Representação C
1 1 1 1 1
× 3 + × 3 + × 2 + × 2 + × 2 = 2,25 bits
8 8 4 4 4
j
H ( X ) = ∑ − p xi log 2 p xi
n =i
5
H ( X ) = ∑ − p xi log 2 p xi
n =1
1 1 1 1 1 1 1 1
= log 2 2 + log 2 4 + log 2 8 + log 2 16 + log 2 32 + log 2 64 + log 2 128 + log 2 128
2 4 8 16 32 64 128 128
1 1 1 1 1 1 1 1
= 1+ 2 + 3 + 4 + 5 + 6 + 7+ 7
2 4 8 16 32 64 128 128
= 0,5 + 0,5 + 0,375 + 0,25 + 0,15625 + 0,09375 + 0,0546875 + 0,0546875 = 1,984375 bits
Face Repres.
1 000
2 001
3 010
4 011
5 10
6 11
3+3+3+3+ 2+ 2
= 2,66
6
pH=1/4
pT=3/4
A entropia do evento é:
3 4 1
H(X ) = log 2 + log 2 4 = 0,81127814
4 3 4
1 ⋅ 81 4 ⋅ 4 ⋅ 27 4 ⋅ 6 ⋅ 9 2 ⋅ 5 ⋅ 9 4 ⋅ 6 ⋅ 3 4 ⋅ 1
+ + + + + = 3,49609375 a cada quatro bits
256 256 256 256 256 256
= 0,874023437 bits
1 ⋅ 81 3 ⋅ 2 ⋅ 27 4 ⋅ 2 ⋅ 27 5 ⋅ 6 ⋅ 9 7 ⋅ 9 7 ⋅ 4 ⋅ 3 4 ⋅ 1
+ + + + + + = 3,44921875 a cada quatro bits
256 256 256 256 256 256 256
= 0,862304687 bits
Segunda Aula 28/08/03
Modelo Fonte/Canal
Tipos de Fontes
Fonte Contínua: Associada ao sinal analógico
Fonte Discreta: Associada ao sinal digital, transmite símbolos de um alfabeto
fonte.
Alfabeto
Uma fonte discreta possui um número finito de símbolos únicos. O
conjunto de símbolos é chamado de alfabeto-fonte.
Exemplo 1
O conjunto das letras maiúsculas
A = {A, B, C, D,... Z}
Exemplo 2
O conjunto das letras maiúsculas, minúsculas e numerais.
Exemplo
• Podemos dizer que CAR RUA GEM é um 3-grama sobre o alfabeto A3.
Associações
A6 Z
A B C ... X Y Z
0 1 2 ... 24 25 26
Quantidade de Informação
Hartley escreveu em 1923 o arquivo que inaugurou a “Teoria da
Informação”
Shannon em 1948 descobriu que a função log pode medir a
quantidade de Informação.
I ( E ) = − log 2 p ( E )
Entropia
Dada uma variável aleatória x, a qual pode assumir um número finito
de valores possíveis xi, 1 ≤ i ≤ n, com probabilidades pi associadas a cada um
destes valores, e ∑p i = 1 , denominamos de entropia, designada por H(x), a
esperança matemática para a quantidade de informação contida em um evento
possível qualquer.
1
H ( x) = ∑ pi log 2
i pi
Propriedades
1
(1) H(p1, p2,... pn) é máxima quando p1 = p2 = ... = pn = (probabilidades
n
equiprováveis);
(2) Seja π uma permutação qualquer sobre {1, 2,... n}, H(p1, p2,... pn) =
H(pπ(1), pπ(2),... pπ(n));
(3) H(p1, p2, ... pn) ≥ 0 (Será igual a zero quando pi = 1 – quando não houver
incerteza);
1 1 1 1 1 1
(5) H , ,... < H , ,... (Ao acrescentar-se um valor, a
n n n n +1 n +1 n +1
incerteza aumenta);
(6) H(p1, p2,... pn) deve ser função contínua dos argumentos;
1 1 1 1 1 1 1 1 1
(7) H , ,... = H , ,... + H , ,... ;
mn mn mn m m m n n n
Exemplo
Considere o lançamento de uma moeda tal que pcara=p e pcoroa=1-p
(Neste caso representamos a entropia por h(p) ao invés de H(p, 1-p)).
Segue que h(p) = -plog2p - (1-p)log2(1-p)
Assumindo que h(0)=h(1)=0
Trace o gráfico de h(p), para p variando de 0 a 1.
Sabemos que o gráfico atingirá seu valor máximo quando p=0,5
(Propriedade 1), assim h(0,5) = 0,5 log22 + 0,5 log22=1, já temos o valor de h(p)
em três pontos. O suficiente para construirmos o seguinte gráfico:
Exemplo 2
Qual é a entropia de uma fonte de 4 símbolos com distribuição de
probabilidade PA = {0,5; 0,3; 0,15; 0,05} ?
1 1 1
H (0,5; 0,3; 0,15; 0,05) = 0,5 log 2 2 + 0,3 log 2 + 0,15 log 2 + 0,05 log 2
0,3 0,15 0,05
= 0,5 + 0,521 + 0,4105 + 0,216
= 1,647596 bits
Terceira Aula
02/09/03
Teorema
Para ∀ inteiro positivo n de distribuição de probabilidade P={p1, p2,
p3, ... pn}, temos que H(p1, p2, p3, ... pn) ≤ log2n, prevalecendo a igualdade se e
1
somente se pi = ∀1 ≤ i ≤ n .
n
Entropia Conjunta
Seja X um vetor aleatório, X=[A, B], onde A e B são variáveis
aleatórias, assumindo um número finito de valores possíveis ai e bj,
respectivamente. Então, a entropia para o vetor X pode ser escrita como:
H ( X ) = H ( A, B) = −∑ p( A = ai , B = b j ) log 2 p( A = ai , B = b j )
i, j
Teorema
Se x e y são duas variáveis aleatórias que assumem um número
finito de valores, então H(x,y) ≤ H(x) + H(y) com a igualdade prevalecendo se e
somente se x e y forem independentes.
Entropia Condicional
A incerteza acerca de X dado que Y=y pode ser definida como:
H ( X | Y = y ) = −∑ p( x = xi | Y = y ) log 2 p ( x = xi | Y = y )
i
A entropia condicional H(X|Y) chamada equivocação de X em
relação a Y, será o valor médio esperado ponderado para todas as possíveis
ocorrências de Y:
H ( X | Y ) = −∑ p( y j ) p( xi | y j ) log 2 p( xi | y j )
i, j
= −∑ p( xi , y j ) log 2 p ( xi | y j )
i, j
Teorema
H ( X , Y ) = H ( X ) + H (Y | X ) = H (Y ) + H ( X | Y ) (1)
p(a, b) = p(b) p(a | b) = p(a) p (b | a) (2)
Para provar (1) sabendo de (2)
H ( X , Y ) = −∑ p ( xi , y j ) log 2 p ( xi , y j )
i, j
= −∑ p ( xi , y j ) log 2 p ( xi ) p ( xi | y j )
i, j
= −∑ p ( xi , y j ) log 2 p ( xi ) − ∑ p ( xi , y j ) log 2 p ( xi | y j )
i, j i, j
= −∑ p( xi ) log 2 p ( xi ) + H (Y | X )
i
= H ( X ) + H (Y | X )
∑ p( x , y ) log
i, j
i j 2 p( xi ) = ∑ p( xi ) log 2 p( xi )
i
Exemplo
Seja A uma fonte de informação com alfabeto A = {0, 1, 2, 3}. Seja
cada símbolo an igualmente provável e seja B = {0,1} um gerador de paridade
com função
0, se a = 0 ou a = 3
bj
1, se a = 1 ou a = 2
H(a0, a1,... an-1) = H(a0) + H(a1 | a0) + H(a2 | a0, a1) + ... + H(an-1 | a0,... an-2)
n −1
H (a0 , a1 ,...an −1 ) ≤ ∑ H (ai )
i =0
Exemplo
Suponha uma fonte sem memória com A = {0,1} tendo símbolos
equiprováveis emitindo 6 símbolos. Seguindo o sexto símbolo, suponha que um
sétimo símbolo, soma módulo 2 (XOR) dos outros seis símbolos, seja
transmitido. Qual a entropia do 7-grama?
Sabemos que:
H (a0 , a1 , a2 ...a6 )
= H (a0 ) + H (a1 | a0 ) + H (a2 | a0 , a1 ) + H (a3 | a0 , a1 , a2 ) + H (a4 | a0 ...a3 ) + H (a5 | a0 ...a4 ) + H (a6 | a0 ...a5 )
H (a 0 , a1 , a 2 ...a 6 ) = 1 + 1 + 1 + 1 + 1 + 1 + 0 = 6 bits
Quarta Aula
04/09/03
Codificação da Fonte
Um codificador de fonte é um elemento de processamento de dados
que toma como entrada um n-grama de um alfabeto-fonte A e produz como
saída um m-grama do alfabeto código B. Estes m-gramas são chamados
palavras-código.
C:A→ B
C (a) 6 b ⇒ C −1 (b) 6 a
Exemplo
Seja uma fonte de quatro símbolos A={a0, a1, a2, a3} que possuem
probabilidades PA={0,5; 0,3; 0,15; 0,05}. Seja C um codificador que mapeia os
símbolos de A em strings de dígitos binários {0, 10, 110, 111} respectivamente.
Qual é o número médio de palavras por símbolo? Qual a eficiência do
codificador?
1 1 1 1
H ( A) = 0,5 log 2 + 0,3 log 2 + 0,15 log 2 + 0,05 log 2 = 1,6477 bits
0,5 0,3 0,15 0,05
Dado que a eficiência η é dada pela entropia dividida pelo número médio
de bits temos que:
H ( A) 1,6477
η= = = 97%
n 1,7
Somente a título de curiosidade vamos repetir o exemplo acima no caso de
uma codificação {00, 01, 10, 11}, teríamos obviamente um número médio de palavras
por símbolo de 2 bits e a eficiência seria, neste caso:
H ( A) 1,6477
η= = = 82,4%
n 2
Informação Mútua
A quantidade de informação que a ocorrência de um evento Y=y
fornece a respeito da ocorrência de um evento X=x é dada por:
I ( X ,Y ) = I ( X ) − I ( X | Y )
= − log 2 p( X ) − [− log 2 p( X | Y )]
p( X )
= − log 2
p( X | Y )
p( X ) p(Y )
= − log 2
p( X , Y )
p(Y )
= − log 2
p(Y | X )
= I (Y , X )
Teorema
Dadas duas variáveis aleatórias X e Y, podemos escrever que a
informação mútua ligando as duas variáveis será dada por:
I ( X , Y ) = H ( X ) + H (Y ) − H ( X , Y )
= H(X ) − H(X | Y)
= H (Y ) − H (Y | X )
Λ
mΛ ≥ nL ⇒ ≥ log m n
L
Exemplo
Considere |A| = 10. Codificando cada letra da fonte em um código
binário |B| = 2 qual será o valor de Λ, considerando L = 1?
Λ
≥ log m n
L
Λ
≥ log 2 10
1
Λ ≥ 3,3219
1 1 2 2
H ( X ) = − log 2 − log 2 = 0,918 bits
3 3 3 3
Λ H (s) − δ
≥
L log 2 m
I(BΛ)=I(SL)=LH(S)
n
λ = ∑ pi λi
i =1
Código II
λ = 0,5 ⋅ 1 + 0,25 ⋅ 1 + 0,125 ⋅ 2 + 0,125 ⋅ 2 = 0,5 + 0,25 + 0,25 + 0,25 = 1,25 bits
Código III
λ = 0,5 ⋅ 1 + 0,25 ⋅ 2 + 0,125 ⋅ 3 + 0,125 ⋅ 3 = 0,5 + 0,5 + 0,375 + 0,375 = 1,75 bits
Código IV
λ = 0,5 ⋅ 1 + 0,25 ⋅ 2 + 0,125 ⋅ 3 + 0,125 ⋅ 3 = 0,5 + 0,5 + 0,375 + 0,375 = 1,75 bits
Palavra Código
a1 0
a2 10
a3 110
a4 111
H ( s)
λ ≥
log 2 m
Além disso, existe um código instantâneo tendo comprimento médio
satisfazendo:
H ( s)
λ ≤ +1
log 2 m
Exemplo
Construa um código univocamente decodificável de condição prefixa
supondo que n=5 e m=2 e todos os símbolos são equiprováveis.
Agora devemos eliminar mr-n dos nós que corresponde a 23-5 = 3 nós,
lembrando que os nós que levam a apenas um ramo podem ser eliminados, assim
temos:
Na figura acima os nós marcados com vermelho foram os três nós
escolhidos para serem eliminados. O nó marcado de rosa pode ser eliminado porque
não levava a lugar algum. E os nós marcados de verde foram eliminados porque o nó
de origem levava apenas a um ramo (já se sabia que a informação era 011 quando
recebemos o 0 pois nenhum outro código inicia-se com 0).
Assim podemos finalmente desenhar a árvore indicando seus símbolos e
seus respectivos códigos:
Codificação de Huffman
Vamos supor que S é uma fonte discreta, sem memória, sobre um
alfabeto de n símbolos e que C é um código C = {wi} sobre um alfabeto binário
B={0,1}, 1 < i < n, cujas palavras-código tem comprimento médio λ(wi)= λ (i)
Lema
Para um alfabeto fonte com pelo menos dois símbolos, existe um
código compacto onde existem pelo menos duas palavras-código que tem
comprimento máximo λn=λn-1, cuja codificação é idêntica, exceto pelo último bit,
que vale 1 para wn e 0 para wn-1.
Exemplo
Considere uma fonte de 5 símbolos distintos com as probabilidades
associadas A={a1, a2, a3, a4, a5}, P={0,3; 0,25; 0,25; 0,1; 0,1}.
a1 (0,3) 0
(0,55) 0
a2 (0,25) 1
(1,00)
a3 (0,25) 0
(0,45) 1
a4 (0,1) 0
(0,20) 1
a5 (0,1) 1
A codificação final deve ser “lida” de trás para frente, assim temos:
Palavra Código
a1 0
a2 01
a3 10
a4 110
a5 111
Sexta Aula
11/09/03
Codificação Adaptativa
Nem sempre a probabilidade dos símbolos da fonte são
estacionárias. Por exemplo, algoritmos de compressão de imagens são
freqüentemente utilizados para comprimir tanto texto quanto imagens. Estas
duas fontes de dados tem probabilidades de símbolos diferentes e estas
probabilidades podem ser difíceis ou mesmo impossíveis de se obter
antecipadamente. Para lidar com estes aspectos, modelos e métodos
adaptativos de fonte foram desenvolvidos.
Parte-se de uma distribuição de probabilidades inicial, conforme se
vai obtendo mais símbolos da fonte, vai-se atualizando a distribuição de
probabilidades e a tabela de codificação. Aos símbolos com maiores contagens
de ocorrências são atribuídas palavras-código curtas.
Um exemplo é codificação adaptativa de Huffman MNP5, utilizada
em modems.
Codificação Preditiva
Assume-se dispor de um processo para “prever” o próximo símbolo
a ser emitido pela fonte. Considere o caso binário, em que temos uma fonte S
que emite símbolos pertencentes ao alfabeto A={0,1}
Exemplo
ACBXXXXXXDEF pode ser codificado como ABC@X5DEF,
considerando @ como caractere de escape. Observe como o número indica o
número de vezes que o caractere foi repetido, isto é, no nosso caso ele
apareceu uma vez e foi repetido cinco, totalizando seis vezes.
O caractere de escape deve ser escolhido com cuidado, ele deve ter
uma probabilidade pequena, ou até mesmo nula, no alfabeto.
Exemplo
Imagine a seguinte linha (onde 0 representa branco e 1 representa
preto)
0N
...01N
...10N
...01N
...1
10 37 1043 638
Como as cadeias tem comprimento na base 64 temos que
representar cada cadeia como múltiplos de 64 + resto, isto é:
10 b = 0x64 + 10
37 p = 0x64 + 37
1043 b = 16x64 + 19
638 p = 9x64 + 62
10 b = 00111
37 p = 000011010101
1043 b = 011010101 0001100
638 p = 01101000 000001100110
[00111][000011010101][011010101][0001100][01101000][000001100110][000000000
01]
Exemplo
Vamos utilizar a codificação baseada em dicionário para codificar a
seguinte frase:
Codificação de Lempel-Ziv
Os algoritmos Lempel-Ziv comprimem pela construção de um
dicionário de seqüências previamente encontradas. Dada uma posição em um
arquivo, olhe para a parte precedente do arquivo para encontrar a coincidência
mais longa para a seqüência que começa na posição corrente, e gere algum
código que se refira a esta coincidência.
As duas maiores variantes do algoritmo são descritas por ZIV e
Lempel em dos artigos separados em 1977 e 1978 e são conhecidos por LZ77
e LZ78. O algoritmo LZ77 é a base dos formatos GZIP, ZIP, ARJ, LHA e ZOO,
por exemplo, e baseia-se a idéia de janelas deslizantes. O algoritmo só procura
por coincidências numa janela de distância fixa para trás da posição corrente.
Exemplo
No exemplo abaixo, a seqüência “janela” da janela futura é
codificada como 07f, significando que a seqüência inicia na posição 0 da janela
de texto, tem comprimento 7 e a primeira letra após a mesma, na janela futura,
é “f”.
LZW
A cada entrada do dicionário é dado um endereço m. Cada entrada
consiste num par ordenado <n, aj>, onde n é um endereço para outra entrada
do dicionário (um ponteiro, que também funciona como a palavra-código a ser
transmitida) e aj é um símbolo do alfabeto fonte A.
Inicialmente, para |A|=M, o algoritmo inicia pela construção das
primeiras M+1 entradas no dicionário.
Endereço Entrada
0 0, null
1 0, a0
2 0, a1
... ...
M 0, aM-1
Exemplo
Uma fonte binária de informação emite a seqüência de símbolos 110
001 011 001 011 100 011 11 etc. Construa o dicionário de codificação e
determine a seqüência de símbolos-código transmitidos.
Uma vez que a fonte é binária, o código original deverá conter somente a
entrada nula e as entradas <0,0> e <0,1> nos endereços 0, 1 e 2 respectivamente. As
operações do codificador estão descritas na tabela abaixo.
End. Entrada
0 0, null
1 0, 0
2 0, 1
3 2, 1
4 2, 0
5 1, 0
6 5, 1
7 4, 1
8 3, 0
9 6, 0
10 1, 1
11 3, 1
12 4, 0
13 6, 1
14 ...
O decodificador, no receptor, também precisa construir um dicionário
idêntico àquele do transmissor e precisa decodificar os símbolos de código recebidos. A
operação do decodificador é governada pelas seguintes observações:
11
Digitado em 19/04/2003 por Rafael Oliveira
Oitava Aula
18/09/03
Codificação Aritmética
O objetivo é obter efeito de codificação de bit fracionado. A
codificação aritmética começa pela atribuição, a cada elemento de A, de um
subintervalo dos números reais 0 e 1. O comprimento do intervalo é igual às
probabilidades dos símbolos.
O processo consiste em construir um intervalo de código que
descreve unicamente um bloco de símbolos sucessivos da fonte.
Assuma que a ai ∈ A foi atribuído um intervalo Ii =[Sli, Shi]. Execute
os seguintes passos:
j = 0
Lj = 0
Hj = 1
Repita
∆ = Hj - Lj
Leia o próximo ai
Lj+1 = Lj + ∆⋅Sli
Hj+1 = Lj + ∆⋅Shi
j = j + 1
até que ai tenha sido codificado
Exemplo
Utilizando a codificação aritmética vamos codificar a palavra
“Compressão”. Utilizamos nos símbolos, a título de exemplo, somente as letras
da palavra em questão, primeiro as vogais, depois as consoantes, em ordem
alfabética. Poder-se-ia utilizar qualquer outra ordem, por exemplo, todas as
letras do alfabeto e sua probabilidade de aparição na Língua Portuguesa.
L=0
H=1
∆=H-L
Repita
Encontre i tal que
b−L
∈ Ii // Onde “b” é o código.
∆
Mostre o símbolo ai
H=L+∆⋅Shi // Os três passos seguintes são
L=L+∆⋅Sli // úteis quando as probabilidades
∆=H-L // são complicadas
Até que o último símbolo seja codificado
Exemplo
Suponha que recebamos o código 0,4313439216, conhecendo a
tabela de intervalos vemos que o número recebido está entre 0,4 e 0,5, no
intervalo do símbolo “C”.
b−L
Agora fazemos ∈ I i . Sendo b o código, L o limite inferior (por
∆
enquanto 0,4) e ∆ = H – L, no caso, 0,1 temos:
0,4313439216 − 0,4
= 0,313439216
0,1
O novo b está entre 0,2 e 0,4, representando o símbolo “O” e assim
por diante até obtermos a palavra completa.
Codificação do Canal
Canal de Informação
É um processo estocástico ao qual temos associado:
• Um alfabeto de entrada A = {a0, a1, ... na}
• Um alfabeto de saída B = {b0, b1, ... bn}
• Uma distribuição de probabilidade P(B|A) que relaciona
os símbolos que saem do canal em função dos
símbolos que entram.
Relações do Canal
Considerando um alfabeto de entrada A, com |A|=n e um alfabeto de
saída B, com |B| = m, a matriz de transição do canal P = [pij] = [p(bj | ai)], i = 0, 1,
... n-1 e j = 0, 1, ... m-1 coloca a distribuição de probabilidades do canal em
forma matricial.
# # # % #
p m −1|0 p m −1|1 p m −1|2 " p m −1|n −1
Exemplo
A = {0, 1}
B = { x, y, z}
n −1 m −1 n −1 m −1
2. ∑∑ p(b j | ai ) p(ai ) =∑∑ p(ai , b j ) = 1
i =0 j =0 i =0 j =0
n −1
∑ p(a ) p(b
i =0
i j | ai ) = p(b j ) ⇒ PB = PB| A ⋅ PAT
Exemplo
A = {0, 1}
B = {b0, b1, b2}∗
0,80 0,05
PB| A = 0,15 0,15
0,05 0,80
∗
Veja que peculiar. A entrada tem cardinalidade 2 e a saída tem cardinalidade 3... É uma forma de se
detectar erros, é chamado de decisão ampla ou soft decision.
Calcule agora H(A) e H(B).
1 1
H ( A) = 0,5 log 2 + 0,5 log 2 = 1 bit
0,5 0,5
1 1 1
H ( B ) = 0,425 log 2 + 0,15 log 2 + 0,425 log 2 = 1,464743854 bit
0,425 0,15 0,425
Exemplo
Considere o canal binário simétrico (CBS)
A = {0,1}
B = {0,1}
p(a = 0) = P p 1 − p
T =
p(a = 1) = Q = 1 − P 1 − p p
p(b = 0 | a = 0) = p (b = 1 | a = 1) = p
p(b = 1 | a = 0) = p(b = 0 | a = 1) = q = 1 − p
Vamos calcular PB
p q P Pp + Qq
PB = PB| A ⋅ PAT = ⋅ =
q p Q Pq + Qp
p(b = 0) = p(a = 1) p(b = 0 | a = 1) + p(a = 0) p(b = 0 | a = 0) = Qq + Pp
p(b = 1) = p(a = 1) p(b = 1 | a = 1) + p (a = 0) p(b = 1 | a = 0) = Qp + Pq
Exemplo
0,8 0,05
PB| A = 0,15 0,15
0,05 0,8
PB = [0,425 0,150 0,425]
PA = [0,5 0,5]
n −1 m −1 p (b j | ai )
I ( A, B) = ∑ p (ai )∑ p (b j | ai ) log 2
p (b )
i =0 j =0 j
0,8 0,15 0,05
= 0,5 ⋅ 20,8 log 2 + 0,1 5 log 2 + 0,05 log 2
0,425 0 ,1 5 0,425
= 0,57566 bits/uso do canal
Capacidade do Canal
A informação mútua I(A,B) conecta as duas portas do canal e pode
ser interpretada como a informação transmitida pelo canal. Traduz a diferença
da incerteza sobre a fonte antes e depois da transmissão, portanto, a
informação transmitida pelo canal depende da distribuição de probabilidades de
A que é PA.
A Capacidade do canal é dada por:
C = MAX p( A) ⋅ I ( A, B)
Canais Simétricos
Toda coluna de PB|A é uma permutação da primeira coluna.
Toda linha de PB|A é uma permutação da primeira linha.
Para canais simétricos, a capacidade é atingida quando p(a) é
uniformemente distribuída.
Décima Aula
25/09/03
Exemplo 1
Calcule a Capacidade do QPSK (Phase Shift Key) considerando
|A|=|B|=4.
Logo:
3 3 p(b j | ai )
I ( A, B) = ∑ p(ai )∑ p(b j | ai ) log 2
p(b )
i =0 j =0 j
0,950 0,024 0,002
= 4 ⋅ 0,25 ⋅ 0,950 log 2 + 2 ⋅ 0,024 log 2 + 0,002 log 2
0,25 0,25 0,25
= 1 ⋅ [1,83 − 0,16 − 0,01] ≅ 1,66
Exemplo 2
CBS (Canal Binário Simétrico)
p 1 − p
PB| A =
1 − p p
I ( A, B) = H ( A) − H ( A | B) = H ( B) − H ( B | A)
= − p log 2 p − (1 − p ) log 2 (1 − p )
= h( p )
assim...
C = 1 − h( p )
Algoritmo Arimoto-Blahut
É baseado no fato de que a capacidade do canal pode ser limitada
tanto superior quanto inferiormente para algumas funções simples de PA. O
Algoritmo recursivamente atualiza PA.
1 1 1
PA = p0 = , p1 = ,..., p N −1 =
Inicialize N N N
PB = PB| A ⋅ PA
Repita
p j|i
f i = exp∑ p j|i ln para i ∈ [0,1,..., N − 1]
p
j j
x = F ⋅ PA
I L = log 2 ( x) // Lower Limit
IU = log 2 [ MÁX ( f i )] // Upper Limit
Se ( IU − I L ) < ε então
C = IL
Pare
Senão
f i pi
pi = para i ∈ [0,1,..., N − 1]
x
PB = PB| A ⋅ PA
Fim Se
Fim Repita
0 ≤ H ( A | B) ≤ H ( A)
H ( A0 , A1 ,... An−1 )
R= ≤ H ( A)
n
Teorema
Suponha R<C, onde C é a capacidade de um canal sem memória.
Então para qualquer ε > 0 existe um comprimento de bloco n e um código de
bloco de comprimento n e taxa de entropia R cuja probabilidade de erro de
decodificação de bloco pe satisfaz pe < ε quando o código é usado neste canal.
[
(cutoff-rate) → R0 = − log 2 0,5 + p (1 − p ) ]
Esta taxa somente é ultrapassada por códigos turbo (recentemente
criados, por volta de 1993).Material elaborado por Eduardo Wolsky e digitado por
Rafael Oliveira em 03/07/2003