• Nenhum resultado encontrado

Técnicas de Codificação de Sinal Trabalho de Simulação

N/A
N/A
Protected

Academic year: 2021

Share "Técnicas de Codificação de Sinal Trabalho de Simulação"

Copied!
16
0
0

Texto

(1)

Técnicas de Codificação de Sinal

Trabalho de Simulação

Marcelo Samsoniuk

1 - Introdução

O objetivo deste trabalho de simulação é analisar o desempenho de um sistema de comunicação digital que utiliza codificação de fonte e codificação de canal. Deseja-se simular a transmissão de imagens comprimidas através de um sistema de comunicação digital, como mostrado na figura 1.

Figura 1: Sistema de comunicação digital proposto para a simulação

O sistema é composto de diversos estágios simétricos no lado da transmissão e recepção, cujos requisitos serão modelados e descritos com detalhes na próxima sessão.

2 – Requisitos dos módulos

A implementação será modular segundo a divisão em blocos da figura 1, onde cada módulo de transmissão possui um respectivo módulo de recepção compatível e cada módulo será implementado de forma parametrizável, tanto do ponto de vista comportamental quanto temporal, permitindo uma análise mais completa e profunda do sistema de comunicação digital.

2.1 - Fonte e Destino de Informação

A fonte de informação consiste em um módulo que permite transmitir imagens monocromáticas de 8 bits/pixel, disponíveis no banco de imagens da disciplina.

Do ponto de vista temporal, o requisito da simulação é que as imagens devem ser recuperadas no módulo destino compatível, com a uma taxa de 67200 bits/segundo e também com capacidade de visualização das imagens, para ser possível comparar a degradação da informação entre a fonte e o destino, conforme ilustrado na figura 2.

Figura 2 – Fonte e destino de informação

Visualizador de imagens Fonte de Imagens 67200 bits/s 67200 bits/s Canal

(2)

2.2 - Codificação de Fonte

O codificador de fonte deve ter um esquema de compressão que elimine os 4 bits menos significativos da imagem monocromática com 8 bits por pixel, sendo que o decodificador de fonte deve re-inserir estes 4 bits menos significativos de forma aleatória.

Do ponto de vista temporal, esta codificação de fonte deve reduzir a taxa da fonte para 0.5, ou seja, para uma fonte de informação à taxa de 67200 bits/segundo, a taxa de saída do codificador de fonte deve reduzir esta taxa para 33600 bits/segundo, enquanto o decodificardor de fonte deve ser capaz de subir esta taxa novamente para taxa original, conforme ilustrado na figura 3.

Figura 3 – Codificação e decodificação de fonte de informação 2.3 - Codificação de Canal

O par codificador-decodificador de canal deve ser escolhido em função do tipo de canal AWGN discreto, de modo a garantir na entrada do decodificador de fonte uma taxa de erro de bits menor que 10-8, supondo que o enlace garante

uma relação sinal-ruído na entrada do receptor de:

Pr N0

=63 dB− Hz

Onde Pr é a potência média do sinal recebido.

A figura 4 ilustra a utilização do codificador de canal, onde uma taxa de K bits/s será adicionada à taxa da fonte codificada de 33600 bits/s.

Figura 4 – Codificação e decodificação de canal

Esta taxa K será determinada em função do tipo de modulação escolhido, de modo a adicionar os bits de redundância necessários para manter a taxa de erros inferior à 10-8.

Visualizador de imagens Fonte de Imagens 67200 bits/s Codificador de fonte Decodificador de fonte 33600 bits/s 67200 bits/s Canal 33600 bits/s Visualizador de imagens Fonte de Imagens 67200 bits/s Codificador de fonte Decodificador de fonte 33600 bits/s 67200 bits/s Canal 33600 bits/s Codificador de canal Decodificador de canal 33600+K bits/s 33600+K bits/s

(3)

2.4 – Modulação

O esquema de modulação deve conseguir a transmissão da taxa de bits de informação desejada pela banda disponível da forma mais eficiente possível, supondo que os símbolos transmitidos são formatados por filtros de Nyquist ideais, como ilustrado pela figura 5. A banda U deverá ser determinada em função de K e não será maior que 5500 Hz.

Figura 5 – Modulação e demodulação de canal

A simulação deve seguir as curvas de desempenho de erro dos esquemas de modulação quando sujeitos à ruído gaussiano, como ilustrado na figura 6 [1].

