Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf ·...

14
Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa Rita do Sapucaí - MG Prof. Geraldo Gil Ramundo Gomes – Professor do INATEL – Santa Rita do Sapucaí - MG Resumo O tutorial aqui apresentado tem como objetivo principal demonstrar as técnicas utili- zadas para a formação de uma constelação 16-QAM, além de apresentar um estudo sobre as influências do ruído branco aditivo de natureza gaussiana nesta constelação [1]. Também de- monstra-se o princípio de funcionamento dos códigos corretores cíclicos [2]. Para melhor estudarmos os temas citados, foram desenvolvidas uma série de programas com fins didáticos que são de grande ajuda tanto na observação quanto na conclusão de diversos fenômenos si- mulados por esses programas. Todas as ferramentas computacionais apresentadas neste tutori- al foram desenvolvidas sobre o MATLAB 5.3, que é um programa matemático muito efici- ente e que traz uma apresentação gráfica muito amigável para o usuário, tornando essas fer- ramentas ainda mais didáticas. 1. Introdução Atualmente a comunidade global tem uma grande necessidade de se comunicar e com isso o volume de informação que trafega nos canais de comunicações crescem a cada dia. Com o advento da telefonia móvel celular, com o crescimento e popularização dos computa- dores portáteis e com o aparecimento da televisão digital de alta definição (HDTV), há uma grande necessidade de se transmitir informações a uma elevada taxa de bits por um meio li- mitado e extremamente concorrido, que é o ar. Isso nos obriga a desenvolver métodos de mo- dulação eficazes para que possamos aproveitar ao máximo esse recurso natural limitado, que é o espectro de freqüências. A busca por novos métodos de modulação nos leva cada vez mais próximo do limite teórico de eficiência de largura de faixa imposto por Shannon [2] na década de 40 e uma das modulações de maior eficiência é a modulação QAM (“Quadrature Amplitude Modulation” Modulação em Amplitude e Quadratura) e por isso este tipo de modulação vem sendo cada vez mais explorado. A modulação QAM é mais complexa que a PSK [1] (“Phase Shifting Keying”) e ASK [1] (“Amplitude Shifting Keying”), mas a eficácia do QAM se torna muito superior a medida em que o número de símbolos da constelação aumenta. A complexidade do sistema QAM tem sido contornada com o uso de DSP’s (“Digital Signal Processors”) [3], que estão cada vez menores, mais rápidos e mais baratos, diminuindo assim o custo do mo- dulador e demodulador QAM. Este tutorial irá demonstrar os princípios da formação da constelação 16-QAM, atra- vés dos aplicativos desenvolvidos para fins didáticos. 2. Modulação QAM A modulação QAM combina a modulação PSK, onde a informação digital é transmiti- da através da variação de fase da portadora analógica e da modulação ASK, onde a informa- ção digital é transmitida através da variação de amplitude da portadora analógica. Desta for- ma, na modulação QAM, tanto a fase como a amplitude da portadora variam de acordo com a informação digital a ser transmitida.

Transcript of Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf ·...

Page 1: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Estudo da Constelação 16-QAM

Luciano Leonel Mendes – Aluno do INATEL – Santa Rita do Sapucaí - MGProf. Geraldo Gil Ramundo Gomes – Professor do INATEL – Santa Rita do Sapucaí - MG

Resumo

O tutorial aqui apresentado tem como objetivo principal demonstrar as técnicas utili-zadas para a formação de uma constelação 16-QAM, além de apresentar um estudo sobre asinfluências do ruído branco aditivo de natureza gaussiana nesta constelação [1]. Também de-monstra-se o princípio de funcionamento dos códigos corretores cíclicos [2]. Para melhorestudarmos os temas citados, foram desenvolvidas uma série de programas com fins didáticosque são de grande ajuda tanto na observação quanto na conclusão de diversos fenômenos si-mulados por esses programas. Todas as ferramentas computacionais apresentadas neste tutori-al foram desenvolvidas sobre o MATLAB 5.3, que é um programa matemático muito efici-ente e que traz uma apresentação gráfica muito amigável para o usuário, tornando essas fer-ramentas ainda mais didáticas.

