SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
CENTRO UNIVERSITÁRIO SALESIANO DE SÃO PAULO
UNISAL – CAMPUS SÃO JOSÉ
Weverton Soares Ferreira
ESTUDO DO FEC – FORWARD ERROR CORRECTION E
CÓDIGOS CORRETORES DE ERRO CONVOLUCIONAIS
Campinas
2016
CENTRO UNIVERSITÁRIO SALESIANO DE SÃO PAULO
UNISAL – CAMPUS SÃO JOSÉ
Weverton Soares Ferreira
ESTUDO DO FEC – FORWARD ERROR CORRECTION E
CÓDIGOS CORRETORES DE ERRO CONVOLUCIONAIS
Relatório de Iniciação Científica parcial apresentando o
estudo dos códigos corretores de erros Convolucionais.
Curso de graduação em Engenharia Elétrica em
Habilitação em Telecomunicações no Centro Universitário
Salesiano de São Paulo, realizado sob orientação do Prof.
Dr. Fernando Silvestre da Silva.
Campinas
2016
AGRADECIMENTOS
Primeiramente a Deus, meu porto seguro, nunca me deixou desanimar, sempre me deu
forças e me capacitou em todos os momentos. Se não fosse por Ele, não conseguiria sozinha,
pois, Ele é a base de toda conquista e cada sucesso que consegui conquistar e que ainda
conquistarei.
A minha família, sempre me apoiando e me auxiliando nos momentos mais difíceis desta
caminhada. Em especial, minha mãe sem ela me dando forças e me ajudando a não desanimar
e a não desistir, me falando palavras de encorajamento e sempre ao meu lado, sem dúvidas
seria muito difícil chegar até aqui.
A minha noiva Luana, que sempre me apoiou em todos os dias, mesmo nos dias de
descanso ela sempre esteve comigo me dando suporte e carinho para que pudesse continuar.
A meus amigos e colegas de sala que sempre serão lembrados e estarão guardados em meu
coração. Especialmente, aos amigos e companheiros, Bruno, Deiverson, Lucas, Lino e
Thiago, sempre estando junto a cada passo, sempre um apoiando o outro.
Ao professor Dr. Fernando Silvestre que me auxiliou de forma excepcional e mesmo com
dificuldades de datas conseguia um período para me orientar. Seu papel foi muito importante
para o desenvolvimento desse estudo.
Obrigado a todos!
Weverton Soares Ferreira
SUMÁRIO
SUMÁRIO..........................................................................................................................................................4
RESUMO............................................................................................................................................................5
1. INTRODUÇÃO .........................................................................................................................................6
2. TEORIA DA INFORMAÇÃO...................................................................................................................6
2.1. MEDIDA DA INFORMAÇÃO.............................................................................................................7
2.2. CAPACIDADE DO CANAL ................................................................................................................8
2.3. TEOREMA DA CODIFICAÇÃO DO CANAL..................................................................................10
2.4. TEOREMA DA CODIFICAÇÃO DE FONTE ...................................................................................11
3. CODIFICAÇÃO DE ERROS ..................................................................................................................11
4. CÓDIGOS DE BLOCOS LINEARES.....................................................................................................14
4.1. HAMMING .........................................................................................................................................15
5. CÓDIGOS CÍCLICOS.............................................................................................................................17
6. CÓDIGOS CONVOLUCIONAIS............................................................................................................17
7. DECODIFICADOR DE VITERBI ..........................................................................................................20
7.1. CÁLCULO DA MÁXIMA VEROSSIMILHANÇA...........................................................................22
8. MODULAÇÃO DIGITAL.......................................................................................................................22
8.1. Modulação por Chaveamento de fase Binária......................................................................................24
8.2. Modulação por Chaveamento de Quadratura de fase...........................................................................25
8.3. Modulação de Amplitude em Quadratura ............................................................................................26
9. PROPOSTA .............................................................................................................................................27
10. DESENVOLVIMENTO......................................................................................................................28
11. ANÁLISE DE DESEMPENHO ..........................................................................................................29
12. CONCLUSÃO .....................................................................................................................................33
REFERÊNCIAS................................................................................................................................................34
RESUMO
A comunicação digital tem sido cada vez mais utilizada e tem permitido avanços
significativos nas taxas de transmissão em sistemas de comunicações. Dentro das revoluções
que permitiram a flexibilização das comunicações está a utilização de algoritmo que alteram a
taxa de transmissão e adaptam o sistema às condições do canal variante no tempo.
Este projeto tem como objetivo desenvolver e simular um sistema de comunicação digital
para estudar o FEC (Forward Error Correction).
Utilizando a ferramenta MATLAB da companhia MathWorks® para simulações, pretende-
se comparar os desempenhos simulados de códigos Convolucionais em conjunto com
diversos tipos de taxas de puncionamentos (relação bit útil vs bit de paridade).
1. INTRODUÇÃO
Um dos principais problemas encontrados em um sistema de comunicação é a integridade
dos bits durante o processo de transmissão. Independente do canal utilizado, sempre haverá
interferências no canal de comunicação (barreiras em um sistema de comunicação via rádio
ou algum problema com a fibra óptica, por exemplo) que poderão alterar os bits que foram
transmitidos. No processo de decodificação das informações trafegadas pelo canal, o
receptor pode ser capaz de detectar e corrigir esta alteração no bit por meio da utilização da
técnica conhecida por Forward Error Correction (FEC) que consiste na inserção de bits de
informações redundantes sem que haja a necessidade de retransmissão do sinal. Estas
redundâncias são conhecidas por bits de paridade. (HAYKIN, MOHER, 2008, 2011).
Esse sistema é muito utilizado em comunicações no qual há um único transmissor e
vários receptores como, por exemplo: rádio difusão e televisão. Estes métodos de
comunicação utilizam somente o canal de transmissão. Dessa forma, não havendo o canal
de retorno, não é possível saber se a informação transmitida chegou ao destinatário de
forma íntegra. Por esta necessidade de corrigir os bits que sofreram alterações sem que haja
retransmissão foram criados os códigos corretores de erros. (LATHI, 1998).
Também utiliza-se o sistema de correção de erro em sistemas, nos quais tem-se a
transmissão e a recepção no canal. Exemplos: comunicação wireless, radio amador e
comunicação celular. Quando tem-se um canal praticamente perfeito, a probabilidade de
haver algum erro durante a transmissão é muito pequena, por isso, é necessário um número
menor de bits de paridade por bloco de informação. A medida que as interferências no canal
aumentam, existe a necessidade do aumento de bits de paridade por bloco. Esta relação bits
de paridade por bloco de bits é conhecida por puncionamento. (HAYKIN, MOHER, 2008).
Este projeto de pesquisa propõe o estudo do FEC, código corretores de erros do tipo
Convolucionais, suas implementações e aplicações.
Utilizando a ferramenta MATLAB da companhia MathWorks® para simulações,
pretende-se comparar os desempenhos simulados de códigos Convolucionais em conjunto
com diversos tipos de taxas de puncionamentos (relação bit útil vs bit de paridade).
2. TEORIA DA INFORMAÇÃO
A teoria da informação é um ramo da Matemática Aplicada, Engenharia Elétrica e
Ciência da Computação que envolve a quantificação, armazenamento e comunicação de
informações. A teoria da informação foi originalmente desenvolvida por Claude E. Shannon
para encontrar limites fundamentais no processamento de sinais e de comunicação, tais
como compressão de dados. Desde a sua publicação em 1948, intitulada de Uma Teoria
Matemática da Comunicação (A Mathematical Theory of Communication), essa teoria foi
ampliada para encontrar aplicações em diversas áreas, incluindo a Comunicação,
computação, física, entre outras. Nas comunicações, esta teoria trabalha com a modelagem
matemática e não com sistemas físicos (Fontes e Canais). (HAYKIN, MOHER, 2011).
Nesse artigo Shannon introduziu um modelo estatístico subjacente à teoria da
informação. Em seu artigo ele iniciava dizendo que o principal problema da comunicação é
reproduzir (perfeitamente ou quase) num determinado local uma mensagem produzida em
um outro local distinto. (SHANON, 1948).
Essa Teoria aborda três conceitos básicos: Medida da informação (Incerteza, Entropia,
Informação Mútua Média e Capacidade do Canal); Codificação do Canal e Codificação da
Fonte. (HAYKIN, MOHER, 2008).
2.1.MEDIDA DA INFORMAÇÃO
O conceito de informação está subjetivamente ligado a incerteza. Uma informação que é
considerada como improvável é mais valiosa (ou maior), pois a probabilidade de ocorrer erros
é muito menos, tornando-se mais raro. Em contrapartida, uma informação considerada como
provável é menos valiosa (ou menor), pois a sua probabilidade de ocorrer erros é muito maior
(HAYKIN, MOHER, 2008), (LATHI, 1998). Com isso, Shannon elaborou um modelo
matemático que pudesse medir a quantidade de informação por evento aleatório que atendesse
os seguintes requisitos:
a)Informação não pode ser negativa.
b)A informação é Nula somente se o evento tiver probabilidade igual a 1.
c)Quanto menor for a certeza (probabilidade), maior será a sua informação.
Figura 1 – Informação associada com o evento S=Sk de probabilidade Pk
Fonte: (HAYKIN, MOHER, 2011)
Para atender esses requisitos, Shannon utilizou a função Logarítmica. A informação
resultante dessa equação é chamada de bit (uma abreviação de binary digit - Dígito Binário).
(HAYKIN, MOHER, 2008).
𝐼(𝑆 𝐾) = 𝑙𝑜𝑔2(1 𝑃𝑘⁄ ) = −𝑙𝑜𝑔2(𝑃𝑘) [bits] (1)
Analisando o gráfico anterior, pode-se verificar que quando tem-se probabilidade Pk=1/2, a
quantidade de informação𝐼(𝑆 𝐾) = 1. Conforme mencionado por Haykin, Entende-se que um
bit é uma unidade de informação ganhada quando ocorre um de dois eventos possíveis e
igualmente prováveis (isto é, equiprováveis).
A quantidade de informação𝐼(𝑆 𝐾)produzida pela fonte em um determinado período
depende do símbolo 𝑆 𝐾 emitido pela fonte. Desta forma, pode assumir os
valores 𝐼(𝑆0), 𝐼(𝑆1), 𝐼(𝑆2), . . . , 𝐼(𝑆 𝑁−1)com suas respectivas probabilidades
𝑃0, 𝑃1, 𝑃2,. . . , 𝑃 𝑁−1.𝐼(𝑆 𝐾) é interpretada como uma variável aleatória.
A média de toda a informação 𝐼(𝑆 𝐾) em todo o alfabeto α é apresentada da seguinte forma:
𝐻(𝛼) = 𝐸[𝐼(𝑆 𝐾)]
𝐻(𝛼) = ∑ 𝑃𝑘 𝐼(𝑆 𝑘)𝑁−1
𝑘=0
𝐻(𝛼) = ∑ 𝑙𝑜𝑔2
𝑁−1
𝑘=0 (
1
𝑃 𝑘
)
(2)_
2.2.CAPACIDADE DO CANAL
É de interesse em várias aplicações haver uma comunicação com o número de bits
transmitidos por segundo de forma confiável através do meio de comunicação. (HAYKIN,
MOHER, 2008). Para melhor entendimento será definido os conceitos de entropia relativa e
informação mútua.
Imagine uma saída de canal Y que é a versão da entrada X com ruído. A entropia é a medida
de incerteza prévia de X.
É possível medir a incerteza de X após analisar Y?
Para responder a questão, é preciso compreender a entropia condicional de X, dado que
Y=Yk. Pode-se escrever da seguinte forma:
𝐻(𝑋 𝑌⁄ = 𝑌𝑘) = ∑ 𝑃(𝑥𝑗 𝑦 𝑘⁄ )𝑙𝑜𝑔2 (
1
𝑃(𝑥 𝑗 𝑦 𝑘⁄ )
)
𝐽−1
𝐽=0 (3)
Essa quantidade é uma variável aleatória, que pode assumir os valores
H(X/Y=y0),...,H(X/Y=yk-1) com probabilidade p(y0),...,p(yk-1), respectivamente.
Para conhecer a média da entropia H(X/Y=yk) sobre o alfabeto Y, é possível utilizar o
modelo expressado na equação 4:
𝐻(𝑋 𝑌⁄ ) = 𝐻(𝑋 𝑌⁄ = 𝑌𝐾) ⋅ 𝑝(𝑦𝑘)
𝐻(𝑋 𝑌⁄ ) = ∑ ∑ 𝑃
𝐽−1
𝐽=0
𝑘−1
𝑘=0 (𝑥𝑗 𝑦𝑘⁄ )𝑝(𝑦𝑘)𝑙𝑜𝑔2 (
1
𝑃(𝑥𝑗 𝑦𝑘⁄ )
)
𝐻(𝑋 𝑌⁄ ) = ∑ ∑ 𝑃
𝐽−1
𝐽=0
𝑘−1
𝑘=0 (𝑥𝑗, 𝑦𝑘)𝑙𝑜𝑔2 (
1
𝑃(𝑥𝑗 𝑦𝑘⁄ )
)
(4)
Sendo p(xj,yk) = p(xj/yk).p(yk)
H(X/Y) é chamada de entropia condicional e mede a quantidade de informação que é
perdida no canal. Logo, a informação que atravessa efetivamente o canal é:
I(X;Y) = H(X) – H(X/Y) (5)
Figura 2 – Fluxo de transmissão em um canal de comunicação
Fonte: Próprio Autor
Onde I(X;Y) é conhecido por Informação Mútua.
Desta forma, verifica-se que, a informação mútua é dependente da distribuição de
probabilidade de X. Desta forma, existe uma distribuição P(X) que maximiza I(X;Y), logo,
Capacidade do Canal é o máximo da informação mútua média, por utilização do canal.
(HAYKIN, MOHER, 2008, 2011)
𝐶 = 𝑚𝑎𝑥
𝑝(𝑥𝑗)
𝐼(𝑋; 𝑌) (6)
Esta capacidade é medida em bits por utilização do canal.
2.3.TEOREMA DA CODIFICAÇÃO DO CANAL
Ao transmitir um certo bit, é esperado que o mesmo seja recebido e reproduzido,
independentemente de qualquer problema que tenha ocorrido no canal. Para que essa
informação possa ser recuperada com alta confiabilidade utiliza-se a codificação do canal, que
tem como função utilizar técnicas para aumentar o grau de certeza no momento da
recuperação.
A ideia consiste em inserir informações redundantes, de tal forma que, mesmo após passar
por um canal ruidoso, o decodificador terá a capacidade de detectar e corrigir possíveis erros
nos bits entregues.
Para haver esta redundância é considerado a seguinte regra: para cada k bits de informação
são produzidos n bits de saída. Sendo que n>k. (HAYKIN, MOHER, 2008, 2011).
Estes bits adicionados ao bloco de informação são chamados de bits de paridade e a
quantidade de bits de paridade se obtém subtraindo o total de bits de informação pelo total de
bits produzidos, n-k.
Através dessas informações é possível verificar que a razão k/n é chamada de taxa de
código. Comumente é utilizado r para representar esta taxa. Desta forma, pode-se escrever:
𝑟 =
𝑘
𝑛
(7)
Para que a reconstrução da sequência original no destino é necessário que a probabilidade
média de erro de símbolo seja pequena.
Segundo Haykin (HAYKIN, MOHER, 2011), a teoria de codificação do canal discreto e
sem memória de Shannon, é dividida basicamente em duas partes:
Suponha um canal discreto de alfabeto (α) tenha a entropia H(α) e produza símbolos a cada
Ts segundos. Considere um canal com capacidade C e que seja utilizado a cada Tc segundos:
𝐻(𝛼)
𝑇𝑠
≤
𝐶
𝑇𝑐
(8)
O produto C/TC é conhecido por Taxa Crítica. Quando é satisfeita a condição de igualdade
na equação descrita à cima entende-se que o sistema está em sua Taxa Crítica. Isso quer dizer
que, a taxa média de incerteza por unidade de tempo não pode ser maior que a Taxa Crítica
Inversamente, se
𝐻(𝛼)
𝑇𝑠
≤
𝐶
𝑇𝑐
(9)
Não é possível transmissão de reconstrução da informação transmitida no canal a uma
probabilidade de erro relativamente pequena. (HAYKIN, MOHER, 2008).
O Teorema da codificação do canal não apresenta como montar um bom código, porém, se
a condição
𝐻(𝛼)
𝑇𝑠
=
𝐶
𝑇𝑐
for satisfeita, haverá bons códigos.
2.4.TEOREMA DA CODIFICAÇÃO DE FONTE
A base do teorema da codificação de fonte é baseada em dois fatores (HAYKIN, MOHER,
2008):
Ao transmitir algum sinal de comunicação (Ex: Voz) em sua forma natural existe uma
grande quantidade de informação considerada redundante, e essas informações redundantes
consomem potência e largura de banda na transmissão.
Para ter melhor eficiência na transmissão (consumir menos potência e largura de banda), é
retirada essas informações redundantes antes da transmissão.
Esses dois fatores pode ser entendido da seguinte maneira:
Em uma fonte discreta com determinada entropia, o comprimento médio da palavra código
para a codificação é limitado superiormente à entropia. (HAYKIN, MOHER, 2011).
Entropia é a média de informação por símbolo gerado pela fonte. Com base no teorema da
codificação de fonte, a entropia é o limite de bits por símbolo necessário para representação.
Esse número pode ser tão pequeno quanto a entropia, porém, nunca menor que a mesma. A
eficiência pode ser representada seguinte forma:
𝑛 =
𝐻(𝑠)
𝐿
(10)
Sendo, H(s) a entropia da fonte S e L o número médio de bits por símbolo durante a
codificação da fonte.
3. CODIFICAÇÃO DE ERROS
O Teorema da codificação do canal afirma que se um canal tiver a capacidade C e uma
fonte que gere informação a uma taxa menor que a capacidade, existe uma codificação para
que a saída da fonte possa ser transmitida pelo canal com probabilidade de erro baixa. Dessa
forma classifica-se a capacidade como um limite fundamental nas taxas de transmissão de
mensagens confiáveis que pode ocorrer em um canal. (HAYKIN, MOHER, 2011).
A figura 3 apresenta o como o processo de codificação/decodificação pode ser inserido em
um sistema de comunicação Digital, conhecida como correção direta de erros ou Forward
Error Correction (FEC).
A fonte gera informação binária. O codificador de canal recebe a informação e adiciona bits
de redundância de acordo com uma regra, pré-determinada, produzindo assim, dados
codificados a uma taxa de bits elevada. O decodificador analisa a redundância para poder
decidir qual bits de mensagem realmente foram transmitidos. A ideia é reduzir os efeitos do
ruído no canal. Porém, a inserção de bits de paridade provoca um aumento na largura de
banda. Além da complexidade no sistema, principalmente par implementação das operações
de decodificação. (HAYKIN, MOHER, 2011).
Figura 3 – (a) Modelo Sistema de Comunicação Digital; (b) Modelo de sistema de comunicação com codificação
e modulação combinadas.
Fonte: (HAYKIN, MOHER, 2011)
Na Figura 3a o modelo apresentado realiza separadamente as operações de codificação de
canal e modulação. Porém, quando é necessário eficiência de largura de banda, o método mais
efetivo é o da Figura 3b, que trabalha com a combinação do codificador de erro com o
modulador.
Uma característica do teorema da codificação do canal menos se satisfaz, é a sua natureza
não construtiva. Neste teorema é afirmado que existem bons códigos, porém, não é
apresentado a forma de encontrá-los. Desta forma, foi necessário encontrar um bom código
que permita a garantia de uma transmissão confiável através do canal.
O Canal discreto sem memória é compreendido pelo conjunto de probabilidades de
transição p(j/i), sendo i um símbolo de entrada do modulador, j um símbolo de saída do
demodulador e p(j/i) a probabilidade de receber j dado que i foi transmitido. (HAYKIN,
MOHER, 2011).
Um exemplo simples a se utilizar é o caso de um canal binário. Neste canal o modulador
terá somente dois símbolos (0 e 1) de entradas, e desta forma, o decodificador terá somente
entradas binárias, caso seja utilizado uma decisão rígida, que se baseia na quantização binária
da saída do decodificador. Neste caso, é obtido um BSC (canal binário simétrico) como
apresentado no diagrama de probabilidade de transição (Figura 4)
Figura 4 – Diagrama de Probabilidade de transição.
Fonte: (HAYKIN, MOHER, 2011)
Sendo p a probabilidade de ter ocorrido alteração na fonte original do símbolo.
A utilização do método de decisão antes da decodificação provoca uma perda de
informação significativa e irreversível no receptor. Para minimizar o impacto, foi criada uma
decisão suave.
Conforme mostrado na figura 5, o modulador possui apenas os símbolos binários 0 e 1,
porém, agora há Q símbolos na saída do demodulador. Analisando especificamente a Figura 5
há Q=8. Desta forma, o canal é conhecido por canal discreto sem memória de saída Q-ária e
entrada binária. Na Figura 6 o diagrama de probabilidade de transição é apresentado.
(HAYKIN, MOHER, 2011).
Figura 5 – Quantizador Multinível.
Fonte: (HAYKIN. S. MOHER. M., 2011)
Figura 6 – Diagrama de probabilidade de transição do canal
Fonte: (HAYKIN, MOHER, 2011)
4. CÓDIGOS DE BLOCOS LINEARES
Os códigos lineares estão na classe dos códigos mais utilizados. Para entender mais sobre
este código será analisado um caso prático.
Considere-se um código binário com tamanho total de 6 bits. Destes seis bits, os três
primeiros contem informação (C1, C2 e C3), nos próximos três bits será adicionado
redundância de informação. Para que isso possa ser criado, considere-se que, em todo o
conjunto {0,1} existe uma operação de soma. (MILIES, 2009). Definiremos os dígitos de
redundância conforme a regra abaixo:
𝐶4 = 𝐶1 + 𝐶2
𝐶5 = 𝐶1 + 𝐶3
𝐶6 = 𝐶2 + 𝐶3
(11)
É possível apresentar também em formato de notação Vetorial:
𝐶 = 𝐶1, 𝐶2, 𝐶3, 𝐶1 + 𝐶2, 𝐶1 + 𝐶3, 𝐶2 + 𝐶3 (12)
Usando a notação Matricial, também é possível apresentar a palavra C:
𝐶1, 𝐶2, 𝐶3 [
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1
] = (𝐶1, 𝐶2, 𝐶3, 𝐶1 + 𝐶2, 𝐶1 + 𝐶3, 𝐶2 + 𝐶3) (13)
Assim, quando (C1, C2 e C3) percorre todos os elementos da matriz, é possível reproduzir
todas as palavras código. Por isso, esta matriz é conhecida de Matriz Geradora do código.
Pode-se escrever em formato de sistema:
0 = 𝐶1 + 𝐶2 + 𝐶4
0 = 𝐶1 + 𝐶3 + 𝐶5
0 = 𝐶2 + 𝐶3 + 𝐶6
(14)
Desta forma, um vetor Y = (y1, y2, y3, y4, y5, y6) está no código, se e somente se:
(𝑦1, 𝑦2, 𝑦3, 𝑦4, 𝑦5, 𝑦6) =
[
1 1 0
1 0 1
0 1 1
1 0 0
0 1 0
0 0 1]
= (0,0,0) (15)
Com está condição, é possível verificar se o vetor recebido pertence ou não ao código. Por
este motivo, a matriz acima é conhecida por Matriz de Verificação.
4.1.HAMMING
É um código de Linha que utiliza álgebra binária para calcular os bits de paridade.
Considere uma mensagem com k bits.
M={m0,m1,m2,m3,..,mk-1}
E um vetor de paridade com (n-k) bits.
P={p0,p1,p2,p3,..,pn-k-1}
E uma palavra código de n bits
C={c0,c1,c2,c3,..,ck-1}
O código de Hamming se constrói da seguinte maneira:
C = p0, p1, m0, p2, m1, m2, m3, p4, m4, m5,...
Será definida a palavra código com n=2L-1, sendo L a quantidade de bits de paridade na
palavra e n a quantidade total de bits.
L = 3 e n = 7, logo, o código de Hamming é 4/7: p0, p1, m0, p2, m1, m2, m3
L = 4 e n = 15, logo, o código de Hamming é 11/15: p0, p1, m0, p2, m1, m2, m3, p4, m4,
m5, m6, m7, m8, m9, m10
O Algoritmo do código de Hamming é formado da seguinte maneira:
‐ Numera os bits a partir de 1: bit 1, 2, 3, 4, etc.
‐ Escreve o número do bit em binário: 1, 10, 11, 100, etc.
‐ Todas as posições que são potências de dois são bits de paridade.
‐ Todas as outras posições são os bits de informação.
‐ Cada bit de informação é incluído num único conjunto de 2 ou mais bits de
paridade, conforme determinado pela sua posição.
a) O bit de paridade p0 abrange todas as posições e tem o bit menos significativo ativo:
bit 1 (o bit de paridade em si), 3, 5, 7, 9, etc.
b) O bit de paridade p1 abrange todas as posições que tem o seguindo bit menos
significativo ativo: bit 2 (o bit de paridade em si), 3, 6, 7, 10, 11, etc.
c) O bit de paridade p2 abrange todas as posições de bits que possuem o terceiro bit
menos significativo: bits 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, etc.
d) O bit de paridade 8 abrange todas as posições de bits que tem o quarto bit menos
significativo ativo: bits 8 a 15, etc. (HAYKIN, MOHER, 2008).
Este algoritmo pode ser mostrado visualmente na Figura 7:
Figura 7 – Tabela de Paridade
Fonte: (Próprio Autor)
Se for realizado um soma binária linha por linha, pode-se chegar a:
𝑆0 = 𝑝0 + 𝑚0 + 𝑚1 + 𝑚3 + 𝑚4 + 𝑚6 + 𝑚8 + 𝑚10 + 𝑚11 + 𝑚13
𝑆1 = 𝑝1 + 𝑚0 + 𝑚2 + 𝑚3 + 𝑚5 + 𝑚6 + 𝑚9 + 𝑚10 + 𝑚12 + 𝑚13
𝑆2 = 𝑝2 + 𝑚1 + 𝑚2 + 𝑚3 + 𝑚7 + 𝑚8 + 𝑚9 + 𝑚10
𝑆3 = 𝑝4 + 𝑚11 + 𝑚12 + 𝑚13 + 𝑚14
. . .
(16)
Sendo Sk [K=0, 1,...,k-1] conhecido por Síndrome.
A checagem no receptor é feita recalculando as paridades e assim, obtendo a síndrome.
Se o resultado da síndrome for (0,0,0,0,...) quer dizer que não houve erro no bit.
Se houver um erro, a síndrome indica a posição do erro em notação binária.
Ex: Sk=(100)2 convertendo em decimal fica S = 4, significa que o erro ocorreu no 4º bit.
Sk=[Sn-k-1, Sn-k-2,....S0].
5. CÓDIGOS CÍCLICOS
Os códigos Cíclicos são uma subclasse importante nos códigos de blocos lineares. (LATHI,
1998). São códigos algebricamente manuseáveis com polinômios, sem necessidade de
recorrer a matrizes e vetores.
A codificação é realizada com registros de deslocamento de k ou n-k.
Em um código cíclico, um deslocamento de uma palavra código conduz outra palavra
código:
Se [yn, yn-1,...,y0] for uma palavra código, então [yn-1,...,y0,yn] também será uma palavra
código.
Este código é importante pelo fato da codificação/decodificação e o cálculo da síndrome
serem realizados facilmente com o registro do deslocamento e alguma lógica adicional.
6. CÓDIGOS CONVOLUCIONAIS
Como apresentado nos tópicos acima, os códigos corretores de erros tem a função de
detectar possíveis erros que possam ter ocorrido durante a transmissão da informação em um
canal interferências (ruídos).
Em codificações por blocos, o codificador necessita ter uma capacidade de armazenar todo
o bloco de informações antes de inserir os bits redundantes. Porém, para os casos em que
temos a inserção de informações de forma linear e não bloco a bloco, esse tipo de codificação
pode encontrar problemas. Para estes tipos de casos, o uso dos códigos Convolucionais é
maior. (HAYKIN, MOHER, 2008).
O código convolucional consiste na inserção de bits de redundantes de forma linear. Para
inserção desta redundância de bits é utilizado convoluções de módulo 2, onde originou-se o
nome. (HAYKIN, MOHER, 2011).
A taxa do código é dada por:
𝑟 =
𝐿
𝑛(𝐿+𝑀)
bits/símbolo (17)
Onde M é a quantidade de estágios e n a quantidade de somadores, codificando uma
sequência de mensagem de L bits que resultará na sequência codificada n(L+M).
Comumente L>>M, então, é possível simplificar a fórmula dizendo que:
𝑟 ≈
1
𝑛
bits/símbolo (18)
Considerando um código convolucional com uma taxa de 1/n (bits por símbolo), pode-se
dizer que se trata de uma máquina de estados finitos.
A partir do momento que o bit entrar no registrador, deverá passar por todos os estágios até
que saia do mesmo. Esta quantidade de deslocamentos que o bit fará é conhecido como
comprimento de restrição e pode ser expressada por K=M+1. Isso significa que um único bit
da mensagem influenciará em K mensagens codificadas. (HAYKIN, MOHER, 2008).
Na Figura 8 será apresentado uma máquina de 4 estados (22
) com uma taxa de ½ (2 bits de
saída para cada 1 bit de entrada) em formado de diagrama de blocos com uma entrada X(n),
duas saídas Gx(n) e dois atrasadores D. (NETO, 2011)
Figura 8 – Somador – Código convolucional.
Fonte: (NETO, 2011)
Cada saída Gx(n) pode ser expressada como uma equação de polinômios.
𝐺0(𝑛) = 𝑋(𝑛) + 𝑋(𝑛 − 1) + 𝑋(𝑛 − 2)
𝐺1(𝑛) = 𝑋(𝑛) + 𝑋(𝑛 − 2)
(19)
A medida que entrar um novo bit em X(n) todos os bits existentes se deslocarão, este
processo se repete a cada entrada de novo bit. Desta forma, cada bit terá influência em k=3
mensagens codificadas.
A informação da máquina de estado é binária, logo, o somador contido na Figura 8 realizará
uma soma binária.
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
(20)
As Figuras 9,10 e a tabela 1 apresentam diversas formas de representar um mesmo código.
Todas as Figuras trabalharam com a representação de um código com uma taxa de ½, isso
quer dizer, que para cada dois bits de informações enviadas, um é redundante. Esta taxa
contém uma grande capacidade de correção de erros, porém, em um processo de transmissão,
acarreta na lentidão do recebimento dos dados, pois metade da capacidade do canal está sendo
ocupado por bits redundantes.
Para melhorar a velocidade de transmissão dos dados, pode-se alterar esta taxa de ½ para
outro valor, desta forma, o canal terá maior capacidade de informação útil. Estes outros
valores de taxa são conhecidos como taxas de puncionamentos.
Conforme a escolha da taxa de puncionamento, durante uma transmissão, o canal poderá
conter maior ou menor capacidade informação útil.
Figura 9 – Máquina de estados – Código convolucional.
Fonte: (NETO, 2011)
Figura 10 – Treliça – Código convolucional.
Fonte: (NETO, 2011)
Tabela 1 – Tabela Verdade – Código convolucional.
Fonte: (NETO, 2011)
7. DECODIFICADOR DE VITERBI
Em um processo de comunicação, após codificar a mensagem, a mesma é enviada ao
receptor através do canal. O mesmo recebe diversos níveis de sinais sem sentido.
Para entender estes níveis de sinais e, convertê-los em informação, se faz necessária a
utilização de um decodificador que seja capaz de compreender e decodificar estes sinais já
codificados.
Nesse estudo, será utilizado o decodificador de Viterbi.
Este processo utiliza a decodificação de probabilidade máxima e a decodificação de
distância mínima, para os casos de canal binário simétrico. Desta forma, pode-se utilizar uma
treliça para decodificar a mensagem recebida pelo canal. (HAYKIN, MOHER, 2008).
Uma palavra código representa um caminho percorrido na treliça, conforme apresentado na
Figura 10. A cada transição de nó é gerado um símbolo. Desta forma, considerando que é
sabido as possibilidades de transição entre os nós, limita-se a escolha dos possíveis percursos
no processo de decodificação. (HAYKIN, MOHER, 2011).
Este decodificador utiliza um algoritmo que visa recriar o trajeto realizado pelo codificador
inversamente.
Este algoritmo é considerado por muitos o algoritmo perfeito para casos em que, a
sequência gerada a partir da treliça esteja corrompida devido a interferências de ruídos
brancos aditivos gaussianos (AWGN – Additive white gaussian noise). (PACHECO, 2002).
Através do conjunto de métricas de cada transição, é calculada a distância de acordo com a
forma que os dados foram recebidos.
Se a representação é através de um único bit, a literatura refere-se como hard decision data.
Quando apresentado através de múltiplos bits, a literatura refere-se como soft decision data.
A soft decision (decisão suave), é responsável por interpretar os valores reais recebidos (0,9,
-1, 0, 0,3, etc.) e decidir se será 1 ou 0. Desta forma pode-se exemplificar 0,8 sendo
interpretado como 1, pois a probabilidade deste valor ser 1 é muito maior. Inversamente
falando, -0,8 pode-se interpretar como 0.
Durante o processo de decodificação, esse algoritmo criará diversas palavras código, até
encontrar o trajeto que tem a maior probabilidade de estar correto.
A Figura 11 exemplifica este processo de decodificação, sempre considerado o caminho
mais curto na treliça.
Figura 11 – Determinação recursiva do percurso mais curto através do algoritmo de Viterbi
Fonte: (MÉNDEZ, 2000)
Durante o processo, o decodificador pondera as informações dos caminhos obtidos na
treliça e descarta o menos provável, até que por fim, tenha-se um único caminho, que por sua
vez, é mesmo caminho gerado no transmissor.
7.1. CÁLCULO DA MÁXIMA VEROSSIMILHANÇA
Como já apresentado no item anterior, durante o processo de decodificação através do
algoritmo de Viterbi, é considerado o caminho com a menor distância entre os pontos da
treliça.
Existem diversas formas de se calcular essa distância, dentre elas, tem-se a distância através
do cálculo da máxima verossimilhança.
A Lei da Verossimilhança determina que um certo comportamento em que exista duas
hipóteses possa ser explicado pela razão entre estas hipóteses. Esta observação favorece a
hipótese A sobre a hipótese B somente se PA(x)>PB(x) (BATISTA, 2009).
Desta forma, a razão de verossimilhança mede a força da evidência da hipótese A sobre a
hipótese B
Aplica-se essa lei para o cálculo da distância entre os pontos da treliça. Para facilitar o
cálculo torna-se mais vantajoso utilizar essas funções de verossimilhança dentro do logaritmo.
𝑙𝑗(𝑥𝑗) = 𝑙𝑜𝑔 (
𝑝(𝑥=1)
𝑝(𝑥=0)
) (21)
Sendo:
lj>0 Mais provável que seja 1
lj =0 Equiprovável
lj <0 Mais provável que seja 0
Posteriormente será aplicado o cálculo de Máxima Verossimilhança em um processo de
decodificação de Viterbi.
8. MODULAÇÃO DIGITAL
Um processo de modulação tem como objetivo a transformação de um sinal em seu formato
original para um sinal modulado que adequa-se ao meio que será trafegado. Os modelos
convencionais são:
‐ Modulação em Amplitude (AM - amplitude modulation);
‐ Modulação em Frequência (FM - frequency modulation);
‐ Modulação em Fase (PM - phase modulation);
Estes modelos de modulação convencionais são conhecidos por modulação analógica. Esta,
por sua vez, trabalha com sinais senoidais que contém um número infinito de possíveis
mensagens com formas de ondas. (HAYKIN, MOHER, 2008).
A modulação digital trabalha com uma quantidade finita de formas de ondas. Desta forma o
processo de demodulação é mais simples. (HAYKIN, MOHER, 2011). Sinais digitais estão
baseados em pulsos retangulares. Estes pulsos são representados por 0 e 1.
Na modulação digital, há três modelos básicos de modulação, assim como na analógica.
Estes modelos são: chaveamento de amplitude (Amplitude Shift Keying - AKS), chaveamento
de frequência (Frequency Shift Keying - FSK) e chaveamento de fase (Phase Shift Keying -
PSK). (HAYKIN, 2004).
Na Figura 12 pode-se notar a diferença entre os três tipos de modulação para um sinal
binário (0 ou 1).
Figura 12 – Dado na banda base convertido em modulação ASK, FSK e PSK.
Fonte: (GOEL, 2013)
Dentre essas modulações, pode-se notar uma grande diferença entre a modulação ASK com
as demais (FSK e PSK). Isso é devido ao ASK ser uma modulação em amplitude. Quando o
símbolo 1 é transmitido, sua representação se faz através de uma onda da portadora senoidal
de amplitude e frequências já determinadas. Em contra partida, o símbolo 0 é apresentado
pelo desligamento do sinal ou a falta do mesmo. (HAYKIN, MOHER, 2011).
Em geral, pode-se entender o sinal ASK através de uma fórmula de liga e desliga.
No FSK, a modulação é feita através de duas ondas de mesma amplitude, porém em
frequências diferentes. Neste caso, quando existe o símbolo 1, a frequência é maior do que
quando temos o símbolo 0, onde sua frequência é muito menor.
Já no PSK, é utilizada a onda da portadora com amplitude e frequência já determinadas para
representar o símbolo 1, e para representar o símbolo 0 a fase da portadora é deslocada 180
graus. (HAYKIN, 2004).
8.1.MODULAÇÃO POR CHAVEAMENTO DE FASE BINÁRIA
Como já mencionado, a modulação do tipo PSK altera em 180 graus a onda da portadora
quando há uma transição de 0 para 1 ou de 1 para 0. Desta forma, pode-se chamar esse tipo de
modulação por Chaveamento de Fase Binária (Binary Phase Shift Keying - BPSK).
Em um sistema BPSK, utiliza-se dois sinais s1(t) e s2(t) para representação dos símbolos 0 e
1. (HAYKIN, 2004), as equações 22 e 23 definirão estes sinais.
𝑆1(𝑡) = √(
2𝐸 𝑏
𝑇 𝑏
) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) (22)
𝑆2(𝑡) = √(
2𝐸 𝑏
𝑇 𝑏
) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡 + 𝜋) = −√(
2𝐸 𝑏
𝑇 𝑏
) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) (23)
Onde 0<t<Tb, e Eb é a energia do bit transmitido. (HAYKIN, 2004).
A figura 13 exemplifica uma constelação BPSK com base nas informações apresentadas na
Tabela 2. Onde o eixo Q representa a quadratura (Quadrature) e o eixo I representa a fase (In
Phase). Assim, com a alteração da fase é possível codificar o bit.
Figura 13 – Constelação BPSK.
Fonte: (Próprio Autor)
Tabela 2 – Tabela BPSK
Fonte: (UFSM, 2016)
8.2.MODULAÇÃO POR CHAVEAMENTO DE QUADRATURA DE FASE
Diferente da modulação BPSK, a modulação por Chaveamento de Quadratura de fase
(Quadrature Phase Shift Keying - QPSK) tem o dobro de sua eficiência espectral, devido ao
fato transportar em cada símbolo dois bits. E para ter esta capacidade, tem-se quatro fases
(π/4; 3π/4; 5π/4 e 7π/4). (UFSM, 2016).
Cada possível valor de fase corresponde a um dibit (par de dígitos binários usados para
representar valores) único. Dessa forma, por exemplo, pode-se escolher o conjunto precedente
de valores de fase para representar o conjunto de dibits codificados pelo código Gray: 00, 01,
10 e 11, onde somente um único bit é mudado de um dibit para o seguinte. (HAYKIN, 2004)
A figura 14 exemplifica uma constelação QPSK com base nas informações apresentadas na
Tabela 3.
Figura 14 – Constelação QPSK
Fonte: (UFSM, 2016)
Tabela 3 – Tabela QPSK
S(t) Fase Bits Símbolo
𝐴 [cos (𝑤𝑡 +
π
4
)] = A
√2
2
[cos(𝑤𝑡) − sin(𝑤𝑡)]
π
4
00 S1
𝐴 [cos (𝑤𝑡 +
3π
4
)] = A
√2
2
[−cos(𝑤𝑡) − sin(𝑤𝑡)]
3π
4
01 S2
𝐴 [cos (𝑤𝑡 +
5π
4
)] = −A
√2
2
[cos(𝑤𝑡) − sin(𝑤𝑡)]
5π
4
11 S3
𝐴 [cos (𝑤𝑡 +
7π
4
)] = −A
√2
2
[−cos(𝑤𝑡) − sin(𝑤𝑡)]
7π
4
10 S4
Fonte: (UFSM, 2016)
8.3.MODULAÇÃO DE AMPLITUDE EM QUADRATURA
Neste tipo de modulação, há o mapeamento dos símbolos em fase e quadratura. Desta
forma, pode-se compreender a modulação de Amplitude em Quadratura (Quadrature
Amplitude Modulation - QAM) como um tipo de modulação que mescla a modulação em
amplitude com a modulação em fase. (HAYKIN, 2004).
Como exemplificado na figura 15, tem-se a constelação de um sistema QAM com 16
possibilidades de estados. A distância entre a origem e o ponto é a amplitude. E o ângulo entre
o eixo 0 até o ponto é a fase.
Obtêm-se o número de possíveis estados a partir da quantidade de bits por símbolo.
Logo, pode-se definir que:
M = número de bits
Número de estados = 2M
Figura 15 – Constelação QAM
Fonte: (Próprio Autor)
A modulação QAM é definida na equação 24. Onde, E0 é a energia do sinal que possui
menor amplitude e Sk(t) é o sinal QAM M-ário transmitido para o símbolo k.
𝑆 𝑘(𝑡) = √(
2𝐸0
𝑇
) 𝑎 𝑘 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) − √(
2𝐸0
𝑇
) 𝑏 𝑘 𝑠𝑒𝑛(2𝜋𝑓𝑐 𝑡)
0 ≤ 𝑡 ≤ 𝑇
𝑘 = 0, ±1, ±2, . . .
(24)
Ainda na figura 15, pode-se notar que trata-se de uma constelação quadrada, onde os
valores de amplitude (25%, 50% e 75%) são a Energia do sinal E0. (HAYKIN, 2004).
9. PROPOSTA
Como já apresentado, este projeto de pesquisa propõe o estudo do FEC, código corretores
de erros do tipo Convolucionais através de alterações de taxas de puncionamentos.
Para a realização dos testes utilizou-se o software MATLAB, da companhia MathWorks®.
O principal motivo pela escolha deste aplicativo se deu pela sua alta capacidade de
modelagem matemática, desta forma, é possível recriar com alta confiabilidade um ambiente
de comunicação que contém transmissão, canal de transporte e recepção.
O aplicativo pode ser utilizado com sua ferramenta gráfica (Simulink) ou a programação
através de linhas de comandos. Optou-se pela utilização de ambas as ferramentas. Através do
Simulink foi recriado um sistema completo de comunicação. E pela linha de comando foi
realizada a programação da automatização, para que pudesse ter a capacidade de analisar e
realizar as alterações necessárias durante o teste.
Como pode-se observar na figura 16, foi projetado um sistema de comunicação utilizado o
Simulink. Os testes foram realizados em utilizando o método de modulação QAM. Este
sistema é alimentado por uma fonte geradora binária de Bernoulli, que através de sequencias
randômicas expeli bits, simulando o fluxo de informação que será trafegada no mesmo.
Figura 16 – Constelação QAM
Fonte: (Próprio Autor)
Na sequência, os bits proferidos pela fonte, encaminham-se ao bloco que simula o código
convolucional. Como citado no Item 6 deste artigo, a função do código convolucional
consiste na inserção de bits redundantes de forma linear. (HAYKIN, MOHER, 2011). Dentro
deste código, será adicionado e configurado o puncionamento (porção de bits de paridade em
relação aos bits de mensagem). Quanto maior for esta relação, menor será a quantidade de bits
de paridade a serem enviados.
Após a codificação do canal e a configuração do puncionador, os bits serão encaminhados
ao Modulador digital. Utilizou-se o modulador 16QAM que tem a capacidade de enviar 4 bits
por estado. (HAYKIN, 2004).
Finalizado o processo de modulação, o sinal é transmitido ao canal. Para fins de testes, foi
utilizado um canal AWGN, abreviação do termo em inglês Additive White Gaussian Noise ou
em português, canal de ruído branco Gaussiano. Este canal tem a capacidade de recriar um
meio de transmissão com ruído gaussiano, ruído esse que é encontrado em canais reais.
(HAYKIN, MOHER, 2011). Neste canal é possível configurar qual será a energia do bit
(Eb/N0) a ser transmitido, e através desta informação, o canal poderá ter uma boa capacidade
de transmissão ou não.
Utilizou-se uma sequência de Eb/N0 entre 0 e 30 dB com intervalos de 0.1 a fim de
observar qual a resposta que o código apresenta em cada valor de Eb/N0.
Passado o sinal pelo canal AWGN, o processo será inverso, passa-se pelo demodulador e
posteriormente para o decodificador do código convolucional.
Existem diversos métodos de decodificação. Para valores de k símbolos relativamente
pequenos, geralmente é utilizado o Decodificador de Viterbi, pois ele oferece a melhor
performance do ponto de vista probabilístico. Dentro disso, foi considerada a utilização do
método de Viterbi.
O decodificador de Viterbi realizará a análise dos bits recebidos e através das técnicas
descritas no item 7 fará a correção destes bits. Após essa correção, é calculado o produto entre
a quantidade de erros ocorridos e a quantidade de bits que foram enviados. O resultado do
produto é conhecido por Bit Error Rate (BER) ou em português, taca de erro de bit. E através
do BER é possível definir se há a necessidade de alterar a taxa de puncionamento ou não.
10.DESENVOLVIMENTO
Para a realização do teste, criou-se uma programação no MATLAB onde pôde-se
automatizar o processo a fim de analisar os resultados obtidos ao fim de cada etapa do teste e
alterar suas configurações de forma automática.
Foram vários os parâmetros utilizados para a simulação, porém pode-se dar maior
importância para a variação de ruído do canal (Eb/N0) e as taxas de puncionamento. Os
valores de Eb/N0 iniciaram a partir do valor mais baixo (zero) onde pode-se considerar como
um canal ruim e que é praticamente impossível realizar a decodificação até o valor mais alto
(limitou-se a 30dB) onde pode-se ter uma transmissão sem erros.
O próximo parâmetro utilizado foi a taxa de puncionamento. Utilizou-se 5 taxas de
puncionamentos para a realização dos testes e estas taxas foram:
a) 1/2 – Sem retirada de bits de paridade, para cada 1 bit é gerado outro de paridade.
b) 3/5 – Para cada 5 bits enviados, 3 são bits de informação útil e 2 são bits de
paridade.
c) 3/4 – Para cada 4 bits enviados, 3 são bits de informação útil e 1 é bit de paridade.
d) 5/6 – Para cada 6 bits enviados, 5 são bits de informação útil e 1 é bit de paridade.
e) 7/8 – Para cada 8 bits enviados, 7 são bits de informação útil e 1 é de paridade.
Todas as taxas foram mensuradas a fim de poderem ser testadas com o mesmo número de
amostras por frame que a fonte de Bernoulli produz.
Realizou-se para cada valor de Eb/N0 testes com aproximadamente 1x106
bits e com o
limite de erros em 1x103
assim, padronizou-se todos os testes para uma melhor análise de
resultados.
Devido a pequenas variações encontradas nos testes constatou-se que estas poderiam ser
provenientes de alguma interferência da fonte geradora de bits.
Tendo em vista que a fonte trabalha com sementes geradoras de sequências (seeds). Assim,
para cada valor de Eb/N0 sob uma determinada taxa de puncionamento utilizou-se 10 tipos
diferentes de sementes na fonte geradora, totalizando em 10 testes para cada valor.
Após a finalização dos testes foi realizado uma média aritmética para obter um valor
somente em cada valor de Eb/N0.
Para a realização dos testes de forma automatizada foi criado um código no próprio
MATLAB e no mesmo foi configurado todos os parâmetros necessários. Assim, a alteração
de qualquer parâmetro pode ser realizada através desse código.
11.ANÁLISE DE DESEMPENHO
As figuras 17, 18, 19, 20 e 21 apresentam os resultados obtidos através dos testes para cada
taxa de puncionamento e a figura 23 apresenta todos os códigos em um único gráfico,
podendo desta forma entender a diferença entre eles.
Figura 17 – Taxa de Puncionamento 1/2
Fonte: (Próprio Autor)
Figura 18 – Taxa de Puncionamento 3/5
Fonte: (Próprio Autor)
Figura 19 – Taxa de Puncionamento 3/4
Fonte: (Próprio Autor)
Figura 20 – Taxa de Puncionamento 5/6
Fonte: (Próprio Autor)
Figura 21 – Taxa de Puncionamento 7/8
Fonte: (Próprio Autor)
Figura 22 – Todas as taxas
Fonte: (Próprio Autor)
É possível observar que a medida que a taxa de puncionamento aumenta há uma piora nos
resultados dos testes. Em contra partida, ao mesmo tempo o percentual de bits que contém
informação útil também aumenta. Ou seja, a taxa de puncionamento 1/2 pode ter uma maior
capacidade de correção, porém, a sua taxa de transmissão é bem menor que a do
puncionamento 7/8 que tem uma capacidade de correção menor.
Assim, pode-se constatar e dizer que cada taxa de puncionamento se adequa melhor em
uma determinada situação ou necessidade. Por exemplo: em um sistema que está enfrentando
problemas durante a transmissão a taxa com maior quantidade de bits de paridade se faz mais
útil. Assim como quando este mesmo sistema estiver em um canal de comunicação que
apresenta uma quantidade baixa de erros, pode-se utilizar uma taxa com maior quantidade de
bits de informação, aumentando assim sua taxa de transmissão.
12.CONCLUSÃO
Através desse estudo foi possível observar a diferença que um sistema de codificação de
erros pode causar no canal de comunicação.
A figura x apresenta o desempenho do canal sem o código convolucional e pode-se notar
que a taxa de erros é superior a qualquer taxa que foi testada durante esse estudo. Assim, o
uso de códigos corretores de erros traz bons resultados em qualquer situação se comparado ao
canal sem o código.
REFERÊNCIAS
ABRANTES, S.; Códigos corretores de erros em comunicações digitais. 1. Ed., Porto:
Norprint, 2010.
BATISTA, J. L. F.; Verossimilhança e Máxima Verossimilhança, Apostila de curso:
Esalq – USP, 2009. Disponível em
<http://cmq.esalq.usp.br/BIE5781/lib/exe/fetch.php?media=03-funcao-veros:verossim.pdf>
Acesso em 14/05/2016
GOEL, A.; Digital Carrier Modulation. Site MathWorks®, 2013. Disponível em
<http://www.mathworks.com/MATLABcentral/fileexchange/40984-digital-carrier-
modulation/content/Digital_modulations.m> Acesso em 14/06/2016
HAYKIN. S., MOHER. M.; Sistemas Modernos de Comunicações Wireless. 1. Ed., Porto
Alegre: Bookman, 2008.
HAYKIN. S., MOHER. M., Sistemas de Comunicações. 5. Ed., Porto Alegre: Bookman,
2011.
LATHI, B.P; Modern digital and analog communication systems. 3. Ed. New York:
Oxford University Press Inc, 1998.
MÉNDEZ, L. A. T.; Viterbi Algorithm in Text Recognition. Quebec: McGill University,
2000. Disponível em <http://www.cim.mcgill.ca/~latorres/Viterbi/va_main.html> Acesso em
20/05/2016
MILIES, C.P.; Breve Introdução à Teoria dos Códigos Corretores de Erros. Colóquio
de Matemática da Região Centro-Oeste, 2009.
NETO, A. C.; TV Digital I: Entrelaçadores Temporais para Sistemas de Transmissão.
Site Teleco, 2011. Disponível em
<http://www.teleco.com.br/tutoriais/tutorialtvdentr1/pagina_2.asp> Acesso em 12/05/2016
PACHECO, Roberto Vargas; Projeto de um codificador/decodificador Viterbi
integrado. Porto Alegre: Site UFRGS, 2002. Disponível em
<https://www.lume.ufrgs.br/bitstream/handle/10183/17789/000723533.pdf?sequence=1>
Acesso em 19/05/2016
SHANON, C.E. A Mathematical theory of communication. The Bell System technical
Journal, 1948.