Figura 6 – Desempenho de erro dos esquemas de modulação em um canal gaussiano.

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 1.0E-16 1.0E-14 1.0E-12 1.0E-10 1.0E-8 1.0E-6 1.0E-4 1.0E-2 1.0E+0 4-QAM 8-QAM 16-QAM 32-QAM 64-QAM 128-QAM 256-QAM 512-QAM Eb/N0 (dB) B E R Visualizador de imagens Fonte de Imagens 67200 bits/s Codificador de fonte Decodificador de fonte 33600 bits/s 67200 bits/s Canal 33600 bits/s Codificador de canal Decodificador de canal U Hz U Hz 33600+K bits/s 33600+K bits/s Modulador Demodulador Ruído

(4)

3 – Implementação

Para a implementação dos módulos precisamos definir o esquema de modulação utilizada para então definir o esquema de codificação de canal apropriado, lembrando que a taxa da fonte de 67200 bits/s cai para 33600 bits/s devido a codificação de fonte.

Seguindo os exemplos utilizados em sala de aula e a referência fornecida [2] e outras referências [3], temos as seguintes informações sobre o canal:

W =5500 Hz

Pr

N0

=63 dB−Hz E desejamos um desempenho de:

Rb=33600bits /s

BER≤10−8

Para determinar o esquema de modulação temos: Rb W= 33600 bits /s 5500 Hz =6.01909 bits /s / Hz Mas como: Rb W=log2M bits / s/ Hz Então: log2M =6.01909 bits/ s/ Hz => M =26.01909=69.0271

Assim, o menor esquema de modulação seria um 128-QAM, com a constelação ilustrada na figura 7 [4]:

(5)

Como 128-QAM fornece 7 bits por Hz, temos então uma capacidade máxima de 38500 bits/s, dos quais utilizaremos 33600 bits/s para transmitir as imagens comprimidas, restando verificar agora a questão do desempenho de erro. Na medida que nosso enlance nos garante Pr/N0 = 63 dB-Hz, temos:

Pr N0 =EbRb N0 => Eb N0 dB=Pr N0 dB−Hz−RbdB−bits /s Portanto: Eb N0 =63−10 log1033600=17.7366 dB Ou seja, 59.3927. Calculando Pe temos: Pe=2

1− 1

M

erfc

3 2 M −1 Es N0

=2

1− 1

128

erfc

3759.3927 2127

=0.00314589 Assim: BER≈ Pe log2M =10−3.347

De fato, verificando o desempenho do esquema de modulação 128-QAM no gráfico da figura 5, observamos que para um BER menor que 10-8, precisamos trabalhar com uma relação sinal-ruído da ordem de 23dB, assim

precisamos de uma correção de erros capaz de fornecer um ganho de aproximadamente 6dB em relação aos 17.7 dB disponíveis.

Para adicionar a capacidade de correção de erros, devemos lembrar quanto temos de banda disponível pelo esquema de modulação 128-QAM (38500 bits/s) e dividir pelo que vamos consumir transmitindo as imagens codificadas (33600 bits/s), obtendo assim a relação que permite determinar o que podemos utilizar em termos de código de canal:

n k

38500

33600=1.14583

Por exemplo, o código RS(255,249,7) [5] trabalha com blocos de 8 bits, sendo capaz de corrigir até 3 bytes errados em um bloco de 249 bytes, com a seguinte relação entre n e k:

n k=

255

249=1.0241.145583

A inclusão do código de correção de erro aumenta a banda consumida e portanto precisamos recalcular Pe: Pe=2

1− 1

M

erfc

3 2 M −1 k n Es N0

=2

1− 1

128

erfc

3759.39270.9764 2127

=0.00356742

(6)

Assim, com o overhead extra do código de canal, temos: BER≈ Pe

log2M

=10−3.29274

A adição do código aumenta levemente a taxa de erros em função do consumo de banda levemente maior, porém adiciona a capacidade de corrigir até 3 erros aleatórios em um bloco de 1992 bits, o que significa que o código perde sua eficiência totalmente se a taxa de erro é maior que 10-2.822, mas nosso canal pode garantir uma taxa de erros

menor que essa. No caso de bursts de erros, o código consegue corrigir até 3 bursts de 8 bits cada um, no mesmo bloco de 1992 bits, o que significa que, em condições excepcionais, até 24 bits podem ser corrigidos em um bloco de 1992 bits.

