SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 1
Análise de Performance de Códigos Convolucionais utilizando um sistema de
puncionamento Adaptativo.
Ferreira, W. S.1
e Silva, F. S.2
1
Autor, Engenharia de Telecomunicações UNISAL, wevertonsferreira@gmail.com,
2
Orientador, Engenharia de Telecomunicações UNISAL, fernando.silva@sj.unisal.br
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 algoritmos 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 que terá a capacidade de realizar a
alteração da taxa de puncionamento automaticamente,
procurando maximizar o aproveitamento do canal
mesmo quando o canal é variante no tempo. O projeto
consiste na variação da taxa de puncionamento em um
codificador convolucional 1/2 com decodificação de
Viterbi.
Palavras-chave: Código convolucional,
Puncionamento, decodificador de Viterbi, taxa de
código adaptativo, canal variante no tempo, QAM.
Abstract – Digital communication has been
increasingly used and has allowed significant advances
in transmission rates in communications systems.
Within the revolutions that allowed the flexibility of
communications is the use of algorithms which change
the transmission rate and adapt the system to the
variant channel conditions in time.
This project aims to develop and simulate a system
that will be able to change the puncturing rate
automatically, looking to maximize the use of the
channel even if the channel is time variant. The project
consists of the variation of the puncturing rate on a 1/2
convolutional encoder with Viterbi decoding.
Keywords: Convolutional code, puncturing, Viterbi
decoder, rate adaptive code, channel variant in time
QAM.
I. 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).
A proposta deste estudo é projetar um sistema, a fim
de ter a capacidade de analisar e definir
automaticamente qual a relação bit útil vs bit de
paridade será utilizada para que a taxa de erros de bits
seja baixa. Esta relação é conhecida por taxa de
puncionamento.
Sendo assim, quando o canal estiver operando sem
interferências, poderá ser utilizado uma taxa de
puncionamento que permita obter uma maior
velocidade de transferência no canal e ao mesmo
tempo, corrigir a maior quantidade de bits com erros.
II. 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. Foi
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 2
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), ampliou-se
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).
Em seu trabalho, Shannon introduziu um modelo
estatístico subjacente à teoria da informação. Ele
iniciou seu artigo dizendo que o principal problema da
comunicação é reproduzir (perfeitamente ou quase)
num determinado local uma mensagem produzida em
outro local distinto.
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).
A. Medida da informação
O conceito de informação está subjetivamente ligado
à incerteza. Uma informação que é considerada como
improvável é mais valiosa (ou maior), pois a
probabilidade de ocorrer erros é muito menor,
tornando-se mais raro. Em contrapartida, uma
informação considerada como provável é menos
valiosa (ou menor), pois 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. Nesse modelo, o
evento deve seguir alguns requisitos, como:
‐ A informação não pode ser negativa.
‐ A informação é nula somente se o evento tiver
probabilidade igual a 1.
‐ Quanto menor for a certeza (probabilidade),
maior será a sua informação.
Para atender esses requisitos, Shannon utilizou a
função matemática Logarítmica. A informação
resultante dessa equação é chamada de bit (uma
abreviação do inglês binary digit ou em português
Dígito Binário) (HAYKIN, MOHER, 2008).
A equação 1 apresenta que a quantidade de
informação I(Sk) produzida pela fonte em um
determinado período depende do símbolo Sk emitido
pela fonte e de sua probabilidade Pk.
[bits] (1)
Desta forma, pode assumir os valores I(S0), I(S1),
I(S2),...., I(Sk-1), com suas respectivas probabilidades
P0, P1, P2,....., Pk-1. Assim, pode-se interpretar I(Sk)
como uma variável aleatória.
A informação média (entropia) associada aos N
símbolos da fonte α chama-se entropia e pode-se
representa-la por H(α) como apresentada na equação 2.
(2)
B. 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). Pode-se
compreender que a capacidade do canal mede a
quantidade de informação útil que o canal possa
transferir em um determinado espaço de tempo.
Considerando 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 e esta incerteza pode ser medida
através da entropia condicional H(x/y)
Durante um processo de comunicação H(x) existe
uma quantidade de informação H(x/y) que é perdida. A
informação útil I(x;y) é conhecida por Informação
Mútua. A Figura 1 ilustra este processo de perda de
informação no processo de comunicação através de um
canal.
Figura 1 – Fluxo de transmissão em um canal de comunicação
Fonte: (Próprio Autor)
Logo, a capacidade do canal pode ser definida como
a máxima informação mútua que atravessa o canal.
𝐶 = 𝑚𝑎𝑥
𝑝(xj)
𝐼(𝑥; 𝑦) [bits] (3)
C. Codificação do canal
Ao transmitir um determinado bit, espera-se 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. (HAYKIN, MOHER, 2011).
A ideia consiste em inserir informações redundantes,
de tal forma que o decodificador terá a capacidade de
detectar e corrigir possíveis erros nos bits entregues.
Para haver esta redundância é considerada 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 e 2011).
I (Sk )=log2(1/ Pk)=−log2(Pk )
H (α)=E[ I (Sk )]
H (α)=∑
k=0
N −1
Pk I (SK )
H (α)=∑
k=0
N −1
log2
(1
Pk
)
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 3
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 destas informações, pode-se definir que a
razão k/n é chamada de taxa de código. Comumente é
utilizado r para representar esta taxa. Dessa forma,
pode-se escrever:
(3)
Para 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:
‐ 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. Onde C/Tc é a taxa crítica e não
pode ser menor que a taxa média de incerteza
a cada Ts segundos
(4)
‐ Não é possível a reconstrução de uma
informação transmitida no canal com uma
probabilidade de erro relativamente pequena.
(HAYKIN, MOHER, 2008).
(5)
‐ O teorema da codificação do canal não
apresenta como montar um bom código, porém,
se a condição de igualdade apresentada na
equação 6 for satisfeita, teremos bons códigos.
(6)
D. Codificação de fonte
A fundamentação 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ções consideradas
redundantes e estas consomem potência e
largura de banda na transmissão.
‐ Para ter-se melhor eficiência na transmissão
(consumir menos potência e largura de banda),
retiramos essas informações redundantes antes
da transmissão.
Estes dois fatores podem ser compreendidos como
uma fonte discreta com determinada entropia, o
comprimento médio da palavra código para a
codificação é limitado superiormente à entropia.
(HAYKIN, MOHER, 2011).
Como já apresentado neste artigo, entropia é a média
de informação por símbolo gerado pela fonte É
também 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 conforme a equação
7.
(7)
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.
III. CÓDIGO CONVOLUCIONAL
Como já mencionado neste trabalho, os códigos
corretores tem como função a detecção e correção de
falhas que possam ter ocorrido durante a transmissão
da informação em um canal com 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 tem-se 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
redundantes de forma linear. Para inserção desta
redundância de bits utiliza-se convoluções de módulo
2, onde originou-se o nome. (HAYKIN, MOHER,
2011).
A taxa do código r é dada por:
[bits/símbolo] (8)
Em que M é a quantidade de estágios que o bit
percorrerá durante o processo e n a quantidade de
somadores, codificando uma sequência de mensagens
de L bits que resultará na sequência codificada
n(L+M).
Comumente a quantidade de bits percorridos nos
processo é muito maior que a quantidade de estágios a
serem percorridos. Pode-se então simplificar a formula
dizendo que:
[bits/símbolo] (9)
Considerando um código convolucional com uma
taxa de 1/n (bits/símbolo), pode-se dizer que se trata de
uma máquina de estados finitos, devido a estrutura de
somadores e estágios exemplificados anteriormente.
r=
k
n
H (α)
Ts
≤
C
T c
H (α)
Ts
>
C
Tc
H (α)
Ts
=
C
Tc
n=
H(s)
L
r=
L
n(L+ M )
r≈
1
n
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 4
A partir do momento que o bit entra no registrador,
deve passar por todos os estágios até que saia do
mesmo. Esta quantidade de deslocamentos que o bit
realiza é conhecida como comprimento de restrição e
pode ser expressada por K=M+1. Esse valor de k
representa a quantidade de deslocamentos que o bit
deverá realizar até sair do registrador. Isso significa
que um único bit da mensagem influenciará em K
mensagens codificadas. (HAYKIN, MOHER, 2008).
A Figura 2 apresenta uma máquina de 4 estados (2²)
com uma taxa de ½ (2 bits de saída para cada 1 bit de
entrada) que contém uma entrada X(n), duas saídas
Gx(n) e dois atrasadores D. (NETO, 2011).
Cada saída Gx(n) pode ser expressa como uma
equação de polinômios onde o sinal de + equivale a
porta lógica XOR, em que sua saída é nula (0) para
termos iguais e um (1) para termos diferentes.
(10)
Figura 2 – Somador – Código Convolucional
Fonte: (NETO, 2011)
As figuras a seguir representam o mesmo código,
sendo a Figura 3 como uma máquina de estados onde
pode-se visualizar todas as possibilidades do sistema e
a Figura 4 como Treliça mostrando a influência nas
saídas durante as transições.
Figura 3 – Máquina de estados - Código Convolucional
Fonte: (NETO, 2011)
Figura 4 – Treliça – Código Convolucional
Fonte: (NETO, 2011)
A taxa original de um somador ½ contém um bit de
paridade para cada bit de informação útil. Assim, esta
taxa contém uma grande capacidade de correção de
erros, porém, em um processo de transmissão, acarreta
na lentidão no 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 1/2 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.
(ABRANTES, 2010).
O puncionamento é utilizado para descartar alguns
bits de paridade na saída do codificador convolucional.
Desta forma, pode-se obter uma melhor performance
na transmissão, tendo em vista que quando se tem uma
taxa de erro pequena, a necessidade de correção de
erros é menos. Assim, com poucos bits de paridade é
possível corrigir qualquer bit no bloco.
Conforme a escolha da taxa de puncionamento
durante uma transmissão, o canal poderá conter maior
ou menor capacidade de informação útil.
Um exemplo de puncionamento é o de 7/8, ou seja, a
cada 8 bits enviados 7 serão de mensagem útil. Desta
forma, haverá somente 1 bit de paridade para corrigir
este bloco de 8 bits. Isso quer dizer que, caso ocorra
erro em mais de 1 bit durante a transmissão, este
código não conseguirá corrigir todos os bits
necessários.
Devido a restrição da quantidade de bits que podem
ser corrigidos na taxa de 7/8 tem-se diversas taxas de
puncionamento, para que possa se adequar a
necessidade do canal sempre visando uma melhor
performance.
IV. DECODIFICADOR DE VITERBI
Em um processo de comunicação, após codificar a
mensagem, a mesma é enviada ao receptor através do
canal. O receptor recebe uma sequência com níveis de
G0(n)=X (n)+ X (n−1)+ X (n−2)
G1(n)=X (n)+ X (n−2)
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 5
sinais diferentes de zero (0) e um (1).
Para entender estes níveis de sinais e convertê-los
em informação, faz-se necessária a utilização de um
decodificador que seja capaz de analisar e decifrar
estes sinais.
Neste estudo, utilizou-se decodificador de Viterbi
que utiliza a decodificação de probabilidade máxima e
também pode utilizar a decodificação de distância
mínima, para os casos de canal binário simétrico.
Dessa 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
4. A cada transição de nó é gerado um símbolo. Desta
forma, considerando que são conhecidas 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
(PACHECO, 2002) 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).
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 do dado é 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
cria diversas palavras código, até encontrar o trajeto
que tem a maior probabilidade de estar correto.
A Figura 5 exemplifica este processo de
decodificação, que considera a mesma máquina de
estados que o codificador convolucional para que assim
tente redesenhar o caminho realizado no processo de
codificação. Sempre considerado o caminho mais curto
na treliça.
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, é o mesmo caminho gerado
no transmissor.
Figura 5 – Determinação recursiva do percurso mais curto através do
algoritmo de Viterbi
Fonte: (MÉNDEZ, 2000)
A. 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.
(11)
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.
V. 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:
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 6
‐ 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 6 pode-se notar a diferença entre os três
tipos de modulação para um sinal binário (0 ou 1).
Figura 6 – 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).
A. 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 12 e 13 definirão estes sinais.
(12)
(13)
Onde 0<t<Tb, e Eb é a energia do bit transmitido.
(HAYKIN, 2004).
A Figura 7 exemplifica uma constelação BPSK com
base nas informações apresentadas na Tabela 1. 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 7 – Constelação BPSK.
Fonte: (Próprio Autor)
Tabela 1 – Tabela BPSK
Fonte: (UFSM, 2016)
B. 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
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 7
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 8 exemplifica uma constelação QPSK com
base nas informações apresentadas na Tabela 2.
Figura 8 – Constelação QPSK
Fonte: (UFSM, 2016)
Tabela 2 – 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)
C. 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 9, 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 9 – Constelação QAM
Fonte: (Próprio Autor)
A modulação QAM é definida na equação 14. Onde,
E0 é a energia do sinal que possui menor amplitude e
Sk(t) é o sinal QAM M-ário transmitido para o símbolo
k.
(14)
Ainda na Figura 9, 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).
VI. PROPOSTA
Como já apresentado, a proposta desse estudo é
obter um sistema que terá a capacidade de realizar
alterações na taxa de puncionamento automaticamente
de forma adaptativa à medida que houver dificuldades
no recebimento da informação transmitida. Sendo
assim, quando o canal estiver operando sem
interferências, poderá ser utilizado uma taxa de
puncionamento que permita obter maior velocidade de
transferência no canal e ao mesmo tempo, corrigir a
maior quantidade de bits com erros.
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 10, os testes foram
realizados em um sistema QAM. Este sistema é
alimentado por uma fonte geradora binária de
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 8
Bernoulli, que através de sequencias randômicas expeli
bits, simulando o fluxo de informação que será
trafegada no mesmo.
Figura 10 – Modelo Simulação Simulink
Fonte: MATLAB
Na sequência, os bits proferidos pela fonte,
encaminham-se ao bloco que simula o código
convolucional. Como citado no Item III 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 (proporçã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 pré-estipulada
com valores entre 1 e 20 dB a fim de tentar simular as
alterações do nível de energia que ocorre ao longo da
transmissão em um canal real. Esta deterioração do
canal afeta diretamente a taxa de erros de bit, pois a
medida que meu canal apresenta problemas na
transmissão a probabilidade de ocorrer erros é muito
maior.
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
IV 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, taxa 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.
VII. DESENVOLVIMENTO
Para 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.
Na Figura 11 pode-se observar o fluxograma com a
lógica da programação.
Figura 11 – Fluxograma programação
Fonte: Próprio Autor
Cada teste será realizado com 104
bits e valores de
Eb/N0 diferentes. Na programação, foi adicionada uma
sequência de Eb/N0, no intuito de simular um canal de
comunicação real. Desta forma, existe uma suave
variação entre estes valores e também foi adicionado
variações mais bruscas nos valores de Eb/N0 para
simular possível problemas.
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 9
Esta sequência de Eb/N0 pode ser observada na
Figura 12.
Figura 12 – Gráfico Eb/N0 considerado no teste
Fonte: Próprio Autor
Após a realização do teste o contador nbitacc
acumula a quantidade de bits que foram transferidos no
teste e posteriormente a contador erroacc acumula a
quantidade de erros obtidos neste teste.
Em seguida, calcula-se o BER através do produto
entre os contadores erroacc e nbitacc e com o BER
calculado realiza-se o primeiro teste lógico.
Caso o BER calculado seja superior a 10-4
reduz-se a
taxa de puncionamento e zera os contadores nbitacc e
erroacc. Caso contrário, realiza-se um segundo teste
lógico que verifica se o valor calculado do BER é
inferior a 10-5
e o contador nbitacc é superior a 5*105
.
Se o teste lógico der positivo, aumenta-se a taxa de
puncionamento e zera os contadores nbitacc e erroacc,
caso contrário, retorna ao início do teste para a próxima
iteração.
As taxa de puncionamento utilizadas foram as de
7/8, 3/4, 3/5, 5/6 e 1/2. Pode-se notar na Figura 16 a
diferença entre o número de bits úteis e bits de
correção.
Para realização dos testes criou-se a variável w para
representar as taxas de puncionamento que também
pode-se observar na Tabela 3.
Tabela 3 – Taxas Puncionamento utilizadas no teste
W Taxa
bits de
mensagem
bits de
paridade
% bits úteis
1 7/8 7 1 0,88
2 5/6 5 1 0,83
3 3/4 3 1 0,75
4 3/5 3 2 0,6
5 1/2 1 1 0,5
Fonte: Próprio Autor
VIII. ANÁLISE DOS RESULTADOS
Após a realização de 2790 iterações com valores de
Eb/N0 variando entre 1 e 20 dB, obteve-se o resultado
esperado. Em que o sistema teve a capacidade de
aplicar a taxa de puncionamento necessária para cada
valor de Eb/N0. Desta forma, o sistema teve uma
performance satisfatória, onde aproximadamente
91,5% das iterações obtiveram o valor de BER igual a
Zero sob as condições de níveis de Eb/N0 do canal
AWGN impostas no teste.
As Figuras 13 e 14 apresentam os resultados obtidos
durante o teste. E ao compará-los ao gráfico da Figura
12, verifica-se que o maior resultado de BER obtido no
teste foi exatamente no momento em que o valor de
Eb/N0 tem seu valor extremamente baixo. Isso
significa que as taxas de puncionamento pré-
determinadas não foram capazes de realizar a correção
de todos os bits com erros. Pôde-se verificar que em
aproximadamente 72% das iterações a taxa de
puncionamento ficou em 7/8, que dentre as taxas
utilizas no teste, é a que tem o melhor aproveitamento
de bits úteis.
Figura 13 – Gráfico BER
Fonte: Próprio Autor
Para melhor visualização no gráfico da Figura 13,
utilizou-se o valor de 1e-10 para representar o valor
Zero, tendo em vista que a apresentação no gráfico está
em escala logarítmica.
Figura 14 – Gráfico Taxa de Puncionamento
Fonte: Próprio Autor
1
6
11
16
21
0 500 1000 1500 2000 2500 3000
Eb/N0(dB)
Tempo (t)
1,E-10
1,E-09
1,E-08
1,E-07
1,E-06
1,E-05
1,E-04
1,E-03
1,E-02
1,E-01
1,E+00
0 500 1000 1500 2000 2500 3000
BitErrorRate(BER)
Tempo (t)
0
1
2
3
4
5
0 500 1000 1500 2000 2500 3000
w
Tempo (t)
Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 10
O gráfico da Figura 15 expõe as respostas das taxas
discutidas ao longo desse artigo em um teste realizado
no aplicativo MATLAB com valores de Eb/N0
variando entre 0 e 20 dB com intervalos de 0,1 dB
entre eles.
Neste gráfico pode-se observar a diferença de
performance do código somente com a alteração de
seus puncionadores.
Figura 15 – BER x Eb/N0
Fonte: Próprio Autor
IX. CONCLUSÕES
Através desse estudo foi possível observar que para
cada nível de interferência do canal existe uma taxa de
puncionamento que se adequa melhor para que não
haja uma grande quantidade de bits que necessitam ser
corrigidos.
Para casos que exija alta taxa de transmissão, a taxa
recomendada seria a de 7/8, pois há muito mais bits de
informação útil do que de paridade. Porém, se o canal
não estiver em perfeitas condições e a energia do bit
estiver muito baixa, esta taxa não terá bons resultados.
Como pode-se observar na Figura 15, a resposta das
taxas de puncionamento de 7/8 começa a ter um bom
desempenho a partir de aproximadamente 15dB. Logo,
considerando um canal com um nível de energia de bit
baixo poderia ser considerado o uso da taxa de 3/5.
Por este motivo, em um processo de criação de um
modelo com taxas pré-estabelecidas, o projetista deverá
realizar testes para determinar quais as melhores taxa a
serem configuradas e qual o limitante para que haja a
troca desta taxa, sempre considerando qual o nível de
performance esperado para este sistema.
Uma sugestão para trabalhos futuros ou até mesmo
aprofundamento desse artigo, pode ser o estudo de
diferentes tipos de modulações com diferentes taxas de
puncionamento cada. Desta forma, a área de manobra
será muito maior e existirá uma melhora na eficiência
espectral.
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?me
dia=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/fileexc
hange/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.h
tml> Acesso em 20/05/2016
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/pa
gina_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/17
789/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 Códigos Convolucionais Adaptativos

Automação ind 4_2014
Automação ind 4_2014Automação ind 4_2014
Automação ind 4_2014Marcio Oliani
 
Protocolos ethernet
Protocolos ethernetProtocolos ethernet
Protocolos ethernetredesinforma
 
Pcm manoella saraiva 20151630040
Pcm   manoella saraiva 20151630040Pcm   manoella saraiva 20151630040
Pcm manoella saraiva 20151630040Manoella Aluízio
 
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...Heitor Galvão
 
Redes de Computadores - Modulo 1
Redes de Computadores - Modulo 1Redes de Computadores - Modulo 1
Redes de Computadores - Modulo 1Mariana Hiyori
 
Aula 1 - Elementos básicos de um sistema de transmissão digital
Aula 1 -  Elementos básicos de um sistema de transmissão digitalAula 1 -  Elementos básicos de um sistema de transmissão digital
Aula 1 - Elementos básicos de um sistema de transmissão digitalLeandro Sausen
 
Sistemas De ComunicaçãO
Sistemas De ComunicaçãOSistemas De ComunicaçãO
Sistemas De ComunicaçãOsenhortome
 
Aula02 - principios da comunicaçao
Aula02  - principios da comunicaçaoAula02  - principios da comunicaçao
Aula02 - principios da comunicaçaoCarlos Veiga
 
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdf
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdfTCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdf
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdfSamara Santos
 
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...Júlio César Magro
 

Semelhante a Códigos Convolucionais Adaptativos (20)

Principios da comunicação I Unidade
Principios da comunicação I UnidadePrincipios da comunicação I Unidade
Principios da comunicação I Unidade
 
Automação ind 4_2014
Automação ind 4_2014Automação ind 4_2014
Automação ind 4_2014
 
Protocolos ethernet
Protocolos ethernetProtocolos ethernet
Protocolos ethernet
 
Pcm manoella saraiva 20151630040
Pcm   manoella saraiva 20151630040Pcm   manoella saraiva 20151630040
Pcm manoella saraiva 20151630040
 
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...
Análise de Segurança da Informação utilizando Códigos Bidimensionais 2D MWOOC...
 
Controle de seguranca_da_informacao_nas_aplicacoes
Controle de seguranca_da_informacao_nas_aplicacoesControle de seguranca_da_informacao_nas_aplicacoes
Controle de seguranca_da_informacao_nas_aplicacoes
 
Redes de Computadores - Modulo 1
Redes de Computadores - Modulo 1Redes de Computadores - Modulo 1
Redes de Computadores - Modulo 1
 
Aula 1 - Elementos básicos de um sistema de transmissão digital
Aula 1 -  Elementos básicos de um sistema de transmissão digitalAula 1 -  Elementos básicos de um sistema de transmissão digital
Aula 1 - Elementos básicos de um sistema de transmissão digital
 
RC Módulo1
RC Módulo1RC Módulo1
RC Módulo1
 
Redes4
Redes4Redes4
Redes4
 
Lista03
Lista03Lista03
Lista03
 
Exercícios
ExercíciosExercícios
Exercícios
 
Sistemas De ComunicaçãO
Sistemas De ComunicaçãOSistemas De ComunicaçãO
Sistemas De ComunicaçãO
 
Aula02 - principios da comunicaçao
Aula02  - principios da comunicaçaoAula02  - principios da comunicaçao
Aula02 - principios da comunicaçao
 
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdf
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdfTCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdf
TCP/IP_REDES DE COMPUTADORES E MODELO OSI.pdf
 
aula 1.pdf
aula 1.pdfaula 1.pdf
aula 1.pdf
 
Cap05b
Cap05bCap05b
Cap05b
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Cap05a
Cap05aCap05a
Cap05a
 
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...
Módulo de Análise de Parâmetros de Qualidade de Serviço em Aplicações de Áudi...
 

Códigos Convolucionais Adaptativos

  • 1. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 1 Análise de Performance de Códigos Convolucionais utilizando um sistema de puncionamento Adaptativo. Ferreira, W. S.1 e Silva, F. S.2 1 Autor, Engenharia de Telecomunicações UNISAL, wevertonsferreira@gmail.com, 2 Orientador, Engenharia de Telecomunicações UNISAL, fernando.silva@sj.unisal.br 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 algoritmos 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 que terá a capacidade de realizar a alteração da taxa de puncionamento automaticamente, procurando maximizar o aproveitamento do canal mesmo quando o canal é variante no tempo. O projeto consiste na variação da taxa de puncionamento em um codificador convolucional 1/2 com decodificação de Viterbi. Palavras-chave: Código convolucional, Puncionamento, decodificador de Viterbi, taxa de código adaptativo, canal variante no tempo, QAM. Abstract – Digital communication has been increasingly used and has allowed significant advances in transmission rates in communications systems. Within the revolutions that allowed the flexibility of communications is the use of algorithms which change the transmission rate and adapt the system to the variant channel conditions in time. This project aims to develop and simulate a system that will be able to change the puncturing rate automatically, looking to maximize the use of the channel even if the channel is time variant. The project consists of the variation of the puncturing rate on a 1/2 convolutional encoder with Viterbi decoding. Keywords: Convolutional code, puncturing, Viterbi decoder, rate adaptive code, channel variant in time QAM. I. 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). A proposta deste estudo é projetar um sistema, a fim de ter a capacidade de analisar e definir automaticamente qual a relação bit útil vs bit de paridade será utilizada para que a taxa de erros de bits seja baixa. Esta relação é conhecida por taxa de puncionamento. Sendo assim, quando o canal estiver operando sem interferências, poderá ser utilizado uma taxa de puncionamento que permita obter uma maior velocidade de transferência no canal e ao mesmo tempo, corrigir a maior quantidade de bits com erros. II. 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. Foi
  • 2. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 2 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), ampliou-se 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). Em seu trabalho, Shannon introduziu um modelo estatístico subjacente à teoria da informação. Ele iniciou seu artigo dizendo que o principal problema da comunicação é reproduzir (perfeitamente ou quase) num determinado local uma mensagem produzida em outro local distinto. 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). A. Medida da informação O conceito de informação está subjetivamente ligado à incerteza. Uma informação que é considerada como improvável é mais valiosa (ou maior), pois a probabilidade de ocorrer erros é muito menor, tornando-se mais raro. Em contrapartida, uma informação considerada como provável é menos valiosa (ou menor), pois 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. Nesse modelo, o evento deve seguir alguns requisitos, como: ‐ A informação não pode ser negativa. ‐ A informação é nula somente se o evento tiver probabilidade igual a 1. ‐ Quanto menor for a certeza (probabilidade), maior será a sua informação. Para atender esses requisitos, Shannon utilizou a função matemática Logarítmica. A informação resultante dessa equação é chamada de bit (uma abreviação do inglês binary digit ou em português Dígito Binário) (HAYKIN, MOHER, 2008). A equação 1 apresenta que a quantidade de informação I(Sk) produzida pela fonte em um determinado período depende do símbolo Sk emitido pela fonte e de sua probabilidade Pk. [bits] (1) Desta forma, pode assumir os valores I(S0), I(S1), I(S2),...., I(Sk-1), com suas respectivas probabilidades P0, P1, P2,....., Pk-1. Assim, pode-se interpretar I(Sk) como uma variável aleatória. A informação média (entropia) associada aos N símbolos da fonte α chama-se entropia e pode-se representa-la por H(α) como apresentada na equação 2. (2) B. 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). Pode-se compreender que a capacidade do canal mede a quantidade de informação útil que o canal possa transferir em um determinado espaço de tempo. Considerando 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 e esta incerteza pode ser medida através da entropia condicional H(x/y) Durante um processo de comunicação H(x) existe uma quantidade de informação H(x/y) que é perdida. A informação útil I(x;y) é conhecida por Informação Mútua. A Figura 1 ilustra este processo de perda de informação no processo de comunicação através de um canal. Figura 1 – Fluxo de transmissão em um canal de comunicação Fonte: (Próprio Autor) Logo, a capacidade do canal pode ser definida como a máxima informação mútua que atravessa o canal. 𝐶 = 𝑚𝑎𝑥 𝑝(xj) 𝐼(𝑥; 𝑦) [bits] (3) C. Codificação do canal Ao transmitir um determinado bit, espera-se 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. (HAYKIN, MOHER, 2011). A ideia consiste em inserir informações redundantes, de tal forma que o decodificador terá a capacidade de detectar e corrigir possíveis erros nos bits entregues. Para haver esta redundância é considerada 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 e 2011). I (Sk )=log2(1/ Pk)=−log2(Pk ) H (α)=E[ I (Sk )] H (α)=∑ k=0 N −1 Pk I (SK ) H (α)=∑ k=0 N −1 log2 (1 Pk )
  • 3. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 3 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 destas informações, pode-se definir que a razão k/n é chamada de taxa de código. Comumente é utilizado r para representar esta taxa. Dessa forma, pode-se escrever: (3) Para 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: ‐ 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. Onde C/Tc é a taxa crítica e não pode ser menor que a taxa média de incerteza a cada Ts segundos (4) ‐ Não é possível a reconstrução de uma informação transmitida no canal com uma probabilidade de erro relativamente pequena. (HAYKIN, MOHER, 2008). (5) ‐ O teorema da codificação do canal não apresenta como montar um bom código, porém, se a condição de igualdade apresentada na equação 6 for satisfeita, teremos bons códigos. (6) D. Codificação de fonte A fundamentação 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ções consideradas redundantes e estas consomem potência e largura de banda na transmissão. ‐ Para ter-se melhor eficiência na transmissão (consumir menos potência e largura de banda), retiramos essas informações redundantes antes da transmissão. Estes dois fatores podem ser compreendidos como uma fonte discreta com determinada entropia, o comprimento médio da palavra código para a codificação é limitado superiormente à entropia. (HAYKIN, MOHER, 2011). Como já apresentado neste artigo, entropia é a média de informação por símbolo gerado pela fonte É também 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 conforme a equação 7. (7) 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. III. CÓDIGO CONVOLUCIONAL Como já mencionado neste trabalho, os códigos corretores tem como função a detecção e correção de falhas que possam ter ocorrido durante a transmissão da informação em um canal com 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 tem-se 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 redundantes de forma linear. Para inserção desta redundância de bits utiliza-se convoluções de módulo 2, onde originou-se o nome. (HAYKIN, MOHER, 2011). A taxa do código r é dada por: [bits/símbolo] (8) Em que M é a quantidade de estágios que o bit percorrerá durante o processo e n a quantidade de somadores, codificando uma sequência de mensagens de L bits que resultará na sequência codificada n(L+M). Comumente a quantidade de bits percorridos nos processo é muito maior que a quantidade de estágios a serem percorridos. Pode-se então simplificar a formula dizendo que: [bits/símbolo] (9) Considerando um código convolucional com uma taxa de 1/n (bits/símbolo), pode-se dizer que se trata de uma máquina de estados finitos, devido a estrutura de somadores e estágios exemplificados anteriormente. r= k n H (α) Ts ≤ C T c H (α) Ts > C Tc H (α) Ts = C Tc n= H(s) L r= L n(L+ M ) r≈ 1 n
  • 4. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 4 A partir do momento que o bit entra no registrador, deve passar por todos os estágios até que saia do mesmo. Esta quantidade de deslocamentos que o bit realiza é conhecida como comprimento de restrição e pode ser expressada por K=M+1. Esse valor de k representa a quantidade de deslocamentos que o bit deverá realizar até sair do registrador. Isso significa que um único bit da mensagem influenciará em K mensagens codificadas. (HAYKIN, MOHER, 2008). A Figura 2 apresenta uma máquina de 4 estados (2²) com uma taxa de ½ (2 bits de saída para cada 1 bit de entrada) que contém uma entrada X(n), duas saídas Gx(n) e dois atrasadores D. (NETO, 2011). Cada saída Gx(n) pode ser expressa como uma equação de polinômios onde o sinal de + equivale a porta lógica XOR, em que sua saída é nula (0) para termos iguais e um (1) para termos diferentes. (10) Figura 2 – Somador – Código Convolucional Fonte: (NETO, 2011) As figuras a seguir representam o mesmo código, sendo a Figura 3 como uma máquina de estados onde pode-se visualizar todas as possibilidades do sistema e a Figura 4 como Treliça mostrando a influência nas saídas durante as transições. Figura 3 – Máquina de estados - Código Convolucional Fonte: (NETO, 2011) Figura 4 – Treliça – Código Convolucional Fonte: (NETO, 2011) A taxa original de um somador ½ contém um bit de paridade para cada bit de informação útil. Assim, esta taxa contém uma grande capacidade de correção de erros, porém, em um processo de transmissão, acarreta na lentidão no 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 1/2 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. (ABRANTES, 2010). O puncionamento é utilizado para descartar alguns bits de paridade na saída do codificador convolucional. Desta forma, pode-se obter uma melhor performance na transmissão, tendo em vista que quando se tem uma taxa de erro pequena, a necessidade de correção de erros é menos. Assim, com poucos bits de paridade é possível corrigir qualquer bit no bloco. Conforme a escolha da taxa de puncionamento durante uma transmissão, o canal poderá conter maior ou menor capacidade de informação útil. Um exemplo de puncionamento é o de 7/8, ou seja, a cada 8 bits enviados 7 serão de mensagem útil. Desta forma, haverá somente 1 bit de paridade para corrigir este bloco de 8 bits. Isso quer dizer que, caso ocorra erro em mais de 1 bit durante a transmissão, este código não conseguirá corrigir todos os bits necessários. Devido a restrição da quantidade de bits que podem ser corrigidos na taxa de 7/8 tem-se diversas taxas de puncionamento, para que possa se adequar a necessidade do canal sempre visando uma melhor performance. IV. DECODIFICADOR DE VITERBI Em um processo de comunicação, após codificar a mensagem, a mesma é enviada ao receptor através do canal. O receptor recebe uma sequência com níveis de G0(n)=X (n)+ X (n−1)+ X (n−2) G1(n)=X (n)+ X (n−2)
  • 5. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 5 sinais diferentes de zero (0) e um (1). Para entender estes níveis de sinais e convertê-los em informação, faz-se necessária a utilização de um decodificador que seja capaz de analisar e decifrar estes sinais. Neste estudo, utilizou-se decodificador de Viterbi que utiliza a decodificação de probabilidade máxima e também pode utilizar a decodificação de distância mínima, para os casos de canal binário simétrico. Dessa 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 4. A cada transição de nó é gerado um símbolo. Desta forma, considerando que são conhecidas 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 (PACHECO, 2002) 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). 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 do dado é 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 cria diversas palavras código, até encontrar o trajeto que tem a maior probabilidade de estar correto. A Figura 5 exemplifica este processo de decodificação, que considera a mesma máquina de estados que o codificador convolucional para que assim tente redesenhar o caminho realizado no processo de codificação. Sempre considerado o caminho mais curto na treliça. 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, é o mesmo caminho gerado no transmissor. Figura 5 – Determinação recursiva do percurso mais curto através do algoritmo de Viterbi Fonte: (MÉNDEZ, 2000) A. 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. (11) 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. V. 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:
  • 6. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 6 ‐ 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 6 pode-se notar a diferença entre os três tipos de modulação para um sinal binário (0 ou 1). Figura 6 – 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). A. 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 12 e 13 definirão estes sinais. (12) (13) Onde 0<t<Tb, e Eb é a energia do bit transmitido. (HAYKIN, 2004). A Figura 7 exemplifica uma constelação BPSK com base nas informações apresentadas na Tabela 1. 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 7 – Constelação BPSK. Fonte: (Próprio Autor) Tabela 1 – Tabela BPSK Fonte: (UFSM, 2016) B. 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
  • 7. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 7 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 8 exemplifica uma constelação QPSK com base nas informações apresentadas na Tabela 2. Figura 8 – Constelação QPSK Fonte: (UFSM, 2016) Tabela 2 – 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) C. 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 9, 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 9 – Constelação QAM Fonte: (Próprio Autor) A modulação QAM é definida na equação 14. Onde, E0 é a energia do sinal que possui menor amplitude e Sk(t) é o sinal QAM M-ário transmitido para o símbolo k. (14) Ainda na Figura 9, 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). VI. PROPOSTA Como já apresentado, a proposta desse estudo é obter um sistema que terá a capacidade de realizar alterações na taxa de puncionamento automaticamente de forma adaptativa à medida que houver dificuldades no recebimento da informação transmitida. Sendo assim, quando o canal estiver operando sem interferências, poderá ser utilizado uma taxa de puncionamento que permita obter maior velocidade de transferência no canal e ao mesmo tempo, corrigir a maior quantidade de bits com erros. 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 10, os testes foram realizados em um sistema QAM. Este sistema é alimentado por uma fonte geradora binária de
  • 8. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 8 Bernoulli, que através de sequencias randômicas expeli bits, simulando o fluxo de informação que será trafegada no mesmo. Figura 10 – Modelo Simulação Simulink Fonte: MATLAB Na sequência, os bits proferidos pela fonte, encaminham-se ao bloco que simula o código convolucional. Como citado no Item III 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 (proporçã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 pré-estipulada com valores entre 1 e 20 dB a fim de tentar simular as alterações do nível de energia que ocorre ao longo da transmissão em um canal real. Esta deterioração do canal afeta diretamente a taxa de erros de bit, pois a medida que meu canal apresenta problemas na transmissão a probabilidade de ocorrer erros é muito maior. 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 IV 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, taxa 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. VII. DESENVOLVIMENTO Para 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. Na Figura 11 pode-se observar o fluxograma com a lógica da programação. Figura 11 – Fluxograma programação Fonte: Próprio Autor Cada teste será realizado com 104 bits e valores de Eb/N0 diferentes. Na programação, foi adicionada uma sequência de Eb/N0, no intuito de simular um canal de comunicação real. Desta forma, existe uma suave variação entre estes valores e também foi adicionado variações mais bruscas nos valores de Eb/N0 para simular possível problemas.
  • 9. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 9 Esta sequência de Eb/N0 pode ser observada na Figura 12. Figura 12 – Gráfico Eb/N0 considerado no teste Fonte: Próprio Autor Após a realização do teste o contador nbitacc acumula a quantidade de bits que foram transferidos no teste e posteriormente a contador erroacc acumula a quantidade de erros obtidos neste teste. Em seguida, calcula-se o BER através do produto entre os contadores erroacc e nbitacc e com o BER calculado realiza-se o primeiro teste lógico. Caso o BER calculado seja superior a 10-4 reduz-se a taxa de puncionamento e zera os contadores nbitacc e erroacc. Caso contrário, realiza-se um segundo teste lógico que verifica se o valor calculado do BER é inferior a 10-5 e o contador nbitacc é superior a 5*105 . Se o teste lógico der positivo, aumenta-se a taxa de puncionamento e zera os contadores nbitacc e erroacc, caso contrário, retorna ao início do teste para a próxima iteração. As taxa de puncionamento utilizadas foram as de 7/8, 3/4, 3/5, 5/6 e 1/2. Pode-se notar na Figura 16 a diferença entre o número de bits úteis e bits de correção. Para realização dos testes criou-se a variável w para representar as taxas de puncionamento que também pode-se observar na Tabela 3. Tabela 3 – Taxas Puncionamento utilizadas no teste W Taxa bits de mensagem bits de paridade % bits úteis 1 7/8 7 1 0,88 2 5/6 5 1 0,83 3 3/4 3 1 0,75 4 3/5 3 2 0,6 5 1/2 1 1 0,5 Fonte: Próprio Autor VIII. ANÁLISE DOS RESULTADOS Após a realização de 2790 iterações com valores de Eb/N0 variando entre 1 e 20 dB, obteve-se o resultado esperado. Em que o sistema teve a capacidade de aplicar a taxa de puncionamento necessária para cada valor de Eb/N0. Desta forma, o sistema teve uma performance satisfatória, onde aproximadamente 91,5% das iterações obtiveram o valor de BER igual a Zero sob as condições de níveis de Eb/N0 do canal AWGN impostas no teste. As Figuras 13 e 14 apresentam os resultados obtidos durante o teste. E ao compará-los ao gráfico da Figura 12, verifica-se que o maior resultado de BER obtido no teste foi exatamente no momento em que o valor de Eb/N0 tem seu valor extremamente baixo. Isso significa que as taxas de puncionamento pré- determinadas não foram capazes de realizar a correção de todos os bits com erros. Pôde-se verificar que em aproximadamente 72% das iterações a taxa de puncionamento ficou em 7/8, que dentre as taxas utilizas no teste, é a que tem o melhor aproveitamento de bits úteis. Figura 13 – Gráfico BER Fonte: Próprio Autor Para melhor visualização no gráfico da Figura 13, utilizou-se o valor de 1e-10 para representar o valor Zero, tendo em vista que a apresentação no gráfico está em escala logarítmica. Figura 14 – Gráfico Taxa de Puncionamento Fonte: Próprio Autor 1 6 11 16 21 0 500 1000 1500 2000 2500 3000 Eb/N0(dB) Tempo (t) 1,E-10 1,E-09 1,E-08 1,E-07 1,E-06 1,E-05 1,E-04 1,E-03 1,E-02 1,E-01 1,E+00 0 500 1000 1500 2000 2500 3000 BitErrorRate(BER) Tempo (t) 0 1 2 3 4 5 0 500 1000 1500 2000 2500 3000 w Tempo (t)
  • 10. Projeto de Fim de Curso – Engenharia Elétrica-Telecomunicações, 2016-1 10 O gráfico da Figura 15 expõe as respostas das taxas discutidas ao longo desse artigo em um teste realizado no aplicativo MATLAB com valores de Eb/N0 variando entre 0 e 20 dB com intervalos de 0,1 dB entre eles. Neste gráfico pode-se observar a diferença de performance do código somente com a alteração de seus puncionadores. Figura 15 – BER x Eb/N0 Fonte: Próprio Autor IX. CONCLUSÕES Através desse estudo foi possível observar que para cada nível de interferência do canal existe uma taxa de puncionamento que se adequa melhor para que não haja uma grande quantidade de bits que necessitam ser corrigidos. Para casos que exija alta taxa de transmissão, a taxa recomendada seria a de 7/8, pois há muito mais bits de informação útil do que de paridade. Porém, se o canal não estiver em perfeitas condições e a energia do bit estiver muito baixa, esta taxa não terá bons resultados. Como pode-se observar na Figura 15, a resposta das taxas de puncionamento de 7/8 começa a ter um bom desempenho a partir de aproximadamente 15dB. Logo, considerando um canal com um nível de energia de bit baixo poderia ser considerado o uso da taxa de 3/5. Por este motivo, em um processo de criação de um modelo com taxas pré-estabelecidas, o projetista deverá realizar testes para determinar quais as melhores taxa a serem configuradas e qual o limitante para que haja a troca desta taxa, sempre considerando qual o nível de performance esperado para este sistema. Uma sugestão para trabalhos futuros ou até mesmo aprofundamento desse artigo, pode ser o estudo de diferentes tipos de modulações com diferentes taxas de puncionamento cada. Desta forma, a área de manobra será muito maior e existirá uma melhora na eficiência espectral. 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?me dia=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/fileexc hange/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.h tml> Acesso em 20/05/2016 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/pa gina_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/17 789/000723533.pdf?sequence=1> Acesso em 19/05/2016 SHANON, C.E. A Mathematical theory of communication. The Bell System technical Journal, 1948.