Mais conteúdo relacionado

Semelhante a Estudo de códigos corretores de erros convolucionais para comunicações digitais

Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...
Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...
Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...Antonio Marcos Alberti
 
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...Frederico José S. Gomes
 
TCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesTCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesVirgilio Ximenes
 
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...Edquel B. Prado Farias
 
Trabalho de Conclusão de Curso
Trabalho de Conclusão de CursoTrabalho de Conclusão de Curso
Trabalho de Conclusão de CursoRicardo Perotti
 
SisEdu – Sistema Educacional - Módulo Financeiro
SisEdu – Sistema Educacional - Módulo FinanceiroSisEdu – Sistema Educacional - Módulo Financeiro
SisEdu – Sistema Educacional - Módulo FinanceiroUNIEURO
 
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...wevertonsferreira
 
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...Anderson Weller
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEdward David Moreno
 
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3YASMIN ALVES
 
01 aula - 07082012
01   aula - 0708201201   aula - 07082012
01 aula - 07082012atsileg
 

Semelhante a Estudo de códigos corretores de erros convolucionais para comunicações digitais (20)

Apostila de matlab
Apostila de matlabApostila de matlab
Apostila de matlab
 
Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...
Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...
Desenvolvimento de Modelos de Simulação para a Análise de Qualidade de Serviç...
 