Para calcular a taxa de erro, vamos utilizar a seguinte expressão: Peb= 1 255j=t1

255 j

255 j

Pe j 1−Pe 255− j Calculando a expressão acima para n=255 e t=3, temos:

Peb=10

−10.1786

O que é mais que suficiente para atender a taxa de erro mínima de 10-8 requerida para o sistema.

Na medida que definimos a banda necessário para o código de canal, podemos calcular a banda que efetivamente será utilizada. A figura 8 mostra a configuração final do sistema.

Figura 8 – Configuração final

Visualizador de imagens Fonte de Imagens 67200 bits/s Codificador de fonte Decodificador de fonte 33600 bits/s 67200 bits/s Canal 33600 bits/s Codificador de canal Decodificador de canal 4915 Hz 4915 Hz 34409 bits/s 34409 bits/s Modulador Demodulador Ruído

(7)

3.1 – Fonte e Destino de Informação

As aplicações de fonte de informação foi projetadas para abrir imagens de 512x512 pixels monocromáticas com 8 bits/pixel em seqüência, à partir do banco de imagens utilizadas na disciplina e enviar com ou sem codificação de fonte. A aplicação fonte transmite continuamente as mesmas imagens, alternando entre uma imagem e outra depois de um pequeno delay de 5 segundos. Um checkbox permite desativar a codificação de fonte para verificarmos as diferenças, como verificamos na figura 9.

Figura 9 – Aplicação fonte de informação.

A aplicação destino foi projetada apenas para efetuar a exibição das imagens recebidas pelo canal, possuindo também um checkbox para desativar a decodificação de fonte, como ilustrado na figura 10.

(8)

3.2 – Codificação de Fonte

O objetivo da codificação de fonte é dobrar o desempenho do canal, o que é feito removendo os 4 bits menos significativos dos pixels de 8 bits, empacotando assim 2 pixels por byte. No decodificador, os dois pixels são desempacotados, sendo que os 4 bits menos significativos de cada pixel são preenchidos com informações aleatórias. A codificação de fonte está integrada nas aplicações de visualização de imagens (fonte e destino), sendo possível desativar a codificação de fonte para verificar a diferença nos resultados.

3.3 – Codificação de Canal

A codificação de canal escolhida é a Reed-Solomon (255,249,7). O aplicativo “ecc” original disponibilizado por Paul Flaehty sofreu as seguintes alterações:

– Transmissão RAW: foi eliminado o mecanismo de frame de sincronismo de modo que o codificador agora trabalha com o bit-stream de dados diretamente, sem adicionar overhead de sincronismo. – Tolerância à falhas fatais: mesmo que um bloco não possa ser decodificado, o decodificador envia o

que conseguiu decodificar, de modo que a imagem não perde sincronismo temporal.

– Interface X: foi adicionado um suporte à interface gráfica no aplicativo, de modo que o decodificador podem ser desativados. Além disso, foram adicionados totalizadores de erros para indicar a quantidade de falhas corrigidas e falhas não corrigidas, bem como a contagem total de blocos, a taxa de

transferência conseguida e a taxa de erro, como pode ser observado na figura 11.

Figura 11 – Aplicação de decodificação Reed-Solomon.

O codificador não possui controle, ficando sempre ativado. Quando a decodificação é destativada no decodificador, o decodificador simplesmente ignora os seis bytes de paridade e repassa diretamente os dados dos outros 249 bytes. Como o codificador de canal é modular, é possível cascatear vários codificadores e utilizar scramblers para

randomizar e embaralhar os dados. Em teoria é possível cascatear até 5 codificadores de canal, o que representaria um adicional de 30 bytes extras para verificação de paridade, em teoria sendo equivalente a um hipotético código (279,249) capaz de corrigir até 15 erros aleatórios.

(9)

3.4 – Modulação

A aplicação de modulação permite simular e visualizar um esquema de modulação 128-QAM de 7 bits transitando em um canal AWGN discreto, sendo possível visualizar tem tempo real tanto a operação do modulador, quanto do canal discreto e do demodulador, como visualizado na figura 12.

Figura 12 – Aplicação de simulação de canal.

