Mattia Edoardo Maria Vismara
Análise e aperfeiçoamento de um sistema didático de
transmissão SDR utilizando o Matlab e um par
transmissor/receptor FM
São José – SC
Julho / 2011
Mattia Edoardo Maria Vismara
Análise e aperfeiçoamento de um sistema didático de
transmissão SDR utilizando o Matlab e um par
transmissor/receptor FM
Monografia apresentada à Coordenação do
Curso Superior de Tecnologia em Sistemas
de Telecomunicações do Instituto Federal de
Santa Catarina para a obtenção do diploma de
Tecnólogo em Sistemas de Telecomunicações.
Orientador:
Prof. Mário de Noronha Neto, Dr.
C URSO S UPERIOR DE T ECNOLOGIA EM S ISTEMAS DE T ELECOMUNICAÇ ÕES
I NSTITUTO F EDERAL DE S ANTA C ATARINA
São José – SC
Julho / 2011
Monografia sob o tı́tulo “Analise do sistema didático de transmissão SDR existente, realizada usando Matlab e um par transmissor/receptor FM”, defendida por Mattia Edoardo Maria
Vismara e aprovada em 12 de julho de 2011, em São José, Santa Catarina, pela banca examinadora assim constituı́da:
Prof. Mário de Noronha Neto, Dr. Eng.
Orientador
Prof. Marcos Moecke, Dr. Eng.
IFSC
Prof. Diego da Silva de Medeiros, Tecg.
IFSC
A mudança é a lei da vida.
E aqueles que confiam somente no passado ou no presente estão destinados a perder o futuro.
John Fitzgerald Kennedy
Agradecimentos
Agradeço todos os docentes dessa Instituição pela dedicação e o profissionalismo demonstrado ao longo desses anos. Um agradecimento especial ao docente orientador pelo suporte e
auxilio oferecidos pela realização desse trabalho. Agradeço também à minha famı́lia pelo apoio
fornecido. Cabe-me dizer a todos muito obrigado.
Resumo
Este trabalho analisa, aprimora e acrescenta novas técnicas e funcionalidades a um código
desenvolvido com base no conceito de Rádio Definido por Software. Este código é implementado utilizando o software MATLAB e realiza a transmissão e recepção de sinais com o auxı́lio
de um transmissor e receptor FM. As análises incluem a maioria dos circuitos do receptor
enquanto os aprimoramentos realizados proporcionam um incremento no desempenho global
do algoritmo e do sistema, diminuindo sensivelmente a complexidade do código. As técnicas
de modulação multinı́vel e codificação de canal são incorporadas à arquitetura, permitindo a
análise do sistema proposto em diferentes condições de operação e, em seguida, o autor oferece
algumas sugestões para futuras implementações.
Abstract
This document analyses, improves and modifies the existing transceiver algorithm features
and performance, based on the Software Defined Radio concept and developed with the help
of the MATLAB software and a couple of FM transceivers. Analyses and improvementes are
focused on the receiver code, allowing an overall better performance of the system. Then,
additional features were added. This has been achieved inhancing a multilevel modulation,
a channel error correction code and several operational tests at different working conditions.
Includes and describes actions taken, as well as some suggestions for future academic works.
Sumário
Lista de Figuras
Lista de Tabelas
1
2
3
Introdução
p. 13
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 14
1.2
Organização do texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 14
Conceitos básicos
p. 15
2.1
Cosseno levantado e filtro casado . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
2.2
Sincronização temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 19
2.3
Codificação de canal e entrelaçamento . . . . . . . . . . . . . . . . . . . . .
p. 21
2.4
Eficiência espectral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 24
Modelo do sistema implementado
p. 27
3.1
Modelo do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 27
3.2
As contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 30
3.3
Detalhamento individual das contribuições . . . . . . . . . . . . . . . . . . .
p. 30
3.3.1
Modulação 4-PAM . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 30
3.3.2
Codificação e Entrelaçamento . . . . . . . . . . . . . . . . . . . . .
p. 33
3.3.3
Análise da sincronização temporal . . . . . . . . . . . . . . . . . . .
p. 35
3.3.4
Estudo do fator β e do nı́vel do gatilho . . . . . . . . . . . . . . . .
p. 38
3.3.5
Estudo do filtro passa faixa . . . . . . . . . . . . . . . . . . . . . . .
p. 45
4
3.3.6
Análise do Controle Automático de Ganho . . . . . . . . . . . . . .
p. 50
3.3.7
Estudo da palavra de treinamento . . . . . . . . . . . . . . . . . . .
p. 52
3.3.8
Análise do Costas Loop . . . . . . . . . . . . . . . . . . . . . . . .
p. 52
3.3.9
Cálculos da eficiência espectral . . . . . . . . . . . . . . . . . . . .
p. 54
3.3.10 Recuperação completa dos sı́mbolos . . . . . . . . . . . . . . . . . .
p. 55
3.3.11 Envio de qualquer texto . . . . . . . . . . . . . . . . . . . . . . . .
p. 56
3.3.12 Ajustes do hardware . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 56
Conclusões e trabalhos futuros
p. 57
4.1
Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 57
4.2
Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 57
Apêndice A
p. 59
Apêndice B
p. 62
4.0.1
Arquitetura de um sistema SDR . . . . . . . . . . . . . . . . . . . .
p. 62
4.0.2
Funcionamento do sistema . . . . . . . . . . . . . . . . . . . . . . .
p. 63
4.0.3
Gatilho da placa de som . . . . . . . . . . . . . . . . . . . . . . . .
p. 63
4.0.4
Sincronismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 63
Lista de Abreviaturas e Simbologia
p. 66
Referências Bibliográficas
p. 68
Lista de Figuras
2.1
Forma de onda do pulso de cosseno levantado e seu espectro na frequência . .
p. 16
2.2
Diagrama do circuito que implementa o pulso cosseno levantado . . . . . . .
p. 17
2.3
Ação do filtro casado na detecção . . . . . . . . . . . . . . . . . . . . . . .
p. 17
2.4
Resposta em frequência do filtro raiz quadrada de cosseno levantado. Fator
β =0,4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
2.5
Amostragem feita nos pontos ótimos . . . . . . . . . . . . . . . . . . . . . .
p. 19
2.6
Ação do interpolador à procura dos pontos denominados -2 e +2 . . . . . . .
p. 20
2.7
Codificador convolucional de taxa R=1/2 e comprimento de restrição =2 . . .
p. 22
2.8
Diagrama de estado do codificador esquematizado na Figura 2.7 . . . . . . .
p. 23
2.9
Diagrama de treliça do codificador esquematizado na Figura 2.7 . . . . . . .
p. 23
3.1
Arquitetura do sistema implementado . . . . . . . . . . . . . . . . . . . . .
p. 27
3.2
Diagrama de blocos do sistema analisado . . . . . . . . . . . . . . . . . . .
p. 29
3.3
Sinal mapeado 4-PAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 31
3.4
Sinal formatado, modulação 4-PAM, β =0,4 . . . . . . . . . . . . . . . . . .
p. 32
3.5
Constelação do sinal 4-PAM recebido, β =0,4 . . . . . . . . . . . . . . . . .
p. 32
3.6
Codificador A, taxa P=1/2 e comprimento de restrição =2 . . . . . . . . . . .
p. 33
3.7
Codificador B, taxa P=1/2 e comprimento de restrição =7 . . . . . . . . . . .
p. 33
3.8
Explicação gráfica da inserção dos erros por meio da operação xor . . . . . .
p. 34
3.9
a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com
super amostragem=2, ruı́do=0 dB, β =0,4 . . . . . . . . . . . . . . . . . . . .
p. 36
3.10 a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com
super amostragem=4, ruı́do=0 dB, β =0,4 . . . . . . . . . . . . . . . . . . . .
p. 36
3.11 a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com
super amostragem=4, SNR=7dB, β =0,4 . . . . . . . . . . . . . . . . . . . .
p. 37
3.12 a) Estimação da constelação BPSK e b) Cálculo do atraso do sistema SDR,
super amostragem=100, β =0,4 . . . . . . . . . . . . . . . . . . . . . . . . .
p. 37
3.13 Densidade espectral de potência com β =0,15 - transmissão BPSK . . . . . .
p. 38
3.14 Densidade espectral de potência com β =0,85 - transmissão BPSK . . . . . .
p. 39
3.15 Densidade espectral de potência com β =0,4 - transmissão BPSK . . . . . . .
p. 39
3.16 Densidade espectral de potência com β =0,15 - recepção BPSK . . . . . . . .
p. 40
3.17 Densidade espectral de potência com β =0,85 - recepção BPSK . . . . . . . .
p. 40
3.18 Densidade espectral de potência com β =0,4 - recepção BPSK . . . . . . . .
p. 41
3.19 Efeito do volume baixo sobre o desempenho do receptor BPSK, β =0,15,
gatilho=0,1V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 42
3.20 Efeito do volume alto no desempenho do receptor BPSK, β =0,15, gatilho=0,4V p. 43
3.21 Densidade espectral de potência com modulação 4-PAM - transmissão, β =0,4
p. 44
3.22 Densidade espectral de potência com modulação 4-PAM - recepção, β =0,4 .
p. 44
3.23 Códigos do filtro passa faixa utilizado em (INACIO, 2011) . . . . . . . . . .
p. 45
3.24 Códigos do filtro passa faixa modificado . . . . . . . . . . . . . . . . . . . .
p. 46
3.25 Resposta ao impulso do filtro passa faixa modificado . . . . . . . . . . . . .
p. 46
3.26 Resposta em frequência do filtro passa faixa original . . . . . . . . . . . . .
p. 47
3.27 Resposta em frequência do filtro passa faixa modificado . . . . . . . . . . . .
p. 47
3.28 Espectro do sinal com modulação BPSK antes do filtro casado, β =0,4 - recepção p. 48
3.29 Espectro do sinal com modulação 4-PAM antes do filtro casado, β =0,4 recepção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 48
3.30 Espectro do sinal com modulação BPSK após o filtro casado, β =0,4 - recepção p. 49
3.31 Espectro do sinal com modulação 4-PAM após o filtro casado, β =0,4 - recepção p. 49
3.32 Algoritmo de Controle Automático de Ganho . . . . . . . . . . . . . . . . .
p. 50
3.33 Desempenho do CAG com passo de adaptação mu=0,003 . . . . . . . . . . .
p. 51
3.34 Desempenho do CAG com passo de adaptação mu=0,3 . . . . . . . . . . . .
p. 51
3.35 Valor de pico da correlação . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 53
3.36 Resposta em frequência dos filtros do Costa Loop originais . . . . . . . . . .
p. 53
3.37 Resposta em frequência dos filtros do Costa Loop modificados . . . . . . . .
p. 54
3.38 Explicação gráfica da formação do quadro . . . . . . . . . . . . . . . . . . .
p. 55
4.1
Conversor de string texto para sinal BPSK e 4-PAM . . . . . . . . . . . . . .
p. 59
4.2
Conversor de sinal modulado BPSK e 4-PAM para string texto . . . . . . . .
p. 60
4.3
Codificador A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 60
4.4
Codificador B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 60
4.5
Decodificador A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 60
4.6
Decodificador B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 61
4.7
Sincronização temporal Early Late Detector . . . . . . . . . . . . . . . . . .
p. 61
4.8
Interpolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 61
4.1
Esquema em blocos de Rádio Definido por Software ideal . . . . . . . . . . .
p. 62
4.2
Diagrama básico do circuito Costas Loop . . . . . . . . . . . . . . . . . . .
p. 64
Lista de Tabelas
2.1
Eficiência espectral para as modulações VSB e QAM . . . . . . . . . . . . .
p. 26
3.1
Testes com nı́veis do gatilho e do volume do rádio FM . . . . . . . . . . . .
p. 42
3.2
Testes com o filtro passa faixa . . . . . . . . . . . . . . . . . . . . . . . . .
p. 46
3.3
Parâmetros do circuito de Controle Automático de Ganho e testes efetuados .
p. 50
3.4
Eficiência espectral para as modulações BPSK e 4-PAM . . . . . . . . . . .
p. 55
13
1
Introdução
A ampla e irrestrita disponibilidade de informações mudou radicalmente a nossa vida, influenciando muito os aspectos pessoais, sociais, e profissionais das pessoas. Hoje em dia, desenvolver sistemas que consigam gerar e manter fluxos de informações seguros e confiáveis é
cada vez mais desafiador, principalmente quando se trata de sistemas de comunicação sem fio.
Por isso, um lugar de destaque é reservado para os sistemas que empregam o conceito de Rádio
Definido por Software (Software Defined Radio [SDR]), no qual seções inteiras de um sistema
de transmissão e recepção de rádio são substituı́das por dispositivos digitais programáveis.
Isso traz inúmeras vantagens do ponto de vista da vida útil dos equipamentos e do desempenho dos mesmos, sendo que um ponto importante é a possibilidade de atualizar os produtos
sem efetuar modificações de hardware. Correções de falhas são também rapidamente resolvidas por meio da reprogramação do software embarcado. Trata-se de uma tecnologia muito
promissora da qual o setor de Defesa da Europa e dos Estados Unidos já estão utilizando (PO,
2008).
Este trabalho é uma continuação do trabalho de conclusão de curso (INACIO, 2011), o
qual teve como objetivo a implementação de um SDR puramente didático. Minha colaboração
no TCC (INACIO, 2011) foi na análise dos algoritmos inicialmente disponı́veis, na redação
dos primeiros trechos de códigos e principalmente no estudo teórico das componentes de um
sistema real de radiofrequência. O sistema inicial foi implementado com notável sucesso pela
colega Juliana por meio do software MATLAB e um par transmissor/receptor FM hardware.
Tal sistema utilizava os blocos básicos de um sistema de comunicação digital e Modulação de
Fase Binária - Binary Phase Shift Keying (BPSK).
Todavia, no programa permaneciam algumas incertezas e restrições que precisavam ser
estudadas e, na medida do possı́vel, removidas. Outras opções de funcionamento podiam ser
integradas sem excessivas dificuldades. Nesse sentido, os objetivos deste trabalho foram a
análise de alguns elementos do sistema, a modificação de trechos do código, o melhoramento
de algumas seções do programa e o estudo dos limites que o sistema utilizado em (INACIO,
1.1 Motivação
14
2011) apresenta. Além disso, foram acrescentadas uma modulação multinı́vel e a codificação
de canal com entrelaçamento.
O presente documento não pretende abordar alguns assuntos já explicados em (INACIO,
2011). Entre eles podemos enumerar: a arquitetura de um sistema de rádio, as teorias da
modulação BPSK e as etapas de realização do sistema original. Entretanto, a fim de permitir uma melhor compreensão do presente trabalho, são sucintamente explicados outros tópicos
envolvidos. A saber: arquitetura SDR, funcionamento do sistema, circuito do gatilho (trigger),
sincronizações de fase e de quadro. Para efetuar a análise, alterações e adições do código utilizado neste trabalho foi preciso utilizar textos como (JOHNSON; SETHARES, 2003), (ALVES,
2010), (FERNANDES, 2007), (OPPENHEIM; WILLSKY, 1997), (HAYKIN, 2001), (HAYKIN;
MOHER; NAWAB, 2005) e (INACIO, 2011).
1.1
Motivação
A leitura de um artigo sobre Rádio Definido por Software - Software Defined Radio (SDR)
no setor militar (PO, 2008), juntamente com o interesse na área de processamento dos sinais,
levaram-me à procura de um orientador que tivesse a iniciativa de realizar um sistema SDR
didático, possivelmente em colaboração com outro(s) aluno(s). Isso proporcionaria o aproveitamento de muitos conceitos aprendidos durante o curso. É possı́vel afirmar que o resultado
atendeu aos anseios do(s) autor(es) e do docente orientador.
1.2
Organização do texto
A seguir serão apresentados os conceitos básicos e as contribuições deste trabalho. No
Capı́tulo 2 serão descritos os conceitos relacionados aos circuitos estudados que integram a arquitetura do sistema. No Capı́tulo 3 serão apresentados o modelo implementado e os detalhes
das contribuições ao programa original. Por ultimo, no Capı́tulo 4, temos as conclusões sobre
esse trabalho e algumas sugestões para futuras implementações. Nos Apêndices A e B se encontram, respectivamente, as figuras dos códigos MATLAB citados no texto e um resumo dos
conceitos da arquitetura da plataforma desenvolvida em conjunto com (INACIO, 2011).
15
2
Conceitos básicos
Neste capı́tulo serão apresentados, de forma sucinta, alguns conceitos básicos que ajudarão
o leitor na compreensão do sistema desenvolvido. Alguns outros conceitos utilizados neste
sistema serão apresentados no Apêndice B. A seguir são descritas as funções do pulso cosseno
levantado, do sincronismo temporal, da codificação de canal e as motivações do estudo da
eficiência espectral.
2.1
Cosseno levantado e filtro casado
A teoria da série de Fourier mostra que um sinal constituı́do por um trem de pulsos retangulares binários (escolhendo, por exemplo, os nı́veis como sendo 0 e 1) ocupa uma banda,
no espectro de frequências, extremamente ampla. Seria portanto, irreal propor essa forma de
onda como a mais apta para um sistema de transmissão digital porque o uso que ela faz do
espectro das frequências é muito ineficiente. O pulso que elimina esse problema ocupando uma
banda limitada em frequência, é a forma de onda denominada “sinc” que atende às condições
de Nyquist.
Esse tipo de pulso é porém irrealizável em termos práticos porque a sua dimensão no
tempo se estende do menos infinito até o mais infinito, além de ser não causal (JOHNSON;
SETHARES, 2003). O pulso que é um ótimo meio termo entre a forma de onda sinc e um
sinal estritamente limitado no tempo é o pulso de cosseno levantado (SKLAR, 2001), o qual
pode ser visualizado na Figura 2.1 (JOHNSON; SETHARES, 2003), onde o parâmetro β representa o fator de roll-off. A equação que descreve o pulso cosseno levantado h(f) no domı́nio
da frequência pode ser vista na equação 2.1 a seguir:
h( f ) =