1. Introdução

Atualmente a comunidade global tem uma grande necessidade de se comunicar e comisso o volume de informação que trafega nos canais de comunicações crescem a cada dia.Com o advento da telefonia móvel celular, com o crescimento e popularização dos computa-dores portáteis e com o aparecimento da televisão digital de alta definição (HDTV), há umagrande necessidade de se transmitir informações a uma elevada taxa de bits por um meio li-mitado e extremamente concorrido, que é o ar. Isso nos obriga a desenvolver métodos de mo-dulação eficazes para que possamos aproveitar ao máximo esse recurso natural limitado, que éo espectro de freqüências.

A busca por novos métodos de modulação nos leva cada vez mais próximo do limiteteórico de eficiência de largura de faixa imposto por Shannon [2] na década de 40 e uma dasmodulações de maior eficiência é a modulação QAM (“Quadrature Amplitude Modulation” –Modulação em Amplitude e Quadratura) e por isso este tipo de modulação vem sendo cadavez mais explorado. A modulação QAM é mais complexa que a PSK [1] (“Phase ShiftingKeying”) e ASK [1] (“Amplitude Shifting Keying”), mas a eficácia do QAM se torna muitosuperior a medida em que o número de símbolos da constelação aumenta. A complexidade dosistema QAM tem sido contornada com o uso de DSP’s (“Digital Signal Processors”) [3],que estão cada vez menores, mais rápidos e mais baratos, diminuindo assim o custo do mo-dulador e demodulador QAM.

Este tutorial irá demonstrar os princípios da formação da constelação 16-QAM, atra-vés dos aplicativos desenvolvidos para fins didáticos.

2. Modulação QAM

A modulação QAM combina a modulação PSK, onde a informação digital é transmiti-da através da variação de fase da portadora analógica e da modulação ASK, onde a informa-ção digital é transmitida através da variação de amplitude da portadora analógica. Desta for-ma, na modulação QAM, tanto a fase como a amplitude da portadora variam de acordo com ainformação digital a ser transmitida.

Page 2: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Para se obter uma modulação eficiente, é importante distribuir os pontos da constela-ção de uma maneira adequada. As constelações mais utilizadas são as constelações retangula-res [2], pois este tipo de constelação apresenta uma boa relação entre energia média de sím-bolo e a complexidade de formação da constelação. É importante citar que há estudos e pro-postas de constelações que possuem geometrias não retangulares que otimizam a energia mé-dia de símbolo [2], porém a complexidade destas constelações não justificam os ganhos obti-dos com relação as constelações retangulares.