A visualização do demodulador indica em vermelho os erros de demodulação, ou seja, símbolos que estão fora de suas caixas de seus parâmetros válidos. Como visualizado na imagem, a distribuição depende da estatística da fonte, visto que alguns símbolos são estatisticamente mais comuns que os outros. Além da visualização dos canais, é possível controlar a relação sinal-ruído através de uma caixa de texto e visualizar em tempo real o valor do bit error rate computado entre a entrada e a saída do esquema de modulação.

Tanto o modulador quanto o demodulador utilizam uma constelação 12x12 ilustrado na figura 13. A constelação foi criada de modo a manter o mínimo número de bits entre elementos vizinhos.

Figura 13 – Constelação utilizada para o demodulador.

-1 -1 74 75 73 72 76 77 79 78 -1 -1 -1 -1 66 67 65 64 68 69 71 70 -1 -1 102 98 18 19 17 16 20 21 23 22 106 110 103 99 26 27 25 24 28 29 31 30 107 111 101 97 10 11 9 8 12 13 15 14 105 109 100 96 2 3 1 0 4 5 7 6 104 108 116 112 34 35 33 32 36 37 39 38 120 124 117 113 42 43 41 40 44 45 47 46 121 125 119 115 58 59 57 56 60 61 63 62 123 127 118 114 50 51 49 48 52 53 55 54 122 126 -1 -1 82 83 81 80 84 85 87 86 -1 -1 -1 -1 90 91 89 88 92 93 95 94 -1 -1

(10)

4 - Simulação

A simulação consiste em enviar imagens através dos aplicativos e módulos apresentados tentando obter a máxima verossimilhança com um sistema digital de transmissão. Para isso os módulos de aplicativos precisam ser corretamente conectados entre si, através do comando:

./src/xsrc | ./ecc/ecc -e | ./qam/8to7 | ./qam/xqam | ./qam/7to8 | ./ecc/ecc -d | ./dst/xdst

O que resulta na simulação já rodando em sua configuração padrão, com codificação de fonte ativada, codificação de canal ativada e canal de comunicação com a especificação de 17.73dB, como calculado.

O ambiente de simulação pode ser observado na figura 14.

Figura 14 – Simulação de sistema de comunicação digital.

Na medida que o modulador trabalha com apenas 7 bits e a interface entre um módulo e outro é sempre de 8 bits, existe um módulo adaptador de 8 para 7 bits entre o codificador de canal e o modulador e outro módulo adaptador de 7 para 8 bits entre o demodulador e o decodificador de canal.

(11)

4.1 – Simulação do Sistema Proposto

O sistema proposto de comunicação digital, como calculado, possui uma relação sinal-ruído da ordem de 17.73dB, o que produz uma taxa de erro da ordem de 10-3.29274 (aprox. 5x10-4), como pode ser visualizado na figura 15.

Figura 15 – Taxa de erro operando à 17.73dB depois de 5.2 bilhões de bits transmitidos.

A taxa de erro da simulação 128-QAM pode ser visualizada na figura 16.

Figura 16 – Desempenho de erro do sistema

0 2 4 6 8 10 12 14 16 18 20 22 1.0E-9 1.0E-7 1.0E-5 1.0E-3 1.0E-1 1.0E+1 128-QAM (EST) 128-QAM 5xRS(255,249) RS(255,249) Eb/N0 (dB) B E R

(12)

Comparativamente, podemos observar a performance da codificação de canal na mesma figura, com informações obtidas da aplicação de codificação de canal, como visto através da figura 17.

Figura 17 – Performance da codificação de canal depois de 5.8 bilhões de bits transmitidos.

Podemos verificar que o codificador de canal processou 1 bilhão de bits, corrigindo 1.2 milhões de bits com erro e deixando passar 2880 bits com erros, o que resulta em uma taxa de erro de 2.6 x 10-6, bem acima da esperada, mas

totalmente imperceptível nas imagens. Uma possibilidade para melhorar essa taxa de erro seria substituir o código (255,249) por um código (255,223), aumentando assim a capacidade de correção de 3 para 16 erros por bloco. Outra possibilidade, seria concatenar 5 codificadores, resultando em teoria em um hipotético código (279,249) capaz de corrigir 15 erros por bloco.

Foram efetuados testes para melhorar a performance do sistema concatenando 5 codificadores de canal, o que levou a taxa de erro para 7.5 x 10-7. Infelizmente a performance dos codificadores concatenados tem uma resultado