1999_05_rodrigues
1999_05_rodrigues1999_05_rodrigues
1999_05_rodrigues
 
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...
Utilização de rádios cognitivos nas futuras gerações de sistemas de comunicaç...
 
Dissertação
Dissertação Dissertação
Dissertação
 
TCC Virgilio Rocha Ximenes
TCC Virgilio Rocha XimenesTCC Virgilio Rocha Ximenes
TCC Virgilio Rocha Ximenes
 
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...
PADRONIZAÇÃO NO ATENDIMENTO DO SERVICE DESK DE UM HOSPITAL PÚBLICO UTILIZANDO...
 
Trabalho de Conclusão de Curso
Trabalho de Conclusão de CursoTrabalho de Conclusão de Curso
Trabalho de Conclusão de Curso
 
SisEdu – Sistema Educacional - Módulo Financeiro
SisEdu – Sistema Educacional - Módulo FinanceiroSisEdu – Sistema Educacional - Módulo Financeiro
SisEdu – Sistema Educacional - Módulo Financeiro
 
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...
TCC - Weverton Ferreira - Análise de Performance de Códigos Convolucionais ut...
 
TCC_-_Adotando_o_ETOM
TCC_-_Adotando_o_ETOMTCC_-_Adotando_o_ETOM
TCC_-_Adotando_o_ETOM
 