Genericamente, a lei de formação dos símbolos de uma constelação QAM quadrada édada por:

)](cos[*)()( tottAts iii φϖ += (1)

TtMi

≤≤=

0...3,2,1

onde M é o número total de símbolos da constelação e T é o tempo de duração de cada sím-bolo.

Também podemos representar a constelação QAM utilizando um plano cartesianobaseado em dois sinais ortogonais. Normalmente, as bases deste plano ortogonal são cos(ωt) esen(ωt) [2], onde ω é a velocidade angular da portadora analógica. Assim, podemos repre-sentar a constelação QAM retangular conforme a figura 1.

Figura 1Exemplo de uma constelação QAM retangular

Agora podemos utilizar o plano descrito acima para representar qualquer símbolo no domíniotemporal, de forma que passamos a ter a lei de formação da constelação QAM retangular des-crita abaixo:

)(*)cos(*)( tsinAtAts jii ϖϖ += (2)

TtAyjAxi

≤≤==

0,...,3,2,1,...,3,2,1

max

max

onde Axmax é a maior amplitude permitida no eixo X e Aymax é a maior amplitude permitidano eixo y.

cos(ωt)-A1

A1

A2

-A2

A2A1-A1-A2

sen(ωt)

Page 3: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Para o caso do símbolo demarcado na figura 1, teremos:

)()cos()( tsintts ϖϖ −= ; para 0≤ t ≤ T. (3)

Esta representação cartesiana facilita muito a visualização da constelação QAM e tam-bém simplifica sua formação.

A largura de faixa mínima [2] utilizada por um sistema QAM pode ser expressa por:

)(log2min M

RBW = (4)

onde R é a taxa de transmissão de bits e M é o número de símbolos da constelação QAM.Podemos expressar a eficiência de largura de faixa [2] para um sistema QAM por:

min2 )(log

BWRM ==β (5)

3. A Constelação 16-QAM

Em um sistema 16-QAM cada símbolo da constelação é formado a partir de 4 bits deinformação [1]. Assumindo que a distância entre dois símbolos adjacentes seja 2, a constela-ção fica:

Figura 2Constelação 16-QAM

Uma vez atribuida a posição dos pontos na constelação, devemos mapear estessímboos, de modo que a combinação de 4 bits represente um e somente um símbolo. O códigomais utilizado neste tipo de mapeamento é o código Gray [1], pois neste código apenas um bitmuda entre os símbolos adjacentes. Isto minimiza a probabilidade de erros do sistema.

O programa qam_clean_gui.m foi criado para demostrar este tipo de mapeamento. A figura 3mostra o resultado de uma simulação onde a seqüência de bits (0 0 0 0) foi transmitida e osímbolo )(*3)cos(*3)(0 tsintts ϖϖ −−= foi gerado.

-1

1

3

-3

31-1-3

sen(ωt)

cos(ωt)

Page 4: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Figura 3Símbolo gerado a partir do program qam_clean_gui.m

O objetivo deste programa é fazer com que o usuário entre com as 16 combinaçõespossíveis e observe a posição de cada símbolo, anotando quais foram as seqüências de bitsutilizadas na formação de cada símbolo. A constelação 16_QAM já mapeada fica conformemostrado na figura 4.

Figura 4Constelação 16-QAM mapeada com código Gray.

Conforme já mencionado, com a utilização do código Gray na formação daconstelação QAM, há a mudança de apenas um bit entre símbolos adjacentes. Podemosobservar também que os dois bits mais significativos definem a amplitude no eixo y (sen(ωt)),enquanto que os bits menos significativos definem a amplitude no eixo x (cos(ωt)). Com issopodemos afirmar que a modulação 16-QAM é formada por dois sinais 4-ASK ortogonais [1].

4. Influência do AWGN na constelação 16-QAM.

Uma vez determinado como se obtem os símbolos de uma constelação 16-QAM, énecessário estudar os efeitos que o ruído branco aditivo de natureza gaussiana causa a estaconstelação. O programa qam_gui foi desenvolvido com o objetivo de demostrar a influênciado AWGN [1] na constelação QAM de uma maneira clara e simples. A figura 5 mostra oresultado de uma simulação onde o símbolo formado pelos bits (1 1 1 1) foi transmitido milvezes consecutivas com uma relação Eb/No de 6dB.

cos(ωt)

-1

1

3

-3

31-1-3

sen(ωt)

0000 0001 0011 0010

0100 0101 0111 0110

1100 1101 1111 1110

1000 1001 1011 1010

Page 5: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Figura 5Influência do Ruído Branco na Constelação 16-QAM

Observando a constelação 16 QAM apresentada na figura 4, podemos concluir que ascoordenadas para o símbolo formado pelos bits (1 1 1 1) são X=1 e Y=1. Na figura 5 vemosuma nuvem de pontos em torno dessas coordenadas, que são os símbolos transmitidos em ummeio perturbado pelo ruído branco. Analisando a figura podemos observar que os pontos es-tão distribuídos em torno de uma média, que é a coordenada do símbolo formado pelos bits (11 1 1). Uma vez que o ruído possui uma distribuição gaussiana [1], a função densidade deprobabilidade que descreve a probabilidade de ocorrência de um evento pode ser descrita por:

( )

−⋅

=2

21exp

21

σµ

σπxxp (6)

ondep(x) é a função que demonstra como a probabilidade do ruído assumir valores x está distribuí-da em torno da média.µ é a média.σ é o desvio padrão.

O valor de σ está relacionado com a potência do ruído presente no canal, de forma queaumentando o valor de σ, a probabilidade do ruído assumir amplitudes maiores aumenta eassim a potência do ruído é maior. No caso da simulação apresentada, o valor de σ é forneci-do indiretamente através do campo Eb/No. A relação Eb/No denota a relação entre a energiade bit pela densidade espectral de ruído. Se a relação Eb/No for conhecida e adotarmos aenergia de bit (Eb) como sendo constante, podemos determinar a densidade espectral de po-tência (No). Sabemos que 2/No=σ , portanto podemos determinar o valor de σ e utilizá-lopara determinar como o ruído irá influenciar os símbolos transmitidos. O símbolo recebidoserá a soma vetorial do símbolo transmitido com o ruído de média nula e σ=No/2. Observeque o valor absoluto do ruído é aleatório e é por isso que ao transmitirmos N vezes, os sím-bolos recebidos formam uma nuvem em torno do símbolo originalmente transmitido. Quantomaior a relação Eb/No, menor é o valor de σ e portanto a probabilidade do ruído assumirgrandes amplitudes diminui de forma que a nuvem de pontos se concentre mais em torno dosímbolo transmitido. A figura abaixo demonstra o resultado de uma simulação comEb/No=15db.

Page 6: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Figura 6Influência do Ruído Branco na Constelação 16-QAM

Uma vez determinado qual é a influência do ruído em um símbolo da constelação énecessário analisarmos se esse ruído introduzido causa erro de símbolo na recepção. Voltandoa observar a figura 4, vemos que todos os símbolos estão igualmente espaçados entre si deuma distância igual a 2. Com isso as coordenadas que os símbolos podem assumir em ambosos eixos são: -3, -1, 1 e 3. Isso implica que os limiares de decisão [1], que são as linhas queseparam dois símbolos adjacentes, assumam as coordenadas –2, 0 e 2 para ambos os eixos.Por exemplo, se o símbolo em questão for o símbolo de coordenadas X=1, Y=1, os limiaresde decisão serão:Eixo X: Esquerda = 0 e Direita = 2 Eixo Y: Inferior = 0 e Superior = 2Esses limiares definem uma área e se a coordenada do símbolo recebido estiver dentro dessaárea, o mesmo será interpretado como sendo o símbolo formado pelos bits (1 1 1 1).Ainda observando a figura 4, podemos verificar que nem todos os símbolos possuem a mesmaprobabilidade de erro, pois o número de vizinhos que os símbolos possuem variam de acordocom a sua posição no constelação. Segundo a figura 4 fica claro que os quatro símbolos inter-nos (observe também a figura 7 abaixo) possuem uma maior probabilidade de erro do que ossímbolos externos da constelação.

Figura 7Símbolos com maior probabilidade de erro.

Page 7: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

5. Códigos Corretores de Erro.

Agora que já compreendemos qual é a influência do ruído branco de distribuição gaus-siana em uma constelação 16-QAM, e como esta influência pode gerar erros na recepção,iremos estudar uma medida preventiva que nos permita detectar e/ou corrigir um possívelerro. A medida utilizada na apresentação deste trabalho é chamada de códigos corretores deerro cíclicos [2].

Os códigos cíclicos são códigos de blocos que podem ser conseguidos a partir de umamáquina de estado, mas respeitam todas as leis de formação de um código de blocos. O prin-cípio da codificação de canal é adicionar bits de paridade (redundância) a informação afim depermitir definir através da análise desta paridade se a informação recebida está certa ou não eem alguns casos, informar aonde ocorreu o erro. Ao adicionarmos os bits de paridade estamosaumentando o número de bits que deve trafegar pelo canal. Isso irá provocar um aumento nataxa de sinalização ou um aumento na banda ocupada, assumindo que a taxa de bits de infor-mação foi mantida. Obviamente isso consiste em uma desvantagem que devemos pagar paraproporcionar uma maior confiabilidade na transmissão da informação.

Em um código de bloco onde a informação é segmentada em k bits de informação esão adicionados (n-k) bits de paridade de tal forma que o bloco resultante possui n bits é de-nominado de Código (n, k) [2]. A partir dessa explanação podemos definir alguns parâmetrosutilizados para caracterizar um código de bloco. O primeiro deles é redundância do códigodada por:

( )k

knaredundânci −= (7)

Outro parâmetro importante é a taxa de código, dada pela seguinte relação:

nktaxa = (8)

Neste estudo, iremos apresentar o Código C(7,4), ou seja, um código que a partir de 4bits de informação gera um vetor válido de 7 bits. Assim temos 3 bits de paridade para cadabloco de 4 bits de informação. Observe que com 4 bits de informação é possível obtermos 16combinações diferentes, mas o espaço vetorial disponível possui 12827 = combinações, poistransmitimos blocos com 7 bits (4 de informação e 3 de paridade). Assim, de 128 combina-ções possíveis somente 16 serão utilizadas. As combinações não utilizadas são denominadasde vetores códigos não válidos, enquanto que as 16 combinações possíveis são denominadasde vetores códigos válidos [2].

O conjunto de vetores válidos deve ser um subconjunto do espaço vetorial, ou seja, ovetor todo nulo deve ser um vetor código válido e a soma (módulo dois) de quaisquer doisvetores códigos válidos deve gerar um vetor código válido. Portanto, a idéia da codificação éa partir de um bloco de k bits deve-se gerar um bloco de n bits que seja um vetor código váli-do. Esse vetor é transmitido e pode ou não ser alterado no canal devido ao ruído presente nomesmo. Ao decodificador cabe verificar se o vetor recebido é ou não um vetor código válido.Se for um vetor código válido, então o decodificador retira os bits de paridade e entrega osbits de informação na saída. Se o vetor recebido não for um vetor código válido o decodifica-dor aproxima o vetor recebido para o vetor código válido mais próximo e então retira a pari-dade e entrega os bits informação na saída. Vale a pena frisar que o decodificador sempreretira a informação de um vetor código válido.

Page 8: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Ao escolhermos um código de bloco, devemos ter dois pontos chaves em vista. O pri-meiro é escolher um código que possua vetores códigos mais distantes possíveis, pois assim ocódigo irá apresentar uma menor probabilidade de ocorrer um erro não detectável e aumentaráa capacidade de correção do código [2]. O segundo é fazer com que o número de vetores váli-dos seja próximo do número total de vetores possíveis. Assim a redundância é menor e gasta-se menos banda na transmissão da informação.

Há duas maneiras de implementar um código de bloco. A primeira é definindo os ve-tores códigos e armazená-los em um tabela que é consultada a cada bloco de k bits de infor-mação. O grande problema dessa técnica é que para extensos blocos de bits de informação onúmero de vetores códigos válidos se torna muito extenso, inviabilizando o armazenamentodestes vetores em uma memória. Imagine um código C(192,97) . Teríamos que armazenar

972 vetores em uma memória, o que é extremamente inviável. A outra maneira de realizarmos a codificação é lançando mão de uma Matriz Geradora [2].Neste conceito, utilizamos um conjunto de k vetores códigos linearmente independentes paraformar uma matriz de k linhas e n colunas. Esses vetores formam o conjunto base do código,de modo que qualquer vetor código pode ser gerado a partir da combinação linear dos vetoresque compõe esta base.

No caso em estudo, temos um código C(7,4), de forma que sua matriz geradora possuio seguinte formato:

=

47464544434241

37363534333231

27262524232221

17161514131211

aaaaaaaaaaaaaaaaaaaaaaaaaaaa

G (9)

Os vetores códigos válidos são obtidos multiplicando os bits de informação pela Ma-triz Geradora, da seguinte forma:

[ ] GmmmmU ⋅= 4321 (10)GmU ⋅= (11)

A Matriz Geradora define complemente o código corretor, de forma que o codificadorprecisa armazenar somente os k vetores códigos válidos que formam a base do espaço vetorialválido.

É comum encontrarmos as matrizes geradoras em sua forma sistemática [2], ou seja,em uma forma em os bits de informação estão explícitos no vetor código válido. Essas matri-zes possuem o seguinte aspecto:

[ ]kIPG := (12)

P é a matriz paridade com k linhas e (n-k) colunas e Ik é a matriz identidade de dimensão k.

O decodificador utiliza a matriz H, obtida a partir da Matriz Geradora (G), para deco-dificar o vetor recebido. A matriz H é ortogonal a matriz G, de forma que:

0=⋅GH T (13)

Page 9: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Para que o requisito acima seja cumprindo é necessário que a matriz H tenha a se-guinte disposição.

[ ]Tkn PIH :−= (14)

= −

PI

H knT (15)

O decodificador realiza o produto entre o vetor recebido e a matriz HT obtendo comoresultado um vetor de dimensão (n-k) que é chamado de síndrome [2]. Caso a síndrome sejaum vetor todo nulo significa que o vetor recebido é um vetor código válido. Caso a síndromenão seja um vetor nulo, isso significa que o vetor recebido não é um vetor código válido eportanto deve ser corrigido. Para cada síndrome possível (existem 2(n-k) síndromes possíveis)existe associado a ela um vetor erro padrão que somado ao vetor recebido irá gerar um vetorcódigo válido.

Nenhum código é perfeito, ou seja, nem sempre o código é capaz de corrigir ou detec-tar um erro introduzido pelo canal. Para podermos quantificar a capacidade de correção e de-tecção de um código devemos antes definir distância mínima de um código (dmin) [2]. Adistância mínima de um código de blocos é a menor quantidade de bits que devem ser muda-dos afim de obtermos um outro vetor código válido.

Uma vez conhecido o dmin do código, podemos determinar sua capacidade de corre-ção como sendo:

=2

1mindt bits (15)

Já a capacidade de detecção é dada por:

1min−= dcd (16)

Como já podíamos esperar, a capacidade de correção de um código é menor do quesua capacidade de detecção. Assim, um código pode operar como corretor de erro em condi-ções em que a média do número de bits errados por bloco de n bits seja menor do que suacapacidade de correção. Se por algum motivo, a média do número de bits errados aumenta epassa a ser maior do que a capacidade de correção do código, o mesmo código ainda pode serutilizado para a detecção de erro.Os códigos cíclicos formam uma subclasse dos códigos de bloco que podem ser implementa-do por registradores de deslocamento. A principal caraterística de um código cíclico é que setemos um vetor código válido U pertencente ao subespaço vetorial do código cíclico, entãotodos os demais códigos podem ser obtidos pelo deslocamento sucessivo de U. O vetor Upode ser descrito como:

( )1210 −= nU µµµµ L (17)

Assim podemos expressar qualquer vetor código como sendo:

( )1011)(

−−−+−−= innininiU µµµµµ L (18)

Page 10: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Para uma representação algébrica, podemos considerar os elementos do vetor U comosendo coeficientes de um polinômio U(x), conforme demonstrado abaixo:

11

2210)( −

−++++= nn XXXxU µµµµ L (19)

A presença ou ausência de um termo do polinômio indica que o índice que multiplicaesse termo é “1” ou “0” respectivamente.Da mesma forma, podemos representar o vetor mensagem como um polinômio:

11

2210)( −

−++++= kk XmXmXmmxm L (20)

O polinômio U(x) pode ser chamado de polinômio gerador [2] uma vez que todos osvetores códigos válidos podem ser obtidos através dele utilizando registradores de desloca-mento.

A obtenção da síndrome também é realizada através de registradores de deslocamentocujo os braços de realimentação seguem o polinômio gerador do código.O programa apresentado a seguir utiliza essa técnica para codificar a seqüência de bits forne-cida pelo o usuário. Fazendo um estudo específico para o caso apresentado, temos um códigocíclico C(7,4) formado pelo seguinte polinômio gerador:

31)( XXxg ++= (21)

Assim podemos determinar um vetor código válido dado pelo polinômio gerador des-crito acima:

( )00001011=U (22)

Utilizando a propriedade dos códigos cíclicos podemos definir a matriz geradora G.

=

1011000010110000101100001011

G (23)

Sabemos que os vetores códigos que compõe a matriz geradora são componentes deum subespaço vetorial e portanto a soma desses vetores irá gerar outro componente dessemesmo subespaço vetorial. Podemos utilizar essa afirmação para obtermos a matriz geradorana forma sistemática apresentada a seguir:

=

1000101010011100101100001011

G (24)

Uma vez conhecida a matriz geradora podemos determinar a matriz decodificadora H,da seguinte forma:

Page 11: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

[ ]Tkn PIH :−= (25)

=

111010001110101101001

H (26)

Uma vez conhecidas, a matriz geradora e a matriz decodificadora podem ser usadaspara codificação e decodificação de uma mensagem, mas é mais prático realizarmos essa tare-fa utilizando máquinas de estado, uma vez que estamos utilizando um código cíclico. Para acodificação, utilizamos o circuito a seguir:

Figura 7Codificador C(7,4)

Inicialmente, a chave 1 se encontra fechada e a chave 2 na posição a. Nesta condição,a medida em que o vetor m(x) é carregado na máquina de estado, o mesmo é entregue na saí-da do codificador. Assim que todos os bits que compõe o vetor m(x) são carregados na má-quina de estado, a paridade já está calculada e armazenada nos registros R0, R1 e R2. Bastaagora descarregar o valor de cada registro na saída. Para isso abrimos a chave 1 (para que ovalor da paridade não se altere mais) e passamos a chave 2 para a posição b. Uma vez quetodos os bits de paridade foram descarregados, a máquina de estado volta para o estado iniciale está pronta para receber mais um bloco de k bits para a codificação.

Para a decodificação, utilizamos a máquina de estado a seguir:

Figura 8Decodificador C(7,4)

R0 R1 R2

Chave 2

a b

SaídaU(x)

m(x)

Chave 1

R0 R1 R2

Chave 1

U(x)

S(x)Síndrome

Chave 2

Page 12: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

O funcionamento do decodificar é muito semelhante ao funcionamento do codificador.A princípio, a chave 1 é fechada e a chave 2 é aberta. Carregamos a máquina de estado comos n bits que compõe o vetor código U(x). Depois que todos os n bits são carregados, o conte-údo dos registradores corresponde a síndrome do vetor U(x), que deve ser descarregada nasaída. Para isso abrimos a chave 1 e fechamos a chave 2. Depois que os (n-k) bits da síndromesão descarregados, a máquina de estado está pronta para receber o próximo vetor código.

A seguir apresentamos alguns resultados obtidos pelo programa code74_gui.m, geradopara simular esse tipo de codificador.

Figura 9Resultado da Simulação

Nesta simulação, os bits a serem transmitidos são (1 1 1 1). O codificador entregou ovetor código:

U(x) = (1 1 1 1 1 1 1) (27)

Esse vetor foi transmitido por um canal AWGN, e o vetor na entrada do receptor é ovetor:

Un(x) = (1.2 1.7 0.8 1.3 1.4 1.5 0.5) (28)

O limiar de decisão neste caso é 0.5, ou seja, o receptor entende como sendo 1 todo equalquer valor maior ou igual a 0.5 e entende como sendo 0 todo e qualquer valor menor doque 0.5. Assim o vetor Urx(x) é igual a U(x).A síndrome gerada pelo decodificador a partir desse vetor é S = (0 0 0), o que indica que ovetor recebido é um vetor código válido. O receptor então considera o vetor recebido comosendo o vetor transmitido e o entrega em sua saída. Note que nesse caso, o erro padrão soma-do ao vetor recebido para gerar o vetor corrigido é o vetor todo nulo, uma vez que o vetorrecebido é um vetor código válido.

No próximo exemplo apresentamos o resultado de uma simulação onde ocorre um errona transmissão.

Page 13: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Figura 10Resultado da Simulação

Neste caso observamos que quando ocorre um erro na transmissão a síndrome não émais m vetor todo nulo, o que significa que o vetor recebido não é um vetor código válido.Associado a essa síndrome existe um vetor erro padrão que aproxima o vetor recebido para ovetor código válido mais próximo. Como houve erro de apenas um bit, o vetor código maispróximo é o próprio vetor transmitido. Então o decodificador soma o erro padrão ao vetorrecebido e entrega o vetor corrigido na sua saída.Agora iremos demonstrar o que ocorre quando dois erros são introduzido pelo canal em umvetor código transmitido.

Figura 11Resultado da Simulação

Agora, o vetor recebido também não é um vetor código válido, mas o vetor código vá-lido mais próximo deste vetor recebido não é o vetor transmitido. Perceba que a síndrome édiferente de zero e o erro padrão ao ser somado ao vetor recebido gera um vetor código válidomas que não foi o vetor código transmitido. Assim o codificador ao tentar corrigir o erro in-troduzido no canal, aumentou o número de bits errados.

Observando o código em questão podemos determinar que o dmin deste código é 3 esua capacidade de correção e detecção de erro podem ser obtidas, como já demonstrado ante-riormente:

12

132

1min=

=

=dt bit (29)

2131min =−=−= dcc bits (30)

Page 14: Estudo da Constelação 16-QAMcict.inatel.br/.../lucianol/Artigos/Incitel/constelacao_16QAM.pdf · Estudo da Constelação 16-QAM Luciano Leonel Mendes – Aluno do INATEL – Santa

Isso significa que este código é capaz de corrigir todo e qualquer erro de 1 bit e é ca-paz de detectar todo e qualquer erro de 2 bits.Erros de 3 ou mais bits pode ou não vir a ser detectado.

A opção Code74B nos permite perceber melhor a atuação desse código quando errosocorrem na transmissão. Observe a figura abaixo:

Figura 12Erros corrigidos e erros detectados.

O gráfico acima mostra o número de bits errados em cada símbolo (foram transmitidos20 símbolos) antes da atuação do código e após a atuação do código. Observe que todos ossímbolos que apresentavam um erro de bit foram detectados e corrigidos e passaram a nãomais apresentar erros. Todos os símbolos que apresentavam erros de dois bits foram detecta-dos, mas ao serem corrigidos passaram a apresentar três erros de bit. Desta forma, o decodifi-cador nunca entregará na recepção vetores que apresentem um ou dois erros de bit, uma vezque o vetor entregue pelo decodificador é um vetor código válido e o número mínimo de bitsdiferentes entre dois vetores códigos válidos é 3 (dmin=3).

6. Conclusões

A interatividade que os programas aqui demonstrados apresentam faz com que essas ferra-mentas sejam e grande ajuda na formação do aluno, de forma que o mesmo possa interpretar efixar melhor os resultados obtidos pelo estudo teórico e simulados aqui por estes programas.Todo o desenvolvimento dessas ferramentas visa a fácil compreensão de como os fenômenosocorrem e quais as causas e variáveis que influenciam esse fenômeno de modo com que osalunos possam concluir quais são as leis que regem os princípios básicos de um sistema decomunicação digital que utiliza modulação 16 QAM e códigos cíclicos para correção e/oudetecção de erros.

7. Referências Bibliográficas

[1] Simon Haykin, “Communication System” 3rd edition, Prentice Hall.[2] Bernad Sklar, “ Digital Communications – Fundamentals and Applications”, John Wileyand Sons INC.[3] Sophocles J. Orfanidis, “Introduction to Signal Processing”, Prentice Hall.