variável que depende de como os dados são entrelaçados, pois um erro não corrigido pelo primeiro codificador costuma passar direto para os próximos. Diversas possibilidades foram testadas e uma das melhores soluções foi a permuta de padrões de bits entre bytes pseudo-randomicamente selecionados em um buffer de 4KB, ficando a melhor forma de utilizar codificadores cascateados uma questão à ser respondida no futuro.

Outra possibilidade seria encurtar o código de 249 bytes para 243 bytes e incluir uma cópia da tabela de paridade e passar 2x no decodificador, escolhendo a decodificação com menos erros. Isso efetivamente equivale garantir que a tabela de paridade não seja atingida por erros. Finalmente, existe a própria opção de encurtar o código para

(255,223). Ao invés de suportar 1 erro a cada 83 bytes, seria possivel melhorar a relação para um erro a cada 74 bytes, uma melhora de apenas 10%.

(13)

4.2 – Configurações com 5, 10 e 20dB

Para uma configuração do sistema com 5dB, temos na figura 18 o sistema completo com codificação de canal, enquanto que na figura 19 o mesmo sistema sem codificação de canal (a diferença visual é pequena).

Figura 18 – Sistema operando com SNR de 5dB e codificação de canal.

(14)

Para um SNR de 10dB também não observamos muita melhora, como podemos visualizar nas figuras com codificação de canal ativo (figura 20) e desativo (figura 21).

Figura 20 – Sistema operando com SNR de 10dB e com codificação de canal.

(15)

Finalmente, temos o sistema operando com SNR de 20dB, com a codificação de canal ativa (figura 22) e desativa (figura 23). Observamos que neste caso a qualidade de transmissão é suficiente para o sistema operar de forma limpa mesmo sem codificação de canal.

Figura 22 – Sistema operando com SNR de 20dB e codificação de canal.

(16)

5 - Conclusão

Embora não tenha rendido como esperado, a construção do sistema para a simulação foi uma atividade extremamente interessante, servindo para visualizar de perto dos os aspectos envolvidos em um sistema de comunicação digital. A grande falha ocorreu no dimensionamento do codificador de canal, que não rendeu o ganho de codificação esperado para operar com um SNR de 17.73dB. Todavia foi possível acompanhar seu funcionamento eficiente nesta configuração, que é o caso em que o número de erros corrigidos é muito mais elevado que o número de erros não corrigidos, sendo que a configuração concatenada de cinco codificadores de canal conseguiu uma taxa de erro da ordem de 10-7, igual ou melhor que o conseguido com SNR de 20dB sem codificação de canal e com

margem para melhoras ainda maiores.

Também é interessante observar que a compressão de imagem não resultou em degradação visível, muito pelo contrario. Quando a compressão está ativa, as imagens são transferidas na metade do tempo, o que permite a atualização da tela um número maior de vezes por segundo. Do ponto de vista de percepção visual dos erros, uma velocidade de alguns frames/segundo permite esconder os erros muito mais rapidamente e a própria compressão, assim tantos os erros quanto a própria compressão se tornam quase imperceptíveis.

Referências

1 Sergei Winitzki, A handy approximation for the error function and its inverse, Arnold Sommerfeld Center for Theoretical Physics, Ludwig-Maximilians University, Germany 2008.

2 Bernard Slkar, Designing Digital Communication Systems, article provided by Prentice Hall for InformIT, United States 2002.

3 Sergio Benedetto and Ezio Biglieri, Principles of digital transmission: with wireless applications, ISBN 0306457539 provided by Springer for Google Books, United States 1999.

4 Christian Caleca, Les réseaux à large bande: Principes Évolués, Cours d'électronique, Académie D'Aix-Marseille, France 2005.

Referências

Documentos relacionados

Este estudo tem como objetivos identificar os níveis de trauma manifestados e de estratégias de coping utilizadas pelos TEPH; caracterizar os incidentes mais

Dessa forma, a partir da perspectiva teórica do sociólogo francês Pierre Bourdieu, o presente trabalho busca compreender como a lógica produtivista introduzida no campo

Os supercondutores magnéticos, volantes de inércia e os condensadores são apropriados para aplicações que necessitam de grande potência de saída em pouca

Em relação aos conhecimentos de saúde oral constatou-se que pais/encarregados de educação e crianças estão informados sobre a presença, ou não, de dentes cariados, bem como,

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

This chapter describes the design and validation of the thermal chamber and the heat insulator that prevents the overheating of the load cells implemented in the top of the creep

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1