masterthesis_cel
masterthesis_celmasterthesis_cel
masterthesis_cel
 
Apostila matlab
Apostila matlabApostila matlab
Apostila matlab
 
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...
Projeto de Cabeamento Estruturado do Prédio Administrativo do Instituto Feder...
 
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi benchEstudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
Estudo e medicao do consumo de energia de algoritmos criptograficos do mi bench
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3
Aula 00-informática-p-inss-conceitos-de-internet-e-intranet-v3
 
Uc17.metrologia
Uc17.metrologiaUc17.metrologia
Uc17.metrologia
 
01 aula - 07082012
01   aula - 0708201201   aula - 07082012
01 aula - 07082012
 
Radio amador
Radio amadorRadio amador
Radio amador
 

Estudo de códigos corretores de erros convolucionais para comunicações digitais

  • 1. CENTRO UNIVERSITÁRIO SALESIANO DE SÃO PAULO UNISAL – CAMPUS SÃO JOSÉ Weverton Soares Ferreira ESTUDO DO FEC – FORWARD ERROR CORRECTION E CÓDIGOS CORRETORES DE ERRO CONVOLUCIONAIS Campinas 2016
  • 2. CENTRO UNIVERSITÁRIO SALESIANO DE SÃO PAULO UNISAL – CAMPUS SÃO JOSÉ Weverton Soares Ferreira ESTUDO DO FEC – FORWARD ERROR CORRECTION E CÓDIGOS CORRETORES DE ERRO CONVOLUCIONAIS Relatório de Iniciação Científica parcial apresentando o estudo dos códigos corretores de erros Convolucionais. Curso de graduação em Engenharia Elétrica em Habilitação em Telecomunicações no Centro Universitário Salesiano de São Paulo, realizado sob orientação do Prof. Dr. Fernando Silvestre da Silva. Campinas 2016
  • 3. AGRADECIMENTOS Primeiramente a Deus, meu porto seguro, nunca me deixou desanimar, sempre me deu forças e me capacitou em todos os momentos. Se não fosse por Ele, não conseguiria sozinha, pois, Ele é a base de toda conquista e cada sucesso que consegui conquistar e que ainda conquistarei. A minha família, sempre me apoiando e me auxiliando nos momentos mais difíceis desta caminhada. Em especial, minha mãe sem ela me dando forças e me ajudando a não desanimar e a não desistir, me falando palavras de encorajamento e sempre ao meu lado, sem dúvidas seria muito difícil chegar até aqui. A minha noiva Luana, que sempre me apoiou em todos os dias, mesmo nos dias de descanso ela sempre esteve comigo me dando suporte e carinho para que pudesse continuar. A meus amigos e colegas de sala que sempre serão lembrados e estarão guardados em meu coração. Especialmente, aos amigos e companheiros, Bruno, Deiverson, Lucas, Lino e Thiago, sempre estando junto a cada passo, sempre um apoiando o outro. Ao professor Dr. Fernando Silvestre que me auxiliou de forma excepcional e mesmo com dificuldades de datas conseguia um período para me orientar. Seu papel foi muito importante para o desenvolvimento desse estudo. Obrigado a todos! Weverton Soares Ferreira
  • 4. SUMÁRIO SUMÁRIO..........................................................................................................................................................4 RESUMO............................................................................................................................................................5 1. INTRODUÇÃO .........................................................................................................................................6 2. TEORIA DA INFORMAÇÃO...................................................................................................................6 2.1. MEDIDA DA INFORMAÇÃO.............................................................................................................7 2.2. CAPACIDADE DO CANAL ................................................................................................................8 2.3. TEOREMA DA CODIFICAÇÃO DO CANAL..................................................................................10 2.4. TEOREMA DA CODIFICAÇÃO DE FONTE ...................................................................................11 3. CODIFICAÇÃO DE ERROS ..................................................................................................................11 4. CÓDIGOS DE BLOCOS LINEARES.....................................................................................................14 4.1. HAMMING .........................................................................................................................................15 5. CÓDIGOS CÍCLICOS.............................................................................................................................17 6. CÓDIGOS CONVOLUCIONAIS............................................................................................................17 7. DECODIFICADOR DE VITERBI ..........................................................................................................20 7.1. CÁLCULO DA MÁXIMA VEROSSIMILHANÇA...........................................................................22 8. MODULAÇÃO DIGITAL.......................................................................................................................22 8.1. Modulação por Chaveamento de fase Binária......................................................................................24 8.2. Modulação por Chaveamento de Quadratura de fase...........................................................................25 8.3. Modulação de Amplitude em Quadratura ............................................................................................26 9. PROPOSTA .............................................................................................................................................27 10. DESENVOLVIMENTO......................................................................................................................28 11. ANÁLISE DE DESEMPENHO ..........................................................................................................29 12. CONCLUSÃO .....................................................................................................................................33 REFERÊNCIAS................................................................................................................................................34
  • 5. RESUMO A comunicação digital tem sido cada vez mais utilizada e tem permitido avanços significativos nas taxas de transmissão em sistemas de comunicações. Dentro das revoluções que permitiram a flexibilização das comunicações está a utilização de algoritmo que alteram a taxa de transmissão e adaptam o sistema às condições do canal variante no tempo. Este projeto tem como objetivo desenvolver e simular um sistema de comunicação digital para estudar o FEC (Forward Error Correction). Utilizando a ferramenta MATLAB da companhia MathWorks® para simulações, pretende- se comparar os desempenhos simulados de códigos Convolucionais em conjunto com diversos tipos de taxas de puncionamentos (relação bit útil vs bit de paridade).
  • 6. 1. INTRODUÇÃO Um dos principais problemas encontrados em um sistema de comunicação é a integridade dos bits durante o processo de transmissão. Independente do canal utilizado, sempre haverá interferências no canal de comunicação (barreiras em um sistema de comunicação via rádio ou algum problema com a fibra óptica, por exemplo) que poderão alterar os bits que foram transmitidos. No processo de decodificação das informações trafegadas pelo canal, o receptor pode ser capaz de detectar e corrigir esta alteração no bit por meio da utilização da técnica conhecida por Forward Error Correction (FEC) que consiste na inserção de bits de informações redundantes sem que haja a necessidade de retransmissão do sinal. Estas redundâncias são conhecidas por bits de paridade. (HAYKIN, MOHER, 2008, 2011). Esse sistema é muito utilizado em comunicações no qual há um único transmissor e vários receptores como, por exemplo: rádio difusão e televisão. Estes métodos de comunicação utilizam somente o canal de transmissão. Dessa forma, não havendo o canal de retorno, não é possível saber se a informação transmitida chegou ao destinatário de forma íntegra. Por esta necessidade de corrigir os bits que sofreram alterações sem que haja retransmissão foram criados os códigos corretores de erros. (LATHI, 1998). Também utiliza-se o sistema de correção de erro em sistemas, nos quais tem-se a transmissão e a recepção no canal. Exemplos: comunicação wireless, radio amador e comunicação celular. Quando tem-se um canal praticamente perfeito, a probabilidade de haver algum erro durante a transmissão é muito pequena, por isso, é necessário um número menor de bits de paridade por bloco de informação. A medida que as interferências no canal aumentam, existe a necessidade do aumento de bits de paridade por bloco. Esta relação bits de paridade por bloco de bits é conhecida por puncionamento. (HAYKIN, MOHER, 2008). Este projeto de pesquisa propõe o estudo do FEC, código corretores de erros do tipo Convolucionais, suas implementações e aplicações. Utilizando a ferramenta MATLAB da companhia MathWorks® para simulações, pretende-se comparar os desempenhos simulados de códigos Convolucionais em conjunto com diversos tipos de taxas de puncionamentos (relação bit útil vs bit de paridade). 2. TEORIA DA INFORMAÇÃO A teoria da informação é um ramo da Matemática Aplicada, Engenharia Elétrica e Ciência da Computação que envolve a quantificação, armazenamento e comunicação de
  • 7. informações. A teoria da informação foi originalmente desenvolvida por Claude E. Shannon para encontrar limites fundamentais no processamento de sinais e de comunicação, tais como compressão de dados. Desde a sua publicação em 1948, intitulada de Uma Teoria Matemática da Comunicação (A Mathematical Theory of Communication), essa teoria foi ampliada para encontrar aplicações em diversas áreas, incluindo a Comunicação, computação, física, entre outras. Nas comunicações, esta teoria trabalha com a modelagem matemática e não com sistemas físicos (Fontes e Canais). (HAYKIN, MOHER, 2011). Nesse artigo Shannon introduziu um modelo estatístico subjacente à teoria da informação. Em seu artigo ele iniciava dizendo que o principal problema da comunicação é reproduzir (perfeitamente ou quase) num determinado local uma mensagem produzida em um outro local distinto. (SHANON, 1948). Essa Teoria aborda três conceitos básicos: Medida da informação (Incerteza, Entropia, Informação Mútua Média e Capacidade do Canal); Codificação do Canal e Codificação da Fonte. (HAYKIN, MOHER, 2008). 2.1.MEDIDA DA INFORMAÇÃO O conceito de informação está subjetivamente ligado a incerteza. Uma informação que é considerada como improvável é mais valiosa (ou maior), pois a probabilidade de ocorrer erros é muito menos, tornando-se mais raro. Em contrapartida, uma informação considerada como provável é menos valiosa (ou menor), pois a sua probabilidade de ocorrer erros é muito maior (HAYKIN, MOHER, 2008), (LATHI, 1998). Com isso, Shannon elaborou um modelo matemático que pudesse medir a quantidade de informação por evento aleatório que atendesse os seguintes requisitos: a)Informação não pode ser negativa. b)A informação é Nula somente se o evento tiver probabilidade igual a 1. c)Quanto menor for a certeza (probabilidade), maior será a sua informação.
  • 8. Figura 1 – Informação associada com o evento S=Sk de probabilidade Pk Fonte: (HAYKIN, MOHER, 2011) Para atender esses requisitos, Shannon utilizou a função Logarítmica. A informação resultante dessa equação é chamada de bit (uma abreviação de binary digit - Dígito Binário). (HAYKIN, MOHER, 2008). 𝐼(𝑆 𝐾) = 𝑙𝑜𝑔2(1 𝑃𝑘⁄ ) = −𝑙𝑜𝑔2(𝑃𝑘) [bits] (1) Analisando o gráfico anterior, pode-se verificar que quando tem-se probabilidade Pk=1/2, a quantidade de informação𝐼(𝑆 𝐾) = 1. Conforme mencionado por Haykin, Entende-se que um bit é uma unidade de informação ganhada quando ocorre um de dois eventos possíveis e igualmente prováveis (isto é, equiprováveis). A quantidade de informação𝐼(𝑆 𝐾)produzida pela fonte em um determinado período depende do símbolo 𝑆 𝐾 emitido pela fonte. Desta forma, pode assumir os valores 𝐼(𝑆0), 𝐼(𝑆1), 𝐼(𝑆2), . . . , 𝐼(𝑆 𝑁−1)com suas respectivas probabilidades 𝑃0, 𝑃1, 𝑃2,. . . , 𝑃 𝑁−1.𝐼(𝑆 𝐾) é interpretada como uma variável aleatória. A média de toda a informação 𝐼(𝑆 𝐾) em todo o alfabeto α é apresentada da seguinte forma: 𝐻(𝛼) = 𝐸[𝐼(𝑆 𝐾)] 𝐻(𝛼) = ∑ 𝑃𝑘 𝐼(𝑆 𝑘)𝑁−1 𝑘=0 𝐻(𝛼) = ∑ 𝑙𝑜𝑔2 𝑁−1 𝑘=0 ( 1 𝑃 𝑘 ) (2)_ 2.2.CAPACIDADE DO CANAL É de interesse em várias aplicações haver uma comunicação com o número de bits transmitidos por segundo de forma confiável através do meio de comunicação. (HAYKIN, MOHER, 2008). Para melhor entendimento será definido os conceitos de entropia relativa e informação mútua.
  • 9. Imagine uma saída de canal Y que é a versão da entrada X com ruído. A entropia é a medida de incerteza prévia de X. É possível medir a incerteza de X após analisar Y? Para responder a questão, é preciso compreender a entropia condicional de X, dado que Y=Yk. Pode-se escrever da seguinte forma: 𝐻(𝑋 𝑌⁄ = 𝑌𝑘) = ∑ 𝑃(𝑥𝑗 𝑦 𝑘⁄ )𝑙𝑜𝑔2 ( 1 𝑃(𝑥 𝑗 𝑦 𝑘⁄ ) ) 𝐽−1 𝐽=0 (3) Essa quantidade é uma variável aleatória, que pode assumir os valores H(X/Y=y0),...,H(X/Y=yk-1) com probabilidade p(y0),...,p(yk-1), respectivamente. Para conhecer a média da entropia H(X/Y=yk) sobre o alfabeto Y, é possível utilizar o modelo expressado na equação 4: 𝐻(𝑋 𝑌⁄ ) = 𝐻(𝑋 𝑌⁄ = 𝑌𝐾) ⋅ 𝑝(𝑦𝑘) 𝐻(𝑋 𝑌⁄ ) = ∑ ∑ 𝑃 𝐽−1 𝐽=0 𝑘−1 𝑘=0 (𝑥𝑗 𝑦𝑘⁄ )𝑝(𝑦𝑘)𝑙𝑜𝑔2 ( 1 𝑃(𝑥𝑗 𝑦𝑘⁄ ) ) 𝐻(𝑋 𝑌⁄ ) = ∑ ∑ 𝑃 𝐽−1 𝐽=0 𝑘−1 𝑘=0 (𝑥𝑗, 𝑦𝑘)𝑙𝑜𝑔2 ( 1 𝑃(𝑥𝑗 𝑦𝑘⁄ ) ) (4) Sendo p(xj,yk) = p(xj/yk).p(yk) H(X/Y) é chamada de entropia condicional e mede a quantidade de informação que é perdida no canal. Logo, a informação que atravessa efetivamente o canal é: I(X;Y) = H(X) – H(X/Y) (5) Figura 2 – Fluxo de transmissão em um canal de comunicação Fonte: Próprio Autor Onde I(X;Y) é conhecido por Informação Mútua. Desta forma, verifica-se que, a informação mútua é dependente da distribuição de probabilidade de X. Desta forma, existe uma distribuição P(X) que maximiza I(X;Y), logo, Capacidade do Canal é o máximo da informação mútua média, por utilização do canal. (HAYKIN, MOHER, 2008, 2011) 𝐶 = 𝑚𝑎𝑥 𝑝(𝑥𝑗) 𝐼(𝑋; 𝑌) (6) Esta capacidade é medida em bits por utilização do canal.
  • 10. 2.3.TEOREMA DA CODIFICAÇÃO DO CANAL Ao transmitir um certo bit, é esperado que o mesmo seja recebido e reproduzido, independentemente de qualquer problema que tenha ocorrido no canal. Para que essa informação possa ser recuperada com alta confiabilidade utiliza-se a codificação do canal, que tem como função utilizar técnicas para aumentar o grau de certeza no momento da recuperação. A ideia consiste em inserir informações redundantes, de tal forma que, mesmo após passar por um canal ruidoso, o decodificador terá a capacidade de detectar e corrigir possíveis erros nos bits entregues. Para haver esta redundância é considerado a seguinte regra: para cada k bits de informação são produzidos n bits de saída. Sendo que n>k. (HAYKIN, MOHER, 2008, 2011). Estes bits adicionados ao bloco de informação são chamados de bits de paridade e a quantidade de bits de paridade se obtém subtraindo o total de bits de informação pelo total de bits produzidos, n-k. Através dessas informações é possível verificar que a razão k/n é chamada de taxa de código. Comumente é utilizado r para representar esta taxa. Desta forma, pode-se escrever: 𝑟 = 𝑘 𝑛 (7) Para que a reconstrução da sequência original no destino é necessário que a probabilidade média de erro de símbolo seja pequena. Segundo Haykin (HAYKIN, MOHER, 2011), a teoria de codificação do canal discreto e sem memória de Shannon, é dividida basicamente em duas partes: Suponha um canal discreto de alfabeto (α) tenha a entropia H(α) e produza símbolos a cada Ts segundos. Considere um canal com capacidade C e que seja utilizado a cada Tc segundos: 𝐻(𝛼) 𝑇𝑠 ≤ 𝐶 𝑇𝑐 (8) O produto C/TC é conhecido por Taxa Crítica. Quando é satisfeita a condição de igualdade na equação descrita à cima entende-se que o sistema está em sua Taxa Crítica. Isso quer dizer que, a taxa média de incerteza por unidade de tempo não pode ser maior que a Taxa Crítica Inversamente, se 𝐻(𝛼) 𝑇𝑠 ≤ 𝐶 𝑇𝑐 (9) Não é possível transmissão de reconstrução da informação transmitida no canal a uma probabilidade de erro relativamente pequena. (HAYKIN, MOHER, 2008).
  • 11. O Teorema da codificação do canal não apresenta como montar um bom código, porém, se a condição 𝐻(𝛼) 𝑇𝑠 = 𝐶 𝑇𝑐 for satisfeita, haverá bons códigos. 2.4.TEOREMA DA CODIFICAÇÃO DE FONTE A base do teorema da codificação de fonte é baseada em dois fatores (HAYKIN, MOHER, 2008): Ao transmitir algum sinal de comunicação (Ex: Voz) em sua forma natural existe uma grande quantidade de informação considerada redundante, e essas informações redundantes consomem potência e largura de banda na transmissão. Para ter melhor eficiência na transmissão (consumir menos potência e largura de banda), é retirada essas informações redundantes antes da transmissão. Esses dois fatores pode ser entendido da seguinte maneira: Em uma fonte discreta com determinada entropia, o comprimento médio da palavra código para a codificação é limitado superiormente à entropia. (HAYKIN, MOHER, 2011). Entropia é a média de informação por símbolo gerado pela fonte. Com base no teorema da codificação de fonte, a entropia é o limite de bits por símbolo necessário para representação. Esse número pode ser tão pequeno quanto a entropia, porém, nunca menor que a mesma. A eficiência pode ser representada seguinte forma: 𝑛 = 𝐻(𝑠) 𝐿 (10) Sendo, H(s) a entropia da fonte S e L o número médio de bits por símbolo durante a codificação da fonte. 3. CODIFICAÇÃO DE ERROS O Teorema da codificação do canal afirma que se um canal tiver a capacidade C e uma fonte que gere informação a uma taxa menor que a capacidade, existe uma codificação para que a saída da fonte possa ser transmitida pelo canal com probabilidade de erro baixa. Dessa forma classifica-se a capacidade como um limite fundamental nas taxas de transmissão de mensagens confiáveis que pode ocorrer em um canal. (HAYKIN, MOHER, 2011). A figura 3 apresenta o como o processo de codificação/decodificação pode ser inserido em um sistema de comunicação Digital, conhecida como correção direta de erros ou Forward Error Correction (FEC).
  • 12. A fonte gera informação binária. O codificador de canal recebe a informação e adiciona bits de redundância de acordo com uma regra, pré-determinada, produzindo assim, dados codificados a uma taxa de bits elevada. O decodificador analisa a redundância para poder decidir qual bits de mensagem realmente foram transmitidos. A ideia é reduzir os efeitos do ruído no canal. Porém, a inserção de bits de paridade provoca um aumento na largura de banda. Além da complexidade no sistema, principalmente par implementação das operações de decodificação. (HAYKIN, MOHER, 2011). Figura 3 – (a) Modelo Sistema de Comunicação Digital; (b) Modelo de sistema de comunicação com codificação e modulação combinadas. Fonte: (HAYKIN, MOHER, 2011) Na Figura 3a o modelo apresentado realiza separadamente as operações de codificação de canal e modulação. Porém, quando é necessário eficiência de largura de banda, o método mais efetivo é o da Figura 3b, que trabalha com a combinação do codificador de erro com o modulador. Uma característica do teorema da codificação do canal menos se satisfaz, é a sua natureza não construtiva. Neste teorema é afirmado que existem bons códigos, porém, não é apresentado a forma de encontrá-los. Desta forma, foi necessário encontrar um bom código que permita a garantia de uma transmissão confiável através do canal.
  • 13. O Canal discreto sem memória é compreendido pelo conjunto de probabilidades de transição p(j/i), sendo i um símbolo de entrada do modulador, j um símbolo de saída do demodulador e p(j/i) a probabilidade de receber j dado que i foi transmitido. (HAYKIN, MOHER, 2011). Um exemplo simples a se utilizar é o caso de um canal binário. Neste canal o modulador terá somente dois símbolos (0 e 1) de entradas, e desta forma, o decodificador terá somente entradas binárias, caso seja utilizado uma decisão rígida, que se baseia na quantização binária da saída do decodificador. Neste caso, é obtido um BSC (canal binário simétrico) como apresentado no diagrama de probabilidade de transição (Figura 4) Figura 4 – Diagrama de Probabilidade de transição. Fonte: (HAYKIN, MOHER, 2011) Sendo p a probabilidade de ter ocorrido alteração na fonte original do símbolo. A utilização do método de decisão antes da decodificação provoca uma perda de informação significativa e irreversível no receptor. Para minimizar o impacto, foi criada uma decisão suave. Conforme mostrado na figura 5, o modulador possui apenas os símbolos binários 0 e 1, porém, agora há Q símbolos na saída do demodulador. Analisando especificamente a Figura 5 há Q=8. Desta forma, o canal é conhecido por canal discreto sem memória de saída Q-ária e entrada binária. Na Figura 6 o diagrama de probabilidade de transição é apresentado. (HAYKIN, MOHER, 2011).
  • 14. Figura 5 – Quantizador Multinível. Fonte: (HAYKIN. S. MOHER. M., 2011) Figura 6 – Diagrama de probabilidade de transição do canal Fonte: (HAYKIN, MOHER, 2011) 4. CÓDIGOS DE BLOCOS LINEARES Os códigos lineares estão na classe dos códigos mais utilizados. Para entender mais sobre este código será analisado um caso prático. Considere-se um código binário com tamanho total de 6 bits. Destes seis bits, os três primeiros contem informação (C1, C2 e C3), nos próximos três bits será adicionado redundância de informação. Para que isso possa ser criado, considere-se que, em todo o conjunto {0,1} existe uma operação de soma. (MILIES, 2009). Definiremos os dígitos de redundância conforme a regra abaixo: 𝐶4 = 𝐶1 + 𝐶2 𝐶5 = 𝐶1 + 𝐶3 𝐶6 = 𝐶2 + 𝐶3 (11)
  • 15. É possível apresentar também em formato de notação Vetorial: 𝐶 = 𝐶1, 𝐶2, 𝐶3, 𝐶1 + 𝐶2, 𝐶1 + 𝐶3, 𝐶2 + 𝐶3 (12) Usando a notação Matricial, também é possível apresentar a palavra C: 𝐶1, 𝐶2, 𝐶3 [ 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 ] = (𝐶1, 𝐶2, 𝐶3, 𝐶1 + 𝐶2, 𝐶1 + 𝐶3, 𝐶2 + 𝐶3) (13) Assim, quando (C1, C2 e C3) percorre todos os elementos da matriz, é possível reproduzir todas as palavras código. Por isso, esta matriz é conhecida de Matriz Geradora do código. Pode-se escrever em formato de sistema: 0 = 𝐶1 + 𝐶2 + 𝐶4 0 = 𝐶1 + 𝐶3 + 𝐶5 0 = 𝐶2 + 𝐶3 + 𝐶6 (14) Desta forma, um vetor Y = (y1, y2, y3, y4, y5, y6) está no código, se e somente se: (𝑦1, 𝑦2, 𝑦3, 𝑦4, 𝑦5, 𝑦6) = [ 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1] = (0,0,0) (15) Com está condição, é possível verificar se o vetor recebido pertence ou não ao código. Por este motivo, a matriz acima é conhecida por Matriz de Verificação. 4.1.HAMMING É um código de Linha que utiliza álgebra binária para calcular os bits de paridade. Considere uma mensagem com k bits. M={m0,m1,m2,m3,..,mk-1} E um vetor de paridade com (n-k) bits. P={p0,p1,p2,p3,..,pn-k-1} E uma palavra código de n bits C={c0,c1,c2,c3,..,ck-1} O código de Hamming se constrói da seguinte maneira: C = p0, p1, m0, p2, m1, m2, m3, p4, m4, m5,... Será definida a palavra código com n=2L-1, sendo L a quantidade de bits de paridade na palavra e n a quantidade total de bits. L = 3 e n = 7, logo, o código de Hamming é 4/7: p0, p1, m0, p2, m1, m2, m3
  • 16. L = 4 e n = 15, logo, o código de Hamming é 11/15: p0, p1, m0, p2, m1, m2, m3, p4, m4, m5, m6, m7, m8, m9, m10 O Algoritmo do código de Hamming é formado da seguinte maneira: ‐ Numera os bits a partir de 1: bit 1, 2, 3, 4, etc. ‐ Escreve o número do bit em binário: 1, 10, 11, 100, etc. ‐ Todas as posições que são potências de dois são bits de paridade. ‐ Todas as outras posições são os bits de informação. ‐ Cada bit de informação é incluído num único conjunto de 2 ou mais bits de paridade, conforme determinado pela sua posição. a) O bit de paridade p0 abrange todas as posições e tem o bit menos significativo ativo: bit 1 (o bit de paridade em si), 3, 5, 7, 9, etc. b) O bit de paridade p1 abrange todas as posições que tem o seguindo bit menos significativo ativo: bit 2 (o bit de paridade em si), 3, 6, 7, 10, 11, etc. c) O bit de paridade p2 abrange todas as posições de bits que possuem o terceiro bit menos significativo: bits 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, etc. d) O bit de paridade 8 abrange todas as posições de bits que tem o quarto bit menos significativo ativo: bits 8 a 15, etc. (HAYKIN, MOHER, 2008). Este algoritmo pode ser mostrado visualmente na Figura 7: Figura 7 – Tabela de Paridade Fonte: (Próprio Autor) Se for realizado um soma binária linha por linha, pode-se chegar a: 𝑆0 = 𝑝0 + 𝑚0 + 𝑚1 + 𝑚3 + 𝑚4 + 𝑚6 + 𝑚8 + 𝑚10 + 𝑚11 + 𝑚13 𝑆1 = 𝑝1 + 𝑚0 + 𝑚2 + 𝑚3 + 𝑚5 + 𝑚6 + 𝑚9 + 𝑚10 + 𝑚12 + 𝑚13 𝑆2 = 𝑝2 + 𝑚1 + 𝑚2 + 𝑚3 + 𝑚7 + 𝑚8 + 𝑚9 + 𝑚10 𝑆3 = 𝑝4 + 𝑚11 + 𝑚12 + 𝑚13 + 𝑚14 . . . (16) Sendo Sk [K=0, 1,...,k-1] conhecido por Síndrome. A checagem no receptor é feita recalculando as paridades e assim, obtendo a síndrome.
  • 17. Se o resultado da síndrome for (0,0,0,0,...) quer dizer que não houve erro no bit. Se houver um erro, a síndrome indica a posição do erro em notação binária. Ex: Sk=(100)2 convertendo em decimal fica S = 4, significa que o erro ocorreu no 4º bit. Sk=[Sn-k-1, Sn-k-2,....S0]. 5. CÓDIGOS CÍCLICOS Os códigos Cíclicos são uma subclasse importante nos códigos de blocos lineares. (LATHI, 1998). São códigos algebricamente manuseáveis com polinômios, sem necessidade de recorrer a matrizes e vetores. A codificação é realizada com registros de deslocamento de k ou n-k. Em um código cíclico, um deslocamento de uma palavra código conduz outra palavra código: Se [yn, yn-1,...,y0] for uma palavra código, então [yn-1,...,y0,yn] também será uma palavra código. Este código é importante pelo fato da codificação/decodificação e o cálculo da síndrome serem realizados facilmente com o registro do deslocamento e alguma lógica adicional. 6. CÓDIGOS CONVOLUCIONAIS Como apresentado nos tópicos acima, os códigos corretores de erros tem a função de detectar possíveis erros que possam ter ocorrido durante a transmissão da informação em um canal interferências (ruídos). Em codificações por blocos, o codificador necessita ter uma capacidade de armazenar todo o bloco de informações antes de inserir os bits redundantes. Porém, para os casos em que temos a inserção de informações de forma linear e não bloco a bloco, esse tipo de codificação pode encontrar problemas. Para estes tipos de casos, o uso dos códigos Convolucionais é maior. (HAYKIN, MOHER, 2008). O código convolucional consiste na inserção de bits de redundantes de forma linear. Para inserção desta redundância de bits é utilizado convoluções de módulo 2, onde originou-se o nome. (HAYKIN, MOHER, 2011). A taxa do código é dada por: 𝑟 = 𝐿 𝑛(𝐿+𝑀) bits/símbolo (17)
  • 18. Onde M é a quantidade de estágios e n a quantidade de somadores, codificando uma sequência de mensagem de L bits que resultará na sequência codificada n(L+M). Comumente L>>M, então, é possível simplificar a fórmula dizendo que: 𝑟 ≈ 1 𝑛 bits/símbolo (18) Considerando um código convolucional com uma taxa de 1/n (bits por símbolo), pode-se dizer que se trata de uma máquina de estados finitos. A partir do momento que o bit entrar no registrador, deverá passar por todos os estágios até que saia do mesmo. Esta quantidade de deslocamentos que o bit fará é conhecido como comprimento de restrição e pode ser expressada por K=M+1. Isso significa que um único bit da mensagem influenciará em K mensagens codificadas. (HAYKIN, MOHER, 2008). Na Figura 8 será apresentado uma máquina de 4 estados (22 ) com uma taxa de ½ (2 bits de saída para cada 1 bit de entrada) em formado de diagrama de blocos com uma entrada X(n), duas saídas Gx(n) e dois atrasadores D. (NETO, 2011) Figura 8 – Somador – Código convolucional. Fonte: (NETO, 2011) Cada saída Gx(n) pode ser expressada como uma equação de polinômios. 𝐺0(𝑛) = 𝑋(𝑛) + 𝑋(𝑛 − 1) + 𝑋(𝑛 − 2) 𝐺1(𝑛) = 𝑋(𝑛) + 𝑋(𝑛 − 2) (19) A medida que entrar um novo bit em X(n) todos os bits existentes se deslocarão, este processo se repete a cada entrada de novo bit. Desta forma, cada bit terá influência em k=3 mensagens codificadas. A informação da máquina de estado é binária, logo, o somador contido na Figura 8 realizará uma soma binária.
  • 19. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 (20) As Figuras 9,10 e a tabela 1 apresentam diversas formas de representar um mesmo código. Todas as Figuras trabalharam com a representação de um código com uma taxa de ½, isso quer dizer, que para cada dois bits de informações enviadas, um é redundante. Esta taxa contém uma grande capacidade de correção de erros, porém, em um processo de transmissão, acarreta na lentidão do recebimento dos dados, pois metade da capacidade do canal está sendo ocupado por bits redundantes. Para melhorar a velocidade de transmissão dos dados, pode-se alterar esta taxa de ½ para outro valor, desta forma, o canal terá maior capacidade de informação útil. Estes outros valores de taxa são conhecidos como taxas de puncionamentos. Conforme a escolha da taxa de puncionamento, durante uma transmissão, o canal poderá conter maior ou menor capacidade informação útil. Figura 9 – Máquina de estados – Código convolucional. Fonte: (NETO, 2011)
  • 20. Figura 10 – Treliça – Código convolucional. Fonte: (NETO, 2011) Tabela 1 – Tabela Verdade – Código convolucional. Fonte: (NETO, 2011) 7. DECODIFICADOR DE VITERBI Em um processo de comunicação, após codificar a mensagem, a mesma é enviada ao receptor através do canal. O mesmo recebe diversos níveis de sinais sem sentido. Para entender estes níveis de sinais e, convertê-los em informação, se faz necessária a utilização de um decodificador que seja capaz de compreender e decodificar estes sinais já codificados. Nesse estudo, será utilizado o decodificador de Viterbi. Este processo utiliza a decodificação de probabilidade máxima e a decodificação de distância mínima, para os casos de canal binário simétrico. Desta forma, pode-se utilizar uma treliça para decodificar a mensagem recebida pelo canal. (HAYKIN, MOHER, 2008).
  • 21. Uma palavra código representa um caminho percorrido na treliça, conforme apresentado na Figura 10. A cada transição de nó é gerado um símbolo. Desta forma, considerando que é sabido as possibilidades de transição entre os nós, limita-se a escolha dos possíveis percursos no processo de decodificação. (HAYKIN, MOHER, 2011). Este decodificador utiliza um algoritmo que visa recriar o trajeto realizado pelo codificador inversamente. Este algoritmo é considerado por muitos o algoritmo perfeito para casos em que, a sequência gerada a partir da treliça esteja corrompida devido a interferências de ruídos brancos aditivos gaussianos (AWGN – Additive white gaussian noise). (PACHECO, 2002). Através do conjunto de métricas de cada transição, é calculada a distância de acordo com a forma que os dados foram recebidos. Se a representação é através de um único bit, a literatura refere-se como hard decision data. Quando apresentado através de múltiplos bits, a literatura refere-se como soft decision data. A soft decision (decisão suave), é responsável por interpretar os valores reais recebidos (0,9, -1, 0, 0,3, etc.) e decidir se será 1 ou 0. Desta forma pode-se exemplificar 0,8 sendo interpretado como 1, pois a probabilidade deste valor ser 1 é muito maior. Inversamente falando, -0,8 pode-se interpretar como 0. Durante o processo de decodificação, esse algoritmo criará diversas palavras código, até encontrar o trajeto que tem a maior probabilidade de estar correto. A Figura 11 exemplifica este processo de decodificação, sempre considerado o caminho mais curto na treliça. Figura 11 – Determinação recursiva do percurso mais curto através do algoritmo de Viterbi Fonte: (MÉNDEZ, 2000) Durante o processo, o decodificador pondera as informações dos caminhos obtidos na treliça e descarta o menos provável, até que por fim, tenha-se um único caminho, que por sua vez, é mesmo caminho gerado no transmissor.
  • 22. 7.1. CÁLCULO DA MÁXIMA VEROSSIMILHANÇA Como já apresentado no item anterior, durante o processo de decodificação através do algoritmo de Viterbi, é considerado o caminho com a menor distância entre os pontos da treliça. Existem diversas formas de se calcular essa distância, dentre elas, tem-se a distância através do cálculo da máxima verossimilhança. A Lei da Verossimilhança determina que um certo comportamento em que exista duas hipóteses possa ser explicado pela razão entre estas hipóteses. Esta observação favorece a hipótese A sobre a hipótese B somente se PA(x)>PB(x) (BATISTA, 2009). Desta forma, a razão de verossimilhança mede a força da evidência da hipótese A sobre a hipótese B Aplica-se essa lei para o cálculo da distância entre os pontos da treliça. Para facilitar o cálculo torna-se mais vantajoso utilizar essas funções de verossimilhança dentro do logaritmo. 𝑙𝑗(𝑥𝑗) = 𝑙𝑜𝑔 ( 𝑝(𝑥=1) 𝑝(𝑥=0) ) (21) Sendo: lj>0 Mais provável que seja 1 lj =0 Equiprovável lj <0 Mais provável que seja 0 Posteriormente será aplicado o cálculo de Máxima Verossimilhança em um processo de decodificação de Viterbi. 8. MODULAÇÃO DIGITAL Um processo de modulação tem como objetivo a transformação de um sinal em seu formato original para um sinal modulado que adequa-se ao meio que será trafegado. Os modelos convencionais são: ‐ Modulação em Amplitude (AM - amplitude modulation); ‐ Modulação em Frequência (FM - frequency modulation); ‐ Modulação em Fase (PM - phase modulation); Estes modelos de modulação convencionais são conhecidos por modulação analógica. Esta, por sua vez, trabalha com sinais senoidais que contém um número infinito de possíveis mensagens com formas de ondas. (HAYKIN, MOHER, 2008).
  • 23. A modulação digital trabalha com uma quantidade finita de formas de ondas. Desta forma o processo de demodulação é mais simples. (HAYKIN, MOHER, 2011). Sinais digitais estão baseados em pulsos retangulares. Estes pulsos são representados por 0 e 1. Na modulação digital, há três modelos básicos de modulação, assim como na analógica. Estes modelos são: chaveamento de amplitude (Amplitude Shift Keying - AKS), chaveamento de frequência (Frequency Shift Keying - FSK) e chaveamento de fase (Phase Shift Keying - PSK). (HAYKIN, 2004). Na Figura 12 pode-se notar a diferença entre os três tipos de modulação para um sinal binário (0 ou 1). Figura 12 – Dado na banda base convertido em modulação ASK, FSK e PSK. Fonte: (GOEL, 2013) Dentre essas modulações, pode-se notar uma grande diferença entre a modulação ASK com as demais (FSK e PSK). Isso é devido ao ASK ser uma modulação em amplitude. Quando o símbolo 1 é transmitido, sua representação se faz através de uma onda da portadora senoidal de amplitude e frequências já determinadas. Em contra partida, o símbolo 0 é apresentado pelo desligamento do sinal ou a falta do mesmo. (HAYKIN, MOHER, 2011). Em geral, pode-se entender o sinal ASK através de uma fórmula de liga e desliga. No FSK, a modulação é feita através de duas ondas de mesma amplitude, porém em frequências diferentes. Neste caso, quando existe o símbolo 1, a frequência é maior do que quando temos o símbolo 0, onde sua frequência é muito menor. Já no PSK, é utilizada a onda da portadora com amplitude e frequência já determinadas para representar o símbolo 1, e para representar o símbolo 0 a fase da portadora é deslocada 180 graus. (HAYKIN, 2004).
  • 24. 8.1.MODULAÇÃO POR CHAVEAMENTO DE FASE BINÁRIA Como já mencionado, a modulação do tipo PSK altera em 180 graus a onda da portadora quando há uma transição de 0 para 1 ou de 1 para 0. Desta forma, pode-se chamar esse tipo de modulação por Chaveamento de Fase Binária (Binary Phase Shift Keying - BPSK). Em um sistema BPSK, utiliza-se dois sinais s1(t) e s2(t) para representação dos símbolos 0 e 1. (HAYKIN, 2004), as equações 22 e 23 definirão estes sinais. 𝑆1(𝑡) = √( 2𝐸 𝑏 𝑇 𝑏 ) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) (22) 𝑆2(𝑡) = √( 2𝐸 𝑏 𝑇 𝑏 ) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡 + 𝜋) = −√( 2𝐸 𝑏 𝑇 𝑏 ) 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) (23) Onde 0<t<Tb, e Eb é a energia do bit transmitido. (HAYKIN, 2004). A figura 13 exemplifica uma constelação BPSK com base nas informações apresentadas na Tabela 2. Onde o eixo Q representa a quadratura (Quadrature) e o eixo I representa a fase (In Phase). Assim, com a alteração da fase é possível codificar o bit. Figura 13 – Constelação BPSK. Fonte: (Próprio Autor) Tabela 2 – Tabela BPSK Fonte: (UFSM, 2016)
  • 25. 8.2.MODULAÇÃO POR CHAVEAMENTO DE QUADRATURA DE FASE Diferente da modulação BPSK, a modulação por Chaveamento de Quadratura de fase (Quadrature Phase Shift Keying - QPSK) tem o dobro de sua eficiência espectral, devido ao fato transportar em cada símbolo dois bits. E para ter esta capacidade, tem-se quatro fases (π/4; 3π/4; 5π/4 e 7π/4). (UFSM, 2016). Cada possível valor de fase corresponde a um dibit (par de dígitos binários usados para representar valores) único. Dessa forma, por exemplo, pode-se escolher o conjunto precedente de valores de fase para representar o conjunto de dibits codificados pelo código Gray: 00, 01, 10 e 11, onde somente um único bit é mudado de um dibit para o seguinte. (HAYKIN, 2004) A figura 14 exemplifica uma constelação QPSK com base nas informações apresentadas na Tabela 3. Figura 14 – Constelação QPSK Fonte: (UFSM, 2016) Tabela 3 – Tabela QPSK S(t) Fase Bits Símbolo 𝐴 [cos (𝑤𝑡 + π 4 )] = A √2 2 [cos(𝑤𝑡) − sin(𝑤𝑡)] π 4 00 S1 𝐴 [cos (𝑤𝑡 + 3π 4 )] = A √2 2 [−cos(𝑤𝑡) − sin(𝑤𝑡)] 3π 4 01 S2 𝐴 [cos (𝑤𝑡 + 5π 4 )] = −A √2 2 [cos(𝑤𝑡) − sin(𝑤𝑡)] 5π 4 11 S3 𝐴 [cos (𝑤𝑡 + 7π 4 )] = −A √2 2 [−cos(𝑤𝑡) − sin(𝑤𝑡)] 7π 4 10 S4 Fonte: (UFSM, 2016)
  • 26. 8.3.MODULAÇÃO DE AMPLITUDE EM QUADRATURA Neste tipo de modulação, há o mapeamento dos símbolos em fase e quadratura. Desta forma, pode-se compreender a modulação de Amplitude em Quadratura (Quadrature Amplitude Modulation - QAM) como um tipo de modulação que mescla a modulação em amplitude com a modulação em fase. (HAYKIN, 2004). Como exemplificado na figura 15, tem-se a constelação de um sistema QAM com 16 possibilidades de estados. A distância entre a origem e o ponto é a amplitude. E o ângulo entre o eixo 0 até o ponto é a fase. Obtêm-se o número de possíveis estados a partir da quantidade de bits por símbolo. Logo, pode-se definir que: M = número de bits Número de estados = 2M Figura 15 – Constelação QAM Fonte: (Próprio Autor) A modulação QAM é definida na equação 24. Onde, E0 é a energia do sinal que possui menor amplitude e Sk(t) é o sinal QAM M-ário transmitido para o símbolo k. 𝑆 𝑘(𝑡) = √( 2𝐸0 𝑇 ) 𝑎 𝑘 𝑐𝑜𝑠(2𝜋𝑓𝑐 𝑡) − √( 2𝐸0 𝑇 ) 𝑏 𝑘 𝑠𝑒𝑛(2𝜋𝑓𝑐 𝑡) 0 ≤ 𝑡 ≤ 𝑇 𝑘 = 0, ±1, ±2, . . . (24) Ainda na figura 15, pode-se notar que trata-se de uma constelação quadrada, onde os valores de amplitude (25%, 50% e 75%) são a Energia do sinal E0. (HAYKIN, 2004).
  • 27. 9. PROPOSTA Como já apresentado, este projeto de pesquisa propõe o estudo do FEC, código corretores de erros do tipo Convolucionais através de alterações de taxas de puncionamentos. Para a realização dos testes utilizou-se o software MATLAB, da companhia MathWorks®. O principal motivo pela escolha deste aplicativo se deu pela sua alta capacidade de modelagem matemática, desta forma, é possível recriar com alta confiabilidade um ambiente de comunicação que contém transmissão, canal de transporte e recepção. O aplicativo pode ser utilizado com sua ferramenta gráfica (Simulink) ou a programação através de linhas de comandos. Optou-se pela utilização de ambas as ferramentas. Através do Simulink foi recriado um sistema completo de comunicação. E pela linha de comando foi realizada a programação da automatização, para que pudesse ter a capacidade de analisar e realizar as alterações necessárias durante o teste. Como pode-se observar na figura 16, foi projetado um sistema de comunicação utilizado o Simulink. Os testes foram realizados em utilizando o método de modulação QAM. Este sistema é alimentado por uma fonte geradora binária de Bernoulli, que através de sequencias randômicas expeli bits, simulando o fluxo de informação que será trafegada no mesmo. Figura 16 – Constelação QAM Fonte: (Próprio Autor) Na sequência, os bits proferidos pela fonte, encaminham-se ao bloco que simula o código convolucional. Como citado no Item 6 deste artigo, a função do código convolucional consiste na inserção de bits redundantes de forma linear. (HAYKIN, MOHER, 2011). Dentro deste código, será adicionado e configurado o puncionamento (porção de bits de paridade em
  • 28. relação aos bits de mensagem). Quanto maior for esta relação, menor será a quantidade de bits de paridade a serem enviados. Após a codificação do canal e a configuração do puncionador, os bits serão encaminhados ao Modulador digital. Utilizou-se o modulador 16QAM que tem a capacidade de enviar 4 bits por estado. (HAYKIN, 2004). Finalizado o processo de modulação, o sinal é transmitido ao canal. Para fins de testes, foi utilizado um canal AWGN, abreviação do termo em inglês Additive White Gaussian Noise ou em português, canal de ruído branco Gaussiano. Este canal tem a capacidade de recriar um meio de transmissão com ruído gaussiano, ruído esse que é encontrado em canais reais. (HAYKIN, MOHER, 2011). Neste canal é possível configurar qual será a energia do bit (Eb/N0) a ser transmitido, e através desta informação, o canal poderá ter uma boa capacidade de transmissão ou não. Utilizou-se uma sequência de Eb/N0 entre 0 e 30 dB com intervalos de 0.1 a fim de observar qual a resposta que o código apresenta em cada valor de Eb/N0. Passado o sinal pelo canal AWGN, o processo será inverso, passa-se pelo demodulador e posteriormente para o decodificador do código convolucional. Existem diversos métodos de decodificação. Para valores de k símbolos relativamente pequenos, geralmente é utilizado o Decodificador de Viterbi, pois ele oferece a melhor performance do ponto de vista probabilístico. Dentro disso, foi considerada a utilização do método de Viterbi. O decodificador de Viterbi realizará a análise dos bits recebidos e através das técnicas descritas no item 7 fará a correção destes bits. Após essa correção, é calculado o produto entre a quantidade de erros ocorridos e a quantidade de bits que foram enviados. O resultado do produto é conhecido por Bit Error Rate (BER) ou em português, taca de erro de bit. E através do BER é possível definir se há a necessidade de alterar a taxa de puncionamento ou não. 10.DESENVOLVIMENTO Para a realização do teste, criou-se uma programação no MATLAB onde pôde-se automatizar o processo a fim de analisar os resultados obtidos ao fim de cada etapa do teste e alterar suas configurações de forma automática. Foram vários os parâmetros utilizados para a simulação, porém pode-se dar maior importância para a variação de ruído do canal (Eb/N0) e as taxas de puncionamento. Os valores de Eb/N0 iniciaram a partir do valor mais baixo (zero) onde pode-se considerar como
  • 29. um canal ruim e que é praticamente impossível realizar a decodificação até o valor mais alto (limitou-se a 30dB) onde pode-se ter uma transmissão sem erros. O próximo parâmetro utilizado foi a taxa de puncionamento. Utilizou-se 5 taxas de puncionamentos para a realização dos testes e estas taxas foram: a) 1/2 – Sem retirada de bits de paridade, para cada 1 bit é gerado outro de paridade. b) 3/5 – Para cada 5 bits enviados, 3 são bits de informação útil e 2 são bits de paridade. c) 3/4 – Para cada 4 bits enviados, 3 são bits de informação útil e 1 é bit de paridade. d) 5/6 – Para cada 6 bits enviados, 5 são bits de informação útil e 1 é bit de paridade. e) 7/8 – Para cada 8 bits enviados, 7 são bits de informação útil e 1 é de paridade. Todas as taxas foram mensuradas a fim de poderem ser testadas com o mesmo número de amostras por frame que a fonte de Bernoulli produz. Realizou-se para cada valor de Eb/N0 testes com aproximadamente 1x106 bits e com o limite de erros em 1x103 assim, padronizou-se todos os testes para uma melhor análise de resultados. Devido a pequenas variações encontradas nos testes constatou-se que estas poderiam ser provenientes de alguma interferência da fonte geradora de bits. Tendo em vista que a fonte trabalha com sementes geradoras de sequências (seeds). Assim, para cada valor de Eb/N0 sob uma determinada taxa de puncionamento utilizou-se 10 tipos diferentes de sementes na fonte geradora, totalizando em 10 testes para cada valor. Após a finalização dos testes foi realizado uma média aritmética para obter um valor somente em cada valor de Eb/N0. Para a realização dos testes de forma automatizada foi criado um código no próprio MATLAB e no mesmo foi configurado todos os parâmetros necessários. Assim, a alteração de qualquer parâmetro pode ser realizada através desse código. 11.ANÁLISE DE DESEMPENHO As figuras 17, 18, 19, 20 e 21 apresentam os resultados obtidos através dos testes para cada taxa de puncionamento e a figura 23 apresenta todos os códigos em um único gráfico, podendo desta forma entender a diferença entre eles.
  • 30. Figura 17 – Taxa de Puncionamento 1/2 Fonte: (Próprio Autor) Figura 18 – Taxa de Puncionamento 3/5 Fonte: (Próprio Autor)
  • 31. Figura 19 – Taxa de Puncionamento 3/4 Fonte: (Próprio Autor) Figura 20 – Taxa de Puncionamento 5/6 Fonte: (Próprio Autor)
  • 32. Figura 21 – Taxa de Puncionamento 7/8 Fonte: (Próprio Autor) Figura 22 – Todas as taxas Fonte: (Próprio Autor) É possível observar que a medida que a taxa de puncionamento aumenta há uma piora nos resultados dos testes. Em contra partida, ao mesmo tempo o percentual de bits que contém informação útil também aumenta. Ou seja, a taxa de puncionamento 1/2 pode ter uma maior
  • 33. capacidade de correção, porém, a sua taxa de transmissão é bem menor que a do puncionamento 7/8 que tem uma capacidade de correção menor. Assim, pode-se constatar e dizer que cada taxa de puncionamento se adequa melhor em uma determinada situação ou necessidade. Por exemplo: em um sistema que está enfrentando problemas durante a transmissão a taxa com maior quantidade de bits de paridade se faz mais útil. Assim como quando este mesmo sistema estiver em um canal de comunicação que apresenta uma quantidade baixa de erros, pode-se utilizar uma taxa com maior quantidade de bits de informação, aumentando assim sua taxa de transmissão. 12.CONCLUSÃO Através desse estudo foi possível observar a diferença que um sistema de codificação de erros pode causar no canal de comunicação. A figura x apresenta o desempenho do canal sem o código convolucional e pode-se notar que a taxa de erros é superior a qualquer taxa que foi testada durante esse estudo. Assim, o uso de códigos corretores de erros traz bons resultados em qualquer situação se comparado ao canal sem o código.
  • 34. REFERÊNCIAS ABRANTES, S.; Códigos corretores de erros em comunicações digitais. 1. Ed., Porto: Norprint, 2010. BATISTA, J. L. F.; Verossimilhança e Máxima Verossimilhança, Apostila de curso: Esalq – USP, 2009. Disponível em <http://cmq.esalq.usp.br/BIE5781/lib/exe/fetch.php?media=03-funcao-veros:verossim.pdf> Acesso em 14/05/2016 GOEL, A.; Digital Carrier Modulation. Site MathWorks®, 2013. Disponível em <http://www.mathworks.com/MATLABcentral/fileexchange/40984-digital-carrier- modulation/content/Digital_modulations.m> Acesso em 14/06/2016 HAYKIN. S., MOHER. M.; Sistemas Modernos de Comunicações Wireless. 1. Ed., Porto Alegre: Bookman, 2008. HAYKIN. S., MOHER. M., Sistemas de Comunicações. 5. Ed., Porto Alegre: Bookman, 2011. LATHI, B.P; Modern digital and analog communication systems. 3. Ed. New York: Oxford University Press Inc, 1998. MÉNDEZ, L. A. T.; Viterbi Algorithm in Text Recognition. Quebec: McGill University, 2000. Disponível em <http://www.cim.mcgill.ca/~latorres/Viterbi/va_main.html> Acesso em 20/05/2016 MILIES, C.P.; Breve Introdução à Teoria dos Códigos Corretores de Erros. Colóquio de Matemática da Região Centro-Oeste, 2009. NETO, A. C.; TV Digital I: Entrelaçadores Temporais para Sistemas de Transmissão. Site Teleco, 2011. Disponível em <http://www.teleco.com.br/tutoriais/tutorialtvdentr1/pagina_2.asp> Acesso em 12/05/2016 PACHECO, Roberto Vargas; Projeto de um codificador/decodificador Viterbi integrado. Porto Alegre: Site UFRGS, 2002. Disponível em <https://www.lume.ufrgs.br/bitstream/handle/10183/17789/000723533.pdf?sequence=1> Acesso em 19/05/2016 SHANON, C.E. A Mathematical theory of communication. The Bell System technical Journal, 1948.