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.