1
| f | < f1
h
i
π(| f |− f1 )
1
f1 < | f | < BW
2 1 + cos
2 f∆
0
| f | > BW
(2.1)
16
2.1 Cosseno levantado e filtro casado
enquanto a função correspondente H(w) no domı́nio do tempo é exposta em 2.2
sen(2π f0t)
cos(2π f∆t)
H(w) = 2 f0
2π f0t
1 − (4 f∆t)2
(2.2)
onde:
BW = Largura de banda absoluta;
f0 = Largura de banda no ponto de atenuação de 6dB;
f∆ = BW − f0
f1 = f0 − f∆
O fator β é definido como: β =
f∆
f0 .
Como pode ser observado, quando este fator é igual a zero temos um pulso sinc, mas do
ponto de vista da implementação prática são utilizados sempre fatores maiores que zero, sendo
o valor máximo igual a 1.
Figura 2.1: Forma de onda do pulso de cosseno levantado e seu espectro na frequência
Um pulso com as caracterı́sticas da Figura 2.1 (JOHNSON; SETHARES, 2003) reduz de
forma significativa a Interferência Intersimbolica - Intersymbol Interference (ISI). A combinação
da utilização do pulso cosseno levantado e do filtro casado (que será descrito na próxima página)
reduz a ISI e maximiza a relação sinal ruı́do na saı́da do filtro casado no receptor. Todavia, é
importante ressaltar que o circuito que implementa o pulso de cosseno levantado é formado
por dois elementos, conforme mostrado na Figura 2.2. O primeiro é o filtro formatador que se
encontra no transmissor e o segundo é representado pelo próprio filtro casado, colocado entre
17
2.1 Cosseno levantado e filtro casado
os primeiros blocos do lado receptor. O filtro formatador do pulso otimiza a largura de banda
do sinal a ser transmitido e o filtro casado é um filtro linear, invariante no tempo, presente no receptor. Ele é projetado para que na sua saı́da a Relação Sinal/Ruı́do - Signal Noise Ratio (SNR)
seja maximizada, ele tem que tornar a potência instantânea no sinal de saı́da, medida no tempo,
a maior possı́vel em comparação com a potência média do ruı́do de saı́da (HAYKIN, 2001).
A sua denominação deriva do fato de ter uma resposta ao impulso que é uma versão invertida
no tempo e atrasada da forma do sinal na saı́da do filtro formatador do transmissor (SKLAR,
2001). Por isso, ele é “casado” com o sinal presente na sua entrada. (HAYKIN, 2001).
A forma de onda gerada em cada um desses dois circuitos é um pulso raiz quadrada cosseno
levantado, simétrico (JOHNSON; SETHARES, 2003).
Figura 2.2: Diagrama do circuito que implementa o pulso cosseno levantado
Na Figura 2.31 pode-se observar a ação do filtro casado no processo de detecção e maximização
da relação sinal/ruı́do, acompanhando o caminho da informação em formato binário através o
canal ruidoso (AWGN Channel), o próprio filtro casado (Matched Filter), até a amostragem/decisão (Sampling & Threshold Decisor). É importante frisar que a relação sinal/ruı́do de pico do
pulso de um filtro casado depende somente da relação energia de sinal pela densidade espectral
de potência do ruı́do AWGN na entrada do próprio filtro (HAYKIN, 2001).
Figura 2.3: Ação do filtro casado na detecção
1 http://en.wikipedia.org/wiki/Matched_filter,
acesso em 20/06/2011
18
2.1 Cosseno levantado e filtro casado
A implementação deste pulso no MATLAB realizada pela função rcosfir, é utilizada tanto
no código de transmissão quanto no da recepção. Na Figura 2.4, é ilustrada a resposta em
frequência desse filtro com fator β =0,4. A tal propósito, foi verificado que esse é um filtro de
ordem 801. Este resultado deriva da análise da função rcosfir2 , na qual se observa que a ordem
é calculada como:
Ordem = [(comprimento ∗ 2) ∗ sobremostragem] + 1
801=[(25*2)*16]+1
onde:
comprimento = amostras na entrada (25);
sobremostragem = taxa super amostragem do filtro, ou amostras na saı́da por uma na entrada
(16);
sendo os valores entre parenteses, os escolhidos em (ALVES, 2010) e (INACIO, 2011). Apesar
de acharmos possı́vel otimizar (minimizar) a ordem do filtro, o nosso foco não era a realização
de um estudo aprofundado dos esquemas de filtragem.
a)
Magnitude (dB)
50
0
−50
−100
−150
0
0.2
0.4
0.6
0.8
1
0.8
1
b)
Fase (Graus)
0
−2000
−4000
−6000
−8000
0
0.2
0.4
0.6
Frequência Normalizada (x Fs/2)
Figura 2.4: Resposta em frequência do filtro raiz quadrada de cosseno levantado. Fator β =0,4
2 help
do MATLAB
19
2.2 Sincronização temporal
2.2
Sincronização temporal
Para conseguir uma boa detecção dos sı́mbolos, a amostragem do sinal recebido deve ser
efetuada nos momentos corretos, garantindo que os valores amostrados representem um sinal
com o mı́nimo de interferência possı́vel.
Para isso, é necessária a presença de um circuito de sincronização temporal. Nesse programa foi escolhido um algoritmo denominado “Decision Directed”, ou seja, dirigido por decisão (DD). Ele utiliza os sı́mbolos já decididos para extrair a informação do instante ótimo de
amostragem. A Figura 2.5 mostra os momentos ótimos de amostragem de uma sequência de
dois sı́mbolos (1 e -1).
Instantes ótimos de amostragem
1
0.8
0.6
0.4
Amplitude
Instantes ótimos de amostragem
0.2
0
−0.2
−0.4
Atraso
−0.6
−0.8
−1
70.5
71
71.5
Símbolos
72
72.5
Figura 2.5: Amostragem feita nos pontos ótimos
O circuito de sincronização precisa calcular rapidamente o atraso existente entre o instante
casual no qual o amostrador adquire o valor e o momento ótimo no qual a amostragem deveria
ser feita. Pelo fato de ser um algoritmo em malha fechada, o parâmetro do atraso é realimentado
no laço, como pode ser observado analisando o código da Figura 4.7 no Apêndice A. O algoritmo calcula a derivada como subtração entre dois valores. Quando o resultado da derivada,
explicitado pelo parâmetro dx do código se aproxima do zero significa que está atingindo o
pico ou o vale do pulso. Todavia, na prática o algoritmo opera avaliando a mudança de sinal da
derivada e a variável dx continua oscilando do positivo para o negativo e vice-versa ao longo das
iterações do laço. Este valor é aproveitado no cálculo que tem como resultado o parâmetro tau,
o valor do atraso a ser compensado. A procura pelos dois valores que irão servir para o cálculo
da derivada é feita por meio de uma operação de filtragem denominada interpolação, cujo algoritmo é ilustrado na Figura 4.8 do Apêndice A. Um exemplo prático da atuação do laço pode ser
20
2.2 Sincronização temporal
obtida visualizando uma escala entre -3 e 3. Denominemos como 0 a primeira amostra extraı́da
em um ponto casual do sı́mbolo. Para efetuar a primeira interpolação, o algoritmo precisa agora
das duas amostras próximas, uma à esquerda e outra à direita, que chamaremos de -2 e +2. A
obtenção desses dois valores é efetuada por sua vez, calculando mais duas novas interpolações
entre as amostras à esquerda e à direita respectivamente dos pontos -2 e +2. Estas também são
as mais próximas e podem ser chamadas de -3 e -1 para o ponto -2 e, claramente, 1 e 3 para o
ponto 2. A Figura 2.6 procura esclarecer o mecanismo.
Sincronização temporal
1.2
1
Amostra +2
0.8
Amplitude
Amostra 0
0.6
Amostra −2
0.4
0.2
0
−0.2
70.5
71
Símbolos
71.5
Figura 2.6: Ação do interpolador à procura dos pontos denominados -2 e +2
Vale a pena observar que a convergência do cálculo do tau é influenciada também pela
diferença entre o pulso BPSK (1 ou -1) e o valor computado pelo algoritmo xs. Dentre os
vários parâmetros presentes nesse código destacam-se o mu e o delta. O primeiro é o passo de
adaptação, ou seja, a rapidez com a qual o algoritmo chega ao resultado útil, adaptando-se às
condições do circuito. Um valor alto de mu provê um calculo razoavelmente veloz (algumas
dezenas de amostras), mas o efeito do ruı́do pode afetar a estabilização da convergência do
resultado. Estabelecendo um valor baixo, a carga computacional aumenta consideravelmente
e o tempo empregado para conseguir o valor correto do atraso fica maior. Por outro lado, o
cálculo tem menores oscilações e o ruı́do não afeta o desempenho. O segundo é o fator delta
que influi sobre a distância entre a amostra 0 da explicação acima e as amostras -2 e +2. Se essa
dimensão for ampla demais a estimativa efetuada pela derivada tende a falhar.
O algoritmo de interpolação faz uma convolução entre o sinal discreto (as amostras) e um
pulso raiz quadrada cosseno levantado, que é um ótimo filtro passa-baixa. O resultado dessa filtragem é uma função contı́nua no tempo cujo valor no instante do atraso representa o parâmetro
procurado (JOHNSON; SETHARES, 2003).
21
2.3 Codificação de canal e entrelaçamento
2.3
Codificação de canal e entrelaçamento
Quando um sistema de comunicação digital se aproxima ou tende ao limite descrito pelo
teorema de Shannon, a taxa de erros gerados ao longo do canal de transmissão por causa do
ruı́do e das interferências atinge nı́veis inaceitáveis para um eficaz aproveitamento do sistema. Torna-se então obrigatório acrescentar às arquiteturas de transmissão e recepção uma
codificação para controle e correção de erro.
O codificador adiciona redundância aos bits de informação a serem transmitidos, enquanto
o decodificador, posto no receptor, explora essa redundância para decidir quais bits fazem realmente parte da informação transmitida. Isso aumenta a quantia de informação a ser transmitida,
mas permite a correção dos erros que eventualmente apareçam ao longo do canal por causa do
ruı́do (HAYKIN, 2001). Não podemos esquecer que isto incrementa a complexidade do sistema
e o processamento torna-se mais oneroso.
Existem muitos códigos diferentes para correção de erro, cujos geradores podem ser divididos em duas famı́lias: os codificadores de bloco e os codificadores convolucionais. Estes
últimos se diferenciam pelos fatos de dispor de memória e de efetuar a operação de codificação
que pode ser explicada como uma convolução do sinal discreto na entrada com a resposta ao
impulso do codificador. O comprimento dessa resposta equivale à memória do codificador.
Além disso, enquanto os codificadores de bloco aceitam a informação em “blocos”, aos quais
é acrescentada a redundância em “blocos”, nos convolucionais os dados entram em forma de
sequência contı́nua e a redundância está misturada entre os bits de informação (DECASTRO;
DECASTRO, 2004).
Em termos gerais, o codificador de tipo convolucional se caracteriza pela presença de um
registrador de deslocamento com E etapas, conectado a S somadores modulo 2 e um multiplexer
na saı́da. Se tiver uma sequência de B bits na entrada teremos uma geração de T bits na saı́da,
determinando assim a taxa de codificação do sistema conforme a equação 2.3, onde P representa
a taxa de codificação:
P=
B
T
(2.3)
Outro parâmetro importante desses tipos de códigos é representado pelo comprimento de
restrição C, ou seja, quantos deslocamentos um único bit irá percorrer no codificador antes de
sair. Se o circuito dispuser de E de etapas, o valor C será:
22
2.3 Codificação de canal e entrelaçamento
C = E +1
(2.4)
Geralmente, valores altos de S e C denotam um circuito codificador mais robusto. Na Figura
2.7 temos a imagem de um simples codificador convolucional. Ele tem uma taxa de codificação
de 1/2, ou seja, para cada bit na entrada en, são gerados dois bits nas saı́das V’ e V“ que irão
originar a palavra código P.
Figura 2.7: Codificador convolucional de taxa R=1/2 e comprimento de restrição =2
O código convolucional pode ser visto como uma máquina de estado. Na Figura 2.8 é
ilustrado o diagrama que permite observar a relação entre entradas e saı́das do codificador,
conforme transição de estados, onde X é a entrada do mesmo e Yi é a i-ésima saı́da do codificador
(DECASTRO; DECASTRO, 2004). A relação entradas/saı́das é normalmente representada por
um diagrama de treliça, que é uma forma alternativa de observar a transição de estados do
codificador ao longo do tempo. Conforme pode ser visto no diagrama de treliça na Figura 2.9,
supondo que se deseje transmitir a informação ..0 1 1 1 0.., terı́amos como palavra-código P
esta sequência: ..0 0 1 1 1 0 1 0 0 1.. .
A decodificação dos códigos convolucionais é normalmente baseada no algoritmo de Viterbi
que pode ser descrito como um estimador da sequência mais provável de ter sido transmitida. O
processo de entrelaçamento consiste em um mapeamento de entrada-saı́da que permuta a ordem
de uma sequência de bits de uma forma determinı́stica sem acrescentar redundância. Em outras palavras, pega os bits na entrada e os devolve na saı́da com uma ordem temporal diferente
(HAYKIN, 2001).
A semelhança dos codificadores, os entrelaçadores também foram desenvolvidos com estrutura
de bloco e estrutura convolucional (RAPPAPORT, 2002). A sequência na página 24 expõe de
forma simples as explicações da codificação e entrelaçamento, seguidas pelos desentrelaçamento
e decodificação, levando à correção de erros.
2.3 Codificação de canal e entrelaçamento
Figura 2.8: Diagrama de estado do codificador esquematizado na Figura 2.7
Figura 2.9: Diagrama de treliça do codificador esquematizado na Figura 2.7
23
2.4 Eficiência espectral
24
A sequência que leva o algoritmo a corrigir erros:
• Dado um sinal com ...A B C D... bits.
• Codificador: cria a redundância.
– ...AAAA BBBB CCCC DDDD...
• Entrelaçador: permuta a ordem da sequência de bits.
– ...BCAD BCAD BCAD BCAD...
• Presença de erro: ...— xxxx — —...
• O sinal recebido tem essa forma:
– ...BCAD xxxx BCAD BCAD...
• Desentrelaçador: devolve a ordem original com a redundância
– ...AAxA BxBB CCCx xDDD...
• Decodificador: entrega o sinal após controle e correção:
– ...A B C D...
Apesar de incrementar a carga de processamento do sistema, isso permite o espalhamento
no tempo dos erros assim denominados “em rajada” tı́picos dos ambientes wireless. Sem essa
técnica, eles iriam afetar sensivelmente a possibilidade de detecção do receptor, devido à capacidade limitada de correção de erros em sequência das técnicas de codificação de canal.
2.4
Eficiência espectral
Aumentar a taxa de transmissão em um canal sem modificar a técnica de modulação significa ampliar a largura do espectro ocupado pelo sinal. Por essa razão, a escolha em aumentar
o nı́vel de modulação acaba sendo mais atrativa. Isso é feito agrupando os bits de uma forma
que, a cada mudança de nı́vel, seja possı́vel transmitir não somente um único bit, mas sim um
conjunto de bits. Esse agrupamento de bits, denominado de “mapeamento” permite a geração
de modulações multinı́vel que resolvem o problema de elevar a taxa de transmissão sem ampliar
o espectro (JOHNSON; SETHARES, 2003).
25
2.4 Eficiência espectral
Pelo teorema de Nyquist, explicitado na equação 2.5,
BW =
Rs
2
(2.5)
e relacionado à banda básica, a lei que rege a máxima taxa de transmissão em um sistema de
comunicação digital em banda passante é a seguinte:
Rb =
BW ∗ logN
(1 + rl f )
(2.6)
onde, Rb (bit/s) é a taxa de bits, logN é o logaritmo na base 2 do numero de nı́veis da
modulação3 , BW representa a largura de banda disponı́vel para um determinado tipo de canal
e rlf é o fator β do filtro cosseno levantado, já comentado anteriormente. A fórmula acima
nos sugere duas formas de aumentar a taxa de transmissão sem ampliar a banda ou incorrer
em problemas de ISI. Por um lado é possı́vel aumentar o numero de nı́veis do mapeamento
(modulação), por outro, reduzir o fator β .
As duas opções apresentam lados positivos e negativos. O incremento dos nı́veis deve ser
acompanhado por um aumento na potência do sinal (SNR maior) para manter a probabilidade de
erro em nı́veis aceitáveis. Se não for feito isso, a potência do Ruı́do Branco Gaussiano Aditivo
- Additive White Gaussian Noise (AWGN) inviabiliza a possibilidade de distinguir entre os
nı́veis. O teorema de Shannon, conforme equação 2.7 nos oferece uma fórmula para calcular a
capacidade máxima de um canal e sustentar a escolha de um aumento da SNR:
Ps
Rb = BW ∗ log 1 +
Pr
(2.7)
onde Ps é a potência do sinal a ser transmitido e Pr a potência do ruı́do AWGN. Entretanto, a
potência não pode ser aumentada indevidamente porque as baterias dos equipamentos, principalmente os sem fio, têm autonomia limitada. Diminuir o fator β é possı́vel (as custas de perda
de robustez na ISI) mas influi pouco sobre o incremento da taxa de bit requerida e, de qualquer
forma, não temos como reduzi-lo para zero (SKLAR, 2001).
Como consequência, estudos aprofundados permitiram o desenvolvimento de modulações
inovadoras com várias combinações de chaveamento de fase, amplitude, frequências ortogo3 para
todo o restante do texto
26
2.4 Eficiência espectral
nais, com portadora única, portadoras múltiplas, dupla banda lateral ou banda lateral vestigial.
Definimos então como eficiência espectral a relação da taxa de dados, em bits por segundo, pela
largura de banda de canal efetivamente utilizada (HAYKIN, 2001).
O objetivo principal de uma modulação multinı́vel é então oferecer a maior eficiência do espectro com relação à quantidade de bits enviados por hertz. Neste contexto, define-se eficiência
espectral como sendo a quantidade de bits transmitida por segundo em um hertz (bps/Hz).
Um objetivo secundário consiste em fazer isso com o valor menor da SNR, ou seja, com o
menor dispêndio efetivo de potência. A Tabela 2.1 elenca alguns tipos de modulação utilizados
nos sistemas de transmissão de TV digital, relacionando suas respectivas eficiências espectrais
(FASOLO; MENDES, 2008).
Tabela 2.1: Eficiência espectral para as modulações VSB e QAM
Esquema de modulação
2VSB
QPSK = 4 QAM
4VSB
16 QAM
4VSB
32 QAM
8VSB
64 QAM
16VSB
256 QAM
32VSB
1024 QAM
Rs/BW
2
4
5
6
8
10
O cálculo com o qual é possı́vel obter o valor de eficiência espectral é o seguinte:
Ro =
(Rs ∗ logN)
BW
(2.8)
onde Ro é eficiência espectral, Rs é a taxa de sı́mbolos por segundos, N é a quantia de nı́veis
da modulação em análise e BW a banda ocupada pelo sistema.
27
3
Modelo do sistema implementado
3.1
Modelo do sistema
A arquitetura do sistema praticamente não mudou em relação à configuração desenvolvida
em (INACIO, 2011). Além disso, o presente trabalho se beneficiou das experiências já adquiridas e consequentemente repassadas. A Figura 3.1 (INACIO, 2011) ilustra a configuração de-
Figura 3.1: Arquitetura do sistema implementado
senvolvida por (INACIO, 2011). Houve porém, vários aperfeiçoamentos que serão descritos no
desenvolver deste capı́tulo. O modelo da arquitetura é concebido para que a comunicação seja
feita entre dois microcomputadores separados fisicamente. Entretanto utilizaremos uma estrutura mais simples para realizar os testes deste trabalho. Aproveitando um termo tı́pico do setor
de computação, é possı́vel chamar este modelo de loopback com a intenção de dizer que o canal
do sinal transmitido é o mesmo do sinal recebido. Em outras palavras, é como se a conexão
de saı́da da placa de som fosse ligada ao pino de entrada da mesma 1 . O microcomputador
utilizado tem duas instâncias do software MATLAB abertas, uma para atuar como transmissor
e outra como receptor.
A placa de som do computador converte a informação a ser enviada da sua saı́da para
1 http://pt.wikipedia.org/wiki/Loopback,
acesso em 14/07/2011
28
3.1 Modelo do sistema
o transmissor FM externo. O receptor FM recebe o sinal em banda passante e o encaminha
novamente à mesma placa de som, desta vez na sua entrada. O sinal é convertido e processado
pela segunda instância do MATLAB. A arquitetura do sistema foi desenvolvida levando em
conta que vários parâmetros devam ser conhecidos para os dois algoritmos, o de transmissão e
aquele de recepção, antes que a comunicação real possa acontecer. Eles são:
• Palavra de treinamento;
• Tamanho do bloco, constituı́do pela palavra de treinamento mais a informação útil;
• Treliça do codificador, com os dados do comprimento de restrição e também do polinômio
gerador;
• Frequência de amostragem da placa de som;
• Fator de super amostragem;
• Frequência intermediária;
• Configurações do filtro raiz quadrada cosseno levantado.
A fim de auxiliar na compreensão do texto é importante lembrar que a frequência de
amostragem Fs é relativa ao processamento do sinal na placa de som e tem valor de 44.100
Hz. Por isso, a taxa de sı́mbolos, conforme Equação 3.1, é uma fração desse parâmetro, ou seja
taxa =
Fs
= 2756, 25
16
(3.1)
sı́mbolos por segundo. A nossa plataforma opera com fator de super amostragem de valor
100. Super amostrar significa introduzir amostras de amplitude zero entre as amostras originais
do sinal gerado. Isto é feito com o dúplice escopo de reduzir a banda ocupada pelo sinal e limitar
a ISI, conforme explicado em (OPPENHEIM; WILLSKY, 1997). Além disso, todos os gráficos
das funções de transferência dos filtros adotam como valor de fundo escala Fs/2 = 22050 Hz.
A Figura 3.2 apresenta o diagrama de blocos do sistema com a inclusão das contribuições dadas
ao programa original. Elas são destacadas nos blocos com a cor azul. Como pode ser observado,
existe agora a possibilidade de mapear a informação com uma modulação multinı́vel 4-PAM
Pulse Amplitude Modulation, e acrescentar a codificação de canal completa de entrelaçamento
no estágio digital do transmissor. Por outro lado, no processamento digital do receptor estão
agora disponı́veis a demodulação multinı́vel, o desentrelaçamento e a decodificação.
29
3.1 Modelo do sistema
Texto
Modulador
BPSK
Filtro formatador
do pulso
Modulador
4-PAM
Mapeador
binário
Upconversion
Conversor
D/A
Transmissor
FM
Codificador
Entrelaçador
Receptor
FM
Conversor
A/D
Filtro passa
faixa
Sincronizador de fase
Controle
automático
de ganho
Texto
Decodificador
Desentrelaçador
Mapeador
binário
Downconversion
Demodulador
4-PAM
Demodulador
BPSK
Filtro casado
Correlator
Sincronizador
temporal
Figura 3.2: Diagrama de blocos do sistema analisado
3.2 As contribuições
3.2
30
As contribuições
Após escrupuloso trabalho de testes e análises, foi possı́vel subdividir as atividades desenvolvidas em quatro grupos. São eles:
• Técnicas incorporadas
– Modulação 4-PAM
– Codificação de canal
– Entrelaçamento
• Análise e estudo do sistema
– Sincronismo temporal
– Fator β e nı́vel do gatilho
– Filtro passa faixa
– Circuito AGC
– Palavra de treinamento
– Filtros do Costas Loop
– Eficiência espectral
• Melhorias acrescentadas
– Recuperação completa dos sı́mbolos
– Possibilidade de envio de qualquer texto
• Problemas na implementação
– Ajustes do hardware
3.3
3.3.1
Detalhamento individual das contribuições
Modulação 4-PAM
Em virtude das considerações apresentadas na seção 2.4, foi complementada ao código uma
modulação multinı́vel, nesse caso a modulação Modulação a Amplitude de Pulso, 4 Nı́veis - 4
- Pulse Amplitude Modulation (4PAM). Dispondo de quatro nı́veis, os bits de informação são
31
3.3 Detalhamento individual das contribuições
agrupados de dois em dois. Cada grupo de dois bits representa um sı́mbolo e para cada mudança
de nı́vel é transmitida uma quantia dupla de informação se comparado com a modulação BPSK
original. A lei que explica esse conceito é:
Rs =
Rb
logN
(3.2)
cujas variáveis foram já explicitadas na seção 2.4. Isso significa que, a paridade de banda
ocupada, com a modulação 4-PAM é possı́vel transmitir a uma taxa de bits duas vezes maior em
relação ao BPSK. Vários trechos do código, tanto na transmissão quanto na recepção, tiveram
que ser modificados para poder realizar esta nova tarefa. Isto pode ser visto na Figura 4.1
presente no Apêndice A.
Especificamente, com base na Figura 3.2, mudaram ambos os blocos modulador BPSK e
demodulador BPSK, as seções que geram a palavra de sincronismo e aquelas que quantizam
os valores recebidos. Em todos esses pontos de processamento a modulação não trabalha mais
com dois valores (-1 e +1) que alteram a fase da portadora, mas sim com quatro (-3, -1, 1, 3)
que modificam a amplitude da mesma, conforme Figura 3.3.
No bloco de transmissão, denominado modulador 4-PAM na Figura 3.2, adota-se um cálculo
diferente, adaptado para agrupar os sete bits que constituem cada caractere.
a) Forma de Onda da String Convertida para 4−PAM
Amplitude
4
2
0
−2
−4
0
10
20
30
40
50
60
70
Amplitude
b) Zoom da Forma de Onda da String convertida em forma de pulsos
4
2
0
−2
−4
0
5
10
15
Símbolos
Figura 3.3: Sinal mapeado 4-PAM
Um gráfico do sinal formatado, filtrado e antes da conversão para a transmissão é repre-
32
3.3 Detalhamento individual das contribuições
a)
Forma de Onda do Sinal Formatado pelo Pulso
Amplitude
4
2
0
−2
−4
0
20
40
60
80
100
120
140
b) Zoom da Forma de Onda do Sinal Formatado pelo Pulso
Amplitude
4
2
0
−2
−4
50
55
60
65
Símbolos
Figura 3.4: Sinal formatado, modulação 4-PAM, β =0,4
sentado na Figura 3.4. No bloco de recepção, também é efetuado um cálculo oportunamente
adaptado para a nova modulação. Isso é visı́vel na Figura 4.2 presente no Apêndice A. Podemos concluir afirmando que as modificações tiveram êxito positivo e o sistema funcionou como
esperado. A Figura 3.5 mostra a constelação dessa modulação para o sinal recebido, após o
processo de sincronismo.
Constelação do Sinal Sincronizado
4
3
2
Amplitude
1
0
−1
−2
−3
−4
0
20
40
60
80
Amostras
100
120
140
Figura 3.5: Constelação do sinal 4-PAM recebido, β =0,4
3.3 Detalhamento individual das contribuições
3.3.2
33
Codificação e Entrelaçamento
Foi escolhido um circuito codificador baseado em códigos convolucionais pelo fato deste
ser amplamente utilizado em sistemas comerciais de comunicação sem fio. Do ponto de vista
do programa foi necessário escolher o valor das duas variáveis presentes na função poly2trellis
do MATLAB. A primeira define o comprimento de restrição e a segunda o polinômio gerador
do código sob forma de matriz (help MATLAB). Foram utilizados dois tipos de codificadores e,
por isso, dois tipos de treliça, uma muito simples e outra de maior profundidade com o objetivo
de comparar o desempenho de dois códigos diferentes. Entretanto, a taxa de codificação é a
mesma para os dois circuitos, ou seja 1/2.
Figura 3.6: Codificador A, taxa P=1/2 e comprimento de restrição =2
A função que gera o codificador convolucional é a convenc que usa os dados da treliça
e a informação a ser codificada. Os códigos MATLAB aproveitados na nossa arquitetura são
presentes no Apêndice A: para auxiliar na compreensão de quanto implementado, eles podem
ser analisados nas Figuras 4.3 e 4.4. Denominemos codificador A, conforme Figura 3.6, o
codificador mais simples e codificador B o mais complexo, visı́vel na Figura 3.7. .
Figura 3.7: Codificador B, taxa P=1/2 e comprimento de restrição =7
Da mesma forma, identificamos como decodificador A o circuito de decodificação mais
simples e decodificador B o mais sofisticado, cujos algoritmos são ilustrados, respectivamente
nas Figuras 4.5 e 4.6 do Apêndice A. A fase sucessiva se encarregou de embaralhar os dados
3.3 Detalhamento individual das contribuições
34
codificados por meio da função randintrlv. Primeiramente eles foram encaminhados para a
transmissão. No receptor, esta operação foi desfeita por meio da função randdeintrlv. Em
seguida a decodificação ficou a cargo do algoritmo de Viterbi, por meio da função vitdec. Essa
função também necessita dos dados da treliça.
Tomando como referência a Figura 3.8 (de ’a’ até ’e’), podemos verificar que, para facilitar
os testes, foram introduzidos os erros de forma proposital, gerando uma sequência de bits do
mesmo comprimento da mensagem de informação, completa da palavra de treinamento. Nessa
sequência, composta em larga maioria por zeros e vários uns, as posições dos números uns
definem as posições dos erros. Essa sequência é confrontada com a mensagem por meio de
uma operação de OR Exclusiva, cuja função é a xor no MATLAB. Podemos observar que, cada
vez que a informação útil (3.8a), convertida para binário (3.8b) é submetida à operação de xor
(3.8d) com a sequência teste (3.8c), se o cálculo encontrar um na mesma sequência, o resultado
é a mudança do valor do sinal, criando uma informação útil propositalmente corrompida, 3.8e).
Figura 3.8: Explicação gráfica da inserção dos erros por meio da operação xor
Os resultados dos testes efetuados com a treliça do codificador A (comprimento de restrição
= 2 e polinômio gerador como duas linhas por duas colunas, taxa P = 1/2) mostraram que o
algoritmo atuou como esperado. São corrigidos mais de dez erros espalhados aleatoriamente
ao longo dos 238 sı́mbolos codificados, entrelaçados e transmitidos, referentes à mensagem de
texto “IFSC – 18/02/2011“ que, originalmente é constituı́da por 119 sı́mbolos. Após codificação
com a taxa acima especificada o algoritmo transmite 238 sı́mbolos.
Embora pudesse ser interessante ver quantos erros espalhados em número absoluto, o codificador conseguiria corrigir, o nosso foco foi verificar quantos erros consecutivos seriam detectados e eliminados. Observamos que foram corrigidos até 4 erros em rajadas, acima disso a
mensagem apresentou um ou mais erros de texto. Mudando o tipo de treliça para um comprimento de restrição igual a 7 e idêntico polinômio gerador (taxa P = 1/2), os resultados foram
3.3 Detalhamento individual das contribuições
35
bem mais animadores: são corrigidos mais de trinta erros espalhados ao longo da informação
de 238 sı́mbolos e dezesseis consecutivos (erro em rajada). As conclusões às quais se chega
são que os resultados respeitaram as expectativas e confirmaram as teorias aprendidas durante
o curso.
3.3.3
Análise da sincronização temporal
A fim de conseguir uma melhor compreensão do algoritmo de sincronização temporal Decision Directed do receptor, foi decidido concentrar a maior parte dos testes no código didático
presente em (JOHNSON; SETHARES, 2003) para depois analisar com mais agilidade o programa SDR desenvolvido em (INACIO, 2011) e objeto de análise do presente documento.
Aproveitando o algoritmo ClockrecDD.m, oriundo de (JOHNSON; SETHARES, 2003), e
com o valor do ruı́do AWGN = 0dB, a estimação dos valores da constelação (4-PAM) demorou
cerca de 200 amostras antes de se estabilizar, conforme pode ser observado na Figura 3.9. O
valor do atraso artificialmente induzido e valendo -0,3 unidades de tempo foi corretamente calculado e compensado pelo algoritmo após 350 amostras. O significado de “unidade de tempo“
se resume a um valor percentual da duração do sı́mbolo, ou seja, o atraso explicitado acima
é 30% da duração do sı́mbolo. Esse atraso é introduzido propositalmente no algoritmo para
demonstrar o funcionamento do mesmo. O valor máximo, em termos absolutos, que o algoritmo consegue compensar é de 0,5 unidades de tempo, ou 50% da duração do sı́mbolo. Valores
maiores levam o código a falhar. Alterando o fator de amostragem de 2 para 4, os pontos da
constelação se estabilizaram após 100 amostras enquanto o atraso foi computado após 2000
amostras, como visı́vel na Figura 3.10. Por isso, aumentar a super amostragem facilita o trabalho do código, graças a uma maior quantia de pontos disponı́veis e a uma banda mais estreita,
mas incrementa a carga computacional alongando o tempo de convergência. O moderado espalhamento dos valores dos diagramas da constelação, ilustrado nas Figuras 3.9a) e 3.10a) é devido
à peculiaridade do algoritmo cujo cálculo da derivada se mantém oscilando ao longo do processamento como já explicado no Capı́tulo 2. A variável ”iterações“ nos eixos das abscissas das
Figuras 3.9, 3.10 e 3.11 se refere ao laço do algoritmo ClockrecDD.m e cada iteração representa
uma amostra do sinal recebido. Por essa razão, a super amostragem com fator 4 representa um
tempo duplo daquela efetuada com fator 2. Já para a Figura 3.12, gerada por meio do algoritmo
de (INACIO, 2011), cada iteração vale um sı́mbolo.
A demonstração que o programa ClockrecDD.m é de interesse puramente didático foi confirmada com a introdução de ruı́do branco de tipo AWGN, Additive White Gaussian Noise. Em
presença de valores de SNR já inferiores a 10dB o código não proporciona dados confiáveis
36
3.3 Detalhamento individual das contribuições
Estimação atraso
Valor dos simbolos
a) Diagrama da constelação 4−PAM
4
2
0
−2
−4
0
100
200
300
400
b) Curva do atraso no domínio do tempo
500
0.4
0.2
0
−0.2
0
500
1000
1500
Iterações
2000
2500
Figura 3.9: a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com super
amostragem=2, ruı́do=0 dB, β =0,4
Estimação atraso
Valor dos simbolos
a) Diagrama da constelação 4−PAM
4
2
0
−2
−4
0
100
200
300
400
b) Curva do atraso no domínio do tempo
500
0.4
0.2
0
−0.2
0
500
1000
1500
Iterações
2000
2500
Figura 3.10: a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com
super amostragem=4, ruı́do=0 dB, β =0,4
37
3.3 Detalhamento individual das contribuições
e, como pode ser visto na Figura 3.11, a constelação não é inteligı́vel e o valor de atraso não
converge mais.
Valor dos simbolos
a) Diagrama da constelação
4
2
0
−2
−4
Estimação atraso
0
100
200
300
400
b) Curva do atraso no domínio do tempo
500
0.4
0.2
0
−0.2
0
500
1000
1500
Iterações
2000
2500
Figura 3.11: a) Estimação da constelação 4-PAM em recepção e b) Cálculo do atraso com
super amostragem=4, SNR=7dB, β =0,4
Estimação atraso
Valor dos simbolos
a) Diagrama da constelação BPSK
1
0.5
0
−0.5
−1
0
50
100
150
b) Curva do atraso no domínio do tempo
200
0.03
0.02
0.01
0
−0.01
0
50
100
Iterações
150
200
Figura 3.12: a) Estimação da constelação BPSK e b) Cálculo do atraso do sistema SDR, super
amostragem=100, β =0,4
Em seguida, as experiências adquiridas foram aplicadas no código do sistema SDR de (INACIO, 2011) com o intuito de avaliar se eventuais falhas na recuperação da mensagem fossem
38
3.3 Detalhamento individual das contribuições
originadas nesse ponto do processamento do receptor. O algoritmo é mostrado na Figura 4.7
do Apêndice A. A Figura 3.12 expõe os resultados de um dos vários testes efetuados. Em especı́fico, foram alterados os parâmetros mu e delta. Esta primeira variável auxiliar representa o
passo de adaptação, ou seja, a rapidez com a qual o algoritmo chega ao resultado útil, adaptandose às condições do circuito. O segundo descreve a distância entre o valor amostrado e os dois
pontos laterais necessários para que o algoritmo efetue a interpolação. Todavia, nenhuma dessas
alterações influenciaram o desempenho do receptor no que diz respeito à capacidade de recuperar com sucesso a mensagem.
3.3.4
Estudo do fator β e do nı́vel do gatilho
A primeira abordagem relacionada com filtragem se refere à variação do valor β do filtro
raiz quadrada de cosseno levantado. Analisando do ponto de vista gráfico a densidade espectral
do sinal transmitido, é observável que, diminuindo o β a banda ocupada pelo sinal transmitido encolhe, vice-versa incrementando-o. Como pode ser facilmente intuı́do, com a avaliação
gráfica são obtidos valores aproximados, mas estes conseguiram satisfazer as necessidades de
análise do presente trabalho.
a) Densidade Espectral de Potência do Sinal Formatado em Banda Base
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Modulado para Frequência Intermediária
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequência (KHz)
10
15
20
Figura 3.13: Densidade espectral de potência com β =0,15 - transmissão BPSK
Com este fator igual a 0,15 a faixa do espectro ocupada no transmissor foi de cerca de
39
3.3 Detalhamento individual das contribuições
3,3kHz, conforme Figura 3.13. Quando aumentado para 0,85, como na Figura 3.14 a mesma
sobe para aproximadamente 5,3kHz. O valor utilizado em (INACIO, 2011) foi de 0,4 que ocupa
um espectro de, aproximadamente 3,9kHz, como pode ser visto na Figura 3.15.
a) Densidade Espectral de Potência do Sinal Formatado em Banda Base
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Modulado para Frequência Intermediária
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequência (KHz)
10
15
20
Figura 3.14: Densidade espectral de potência com β =0,85 - transmissão BPSK
a) Densidade Espectral de Potência do Sinal Formatado em Banda Base
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) DEP do Sinal Modulado para a Frequência Intermediária
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequência (KHz)
10
15
20
Figura 3.15: Densidade espectral de potência com β =0,4 - transmissão BPSK
A análise do espectro ocupado pela informação recebida, antes do filtro casado, mostrou
que essa mesma banda aumenta para aproximadamente 7kHz em caso de β igual a 0,15, como
pode ser visualizado na Figura 3.16 e até 10kHz para fator β valendo 0,85. Isto pode ser visto
na Figura 3.17.
40
3.3 Detalhamento individual das contribuições
a) Densidade Espectral de Potência do Sinal Recebido
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Filtrado
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequencia (KHz)
10
15
20
Figura 3.16: Densidade espectral de potência com β =0,15 - recepção BPSK
a) Densidade Espectral de Potência do Sinal Recebido
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Filtrado
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequencia (KHz)
10
15
20
Figura 3.17: Densidade espectral de potência com β =0,85 - recepção BPSK
41
3.3 Detalhamento individual das contribuições
Todavia, a recuperação da mensagem com êxito foi possı́vel somente com valores do fator
que estavam entre 0,15 e 0,85. Isso é devido ao fato que, com fator β inferior a 0,15, o maior
comprimento das “caudas” do pulso cosseno levantado, assim como o caimento mais lento das
mesmas, pode facilmente gerar ISI, possibilitando falhas de sincronização temporal. Com β
superior a 0,85 a banda ocupada pelo sinal amplia-se e algumas porções da mesma, com grande
probabilidade, são eliminadas pelo filtro passa faixa na entrada do receptor. A tal propósito,
as Figuras 3.16b), 3.17b) e 3.18b) demonstram graficamente a atuação do filtro passa faixa,
viabilizando o processamento do sinal útil.
Interpretando os gráficos é possı́vel notar que a variação do fator β influi sobre a largura
de faixa, se aproximando de um valor duplo quando de 0,15 é elevado para 0,85. O código
original de (INACIO, 2011) traz um β fixado em 0,4 com banda de aproximadamente 8kHz e a
densidade espectral do sinal recebido é ilustrado na Figura 3.18.
a) Densidade Espectral de Potência do Sinal Recebido
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Filtrado
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequencia (KHz)
10
15
20
Figura 3.18: Densidade espectral de potência com β =0,4 - recepção BPSK
Em seguida foi avaliado o comportamento do programa de recepção quanto ao desempenho
na recuperação da informação. A tabela 3.1 resume e deixa mais claro o entendimento dos testes
efetuados.
Foi aumentado ou diminuindo o nı́vel do volume do receptor hardware FM - o rádio – em
relação ao fator β . A primeira serie de testes foi efetuada com β igual a 0,15. Com volume
muito baixo precisou diminuir o valor do gatilho da placa de som. Este parâmetro, que normalmente é deixado entre 0,3V e 0,45V, teve que ser decrementado até 0,1V para permitir o disparo
do funcionamento do código. Mas isso dificultou o desempenho do sistema e o gatilho disparou
42
3.3 Detalhamento individual das contribuições
Tabela 3.1: Testes com nı́veis do gatilho e do volume do rádio FM
β
0,15
0,15
0,15
0,15
0,4
0,4
0,4
0,85
0,85
0,85
0,85
Nı́vel gatilho (V)
0,1
0,4
0,4
0,5
0,1
0,4
0,5
0,1
0,4
0,4
0,5
Nı́vel volume
baixo
médio
alto
alto
baixo
médio
alto
baixo
médio
alto
alto
Resultados
Erros nos últimos caracteres
Conforme esperado
Falha na recuperação da mensagem
Conforme esperado
Falha na recuperação da mensagem
Conforme esperado
Conforme esperado
Erros nos últimos caracteres
Conforme esperado
Falha na recuperação da mensagem
Conforme esperado
pela presença do ruı́do, devido a SNR muito baixa. Além disso, a sincronização foi se perdendo
ao longo da recuperação da mensagem, errando os últimos caracteres da frase. Na Figura 3.19
é mostrado o comportamento do sistema com gatilho igual a 0,1V e fator β fixado em 0,15.
Constelação do Sinal Sincronizado
0.8
0.6
Amplitude
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
0
200
400
600
800
Amostras
1000
1200
1400
Figura 3.19: Efeito do volume baixo sobre o desempenho do receptor BPSK, β =0,15,
gatilho=0,1V
Temos que lembrar também que o código de sincronização de fase, o Costas Loop, se
encontra antes do Controle Automático de Ganho (CAG). Em razão disso, um sinal com SNR
particularmente baixa acaba influenciando negativamente a ação do sincronizador. De fato,
com o potenciômetro do rádio em nı́vel médio/alto e gatilho para 0,4V o sistema voltou ao
funcionamento normal, detectando e recuperando a informação.
43
3.3 Detalhamento individual das contribuições
Elevando o volume para o ponto máximo e mantendo o gatilho = 0,4V, houve falha completa
nos caracteres da mensagem e o nı́vel do ruı́do introduzido foi expressivo, conforme Figura
3.20.
Constelação do Sinal Sincronizado
0.6
0.4
Amplitude
0.2
0
−0.2
−0.4
−0.6
−0.8
0
100
200
300
Amostras
400
500
Figura 3.20: Efeito do volume alto no desempenho do receptor BPSK, β =0,15, gatilho=0,4V
Porém, nas mesmas condições e levantando o gatilho para 0,5V o algoritmo funciona corretamente. É interessante ressaltar que, ao longo desse experimento, um confiável indı́cio de
presença de ruı́do veio da análise do diagrama de olho. Nesse diagrama, os pulsos são sobrepostos, um após o outro até dar a ideia de um olho. Isso permite ter uma noção do formato
dos pulsos, das condições de ruı́do do canal, da confiabilidade da sincronização temporal e da
eventual presença de interferência intersimbolica (ISI) ao longo da transmissão.
Em especı́fico, o fator β é mudado para fazer com que o filtro casado se adapte às condições
da transmissão, ou seja, do canal. Em caso de diagrama “fechado”, ruı́do ou ISI afeta a qualidade do sinal recebido (JOHNSON; SETHARES, 2003).
Por último foi modificado o fator de β elevando-o para 0.85. Foram repetidos os mesmo
testes - volume baixo e depois alto - e os resultados confirmaram aqueles das experiências
anteriores. Os erros se concentraram nos caracteres finais da frase recebida. A repetição desses
testes com a modulação 4-PAM mostrou que o circuito de sincronização de fase denominado
Costas Loop teve um comportamento ainda mais crı́tico, tornando-se bem mais sensı́vel ao
volume do receptor FM. Na figura 3.21 podemos observar a Densidade Espectral de Potência
(DEP) para a transmissão 4-PAM com fator β fixado em 0,4.
44
3.3 Detalhamento individual das contribuições
a) Densidade Espectral de Potência do Sinal Formatado em Banda Base
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) DEP do Sinal Modulado para a Frequência Intermediária
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequência (KHz)
10
15
20
Figura 3.21: Densidade espectral de potência com modulação 4-PAM - transmissão, β =0,4
Já na Figura 3.22 é possı́vel ver a densidade espectral do sinal 4-PAM recebido.
a) Densidade Espectral de Potência do Sinal Recebido
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
10
15
20
b) Densidade Espectral de Potência do Sinal Filtrado
−40
dB/Hz
−60
−80
−100
−120
−20
−15
−10
−5
0
5
Frequencia (KHz)
10
15
20
Figura 3.22: Densidade espectral de potência com modulação 4-PAM - recepção, β =0,4
Em resumo, o volume do receptor hardware FM não pode ser deixado muito baixo ou
excessivamente alto sem que o nı́vel do gatilho da placa de som acompanhe essa mudança.
Mas, um gatilho baixo faz com que o receptor aceite um sinal com SNR insatisfatória. Isso
independe do valor de β .
3.3 Detalhamento individual das contribuições
3.3.5
45
Estudo do filtro passa faixa
Um dos pontos do programa original que foi provavelmente subestimado quanto à importância para um apropriado funcionamento do sistema diz respeito às frequências de corte
do filtro passa faixa, logo na entrada do receptor. A função deste filtro é extremamente importante porque elimina todas as frequências indesejadas e as eventuais interferências. Os circuitos
de sincronização do receptor precisam processar unicamente o sinal útil, livre do ruı́do e das
frequências não desejadas. As frequências de corte inferior e superior do filtro, centradas em
volta do espectro do sinal útil, são expressas como valor normalizado entre 0 e 1, sendo que,
no código em análise, 0 representa o inicio da escala de frequência e 1 exprime o fundo escala,
valendo 22.050 Hz, metade da frequência de amostragem. Para esta análise vamos considerar
as expressões utilizadas no código em questão, lembrando que, para obter os valores de largura
de banda que incluam as duas bandas laterais teremos que dobrar os resultados dos cálculos que
aparecem nos algoritmos das Figuras 3.23 e 3.24:
Figura 3.23: Códigos do filtro passa faixa utilizado em (INACIO, 2011)
Em que:
bw= largura de banda (somente uma banda lateral);
rlf = fator β , valendo 0,4;
taxa=taxa de transmissão, 44100/16 = 2756,25 bps;
wi= valor normalizado da frequência de corte inferior;
ws= valor normalizado da frequência de corte superior;
Fc= portadora, 10kHz;
FPF= filtro passa faixa de ordem 64, gerado pela função fir1.
Pode-se observar que, para testar amplas modificações das frequências de corte do filtro, sem
mudar a taxa de transmissão, a única solução é diminuir a variável rlf abaixo do permitido. Por
isso, foi realizada a alteração do código como visı́vel na Figura 3.24:
Com a adição do parâmetro denominado V podem-se mudar amplamente os valores de
46
3.3 Detalhamento individual das contribuições
Figura 3.24: Códigos do filtro passa faixa modificado
wi e ws e assim ampliar ou estreitar o filtro, variando à vontade o valor da portadora Fc
desvinculando-os dos fator β e da taxa de transmissão. Podemos visualizar a resposta ao impulso do novo filtro na Figura 3.25.
0.25
0.2
0.15
Amplitude
0.1
0.05
0
−0.05
−0.1
−0.15
−0.2
−0.25
0
10
20
30
40
Número de amostras
50
60
Figura 3.25: Resposta ao impulso do filtro passa faixa modificado
O código original em (INACIO, 2011) calculava wi=0,278 e ws=0,628, partindo de um
rlf =0,4. Efetuados os devidos cálculos, bw é igual a 3858,75Hz. Na Figura 3.26 é apresentada
a resposta em frequência original, aproveitada em (INACIO, 2011). A tabela 3.2 resume os
resultados dos testes efetuados.
Tabela 3.2: Testes com o filtro passa faixa
CONFIGURAÇÃO:
Original
Melhorada
Inviável
β
0,4
0,4
0,4
V
1
1,5
2,2
bw (Hz)
3858,75
2411,72
1734,74
wi
0,278
0,344
0,423
ws
0,628
0,496
0,496
Mantendo fixo rlf =0,4, é possı́vel estabelecer V=1,5 para obter valores de wi=0,344 e
ws=0,563 que originam um filtro com largura de 2411,72Hz como mostrado na Figura 3.27.
47
3.3 Detalhamento individual das contribuições
a)
Magnitude (dB)
50
0
−50
−100
0
0.2
0.4
0.6
0.8
1
0.4
0.6
0.8
Frequência Normalizada (x Fs/2)
1
b)
Fase (Graus)
1000
0
−1000
−2000
−3000
0
0.2
Figura 3.26: Resposta em frequência do filtro passa faixa original
De fato, com esse filtro mais estreito, o programa melhorou significativamente a recuperação da
mensagem, o diagrama de olho ficou mais aberto em todas as condições e o espectro do sinal
tornou-se mais limpo.
a)
Magnitude (dB)
50
0
−50
−100
−150
0
0.2
0.4
0.6
0.8
1
0.4
0.6
0.8
Frequência Normalizada (x Fs/2)
1
b)
Fase (Graus)
1000
0
−1000
−2000
0
0.2
Figura 3.27: Resposta em frequência do filtro passa faixa modificado
A motivação para o estreitamento do filtro foi testar quanto teria sido possı́vel aproximar
as frequências de corte em volta da portadora antes de afetar negativamente o processo de
48
3.3 Detalhamento individual das contribuições
recepção. Para valores de wi=0,423 e ws=0,496, correspondentes a uma banda de cerca de
1734,74Hz, a mensagem não foi mais recuperada.
BPSK
9000
8000
7000
Magnitude
6000
5000
4000
3000
2000
1000
0
−10
−8
−6
−4
−2
0
2
4
Espectro Demodulado (kHz)
6
8
10
Figura 3.28: Espectro do sinal com modulação BPSK antes do filtro casado, β =0,4 - recepção
4−PAM
9000
8000
Amplitude (mV)
7000
6000
5000
4000
3000
2000
1000
0
−10
−5
0
5
Magnitude do Espectro Demodulado (kHz)
10
Figura 3.29: Espectro do sinal com modulação 4-PAM antes do filtro casado, β =0,4 - recepção
Nas Figuras 3.28 e 3.29 podemos ver respectivamente os espectros BPSK e 4-PAM antes
do filtro casado. Já nas Figuras 3.30 e 3.31 é possı́vel visualizar os mesmos espectros após a
ação do filtro casado.
49
3.3 Detalhamento individual das contribuições
BPSK
9000
8000
Amplitude (mV)
7000
6000
5000
4000
3000
2000
1000
0
−10
−5
0
5
10
Magnitude do Espectro do Sinal após Filtro Casado (kHz)
Figura 3.30: Espectro do sinal com modulação BPSK após o filtro casado, β =0,4 - recepção
4−PAM
9000
8000
Magnitude
7000
6000
5000
4000
3000
2000
1000
0
−10
−5
0
5
Espectro do Sinal após Filtro Casado (kHz)
10
Figura 3.31: Espectro do sinal com modulação 4-PAM após o filtro casado, β =0,4 - recepção
50
3.3 Detalhamento individual das contribuições
3.3.6
Análise do Controle Automático de Ganho
O próximo passo foi estudar o comportamento do circuito do Controle Automático de
Ganho - Automatic Gain Control (AGC). Os parâmetros que o caracterizam são poucos e de
fácil compreensão. Temos a constante ds denominada potência desejada na saı́da, a variável
a que representa o fator de multiplicação no circuito de realimentação e mu que é o passo de
adaptação do laço. Uma simples análise do código na Figura 3.32 permite identificar estes
parâmetros.
Figura 3.32: Algoritmo de Controle Automático de Ganho
Basicamente, o laço aproveita o sinal recebido r(k) e aumenta ou diminui o valor da variável
“a” até que não seja atingida a potência desejada de saı́da, a constante ds. Isso é efetuado ao
longo de todo o comprimento da mensagem, incluindo a palavra de treinamento. Como a maioria dos algoritmos de recepção é colocada após o AGC, incrementando ou diminuindo propositalmente a constante ds, todos os sinais posteriormente processados são influenciados em termo
de amplitude até a quantização da constelação na saı́da. A tabela 3.3 resume e esclarece os
testes efetuados.
Tabela 3.3: Parâmetros do circuito de Controle Automático de Ganho e testes efetuados
mu
0,01
0,01
0,003
0,3
ds
0,7
0,07
0,7
0,7
’a’: atingido
4,2
5,8
4,2
4,2
tempo (amostras)
aprox. 1000
aprox. 1000
aprox. 6000
aprox. 500
Resultados
Conforme esperado
Conforme esperado
Conforme esperado
Conforme esperado
Todavia, mesmo abaixando o valor de ds em até dez vezes (0.07), o programa atuou bem.
Foi registrado que a variável “a” iniciou o processo com valor 1 e cresceu constantemente até
5,8 ou valores próximos, estabilizando-se em seguida. Esse algoritmo é caracterizado também
pela presença do passo de adaptação mu que influi sobre a velocidade com a qual o processo
converge ao resultado. Como ilustrado na Figura 3.33, decrementando o passo de adaptação mu
para 0,003 o código ficou mais lento.
51
3.3 Detalhamento individual das contribuições
Sinal após Controle Automático de Ganho
Amplitude
4
2
0
−2
−4
0
0.5
1
Amostras
1.5
2
4
x 10
Zoom do Sinal após Controle Automático de Ganho
Amplitude
4
2
0
−2
−4
1
1.1
1.2
1.3
1.4
Amostras
1.5
4
x 10
Figura 3.33: Desempenho do CAG com passo de adaptação mu=0,003
Por outro lado, quando foi aumentado para 0,3 o processamento tornou-se mais rápido.
Entretanto o valor de “a”, e com isso a amplitude do sinal em saı́da, ficaram oscilando ao longo
de todo o tempo da recepção. Isto pode ser observado na Figura 3.34.
Sinal após Controle Automático de Ganho
Amplitude
4
2
0
−2
−4
0
0.5
1
Amostras
1.5
2
4
x 10
Zoom do Sinal após Controle Automático de Ganho
Amplitude
4
2
0
−2
−4
1
1.1
1.2
1.3
Amostras
1.4
1.5
4
x 10
Figura 3.34: Desempenho do CAG com passo de adaptação mu=0,3
Diminuir ou aumentar o volume do receptor FM levou a uma réplica dos resultados já
vistos na Subseção 3.3.4. Isso incluiu erros de alguns caracteres em caso de volume baixo e
3.3 Detalhamento individual das contribuições
52
falha completa na recuperação da mensagem com volume demasiadamente alto.
Resumindo, com a modulação BPSK o algoritmo funciona em todas as condições testadas, contrasta as variações de amplitude do sinal no ingresso, gera uma informação de amplitude de aproximadamente 4,4Vpp para o sucessivo processamento e aceita vários passos de
adaptação que estejam na faixa do valor nominal do código original presente em (INACIO,
2011). Em relação ao efeito que o valor da constante ds teve no restante do processamento, com
a modulação 4-PAM foi preciso elevar esse parâmetro para 1,2 a fim de aumentar a distância
entre os 4 nı́veis da constelação.
Sem isso, a quantização que provê a devolução dos valores -3, -1, 1, 3 não consegue atuar,
afetando o desempenho do sistema. A única condição comum a todas as possı́veis configurações
diz respeito ao valor de amplitude da informação na entrada do circuito de AGC, esse não pode
cair para zero. Se isto acontecer o sistema deixa de operar corretamente e gera na saı́da somente
a amplificação do ruı́do (JOHNSON; SETHARES, 2003).
3.3.7
Estudo da palavra de treinamento
Com a intenção de avaliar a dependência do correlator da sequência de treinamento composta por 64 sı́mbolos, foram experimentadas algumas possı́veis opções: geração randômica da
palavra de treinamento, palavra constituı́da por zeros e números uns alternados, sequência de
uns – ou menos uns - e sequência de zeros. Testes repetidos com todas as opções confirmaram
que o algoritmo sempre funcionou, reconhecendo com facilidade a sequência de treino, com a
única exceção da palavra composta somente de zeros. Como o processo que o correlator desempenha é parecido com o da convolução, multiplicar e somar sinais discretos por uma sequência
de valores nulos devolve também valores nulos. Neste caso o código falhou. A Figura 3.35
mostra o resultado de um processo de correlação. O comportamento do correlator em caso de
modulação 4-PAM se manteve o mesmo.
3.3.8
Análise do Costas Loop
O circuito de sincronismo de fase Costa Loop é caracterizado pela presença de dois filtros
passa-baixa idênticos. Em (INACIO, 2011), chamou atenção o fato que a ordem dos filtros
fosse extremamente alta (500). Além disso, em outra fonte (ALVES 2010), a ordem era muito
menor (32). Diante dessa diferença esse parâmetro foi reduzido para 80 e, em seguida, para 50.
Outra variável modificada foi a frequência de corte. Na função remez do MATLAB, os cortes
53
3.3 Detalhamento individual das contribuições
Correlacao do Sinal Recebido com a Palavra de Sincronismo de Quadro
40
20
Amplitude
0
−20
−40
−60
−80
1.6
1.7
1.8
1.9
Amostras
2
2.1
2.2
4
x 10
Figura 3.35: Valor de pico da correlação
são decididos sobre uma escala normalizada 2 , onde 0 representa a componente DC e 1 descreve
a metade da frequência de amostragem – 22.050Hz no nosso trabalho.
a)
Magnitude (dB)
0
−20
−40
−60
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
b)
Fase (Graus)
0
−500
−1000
0
0.2
0.4
0.6
0.8
Frequência Normalizada (x Fs/2)
1
Figura 3.36: Resposta em frequência dos filtros do Costa Loop originais
A frequência de corte original, valendo 220Hz foi reduzida para 110Hz. Em (ALVES 2010),
a frequência é menor ainda (22Hz) e atua impecavelmente. Depois de vários testes é possı́vel
2 help
do MATLAB
54
3.3 Detalhamento individual das contribuições
afirmar que o circuito funcionou muito bem e o filtro de ordem menor ajudou até a conter as
oscilações das amostras iniciais. As Figuras 3.36 e 3.37 mostram a resposta em frequência dos
filtros, no primeiro caso em configuração original como desenvolvidos por (INACIO, 2011) e
no segundo após diminuição da ordem e da frequência de corte.
a)
Magnitude (dB)
0
−20
−40
−60
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
b)
Fase (Graus)
100
0
−100
−200
0
0.2
0.4
0.6
0.8
Frequência Normalizada (x Fs/2)
1
Figura 3.37: Resposta em frequência dos filtros do Costa Loop modificados
3.3.9
Cálculos da eficiência espectral
Com base no descrito na Seção 2.4 é possı́vel calcular a eficiência espectral do código.
Utilizando a Equação 2.8 e lembrando que a taxa de transmissão, em sı́mbolos por segundo, foi
fixada em:
Rs =
44100
= 2756, 25
16
(3.3)
Chegamos então ao seguintes valores de eficiência espectral Ro, referente à modulação BPSK e
Ro’, relacionado ao mapeamento 4-PAM, ambos expressados em Bit/s/Hz:
Ro =
(2756, 25 ∗ log2)
= 0, 345
8000
(3.4)
55
3.3 Detalhamento individual das contribuições
Ro0 =
(2756, 25 ∗ log4)
= 0, 69
8000
(3.5)
que podem ser analisados também na Tabela 3.4 a seguir:
Tabela 3.4: Eficiência espectral para as modulações BPSK e 4-PAM
Esquema de modulação
BPSK
4-PAM
3.3.10
Rs/BW
Ro= 0,345
Ro’= 0,69
Recuperação completa dos sı́mbolos
Entre as restrições que emergiram em (INACIO, 2011), aquela que mais restringia a possibilidade de aproveitamento do sistema foi a “perda” dos últimos dois sı́mbolos da mensagem
enviada. Isto inviabilizava uma completa detecção dos textos enviados.
Diante desse problema, o caminho dos sı́mbolos de uma mensagem padrão ao longo de todo
o processamento foi acompanhado. Para poder realizar isso, as ferramentas do MATLAB foram
aproveitadas, notadamente o debugging passo a passo e o arquivo workspace que se revelaram
de fundamental importância.
Figura 3.38: Explicação gráfica da formação do quadro
Foi constatado que, o bloco constituı́do pela palavra de treinamento mais a informação,
logo após a correlação, ganhava dois sı́mbolos espúrios adicionais, na frente da sequência de
3.3 Detalhamento individual das contribuições
56
treino que é posta no começo do bloco, conforme ilustrado na Figura 3.38. Assim o frame útil
recebia um deslocamento de dois sı́mbolos para a direita, atrapalhando o processo de detecção.
3.3.11
Envio de qualquer texto
A última melhoria implementada no programa permitiu acrescentar a possibilidade de enviar textos digitados em tempo real pelo usuário e não somente escritos pré-gravados de comprimento fixo. Para realizar essa tarefa foi preciso utilizar o comando input do MATLAB, por
meio do qual um texto digitado é aceito como string de informação. Esses dados foram depois encaminhados para a conversão BPSK, exatamente como acontecia com os textos fixos
pré-gravados. A modificação funcionou perfeitamente.
3.3.12
Ajustes do hardware
Para desenvolver o presente trabalho foi utilizado um microcomputador Pentium Dual Core
disponibilizado pela Instituição, com sistema operacional Windows XP. Foram necessários
ajustes na placa de som, relativos aos nı́veis do microfone e do alto-falante. Em relação ao
trabalho (INACIO, 2011), foi preciso ativar o aumento de sensibilidade do microfone, o incremento do nı́vel de entrada para 50% e de saı́da do alto-falante para 60%. Por outro lado,
o equipamento recusou-se a aceitar o ajuste da placa para “alto-falante” ou “saı́da de linha” e
funcionou somente na posição “fone de ouvido”. Outra observação foi que o rádio possui uma
saı́da auxiliar com tomada minijack monofônica 3,5mm, mas em (INACIO, 2011) o plug de
conexão com a placa de som é estéreo. É presumı́vel que isso tenha gerado ruı́dos e provocado
problemas na implementação inicial. A demonstração da validade dessa melhoria talvez resida
no fato que atualmente o volume do receptor FM possa ser incrementado ou diminuı́do a vontade em um campo bastante amplo de ajustes. Isso, de fato, viabilizou a efetiva execução dos
vários testes já descritos no texto.
57
4
Conclusões e trabalhos futuros
4.1
Conclusões
Como já manifestado nas motivações, o objetivo do trabalho foi desde o começo, a união
dos esforços e das capacidades de dois alunos para atingir o resultado de implementar um SDR
didático que conseguisse enviar, receber e decodificar uma mensagem de texto qualquer digitada
pelo usuário. De acordo com a implementação e os testes realizados, podemos afirmar que o
objetivo foi alcançado.
Porém, o que mais valorizou a experiência foi o fato de ter proporcionando uma aprofundada revisão e esclarecimento de inúmeros temas e noções aprendidas ao longo do Curso. Além
disso, houve o estudo de vários outros conceitos relacionados à transmissão de sinais digitais
em ambiente sem fio. Este é o melhor enriquecimento que o presente trabalho proporcionou.
4.2
Trabalhos futuros
Este trabalho deixa amplos espaços para melhoramentos e futuras implementações. Seria de
particular interesse desenvolver essa arquitetura por meio de Field Programmable Gate Array
(FPGA), lembrando que a ordem dos filtros deverá ser reduzida para evitar que a realização
prática no circuito hardware torne-se inviável.
A seguir podemos citar outras possı́veis implementações:
• Modulação de fase em quadratura Modulação de fase em Quadratura - Quadrature Phase
Shift Keying (QPSK)
• Modulação de fase e amplitude em quadratura (QAM)
• Modulação em chaveamento de frequência (FSK)
4.2 Trabalhos futuros
58
• Modulação com multiplexação Multiplexação Digital por Frequências Ortogonais - Orthogonal Frequency Digital Multiplexing (OFDM)
• Sincronização de fase Phase Locked Loop (PLL)
• Implementação com Field Programmable Gate Array
59
Apêndice A
A seguir são expostos os códigos do sistema SDR, necessários para uma melhor compreensão do texto.
Figura 4.1: Conversor de string texto para sinal BPSK e 4-PAM
60
Apêndice A
Figura 4.2: Conversor de sinal modulado BPSK e 4-PAM para string texto
Figura 4.3: Codificador A
Figura 4.4: Codificador B
Figura 4.5: Decodificador A
61
Apêndice A
Figura 4.6: Decodificador B
Figura 4.7: Sincronização temporal Early Late Detector
Figura 4.8: Interpolador
62
Apêndice B
4.0.1
Arquitetura de um sistema SDR
Uma plataforma SDR deve ser entendida como uma digitalização do maior número possı́vel
de estágios presentes em um sistema de transmissão e recepção rádio. O esforço visa eliminar
componentes hardware como moduladores, filtros, misturadores, demoduladores, sincronizadores,
amplificadores, e substituı́-los com processamento software. Isso pode incluir a presença de dispositivos DSPs, FPGAs, microprocessadores e memórias, entre outros.
Figura 4.1: Esquema em blocos de Rádio Definido por Software ideal
Os estudos conduzidos até agora conseguiram aproximar o mais possı́vel das antenas a
digitalização, ficando a cargo dos circuitos analógicos a amplificação e a filtragem final, antes
do envio para a antena transmissora. Do lado da recepção, componentes hardware continuam
presentes na filtragem passa faixa e no amplificador de baixo ruı́do, colocados logo após a
antena receptora. Na Figura 4.1 é ilustrada a arquitetura ideal de um SDR.
63
Apêndice B
4.0.2
Funcionamento do sistema
No sistema desenvolvido conjuntamente com (INACIO, 2011) e ilustrado no inı́cio do
Capı́tulo 3, transmissor e receptor hardware FM proveem somente a transmissão e recepção
do sinal em banda passante, todas as outras funções e processamentos da informação são efetuadas pelo software. O funcionamento da plataforma é explicado a seguir:
• Um texto de comprimento limitado é gerado e processado pelos algoritmos do software
de transmissão, ou seja, a primeira instância de MATLAB;
• O sinal processado é enviado para a placa de som, cuja saı́da “fone de ouvido” é conectada
ao transmissor FM;
• O transmissor e o receptor FM hardware estão sintonizados na mesma frequência, 104,0
MHz;
• O rádio FM, o receptor hardware, captura o sinal enviado e o encaminha para a placa de
som;
• Pela entrada microfônica da placa de som a informação transita novamente para o processamento digital de recepção, efetivado pelo código da segunda instância de MATLAB,
cujos algoritmos têm caracterı́sticas diferentes da anterior. Com isso, o texto da frase
digitada é recuperado.
4.0.3
Gatilho da placa de som
Em termos gerais, o gatilho, amplamente conhecido também como trigger, é um nı́vel de
sinal pre-estabelecido no qual o equipamento de aquisição permanece na escuta. Uma vez que o
sinal recebido supera o limiar de gatilho (geralmente na subida), o dispositivo captura e amostra
os dados. Esta ação pode ser planejada para que aconteça cada vez que o sinal passar pelo valor
de gatilho ou somente na hora da primeira aquisição 1 . No caso deste trabalho, o nı́vel da placa
de som era expressado em Volts.
4.0.4
Sincronismo
Para a comunicação digital é preciso que os circuitos do receptor estejam sincronizados com
o sinal recebido o qual sofre desvios em relação ao sinal transmitido. Por isso, são necessárias
1 http://www.ilvg.it/forum/viewtopic.php?p=10567,
acesso em 20/08/2011.
64
Apêndice B
técnicas que permitam a sincronização temporal, de fase, de frequência e de quadro. Foram
desenvolvidas arquiteturas em malha aberta e malha fechada. As de malha aberta assumem que
o desvio do instante de amostragem não muda ao longo de um tempo, até que ele seja novamente
estimado. Esses algoritmos são utilizados quando a transmissão da informação é efetuada “em
blocos”, onde o sincronismo deve ser alcançado rapidamente, após poucos sı́mbolos recebidos.
Por outro lado, quando as variações são significativas e os desvios mudam em continuação
ao longo do tempo, rende-se necessário prover sincronizadores em malha fechada. Existe mais
uma classificação dos algoritmos de sincronismo e se refere ao conhecimento dos dados enviados. Foram estudadas três técnicas. Quando o receptor recebe como redundância à informação
útil uma sequência de treinamento pre-conhecida, temos o DA (Data Aided ou auxiliado por
dados); se forem utilizados os dados de sincronismo extraı́dos dos sı́mbolos já decididos estamos falando da técnica DD (Decision Directed, ou dirigido por decisão); por último, temos
o NDA (Non Data Aided, não auxiliado por dados), caso as informações para o sincronismo
sejam obtidas usando caracterı́sticas intrı́nsecas do sinal recebido (FERNANDES, 2007).
No presente trabalho não precisou efetuar sincronização de frequência da portadora, mas
sim de fase, de quadro e temporal. A sincronização de frequência não foi necessária, pois as
duas portadoras foram geradas digitalmente no transmissor e no receptor, anulando eventuais
desvios de frequência.
Figura 4.2: Diagrama básico do circuito Costas Loop
A sincronização da fase da portadora do transmissor com aquela do receptor foi obtida implementando o circuito Costas Loop, devido a maior adaptabilidade desse algoritmo em relação
ao sistema SDR em teste. O circuito é ilustrado na Figura 4.2 (JOHNSON; SETHARES, 2003).
Além de não precisar de pre-processamento, o desempenho do Costas Loop depende da garantia que os dois filtros passa baixa LPF (Low Pass Filter) sejam iguais. Por esses dois filtros
digitais passa o sinal recebido r(kTs ) que, após se dividir por dois ramos é misturado por um
cosseno no primeiro caminho e por um seno no segundo. Em seguida, os dois sinais filtrados são
Apêndice B
65
novamente multiplicados e o resultado é integrado para extrair o valor da defasagem θ [k] que
mantém realimentados os osciladores (INACIO, 2011). A descrição da sincronização temporal
se encontra no Capı́tulo 2.
O sincronismo de quadro tem a função de encontrar o começo do quadro. Cada bloco de
informação útil é precedido por 64 sı́mbolos, gerados de forma aleatória e representativos da
sequência de treinamento, conhecida também como palavra de treino ou de sincronismo. A
sincronização de quadro é implementada por meio da correlação entre a palavra de treino e o
sinal recebido, já oportunamente sincronizado temporalmente e convertido para a banda básica.
Essa correlação é a somatória de multiplicações ponto a ponto dos dois sinais, onde um deles
é deslocado no tempo. Quando o resultado desta somatória for muito alto, visı́vel na Figura
3.35, isso indica a presença de muitos sı́mbolos semelhantes, ou seja, a sequência de treinamento e o inı́cio do quadro com o sinal útil. Em seguida, o algoritmo efetua a decimação das
amostras de amplitude zero, acrescentadas por super amostragem no momento da transmissão.
Na sequência, exclui os sı́mbolos da palavra de sincronismo e encaminha a informação para o
algoritmo de conversão e, dessa forma, recupera a mensagem de texto (INACIO, 2011).
66
Lista de Abreviaturas e Simbologia
AGC Controle Automático de Ganho - Automatic Gain Control
AWGN Ruı́do Branco Gaussiano Aditivo - Additive White Gaussian Noise
BPSK Modulação de Fase Binária - Binary Phase Shift Keying
CAG Controle Automático de Ganho
DEP Densidade Espectral de Potência
FPGA Field Programmable Gate Array
ISI Interferência Intersimbolica - Intersymbol Interference
OFDM Multiplexação Digital por Frequências Ortogonais - Orthogonal Frequency Digital
Multiplexing
PLL Phase Locked Loop
QPSK Modulação de fase em Quadratura - Quadrature Phase Shift Keying
SDR Rádio Definido por Software - Software Defined Radio
SNR Relação Sinal/Ruı́do - Signal Noise Ratio
4PAM Modulação a Amplitude de Pulso, 4 Nı́veis - 4 - Pulse Amplitude Modulation
67
Simbologia
Os códigos do sistema utilizam sı́mbolos diferentes para expressar o mesmo parâmetro:
BW = bw = W: Largura de banda;
β =rlf : Fator de roll-off ;
Fs: Frequência de amostragem do sinal (44.100 Hz);
Rb: Taxa de bits;
Rs = taxa: Taxa de sı́mbolos;
mi = mu: Passo de adaptação.
68
Referências Bibliográficas
ALVES, H. Plataforma Didática de Radio Definido por Software. [S.l.]: Universidade
Tecnológica do Paraná, 2010.
DECASTRO, F.; DECASTRO, M. Comunicação Digital. [S.l.]: PUCRS - Departamento de
Engenharia Elétrica, 2004.
FASOLO, S.; MENDES, L. Televisão Digital - Fundamentos e Padrões. [S.l.]: INATEL, 2008.
FERNANDES, F. G. Implementação de um enlace de comunicação digital em tempo real
utilizando sinais acústicos. [S.l.]: UNICAMP, 2007.
HAYKIN, S. Sistemas de Comunicação. [S.l.]: Bookman, 2001.
HAYKIN, S.; MOHER, I.; NAWAB, S. H. Sistemas Modernos de Comunicação Wireless.
[S.l.]: Bookman, 2005.
INACIO, J. Implementação de um Radio Definido por Software usando MATLAB e um par
Transmissor/Receptor FM. [S.l.]: Instituto Federal de Santa Catarina - campus São José, 2011.
JOHNSON, C. R. J.; SETHARES, W. Telecommunication Breakdown. [S.l.]: Prentice - Hall,
2003.
OPPENHEIM, A.; WILLSKY, A. Sinais e Sistemas. [S.l.]: Pearson, 1997.
PO, E. La Software Defined Radio di SELEX Communications. [S.l.]: Rivista Italiana Difesa,
2008.
RAPPAPORT, T. Wireless Communications - Priciples and Practice. [S.l.]: Prentice - Hall,
2002.
SKLAR, B. Digital Communications - Fundamentals and Applications. [S.l.]: Pearson, 2001.
Download

An´alise e aperfeiçoamento de um sistema did - IF