receptor costas utilizando plataforma de rÁdio …
Post on 18-Jul-2022
3 Views
Preview:
TRANSCRIPT
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE
CENTRO DE TECNOLOGIA
CURSO DE GRADUAÇÃO EM ENGENHARIA DE TELECOMUNICAÇÕES
Discente: Leonardo Silva Damasceno
Orientador: Prof. Dr. Vicente Sousa
RECEPTOR COSTAS UTILIZANDO PLATAFORMA DE RÁDIO DEFINIDO POR
SOFTWARE
Natal-RN
2016
Leonardo Silva Damasceno
RECEPTOR COSTAS UTILIZANDO PLATAFORMA DE RÁDIO DEFINIDO POR
SOFTWARE
Trabalho de conclusão de curso de graduação
apresentado ao Centro de Tecnologia da Universidade
Federal do Rio Grande do Norte como requisito
parcial para a obtenção do título de Bacharel em
Engenharia de Telecomunicações.
Orientador: Prof. Dr. Vicente Sousa.
Natal-RN
2016
Ficha Catalográfica
Inserir aqui a ficha gerada pela biblioteca Zilá Mamede
Leonardo Silva Damasceno
RECEPTOR COSTAS UTILIZANDO PLATAFORMA DE RÁDIO DEFINIDO POR
SOFTWARE
Trabalho de conclusão de curso de graduação apresentado ao Centro de Tecnologia da
Universidade Federal do Rio Grande do Norte como requisito parcial para a obtenção do
título de Bacharel em Engenharia de Telecomunicações.
Aprovado em: ____ de _______ de _____.
BANCA EXAMINADORA
__________________________________________
Cristhianne de Fátima Linhares de Vasconcelos - UFRN
__________________________________________
Danilo de Santana Pena – UFRN (Co-orientador)
__________________________________________
Marcio Eduardo da Costa Rodrigues - UFRN
__________________________________________
Vicente Angelo de Sousa Junior - UFRN (Orientador)
RESUMO
Este trabalho propõe um estudo sobre ferramentas de prototipagem utilizando a
tecnologia de SDR (Software Defined Radio, em português, Rádio Definido por Software)
para construção de protótipos de moduladores e demoduladores digitais. O tema é tratado
através de experimentos práticos baseados em GNU Radio, uma plataforma de software muito
utilizada para SDR.
O sistema de transmissão digital está vulnerável a problemas ligados à falta de
sincronismo de fase, devido à diferença entre a fase do sinal transmitido e recebido, assim
como a falta de sincronismo de tempo, quando o receptor não amostra o sinal recebido no
momento adequado. A falta de sincronismo de fase pode ser solucionada através de
algoritmos de recuperação de portadora como o PLL (Phase Locked Loop, em português, Elo
Travado em Fase) e o Costas Loop (um especialização de circuito PLL, usado para recuperar
a fase e frequência de um sinal modulado). Já a falta de sincronismo de tempo pode ser
solucionado com a implementação de algoritmos de recuperação de clock, como a técnica de
PFB (Polyphase Filter Bank, em português, Banco de Filtro Polifásico).
Este trabalho investiga o desempenho do receptor Costas Loop no Matlab e no GNU
Radio, além de mostrar uma transmissão real de um arquivo de texto entre duas USRP N210,
usando a técnica de modulação não coerente DPSK.
Palavras-Chaves – SDR, GNU Radio, Comunicações Digitais, Costas Loop.
ABSTRACT
This work proposes a study about prototyping tools using the SDR technology to build
prototypes of digital modulators and demodulators. The subject is a treated through practical
experiments based on GNU Radio, a software platform mostly used for SDR.
The digital transmission system is vulnerable to problems relating to lack of phase
synchronization, due to difference between the phase transmitted signal and the received
signal, and the lack of time synchronization, when the receiver do not sample the received
signal at right time. The lack of phase synchronization can be solved through carrier recovery
algorithms such as Phase Locked Loop and Costas Loop (a type of Phase Locked Loop that is
used to recover the phase and frequency of the carrier). The lack of time synchronization can
be solved by implementing algorithms of timing recovery, such as the Polyphase Filter Bank.
This work investigates the performance of the Costas Loop receiver in Matlab and
GNU Radio, besides to showing a real transmission of a text file between two USRP N210,
using noncoherent detection of DPSK modulation.
Keywords – SDR, GNU Radio, Digital Communication, Costas Loop.
AGRADECIMENTOS
Primeiramente agradeço a Deus pelo dom da vida, pela força e saúde que me foram
dadas para chegar até aqui.
Agradeço a toda minha família pelo apoio, educação, carinho e investimento que me
deram durante toda minha vida.
Agradeço ao Prof. Dr. Vicente Angelo de Sousa Junior, pela orientação, amizade e
ensinamentos que ajudaram a me capacitar pessoal e profissionalmente.
Agradeço ao meu coorientador e amigo, Prof. Dr. Danilo Pena, pelos ensinamentos
proporcionados durante a graduação que contribuíram muito para a realização deste trabalho.
Agradeço ao Departamento de Engenharia de Comunicações (DCO), da Universidade
Federal do Rio Grande do Norte (UFRN), e à Escola de Ciências e Tecnologia (ECT) pela
infraestrutura oferecida e pelas excelentes formações proporcionadas. E todos os professores
que contribuíram ao longo de toda minha formação acadêmica.
Ao Grupo de Pesquisa em Prototipagem Rápida de Soluções para Comunicações
(GppCom), pela formação extracurricular e pelo fornecimento de todos os equipamentos
necessários para a realização deste trabalho.
À minha namorada Ana Claudia Xavier de Amorim, pelo apoio, motivação e
companheirismo durante todo o período da minha graduação.
Agradeço ao meu amigo, Enir Dias Neto, por toda ajuda proporcionada para o
desenvolvimento deste trabalho.
Aos meus amigos de graduação e de vida, Eliennay Ferreira e Guilherme Oliveira, por
todo apoio e torcida durante esse tempo.
LISTA DE FIGURAS
Figura 1 - Diagrama de constelação gerado por uma modulação QPSK ................................ 12
Figura 2 – Ilustração de uma cadeia de transmissão e recepção digital .................................. 12
Figura 3 – Ilustração de alguns cenários que ocasionam o multipercurso e o Efeito Doppler . 14
Figura 4 – Rotação da constelação de um sistema QPSK devido ao erro de fase ...............14
Figura 5 – Diagrama de blocos para codificação diferencial DPSK ........................................ 15
Figura 6 – Exemplo de uma codificação diferencial realizada pelo DPSK.............................. 15
Figura 7 – Diagrama de blocos do PFB para determinação do tempo ideal de amostragem ... 17
Figura 8 – Código pulrecsig.m cria o formato de pulso e gera a FFT dos sinais .................... 19
Figura 9 – Espectro de magnitude do sinal recebido de um sistema AM DSB........................19
Figura 10 – Espectro de magnitude do sinal recebido de um sistema AM DSB-SC................20
Figura 11 – Esquema de pré-processamento utilizando o método de quadratura e filtro
BPF..... ..................................................................................................................................... 21
Figura 12 – Código de pré-processamento utilizando o método de quadratura e filtro BPF ... 21
Figura 13 – Espectro da magnitude do sinal recuperada a duas vezes a frequência desejada .. 22
Figura 14 – Código de implementação do algoritmo SD ....................................................... 24
Figura 15 – Resultado do algoritmo SD convergindo o deslocamento de fase correto (neste
caso, -0.8) ................................................................................................................................ 24
Figura 16 – Gráficos da superfície de erro dos algoritmos de rastreamento de fase SD (JSD),
PLL (JPLL) e Costas Loop (JC). Observa-se que todos os métodos tem mínima (ou máxima) na
fase desejada (nesse caso, em-0.8) mais deslocamentos em n ............................................... 26
Figura 17 – Esquema de funcionamento do algoritmo SD ....................................................... 27
Figura 18 – Esquema de funcionamento do algoritmo PLL .................................................... 27
Figura 19 – Código pllconverge.m que simula o método de estimação de fase PLL .............. 28
Figura 20 – Resultado do algoritmo PLL convergindo para o valor de fase correto .............. 28
Figura 21 – O Costas Loop é um algoritmo de rastreamento de fase baseado no desempenho
da função custo Jc. A entrada do sinal não precisa ser pré-processada (como é requerida no
PLL) ......................................................................................................................................... 30
Figura 22 – Código costasloop.m simulado com os dados de entrada de pulrecsig.m ............ 31
Figura 23 – Resultado do algoritmo Costas Loop convergindo para o deslocamento de fase
correto ....................................................................................................................................... 31
Figura 24 – Algoritmo SD convergindo para -0.8 e para valores múltiplos de -0.8+nπ .......... 32
Figura 25 – Algoritmo PLL convergindo para -0.8 e para valores múltiplos de π ................... 32
Figura 26 – As estimativas feitas pelo algoritmo Costas Loop convergem para -0.8 e -0.8±nπ.
Estes pontos estacionários ocorrem em todos os máximos de superfície de erro .................... 33
Figura 27 – Algoritmo SD com ruído ....................................................................................... 34
Figura 28 – Algoritmo PLL com ruído ..................................................................................... 34
Figura 29 – Algoritmo Costas Loop com ruído ........................................................................ 35
Figura 30 – Algoritmo PLL com offset de frequência .............................................................. 36
Figura 31 – Algoritmo Costas Loop com offset de frequência ................................................. 36
Figura 32 – Ambiente de trabalho do GNU Radio para demonstrar o sistema descrito .......... 37
Figura 33 – Sinal sem a presença de ruído (amplitude do ruído igual a 0) .............................. 38
Figura 34 – Sinal com ruído (amplitude do ruído igual a 1) .................................................... 38
Figura 35 – Flowgraph da cadeia de transmissão com o modulador QPSK e a presença do
canal .......................................................................................................................................... 39
Figura 36 – Resultado no domínio do tempo, da frequência e através do diagrama de
constelação................................................................................................................................ 40
Figura 37 – Flowgraph do sistema com a técnica de recuperação de clock ............................. 41
Figura 38 – Resultado da constelação antes (gráfico à esquerda) e depois (gráfico à direita) do
uso do PFB ............................................................................................................................... 41
Figura 39 – Resultado da constelação antes e depois do uso do PFB com offset de tempo
máximo ..................................................................................................................................... 42
Figura 40 – Resultado do antes e depois do uso do PFB com offset de frequência de 1x10-5
Hz
.................................................................................................................................................. 43
Figura 41 – Configuração do bloco PSK Mod e alteração do parâmetro Excess BW............... 44
Figura 42 – Constelação após alteração do parâmetro Excess BW para 0.1 ............................. 44
Figura 43 – Cadeia de recepção com o bloco CMA Equalizer para resolver o problema de ISI
.................................................................................................................................................. 45
Figura 44 – Resultado do decodificador com uso do bloco CMA Equalizer (à direita da figura)
para um fator de roll-off igual a 0.1. Figura 45 – Algoritmo PLL com offset de frequência ... 45
Figura 45 - Resultado do decodificador com uso do CMA Equalizer para um offset de
frequência de 1x10-5
Hz ............................................................................................................ 46
Figura 46 – Resultado da Cadeia de Transmissão/Recepção final com o uso do algoritmo de
estimação de fase Costas Loop ................................................................................................. 47
Figura 47 – Comparação entre o CMA Equalizer e o algoritmo Costas Loop para um offset de
frequência de 0.01 Hz ............................................................................................................... 47
Figura 48 – Comparação entre o CMA Equalizer e o algoritmo Costas Loop no canal com
ruído AWGN ............................................................................................................................ 48
LISTA DE SIGLAS
ASK Amplitude Shift Keying
BER Bit Error Rate
DPSK Differential Phase Shift Keying
FSK Frequency Shift Keying
GRC GNU Radio Companion
ISI Inter Symbol Interference
PSK Phase Shift Keying
PFB Polyphase Filter Bank
PLL Phase Looked Loop
QPSK Quadrature Phase Shift Keying
SD Squared Difference Loop
SDR Software Defined Radio
SNR Signal to Noise Ratio
UFRN Universidade Federal do Rio Grande do Norte
USRP Universal Software Radio Peripheral
SUMÁRIO
1 INTRODUÇÃO ............................................................................................................ 11
1.1 OBJETIVOS ESPECÍFICOS .......................................................................................... 11
1.2 METODOLOGIA ............................................................................................................ 11
1.3 CONTEXTO DE EXECUÇÃO DO TRABALHO ......................................................... 12
1.4 PRODUTOS TANGÍVEIS DO TRABALHO ................................................................ 12
1.5 ORGANIZAÇÃO DO TRABALHO .............................................................................. 12
2 TRANSMISSÃO DIGITAL ......................................................................................... 13
2.1 O SISTEMA DE TRANSMISSÃO DIGITAL ................................................................ 14
2.1 SINCRONISMO DE FASE E FREQUÊNCIA ................................................................ 15
2.2 SINCRONISMO DE TEMPO ......................................................................................... 18
3 SOLUÇÕES CLÁSSICAS PARA SINCRONISMO DE FASE E FREQUÊNCIA. 19
3.1 ESTIMAÇÃO DE FASE E FREQUÊNCIA VIA FFT ................................................... 20
3.2 SQUARED DIFFERENCE LOOP (SD) ......................................................................... 24
3.3 PHASE-LOCKED LOOP (PLL) ..................................................................................... 28
3.4 COSTAS LOOP ............................................................................................................... 31
3.5 COMPARAÇÃO DE DESEMPENHO DOS ALGORITMOS........................................34
4 ESTUDO DE CASO: RECEPTOR COSTAS NO GNU RADIO ............................. 39
4.1 COMPORTAMENTO DE UM SINAL COSSENOIDAL COM RUÍDO ........................ 39
4.2 MODULAÇÃO QPSK E AS CARACTERÍSTICAS DO CANAL ................................. 42
4.3 SOLUÇÃO PARA SINCRONISMO DE TEMPO: PFB .................................................. 47
4.4 POSSÍVEL SOLUÇÃO PARA PROBLEMA DE ISI: EQUALIZAÇÃO ....................... 48
4.5 POSSÍVEL SOLUÇÃO PARA PROBLEMA DE SINCRONISMO DE FASE E
FREQUÊNCIA: ALGORITMO COSTAS LOOP ................................................................... 50
5 CONCLUSÕES E PERSPECTIVAS ........................................................................... 51
REFERÊNCIAS ............................................................................................................ 53
ANEXO A – CADEIA DE TRANSMISSÃO DIGITAL USANDO O GRC ............ 54
ANEXO B - TRANSMISSÃO REAL DE TEXTO USANDO O GNU RADIO .......76
11
CAPÍTULO 1 - INTRODUÇÃO
Nos sistemas de comunicações, a mensagem a ser transmitida pelo canal está sujeita a
diversos fenômenos que podem alterar as características do sinal transmitido de forma que o
mesmo não seja reconhecido no receptor. Alguns desses efeitos é o multipercurso e o Efeito
Doppler, que geram perda de sincronismo de fase e frequência no sinal. Assim, tem-se a
necessidade de implementar algoritmos que consigam recuperar o sinal nesses cenários. Neste
trabalho é apresentado o algoritmo Costas Loop e outros métodos de recuperação de portadora.
Um dos principais avanços da tecnologia atual é a utilização de software para
implementar parte do rádio, ao invés de somente em hardware. O Rádio Definido por Software
(SDR) é uma tecnologia que permite tanto a simulação quanto a criação de um sistema de
transmissão completo, com baixo custo e grande flexibilidade, permitindo adaptações às novas
tecnologias sem a necessidade de substituição de equipamentos, além de obter uma melhor
utilização do espectro.
1.1 – OBJETIVOS ESPECÍFICOS
No decorrer deste trabalho serão discutidos e respondidos de forma prática, os seguintes
questionamentos:
Quais os problemas inerentes aos sistemas de transmissões digitais relativos a tempo de
amostragem e fase?
E esses problemas causam erros na recepção do sinal, como solucioná-los?
Quais os principais tipos de modulações digitais? O que pode ser dito a respeito da
característica coerente e não coerente dos moduladores digitais?
E quanto à implementação de software de algoritmos de sincronismo de fase?
Existe alguma ferramenta de simulação para SDR que possa servir como ambiente para
constatar a eficiência das soluções dos problemas no sistema de transmissão digital?
1.2 – METODOLOGIA
A grande versatilidade da programação em SDR permite que o teste de uma cadeia de
transmissão e recepção seja realizado na prática sem grande custo, permitindo assim
comparações entre soluções de problemas nos sistemas de transmissão digital. Este trabalho
traz uma breve fundamentação teórica sobre a cadeia de transmissão digital e suas principais
técnicas de modulação, os problemas envolvidos e algumas soluções. Tais problemas e
soluções são evidenciados e testados através de formulações matemáticas e simulações via
MATLAB e software de prototipagem GNU Radio.
12
1.3 – CONTEXTO DE EXECUÇÃO DO TRABALHO
Este Trabalho de Conclusão de Curso (TCC) foi desenvolvido pelo discente Leonardo
Silva Damasceno sob orientação do Prof. Dr. Vicente Angelo de Sousa Junior, do
Departamento de Engenharia de Comunicações da Universidade Federal do Rio Grande do
Norte (DCO/UFRN) e atualmente coordenador do GppCom (Grupo de Pesquisa em
Prototipagem Rápida de Soluções para Comunicação). Este grupo trabalha na consolidação de
pesquisa aplicada e desenvolvimento na área de telecomunicações na UFRN através de projetos
com parceiros acadêmicos e com o setor industrial.
1.4 – PRODUTOS TANGÍVEIS DO TRABALHO
Construção de um protótipo de modulador digital DPSK para transmissão de um
arquivo de texto usando o GNU Radio e a USRP;
Construção de um protótipo de demodulador digital DPSK para recepção de um arquivo
de texto usando o GNU Radio e a USRP;
Concepção e Montagem de Kits Didáticos para Rádio Definido por Software usando
GNU Radio e USRP N210 – Artigo – Congresso de Iniciação Científica UFRN 2015;
Introdução a Rádio Definido por Software Sistemas de Telecomunicações com GNU
Radio e USRP N210 – Minicurso – UFRN 2015.
1.5 – ORGANIZAÇÃO DO TRABALHO
Este trabalho está dividido em 5 capítulos, que são organizados da seguinte forma: O
capítulo 2 é dedicado a uma visão sobre o sistema de comunicação digital e feito uma
abordagem sobre os problemas de sincronismo de tempo, fase e frequência.
O capítulo 3 apresenta alguns dos algoritmos existentes de estimação de fase, através de
formulações matemáticas e simulações realizadas no MATLAB.
O capítulo 4 entra em detalhes sobre os problemas relacionados ao canal sem fio e
limitado em banda, assim como também são apresentados as possíveis soluções para tais
problemas, usando a plataforma de software GNU Radio.
O capítulo 5 traz os comentários finais e as perspectivas de trabalhos futuros.
13
CAPÍTULO 2 – TRANSMISSÃO DIGITAL
Nas transmissões digitais a fonte de informação é gerada através de bits e as técnicas de
modulações digitais são obtidas através da variação de amplitude, frequência e fase, assim
como ocorrem nas modulações analógicas [1]. As principais técnicas de modulações digitais
são descritas brevemente nos tópicos abaixo:
ASK (Amplitude Shift Keying) ou Modulação por Chaveamento de Amplitude – É
a técnica de modulação mais simples entre as utilizadas para modular sinais digitais.
Consiste na alteração da amplitude da onda portadora em função do sinal digital a ser
transmitido. Esta técnica é equivalente à modulação AM para sinais contínuos com um
sinal modulante na forma de um pulso retangular. Como vantagem da modulação ASK
pode-se citar a simplicidade de implementação e como desvantagem a baixa imunidade
a ruído [2][3]. Umas das aplicações da modulação ASK é na transmissão via fibra
óptica, quando não há ruído para interferir na recepção do sinal, e em transmissão de
dados por infravermelho [4].
FSK (Frequency Shitf Keying) ou Modulação por Chaveamento de Frequência –
Processo de modulação que consiste na variação da frequência da onda portadora em
função do sinal digital a ser transmitido. Como vantagem da modulação FSK pode-se
citar que ela é menos susceptível a interferência pelo ruído do que a ASK, pois o
receptor fica atento a variações de frequências, então picos de voltagem causados pelo
ruído são ignorados. Uma das desvantagens é que a modulação FSK requer uma grande
ocupação de banda, chegando a exigir o dobro do espectro de frequência da modulação
ASK [5]. Este modelo de modulação é utilizada em modens com velocidade de
transmissão igual ou menor que 1200 bits/segundo, também utilizada em telefonia
celular para transmissão de controle entre a estação rádio base e o telefone celular [6].
PSK (Phase Shitf Keying) ou Modulação por Chaveamento de Fase – Consiste na
variação da fase da onda portadora em função do sinal digital a ser transmitido. Quando
ocorre uma mudança de nível lógico do sinal a ser transmitido há uma mudança na fase
da onda portadora para indicar a mudança do nível lógico do sinal a ser transmitido.
Essa modulação é a que apresenta melhor imunidade a ruídos e um significativo
aumento da velocidade de transmissão. Uma das poucas desvantagens do PSK é que a
informação não pode ser recuperada a partir da envoltória, visto que há apenas uma
dualidade de sinais (chaveamento de fase entre os valores 0 e π), ou seja, requer uma
demodulação coerente. Uma das aplicações da modulação PSK é nos sistemas de
comunicação via satélite, cenário no qual a SNR (Signal-Noise Ratio, ou Relação Sinal
Ruído) é baixa devido o canal severo e variável. Também utilizada em modens de
média velocidade e em rádios digitais [6] [7]. Uma das técnicas derivadas do PSK
bastante utilizada é o QPSK (Quadrature Phase Shift Keying), que transmite 2 bits por
símbolo. Neste caso tem-se 4 tipos de símbolos possível e a portadora pode assumir 4
valores de fase diferentes. A figura 1 ilustra um diagrama de fase e quadratura, com os 4
possíveis símbolos gerados pela modulação QPSK.
14
Figura 1 – Diagrama de constelação gerado por uma modulação QPSK.
Fonte: Adaptado de [7].
2.1 – O SISTEMA DE TRANSMISSÃO DIGITAL
Os sistemas de transmissões digitais apresentam facilidades de regeneração, em
comparação com os sistemas analógicos, além de apresentarem maior imunidade à distorção e
interferência. Os circuitos digitais são mais confiáveis (e flexíveis) e podem ser produzidos
com custos mais baixos. Uma desvantagem dos sistemas digitais é o alto processamento
exigido, sendo necessária a utilização de métodos de sincronismo de fase, frequência e tempo.
Na figura 2 é ilustrado, através de um diagrama de blocos, o funcionamento de uma cadeia de
transmissão e recepção digital.
Figura 2 – Ilustração de uma cadeia de transmissão e recepção digital.
Fonte: O próprio autor.
Na cadeia de transmissão da figura 2, o bloco Fonte de Informação representa a
mensagem original a ser transmitida (voz, música, imagens, vídeos ou arquivos de dados), já
em formato binário. O bloco Codificação de Fonte é responsável por aumentar a eficiência da
transmissão, através da compressão e compactação das mensagens geradas pela fonte (taxa de
15
remoção de bits). O bloco Modulação em banda base transforma os bits em forma de onda e o
bloco da Modulação em banda passante faz a adequação do sinal formatado para ser
transmitido pelo canal, gerando um sinal em alta frequência centrado na frequência central de
uma portadora senoidal.
O bloco Canal representa o meio pelo qual o sinal é transmitido (fibra óptica, cabo
coaxial, espaço livre etc). O canal funciona como um filtro atenuador, adicionando ruído ao
sinal e muitas vezes provocando offsets (deslocamentos) de fase, frequência e tempo.
Na cadeia de recepção, o bloco Demodulação em banda passante transforma a onda
modulada que chega ao receptor em forma de bits e o bloco em paralelo, de Sincronismo de
fase e frequência, é composto por técnicas que buscam estimar a fase e frequência em situações
que o canal possa alterar estes parâmetros. O bloco de Equalização resolve o problema de
interferência intersimbólica (ISI) que ocorre devido o processo de formatação de pulso para
limitar a banda do sinal transmitido, ou devido o multipercursos do canal sem fio. O bloco
Demodulação em banda base recebe as amostras do sinal, e geralmente utilizada um filtro
casado, que é uma filtro linear ótimo invariante no tempo, usado para maximizar a SNR de pico
do pulso [8]. O bloco Decodificação de fonte é responsável por atribuir um endereço binário
para cada símbolo decodificado e reconstruir o sinal transmitido.
2.2 – SINCRONISMO DE FASE E FREQUÊNCIA
Na transmissão digital, o receptor deve conhecer a fase e a frequência da informação
enviada pelo transmissor. Porém, o canal pode provocar distorções indesejáveis no sinal
transmitido, ocasionando perda de sincronismo de fase e/ou frequência no receptor. As
principais causas que contribuem para estes problemas são o multipercurso e o efeito Doppler.
O multipercurso ocorre devido os obstáculos existentes entre o transmissor e o receptor
que causam dispersão (ou espalhamento temporal) do sinal recebido, gerando problema de
sincronismo fase. O efeito Doppler é causado pela mobilidade dos objetos entre o transmissor e
o receptor, tendo como consequência a falta de sincronismo de frequência. Ambos os
problemas causam rotação na constelação, tornando-se difícil a recuperação do sinal. As figuras
3 e 4 ilustram alguns cenários que podem ocorrer estes problemas e a consequência deles na
cadeia de recepção, respectivamente.
16
Figura 3 – Ilustração de alguns cenários que ocasionam o multipercurso e o efeito Doppler.
Fonte: Adaptado de [9].
Figura 4 – Rotação da constelação de um sistema QPSK devido ao erro de fase .
Fonte: Adaptado de [10].
Um dos métodos utilizados para recuperação de fase é o DPSK (Difference Phase Shift
Keying, ou PSK Diferencial). Esta é uma técnica variante da modulação PSK que, diferente das
outras variantes, utiliza demodulação não coerente, ou seja, o receptor não precisa conhecer a
informação de frequência e de fase da portadora.
Ao invés dos dados binários serem modulados sobre a fase da portadora, o DPSK
modula os dados sobre a mudança de fase da portadora. Por exemplo, uma mudança de fase π
durante a transição de um intervalo de símbolo para o seu adjacente representa o bit de valor 1,
enquanto a não mudança de fase neste intervalo de transição representa o bit 0.
O sistema DPSK é codificado diferencialmente, aplicando uma lógica XOR na
sequência de dados de entrada. A tabela 2.1 ilustra a operação binária XOR, evidenciando que
ela faz exatamente a lógica do DPSK. Assim, dada uma sequência de dados determinado por bj,
consistindo de 0’s e 1’s, pode-se obter a sequência de dados cj codificada diferencialmente,
conforme mostrada na equação 2.1, no qual o símbolo ⊕ representa a operação XOR.
⊕
17
Tabela 2.1 – Ilustração da lógica XOR, aplicada no sistema de codificação DPSK.
Fonte: O próprio autor.
A figura 5 ilustra através de diagrama de blocos o processo de codificação diferencial de
um receptor DPSK.
Figura 5 – Diagrama de blocos para codificação diferencial DPSK.
Fonte: Adaptado de [12].
A diferença fundamental desta técnica de modulação é a forma que o sinal de referência
é gerado para a detecção de fase. Este sinal é gerado pelo atraso Tb em relação ao sinal de
entrada. Na figura 6 é mostrado como ocorre o processo de codificação de fase diferencial,
considerando os bits de entrada como sendo {1, 1, 0, 0, 1, 0, 1, 0, 1, 1}, admitindo o bit de
referência igual a 0 e aplicando a lógica XOR.
Figura 6 – Exemplo de uma codificação diferencial realizada pelo DPSK.
Fonte: Adaptado de [12].
18
Nota-se na figura 6 que, com base no procedimento descrito, é obtido a sequência de
saída {0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0}. Assim, quando se tem um bit codificado igual a 0, a fase da
onda DPSK fica igual ao bit anterior, já quando o bit codificado é igual a 1, inverte-se a fase da
onda DPSK em π.
Outro método de estimação, tanto de fase quanto de frequência da onda portadora, é o
algoritmo Costas Loop. Diferente do DPSK, este algoritmo funciona com demodulação
coerente, ou seja, requer informações de fase e frequência da onda portadora, exigindo uma
maior complexidade na implementação e, consequentemente, não sendo utilizado nos
receptores de menor custo. Contudo, torna-se interessante seu uso em condições que a SNR é
baixa, obtendo desempenho melhores do que à solução não coerente [13].
Este TCC tem como objetivo testar o método do algoritmo Costas Loop como solução
para recuperação de fase em uma recepção digital. Os capítulos 3 e 4 mostram o funcionamento
deste algoritmo através de simulações no MATLAB e no GNU Radio.
2.3 – SINCRONISMO DE TEMPO
O sincronismo de tempo tem como objetivo determinar o instante de tempo ideal para
amostrar o sinal recebido. A perda de sincronismo tempo ocorre devido aos equipamentos do
transmissor e receptor terem clocks diferentes e o canal impor atraso de propagação variável.
Com isso, o receptor pode amostrar o sinal recebido sem maximizar a SNR (perder o começo e
o final do tempo de bit), afetando diretamente na recuperação do sinal.
O Banco de Filtro Polifásicos (PFB) é uma das técnicas utilizadas para recuperação do
tempo de bit. O PFB é um conjunto de N filtros (a quantidade vai depender do projeto) que
atuam em paralelo e cada um possui uma fase diferente, de forma a identificar o instante de
tempo ideal para recuperação do símbolo. A figura 7 apresenta o diagrama de blocos do Banco
de Filtros Polifásicos, em que o sinal recebido r(nT) passa por N filtros derivadores até
determinar o tempo ideal de amostragem [11][12].
19
Figura 7 – Diagrama de blocos do PFB para determinação do tempo ideal de amostragem.
Fonte: Adaptado de [16].
A partir deste conjunto de filtros, no qual um destes está no tempo ideal de amostragem,
ou no tempo mais próximo do ideal, será utilizado um controle de loop de segunda ordem para
determinar com precisão qual dos N filtros é o correto. O controle de loop inicia em um dos
filtros e calcula o sinal de erro da saída, isto será feito até ser encontrado um sinal de erro mais
próximo ou igual a 0. Assim, o tempo ideal para amostragem será determinado corretamente
[11] [12].
O algoritmo PFB é utilizado na simulação de uma cadeia de recepção digital para
sincronismo de tempo, mostrada no capítulo 4 deste trabalho. Mais detalhes sobre este
algoritmo pode ser visualizado na monografia do autor Elder Monteiro da Silva [12].
CAPÍTULO 3 – SOLUÇÕES CLÁSSICAS PARA SINCRONISMO DE FASE
Este capítulo tem como principal referência o Capítulo 10 do livro Software Receiver
Design [13]. Trata-se de discussões e métodos que podem ser utilizados para estimar a fase e a
frequência da portadora, assim como resolver o problema do ganho no receptor. Esse processo
de estimação é conhecido como Carrier Recovery (em português, recuperação de portadora).
Normalmente, o transmissor e o receptor concordam em usar uma frequência particular
para a portadora e, num sistema ideal, a frequência da portadora do sinal transmitido poderia
ser exatamente conhecida pelo receptor. Porém, numa transmissão real, mesmo utilizando
osciladores caros e precisos na cadeia de recepção, estes podem se afastar da frequência
desejada ao longo do tempo, tornando os osciladores baratos uma opção de economia para os
20
projetistas. Assim, é necessário que haja métodos para alinhar a frequência do oscilador no
transmissor com o receptor.
Já que o objetivo é achar a frequência e a fase do sinal, uma das ferramentas mais
tradicionais para esta solução é a Transformada Rápida de Fourier (FFT). A seção 3.1 mostra
como isolar uma senoide, que é o dobro da frequência da portadora, aplicando o método
quadrático e a filtragem no sinal recebido. Tanto a frequência quanto a fase da senoide, assim
como a portadora, podem ser facilmente encontradas aplicando a FFT, entretanto esse método
não é tão utilizado porque exige um alto custo computacional.
As seções seguintes apresentam estratégias para substituir a FFT por um elemento de
adaptação que consiga atingir seu valor ideal quando a fase de uma portadora estimada seja
igual à fase da portadora atual. Movendo as estimativas no sentido do gradiente de uma função
custo adequada, o elemento pode recursivamente aprimorar o valor correto. Supondo que a
frequência seja conhecida, existem vários métodos de estimar a fase desconhecida da portadora.
Um dos métodos, ilustrado na seção 3.2, aplica o quadrado da diferença entre o sinal recebido e
a senoide gerada pelo oscilador local. Outro método bem conhecido, que será discutido com
detalhe, é o Phase-Locked Loop (PLL) e por fim, o Costas Loop, que é o objetivo central deste
trabalho. Esses métodos são derivados a partir de uma função custo adequada, podendo ser
entendidos analisando a superfície de erro dos mesmos. Para uma melhor análise de
desempenho, todos os métodos foram simulados em MATLAB.
3.1 – ESTIMAÇÃO DE FASE E FREQUÊNCIA VIA FFT
Numa cadeia de transmissão, o sinal recebido geralmente consiste de uma mensagem
m(kT), modulada por uma portadora (em que k é a amostra e T é o período de amostragem do
sinal). No caso mais simples, quando é usada uma modulação AM com a portadora (AM DSB)
para transmitir a mensagem, torna-se muito fácil recuperar a portadora e sua fase. Porém,
visando uma economia de potência no sistema, em algumas situações, a informação é
transmitida com a portadora suprimida (AM DSB-SC), exigindo uma maior complexidade na
implementação do receptor.
Para analisar o problema de recuperação de portadora, o código pulrecsig.m ilustrado na
figura 8 gera dois sinais recebidos diferentes: o primeiro sinal é uma onda AM DSB e o outro
sinal é uma onda AM DSB-SC. A fase e a frequência de ambos os sinais podem ser
recuperadas via FFT, embora no esquema com a portadora suprimida seja necessário um
processamento adicional, antes que a FFT seja aplicada.
21
Antes de gerar os dois sinais diferentes, o código pulrecsig.m cria uma formatação de
pulso do tipo PAM, usa a janela hamming para criação da forma de pulso do sinal, atribuindo
um fator de sobreamostragem igual a 20 e considerando 10000 símbolos a serem utilizados na
modelagem do sinal. Nas figuras 9 e 10 são apresentados os resultados para os dois sinais AM
recuperados através da FFT, considerando que o sinal está modulado na frequência de 1 kHz e
em fase -1.
Figura 8: Código pulrecsig.m cria o formato de pulso e gera a FFT dos sinais.
Fonte: Adaptado de Johnson et al., 2011.
Figura 9: Espectro de magnitude do sinal recebido de um sistema AM DSB (com a portadora).
Fonte: O próprio autor.
22
Figura 10: Espectro de magnitude do sinal recebido de um sistema AM DSB-SC (com supressão da
portadora).
Fonte: Adaptado de Johnson et al., 2011.
Como pode ser visto na figura 10, na recuperação do sinal com a portadora suprimida, a
portadora não fica claramente visível e observa-se uma perda na amplitude do sinal, além de
que a fase do sinal também não é recuperada. Assim, é necessário que haja uma maneira de
processar o sinal recebido para recuperar com fidelidade os parâmetros da portadora.
Um esquema de processamento utiliza o método quadrático, seguido por um filtro
passa-banda, como ilustrado na figura 11. Quando o sinal recebido r(t) consiste num sinal de
dados modulado por pulso s(t) multiplicado pela portadora cos(2πfct+ϕ), a saída do bloco é
pode ser mostrado como na equação a seguir:
(3.1)
A equação 3.1 pode ser reescrita usando a identidade 2cos²(x) = 1+cos(2x) gerando o
seguinte resultado:
Reescrevendo s²(t) como a soma de valores médios do sinal e a variação sobre esses
valores médios, tem-se:
Assim,
.
Um filtro passa-banda estreita centrado em 2fc preserva os termos do cosseno e suprime
as componentes DC. Com isso, a saída do filtro passa-banda é aproximadamente:
23
(3.2)
Em que Ψ é o atraso de fase adicionado pelo filtro BPF na frequência 2fc. Uma vez que
Ψ é conhecido, rp(t) pode ser utilizado para encontrar a frequência e a fase da portadora. O
componente primário em rp(t) é o dobro da frequência da portadora e a fase é o dobro da fase
desconhecida original, assim é necessário levar em consideração o parâmetro Ψ.
Figura 11: Esquema de pré-processamento utilizando o método de quadratura e filtro BPF.
Fonte: Adaptado de Johnson et al., 2011.
O código ilustrado na figura 12 mostra como é realizado o pré-processamento do sinal,
considerando os parâmetros iniciais do código pulrecsig.m, com o objetivo de resolver o
problema ocasionado na recuperação do sinal com a portadora suprimida. A figura 13 mostra a
recuperação do sinal com o dobro da frequência inicial.
Figura 12: Código de pré-processamento utilizando o método de quadratura e filtro BPF.
Fonte: Adaptado de Johnson et al., 2011.
24
Figura 13: Espectro da magnitude do sinal recuperado com o dobro da frequência inicial.
Fonte: O próprio autor.
Neste caso, tanto a frequência como a fase é recuperada com o dobro dos valores
iniciais de fc e phoff, embora possa haver uma ambiguidade em π (como irá ocorrer em
qualquer método de estimação de fase). A tabela 3.1 mostra os valores de fases que foram
estimados por cada método utilizado, considerado que a fase da portadora foi de phoff = -1.0.
Nota-se que o Método de Quadratura e o AM DSB são os métodos que mais se aproximam da
fase exata, assim como também obtiveram os melhores ganhos nos espectros de magnitudes.
Tabela 3.1 – Estimação de fase gerada por cada método via FFT.
Fonte: O próprio autor.
Este método utilizado para resolver o problema não é comum, principalmente por causa
da complexidade numérica. A maioria dos receptores práticos usa algum tipo de elemento de
adaptação para localizar a portadora de forma iterativa, e assim controlar a fase e a frequência
da mesma.
3.2 – SQUARED DIFFERENCE LOOP
O problema de estimação de fase é determinar a fase da portadora e de seguir as
alterações em usando apenas o sinal recebido. A frequência fc da portadora é assumida
conhecida, embora em algumas situações esta também tenha de ser estimada. O sinal recebido
pode ser processado para gerar um sinal que mostra a informação de fase, criando uma senoide
25
com o dobro da frequência e fase da portadora demodulada. Isso pode ser demonstrado pela
equação a seguir:
(3.3)
A forma de rp(t) implica que existe uma ambiguidade na fase , que pode ser
substituída por para qualquer inteiro n, sem ocorrer mudança de valor na equação (3.3).
O método de estimação via Squared Difference Loop (em português, Diferença dos Quadrados)
tem como objetivo minimizar a diferença das médias quadráticas entre o sinal rp(t) e a senoide
gerada no VCO, usando um estimador de fase que é representado pela seguinte função custo:
(3.4)
Procura-se minimizar o resultado pela escolha de Ɵ, em que é o valor de
amostrado no tempo , e a frequência do oscilador presume ser igual a frequência da
portadora ( f0 = fc).
Este método faz sentido, porque se Ɵ pudesse ser encontrado de modo que Ɵ =
, então o valor da função custo seria igual zero (que é o resultado ideal). Quando
, então , e, consequentemente, JSD >0.
Portanto, a equação custo (3.4) é minimizada quando Ɵ identifica corretamente o deslocamento
de fase, módulo da ambiguidade inevitável de π.
Um dos métodos mais utilizados para estimação de fase é analisado através do gradiente
descendente, que busca o gradiente da função JSD, que conduz ao algoritmo apresentado abaixo.
O parâmetro µ é adimensional e representa a quantidade de passos no qual o gradiente é
executado para obter o valor mais próximo do nulo. Por exemplo, quanto menor o valor de µ,
mais passos serão realizados para encontrar o valor ideal, contudo o resultado final será mais
preciso. Já quando o valor de µ é maior, menos passos serão realizados para encontrar o valor,
exigindo menos processamento do sistema, porém o resultado poderá não ser tão preciso.
Resolvendo a derivada da função custo (3.4) em relação a Ɵ, temos:
.
Substituindo este resultado em (3.4) e considerando que Ɵ = Ɵ[k], temos que:
26
Esta função custo é implementada no código pllsd.m ilustrado na figura 14, para um
deslocamento de fase de phoff = - 0.8 (este valor corresponde a fase da função (3.3), embora
este valor seja desconhecido para o algoritmo). Na figura 15 é mostrado o resultado de
convergência do algoritmo para a fase correta.
Figura 14: Código de implementação do algoritmo SD.
Fonte: Adaptado de Johnson et al., 2011.
Figura 15: Resultado do algoritmo SD convergindo o deslocamento de fase correto (neste caso, -0.8).
Fonte: O próprio autor.
A função custo de JSD(Ɵ) fornece uma declaração matemática que possui um elemento
de rastreamento de fase adaptativa. O método é definido pelo algoritmo (3.7) e por simulações
como demonstrada no código pllsd.m.
27
Uma das maneiras de entender os elementos adaptativos é analisando a superfície de
erro da função custo. Mas não é tão simples, uma vez que JSD (Ɵ) depende da frequência f0, do
tempo kTS, da fase desconhecida e do valor de Ɵ estimado. Reconhecendo que o operador de
média atua como um tipo de filtro passa-baixa (LPF), permite considerar uma simplificação
considerável de JSD (Ɵ). Reescrita da seguinte forma:
Substituindo rp(t) como descrito na equação (3.3) e assumindo que f0 = fc, isso pode ser
reescrito como:
Resolvendo a operação quadrática, tem-se:
Aplicando as identidades trigonométricas para o quadrado e a soma dos cossenos, tem-se:
Sabendo que o LPF é linear, então:
Assumindo que a frequência de corte é bem abaixo de 4f0, tem-se a seguinte superfície de erro
para JSD:
A função (3.9) é plotada no primeiro gráfico da figura 16, para = -0.8. O algoritmo
(3.7) é inicializado com [0] em algum ponto da superfície da onda senoidal. A cada iteração
do algoritmo, ele se move em declive. Assim, a função vai atingir um dos níveis mínimos nas
proximidades que ocorrem em Ɵ = - 0.8 para valores de n inteiros.
28
3.3 – PHASE-LOCKED LOOP
Considerado um dos melhores métodos de rastreamento de fase, o Phase-Locked Loop
(que algumas bibliografias traduzem por Elo Travado em Fase, ou PLL [14]) pode ser derivado
como um elemento de adaptação ascendente do gradiente de uma função custo simples. A ideia
central é modular o sinal recebido rp(t) para o nível DC, usando a frequência e fase conhecida:
2f0 e (2Ɵ + Ψ). Depois realizar a filtragem para remover as componentes de alta frequência. O
valor de Ɵ que maximiza a componente DC é a mesma da fase do sinal rp(t).
Matematicamente, representada por:
(
Usando a definição de rp(t) mostrado em (3.3), aplicando a relação do produto dos
cossenos, assumindo que a frequência de corte do filtro passa-baixa é bem abaixa de 4f0 e
considerando que f0 = fc, temos que:
( (
{ + cos( }
{ +
cos( }
Esta função tem características semelhantes a JSD(Ɵ), exceto para uma constante DC. A
mudança de sinal implica que, enquanto JSD(Ɵ), precisa ser minimizado para encontrar a
resposta correta, o JSD(Ɵ), precisa ser maximizado. A diferença substancial entre os métodos
SD e PLL está na maneira que os sinais necessários no algoritmo são extraídos.
A diferença entre os algoritmos SD e PLL é ilustrada nas figuras 16 e 17. O PLL exige
de um oscilador e um bloco adicional a menos que o SD, uma vez que as funções custos dos
algoritmos são eficazmente as mesmas, obtendo desempenhos equivalentes.
Figura 16: Esquema de funcionamento do algoritmo SD.
Fonte: Adaptado de Johnson et al., 2011.
29
Figura 17: Esquema de funcionamento do algoritmo PLL.
Fonte: Adaptado de Johnson et al., 2011.
Assumindo um pequeno passo, a derivada de JPLL (Ɵ), com Ɵ no tempo k, pode ser
aproximada usando:
Assim, o elemento de adaptação que vai estimar a fase é:
O algoritmo que realiza (3.12) é mostrado na figura 18 através de diagrama de blocos.
Observa-se que a derivada do sinal é preservada na atualização, o que indica que o algoritmo
está à procura de um máximo de superfície de erro, em vez de um mínimo.
Assumindo que fc é a frequência do transmissor e f0 é a frequência assumida no receptor,
o código pllconverge.m, ilustrado na figura 18, simula a equação custo descrita em (3.12).
Observe-se que o filtro firpm cria um h com a fase zero na frequência central e assim, o
deslocamento Ψ é definido como zero. Na figura 19 é mostrado o resultado simulado.
30
Figura 18: Código pllconverge.m que simula o método de estimação de fase PLL.
Fonte: Adaptado de Johnson et al., 2011.
Figura 19: Resultado do algoritmo PLL convergindo para o valor de fase correto.
Fonte: O próprio autor.
3.4 – COSTAS LOOP
Os algoritmos de PLL e SD são duas formas de sincronização de fase no receptor e na
fase no transmissor. Ambos requerem que o sinal recebido seja pré-processado (por exemplo,
por uma quadratura não-linear e um BPF), a fim de extrair uma nova versão da portadora,
embora a duas vezes a frequência e a fase.
31
Uma abordagem alternativa opera diretamente sobre o sinal recebido r(kTs) =
s(kTs)cos(2πf0kTS+ϕ), invertendo a ordem do processamento: primeiro modulando para DC, em
seguida, utilizando uma filtragem passa-baixa e, finalmente, aplicando a quadratura. Esta
inversão de operações conduz a seguinte função custo:
O resultado deste algoritmo é chamado Costas Loop. Por causa da maneira em que a
não linearidade entra em JC(Ɵ), ele pode funcionar sem o pré-processamento do sinal recebido.
Para ver como isso funciona, suponha que fc = f0 e substitua r(kTS) na equação anterior,
resultando em:
supondo que o corte do LPF é maior do que a largura de banda absoluta de s(kTS), e seguindo a
mesma lógica descrita em (3.11), mas com , em vez de 2 , Ɵ no lugar de 2Ɵ e 2πf0kTs
substituindo 4πf0kTs, chega-se na sequinte equação:
Substituindo (3.14) em (3.13), obtem-se:
Sendo s²avg o valor médio quadrático da sequência s(kTs). Assim, JC(Ɵ) é proporcional a
cos²( – Ɵ). Esse comportamento da função é mostrado (para um offset de fase “desconhecido”
de ϕ=0,8) na parte inferior da figura x. Este algoritmo atinge um máximo quando a estimativa
de =Ɵ. Outra máxima ocorre em +nπ para n inteiro. De fato, exceto para o valor da função
custo, este resultado é o mesmo para o JPLL porque cos²( -Ɵ)= ½ (1+cos( -2Ɵ)).
A função (3.9) é plotada no primeiro gráfico da figura 20, também para = -0.8.
Assim, o gráfico abaixo mostra que o algoritmo pode localizar com sucesso a fase
desconhecida, supondo que o sinal processado tenha a forma de
32
Figura 20: Gráficos da superfície de erro dos algoritmos de rastreamento de fase SD (JSD), PLL (JPLL) e
Costas Loop (JC). Observa-se que todos os métodos tem mínima (ou máxima) na fase desejada (nesse
caso, em-0.8) mais deslocamentos em n .
Fonte: Adaptado de Johnson et al., 2011.
O costas Loop pode ser implementado como um padrão de elemento adaptativo. A
derivada de Jc(θ) é aproximada, trocando a ordem da diferenciação e o cálculo da média,
aplicando a regra da cadeia, e depois trocando a derivada com o LPF. Então, dJc(θ)/dθ pode ser
aproximada como:
Ɵ
Ɵ
Ɵ Ɵ
Ɵ
Ɵ
Ɵ
Assim, uma versão implementável do Costas Loop pode ser construída como (para θ = θ[k]):
Ɵ Ɵ Ɵ
Ɵ
Ɵ Ɵ Ɵ
Na Figura 21 é representado um diagrama de blocos do Costas Loop. Basicamente,
existem dois passos: o caminho superior, modulado por um cosseno e, em seguida, a passagem
33
por filtros passa-baixas para criar ½LPF{s(kTs)}cos( – Ɵ); e o caminho inferior, modulado
por uma onda senoidal que depois, pela passagem dos filtros LPFs, gera o resultado –
s(kTs)sin( -Ɵ). Estes se combinam para formar uma equação atualizada, a qual está integrada
para formar uma nova estimativa de fase. A estimativa mais recente é realimentada para os
osciladores. Esse sinal que é realimentado nos osciladores é considerado um sinal de erro. Com
isso, um sinal de erro negativo diminui a frequência do oscilador, enquanto um erro positivo
incrementa a frequência no VCO até um momento que o erro seja igual 0.
Figura 21 - O Costas Loop é um algoritmo de rastreamento de fase baseado no
desempenho da função custo Jc. A entrada do sinal não precisa ser pré-processada (como é
requerida no PLL).
Fonte: Adaptado de Johnson et al., 2011.
Suponhamos que um sinal transmitido r, do tipo 4-PAM, é criado em pulrecsig.m com
fc = 1000 Hz. O método de rastreamento de fase Costas Loop pode ser implementado da
mesma forma que a PLL é implementada, como pode ser visto no código costasloop.m,
demonstrado na figura 22 e no resultado obtido, mostrado na figura 23.
34
Figura 22: Código costasloop.m simulado com os dados de entrada de pulrecsig.m.
Fonte: Adaptado de Johnson et al., 2011.
Figura 23: Resultado do algoritmo Costas Loop convergindo para o deslocamento de fase correto.
Fonte: O próprio autor.
35
3.5 – COMPARAÇÃO DE DESEMPENHO DOS ALGORITMOS
Para comparar o desempenho dos algoritmos de estimação de fase descritos, foram
analisados dois parâmetros: velocidade de convergência para o valor de fase correto e o
desempenho dos mesmos na presença de ruído. Os resultados são apresentados nas figuras 24 a
29, assumindo fase de -0.8, com 50 interações de valores diferentes de Ɵ.
Figura 24: Algoritmo SD convergindo para -0.8 e para valores múltiplos de -0.8+nπ.
Fonte: O próprio autor.
Figura 25: Algoritmo PLL convergindo para -0.8 e para valores múltiplos de π.
Fonte: O próprio autor.
36
Figura 26: As estimativas feitas pelo algoritmo Costas Loop convergem para -0.8 e -0.8±nπ. Estes
pontos estacionários ocorrem em todos os máximos de superfície de erro.
Fonte: O próprio autor.
Com base nos resultados acima, percebe-se que os algoritmos Squared Difference Loop
e PLL têm desempenhos equivalentes. Ambos convergem rapidamente para a fase desejada (o
algoritmo SD apresenta uma leve vantagem em relação ao PLL). Por outro lado, o algoritmo
Costas Loop apresenta uma convergência lenta, comparado com os outros dois métodos. Isso
ocorre devido a maior necessidade de processamento que este algoritmo exige, utilizando um
número maior de filtros em relação aos demais.
Agora, analisando o desempenho dos algoritmos na presença de ruído, foram
adicionados os seguintes parâmetros para cada método:
mu = 0.01; (parâmetro de adaptação igual para todos)
rp = cos(4*pi*f0*t + 2*phoff) + randn(1,lenth(t)); (ruído)
Assim, foram obtidos os seguintes resultados:
37
Figura 27: Algoritmo SD com ruído.
Fonte: O próprio autor.
Figura 28: Algoritmo PLL com ruído.
Fonte: O próprio autor.
38
Figura 29: Algoritmo Costas Loop com ruído.
Fonte: O próprio autor.
Observa-se que o algoritmo Costas Loop para algumas aplicações é considerado uma
solução melhor do que o PLL padrão e os outros métodos, pois apresenta ser menos susceptível
a presença de ruído.
Outro fator importante no sistema de transmissão é o sincronismo de frequência. Um
pequeno offset de frequência pode comprometer totalmente a recepção do sinal. Para este
cenário, o algoritmo Costas Loop também mostra vantagem em relação aos outros métodos de
estimação. Quando a frequência não é exatamente conhecida, a estimativa de fase do Costas
Loop tenta adivinhar. As figuras 30 e 31 mostram uma simulação, em que foi considerada a
frequência da portadora fc = 1000 Hz, enquanto que a frequência assumida no receptor foi de f0
= 1000.1 Hz. Comparando o algoritmo Costas Loop com o PLL, foram obtidos os seguintes
resultados:
39
Figura 30: Algoritmo PLL com offset de frequência.
Fonte: O próprio autor.
Figura 31: Algoritmo Costas Loop com offset de frequência.
Fonte: O próprio autor.
É nítido o quanto um offset de frequência prejudica os algoritmos na estimação da fase.
Porém, comparando os dois métodos acima, percebe-se uma leve diferença no algoritmo Costas
Loop. O PLL apresenta uma divergência linear na fase, enquanto o Costas Loop tenta estimar a
fase em alguns momentos de tempo.
40
CAPÍTULO 4 – COSTAS LOOP: SOLUÇÃO PARA SINCRONISMO DE FASE E
FREQUÊNCIA
Neste capítulo são apresentadas as soluções para os problemas relacionados ao canal
sem fio e limitado em banda. No capítulo anterior, os métodos de estimação de fase foram
comparados através da velocidade de convergência e a imunidade dos algoritmos ao ruído
AWGN, usando o MATLAB como ferramenta de simulação. Agora, será analisado o
comportamento de uma modulação QPSK para um canal com ruído, multipercurso, ISI
(Interferência Intersimbólica) e offsets (deslocamentos) de tempo, fase e frequência, além de ser
apresentando os possíveis métodos para solucionar estes problemas, usando a plataforma GNU
Radio.
Os resultados apresentados nas seções a seguir foram realizados com base na
apresentação MPSK Tutorial [15], feita pelo autor Tom Rondeau, um dos principais
desenvolvedores do GNU Radio. Mais detalhes sobre as configurações de cada bloco de
simulação são descritos no Anexo A deste trabalho, em formato de hands-on.
4.1 – COMPORTAMENTO DE UM SINAL COSSENOIDAL COM RUÍDO
Este primeiro experimento ilustra o comportamento de um sinal cossenoidal na presença
de uma fonte de ruído. A onda propaga numa frequência de 1 kHz com uma amplitude de 1
Volt, enquanto a fonte de ruído pode operar numa amplitude entre 0 e 1 Volt, valores que
podem ser alterados durante o tempo de execução do experimento. A figura 32 mostra a área
de trabalho no GNU Radio (flowgraph) que foi construída o experimento.
Figura 32: Ambiente de trabalho do GNU Radio para demonstrar o comportamento de um sinal
cossenoidal na presença de uma fonte de ruído.
Fonte: O próprio autor.
41
Os resultados foram analisados com o sinal sem a presença de ruído (amplitude igual 0)
e com a amplitude máxima do ruído (igual a 1), respectivamente, visualizados no domínio do
tempo, da frequência e através de um espectrograma, conforme são ilustrados nas figuras 33 e
34.
Figura 33: Sinal sem a presença de ruído (amplitude do ruído igual a 0).
Fonte: O próprio autor.
Figura 34: Sinal com ruído (amplitude do ruído igual a 1).
Fonte: O próprio autor.
42
Observa-se na figura 33 que a componente de frequência está visivel em 1 kHz, assim
como o sinal no domínio do tempo se comporta de maneira adequada, caracterizando uma onda
cossenoidal. Em contra partida, na figura 34, com a presença do ruído, percebe-se o sinal
distorcido tanto no domínio do tempo quanto da frequência, e o espectrograma apresenta uma
coloração mais escura, caracterizando o aumento da amplitude do ruído (aumento de
temperatura).
4.2 – MODULAÇÃO QPSK E CARACTERÍSTICAS DO CANAL
Neste experimento, a mensagem é transmitida através de uma fonte de bits com 1000
amostras, que é modulada pelo bloco PSK Mod e posteriormente enviado pelo canal. O bloco
está configurado para implementar a função de uma modulador QPSK (Quadrature Phase Shift
Keying). A modulação QPSK é uma técnica de modulação derivada do PSK, porém, neste caso,
são utilizados parâmetros de fase e quadratura da onda portadora para modular o sinal da
informação, transmitindo 2 bits/símbolos e podendo assumir 4 valores de fase.
No bloco Channel Model são simulados parâmetros de um canal com ruído, problema
de sincronismo de tempo, fase e frequência. Os resultados são visualizados através do diagrama
de constelação, do sinal no domínio do tempo e da frequência. A figura 35 mostra como foi
montado este sistema e o resultado é apresentado na figura 36.
Figura 35: Flowgraph da cadeia de transmissão com o modulador QPSK e a presença do canal.
Fonte: O próprio autor.
43
Figura 36: Sinal QPSK no domínio do tempo, da frequência e através do diagrama de constelação.
Fonte: O próprio autor.
Notam-se os efeitos do canal no comportamento do sinal tanto na constelação, como no
domínio do tempo e da frequência. A constelação encontra-se espelhadas entre as regiões de
decisão, apresentando características de problemas ocasionados pelo processo de formatação de
pulso do modulador, provocando ISI e falta de sincronismo de tempo.
4.2 – RECUPERAÇÃO DO SINCRONISMO DE TEMPO USANDO O BANCO DE
FILTROS POLIFÁSICOS
Para resolver o problema de sincronismo de tempo, foi adicionado o bloco Poliyphase
Clock Sync. Este bloco resolve o problema do sincronismo de tempo, aplicando a técnica de
PFB (Banco de Filtros Polifásicos) e a operação de filtro casado.
Como a transmissão é feita através de bits, será analisado a constelação antes e depois
de usar o PFB, dispensando a visualização do sistema no domínio do tempo e da frequência.
Observe na figura 37 como foi construída a área de trabalho para este cenário. A figura 38
apresenta o resultado da constelação antes e depois do PFB e a figura 39 ilustra uma ocorrência
de offset de tempo para testar a eficiência do algoritmo.
44
Figura 37: Flowgraph do sistema com a técnica de recuperação de clock.
Fonte: O próprio autor.
Figura 38: Resultado da constelação antes (gráfico à esquerda) e depois (gráfico à direita) do uso do
PFB.
Fonte: O próprio autor.
45
Figura 39: Resultado da constelação antes e depois do uso do PFB com offset de tempo de 1,000900.
Fonte: O próprio autor.
Veja na figura 39 que mesmo aumentando o offset de tempo para o valor máximo do
range, consegue-se recuperar o tempo bit da mensagem. Entretanto, nas figuras 40 e 42 são
mostrados dois cenários que só a técnica de PFB não é suficiente para resolver, são eles: offset
de frequência e problema de ISI.
Para testar o desempenho da cadeia de recepção em situações que possam ocorrer offset
de frequência (por exemplo, em canais com múltiplos percursos e efeito doppler), foi atribuído
um offset de 1x10-5
Hz na frequência do sinal. Observa-se na figura 40, que com o offset de
frequência, a constelação entra em rotação, ocorrendo a perda de sincronismo de fase do sinal.
46
Figura 40: Resultado do antes e depois do uso do PFB com offset de frequência de 1x10-5
Hz.
Fonte: O próprio autor.
Outro cenário é o problema da ISI, que pode ser provocado pela mudança no parâmetro
Excess BW do bloco PSK Mod. Nas configurações iniciais, é atribuído o valor de 0.35 neste
parâmetro, depois alterado para 0.1. Este parâmetro corresponde ao fator de roll-off do pulso de
formatação do transmissor e refere-se à banda adicional que a comunicação usa acima do
mínimo teórico de Nyquist: metade da taxa de símbolos.
Portanto, no caso inicial, 0.35 significa 35% a mais que o mínimo teórico proposto por
Nyquist (taxa de símbolo/2). A partir do momento que este parâmetro é reduzido para 10%,
haverá uma redução na ocupação da banda que causa, no domínio do tempo, uma atenuação
nas franjas laterais do pulso que carregam cada símbolo. Com isso, qualquer deslocamento no
clock do receptor poderá fazer com que o pulso seja amostrado num instante em que pulsos
vizinhos ainda estarão contribuindo com ISI significativa. A figura 41 mostra as configurações
do bloco PSK Mod e a alteração que foi realizada no parâmetro Excess BW.
47
Figura 41: Configuração do bloco PSK Mod e alteração do parâmetro Excess BW.
Fonte: O próprio autor.
Com o problema de ISI a constelação sofre espalhamento de bits nas regiões de decisão,
causando uma alta taxa de erro de bit (BER). Observe na figura 42 como ficou a constelação
depois da diminuição do fator de roll-off para 0.1, mesmo com o uso do PFB.
Figura 42: Constelação após alteração do parâmetro Excess BW para 0.1.
Fonte: O próprio autor.
48
4.3 – POSSÍVEL SOLUÇÃO PARA O PROBLEMA DE ISI: EQUALIZAÇÃO
Mantendo o fator de roll-off igual 0.1, o problema da ISI é solucionado usando o bloco
CMA Equalizer. Este bloco desempenha a função de um equalizador cego, que tem o objetivo
de resolver o problema de ISI no sinal recebido. A figura 43 mostra como ficou o flowgraph
com o acréscimo do bloco e a figura 44 apresenta o resultado gerado.
Figura 43: Cadeia de recepção com o bloco CMA Equalizer para resolver o problema de ISI.
Fonte: O próprio autor.
Figura 44: Resultado do decodificador com uso do bloco CMA Equalizer (à direita da figura) para um
fator de roll-off igual a 0.1.
Fonte: O próprio autor.
49
Portanto, foi comprovado que o equalizador, de fato, resolve o problema de ISI do sinal
recebido. Agora, na mesma simulação, atribuindo o mesmo offset de 1x10-5
Hz na frequência do
sinal, é observado que a constelação perde totalmente o sincronismo de fase, como pode ser
visto na figura 45.
Figura 45: Resultado do decodificador com uso do CMA Equalizer para um offset de frequência de
1x10-5
Hz.
Fonte: O próprio autor.
4.4 – POSSÍVEL SOLUÇÃO PARA O PROBLEMA DE SINCRONISMO DE FASE E
FREQUÊNCIA: ALGORITMO COSTAS LOOP
Para resolver este problema de sincronismo de fase gerado pelo offset de frequência, foi
utilizado um dos métodos mais eficazes para realizar sincronismo de fase e frequência, que é o
algoritmo Costas Loop. Com isso, foi adicionado o bloco Costas Loop no ambiente de trabalho
do GNU Radio e interligado na saída do bloco CMA Equalizer, conforme é ilustrado na figura
46.
50
Figura 46: Resultado da Cadeia de Transmissão/Recepção final com o uso do algoritmo de estimação
de fase Costas Loop.
Fonte: O próprio autor.
Os resultados apresentados a seguir referem-se às constelações na saída do bloco CMA
Equalizer (à esquerda dos resultados) e na saída do bloco Costas Loop (à direita). Neste
cenário, foi atribuído um offset de frequência de 0.01 Hz e observado, conforme mostrado na
figura 47, que o algoritmo Costas Loop consegue recuperar a fase, enquanto a constelação na
saída do Equalizador entra em rotação, perdendo totalmente o sincronismo de fase.
Figura 47: Comparação entre o CMA Equalizer e o algoritmo Costas Loop para um offset de
frequência de 0.01 Hz.
Fonte: O próprio autor.
51
Além de conseguir recuperar a fase em situações com offsets de frequência (para um
desvio de até 0,01 Hz), o algoritmo Costas Loop também apresenta boa imunidade ao ruído,
conforme foi demonstrado no item 3.5 do capítulo 3. Para comprovar esta vantagem do
algoritmo, usando o ambiente de simulação do GNU Radio, a amplitude do ruído foi aumentada
para 0.24V e o resultado gerado é ilustrado na figura 48.
Figura 48: Comparação entre o CMA Equalizer e o algoritmo Costas Loop no canal com ruído
AWGN.
Fonte: O próprio autor.
Apesar da taxa de erro de bit ter aumentado na proporção da amplitude do ruído, a
constelação referente à saída do algoritmo Costas Loop manteve a fase travada, enquanto a
constelação da saída do Equalizador sofreu rotação, perdendo o sincronismo de fase. Vale
salientar, que existem outros equalizadores que conseguem suportar a amplitude de ruído que
foi selecionada na simulação. O CMA Equalizer é um equalizador “cego”, que não tem um
parâmetro de referência (piloto) para comparar com o valor esperado. Assim, se o canal estiver
severo, o equalizador obterá um mau desempenho.
4.5 – TRANSMISSÃO/RECEPÇÃO DIGITAL DPSK USANDO O GNU RADIO E A
USRP N210:VENCENDO O CANAL SEM FIO
Os experimentos descritos nos itens 4.1 a 4.4 foram realizados via loopbacks, ou seja,
no próprio ambiente de simulação do GNU Radio. Para complementar este Trabalho Final de
Conclusão de Curso, o discente construiu uma cadeia de transmissão/recepção no GNU Radio
para trocar um arquivo de texto entre duas USRP N210 (canal sem fio e limitado em banda). A
documentação desenvolvida encontra-se no Anexo B desta monografia e poderá ser
demonstrado na prática na defesa do trabalho.
52
CAPÍTULO 5 – CONCLUSÕES E PERSPECTIVAS
Neste trabalho foram avaliados e simulados quatro métodos para solução de problemas
de sincronismo de fase, com uma maior ênfase para o algoritmo Costas Loop que se mostrou
um dos métodos mais eficazes, principalmente em cenários com a presença de ruído e offsets de
frequência.
Para problema de sincronismo de tempo, foi aplicado o método de Banco de Filtros
Polifásicos, que consiste num conjunto de filtros paralelos, cada um com uma fase diferente,
que tem por objetivo identificar o instante ideal para amostrar o símbolo. E o problema de ISI
foi resolvido utilizando a técnica de equalização.
Assim, através das ferramentas de simulação MATLAB e GNU Radio, foi possível
observar alguns dos problemas que podem ocorrer numa cadeia de transmissão/recepção
digital, assim como suas possíveis soluções.
No capítulo 1 foram definidos os objetivos específicos deste TCC, repetidos abaixo por
conveniência e com as correspondentes conclusões:
Quais os problemas inerentes aos sistemas de transmissões digitais relativos a tempo de
amostragem e fase?
Os problemas inerentes aos sistemas de transmissões digitais são a falta de
sincronismo de fase e de tempo, muitas vezes ocorrem devido a múltiplos percursos,
que podem dificultar ou até mesmo impossibilitar a recepção do sinal pelo receptor.
E esses problemas causam erros na recepção do sinal, como solucioná-los?
De acordo com os resultados deste trabalho, um método eficiente para
solucionar os problemas de distorções de fase é o algoritmo Costas Loop, que além de
ter mostrado ser um algoritmo robusto a ruído, também consegue recuperar a
informação da fase na falta de sincronismo de frequência.
O atraso de clock ocasionado tanto pelo canal e como por interferência
intersimbólica proveniente do formatador de pulso do sistema foi solucionado
utilizando os métodos de Banco de Filtros Polifásicos (PFB) e o Equalizador,
respectivamente.
Quais os principais tipos de modulações digitais? O que pode ser dito a respeito da
característica coerente e não coerente dos moduladores digitais?
As principais modulações digitais são apresentadas no capítulo 2 deste trabalho.
Dando destaque para Modulação PSK que obtém melhor desempenho, em relação às
demais modulações, nos cenários em que o canal apresenta baixa SNR.
53
Sobre a característica coerente e não coerente dos moduladores digitais, trata-se
de uma relação de compromisso. Os moduladores coerentes requerem informação de
fase e frequência da onda portadora, exige um maior grau de sofisticação em sua
implementação, porém apresentam menor probabilidade de erro em condições de baixa
SNR. Já os moduladores não coerentes, possuem uma maior facilidade de
implementação, não requerem informação de frequência e fase, entretanto não são tão
eficazes quanto os moduladores coerentes em cenários de baixa SNR.
E quanto à implementação de software de algoritmos de sincronismo de fase?
Existem diversos algoritmos que podem ser implementados de maneiras
variadas. Este trabalho apresentou os métodos de estimação de fase via FFT, SD, PLL e
Costas Loop. Este último foi apresentado tanto no ambiente GNU Radio quanto no
MATLAB.
Existe alguma ferramenta de simulação para SDR que possa servir como ambiente para
constatar a eficiência das soluções dos problemas no sistema de transmissão digital?
Este trabalho demonstrou a grande utilidade didática oferecida pela plataforma
GNU Radio na montagem de protótipos de telecomunicações em SDR. Foi possível
observar a construção e execução de um sistema de sincronização de tempo e fase numa
transmissão digital utilizando a modulação QPSK.
As perspectivas de trabalho futuros, tendo em vista o que foi desenvolvido neste TCC,
incluem as seguintes etapas:
Investigação e implementação de outras técnicas de sincronismo de fase comparada
com a técnica apresentada neste trabalho. Uma das alternativas seria a troca do bloco
Costas Loop pelo bloco PLL Ref Out na cadeia de recepção do GNU Radio que foi
utilizada neste trabalho.
Investigação e implementação de algoritmos de equalização (não somente sua
utilização, como foi feita neste trabalho);
Investigação e implementação de técnicas de codificação de fonte para aumentar a
eficiência da transmissão;
Investigação e implementação de técnicas de codificação de canal para aumentar a
confiabilidade da transmissão (minimizar a taxa de erro).
54
REFERÊNCIAS
[1] FEY, A. F. & GAUER, R. R. Fundamentos de Telecomunicações e Comunicação de Dados. ITIT
1º edição. Caxias do Sul, 2016. p. 250.
[2] Modulação ASK (Amplitude Shift Keying). Disponível em:
<http://professores.unisanta.br/isfarias/Materia/Comunicacao%20Digital/ask.pdf> Acesso em: 24 de
Novembro de 2016.
[3] MALBURG, M. M. Modulação. Universidade Federal do Rio de Janeiro, 2014. Disponível em:
<http://www.gta.ufrj.br/grad/04_2/Modulacao/> Acesso em: 20 de Novembro de 2016.
[4] NICODERM,C. T. Modulação Digital (ASK, FSK, PSK, QAM) e Taxa de Erro Bit Sinal QPSK.
Universidade do Oeste de Santa Catarina, 2013. Disponível em:
<]http://www.academia.edu/5185393/Modula%C3%A7%C3%A3o_Digital_ASK_FSK_PSK_QAM_E_Ta
xa_de_Erro_de_Bit_Sinal_QPSK> Acesso em: 08 de Dezembro de 2016.
[5] Tecnologia PLC I: Modulação. Disponível em:
<http://www.teleco.com.br/tutoriais/tutorialplcalt1/pagina_4.asp> Acesso em: 25/07/2016
[6] PSK Modulação em Fase por Chaveamento. Disponível em: <http://penta.ufrgs.br/Alvaro/psk.html>
Acesso em: 08 de Dezembro de 2016.
[7] ABRANTES, S. A. Introdução à sincronização em modulações digitais. Universidade do Porto,
2009. Disponível em: < https://repositorio-aberto.up.pt/bitstream/10216/375/2/24686.pdf> Acesso em:
09 de Dezembro de 2016.
[8] PROAKIS, J. Intersymbol Interference in Digital Communication Systems: John Wiley & Sons, Inc.,
2001.
[9] Digital Video Broadcasting. Disponível em:
<http://www.img.lx.it.pt/~fp/cav/ano2006_2007/MEEC/Trab_22/website_cav/dvbt.htm> Acesso em: 09
de Dezembro de 2016.
[10] PROAKIS, J. Intersymbol Interference in Digital Communication Systems: John Wiley & Sons, Inc.,
2001.
[11] PROAKIS J. G.; SALEHI, M. B. G. Modern Communication Systems Using MATLAB: Cengage Learning, 2012. [12] SILVA, E. M. Prototipagem de Moduladores Digitais Utilizando Plataformas de Rádio
Definido por Software. Monografia. Universidade Federal do Rio Grande do Norte, 2015.
[13] JOHNSON, C. R; SETHARE, Jr. W. & KLEIN, A. G. Software Receiver Design: Build Your Own
Digital Communication System in Five Easy Steps. Cambridge University Press, 2011. 480 p.
[14] Instituto Newton C. Braga. Como funciona um PLL (ART058). Disponível em:
<http://www.newtoncbraga.com.br/index.php/como-funciona/624-como-funciona-o-pll-art058> Acesso
em: 22/07/2016.
[15] Rondeau, T. MPSK Tutorial. 2012. Disponível em: <http://documents.tips/documents/rondeau-
mpsk-tutorial.html> Acesso em: 20/07/2016.
[16] HARRIS, F.J. & RICE, M. Multirate digital filters for symbol timing synchronization in
software defined radios. IEEE Journal on Selected Areas in Communication 19(22), 2002.
55
ANEXO A – CADEIA DE TRANSMISSÃO DIGITAL USANDO O GRC
56
Hands-on
Cadeia de Transmissão Digital usando o GRC
57
Introdução Teórica
Modulação PSK
A modulação PSK (Phase Shift Keying) é um esquema de modulação digital que tem por
finalidade transmitir dados através da alteração da fase de uma onda portadora. Por ser um esquema
de modulação com implementação simples e robusta, é muito utilizado em sistemas de comunicações
sem fio. Neste esquema de modulação associa-se cada fase a um determinado conjunto de bits, ou
seja, cada conjunto de bits representará um símbolo, como mostrado na figura 1. O caso mais simples
de modulação PSK é o BPSK (Binary Phase Shift Keying), que transmite um bit (0 ou 1) através da
mudança de fase da portadora em dois valores, 0°e 180º. A figura 2 ilustra a representação em
diagrama de constelação de um sinal BPSK. Embora seja uma modulação robusta ao ruído aditivo, a
taxa de transmissão obtida com esse esquema de modulação não é alta, já que associa-se apenas 1
bit por símbolo.
Figura 1: Bits e suas representações no sistema BPSK.
Decisão e erro
Como na modulação BPSK a informação binária é atribuída às mudanças de fase da portadora, na recepção, a decisão é feita observando-se a fase do sinal recebido. Diz-se que ocorreu erro de transmissão, quando no envio de um bit “0” o receptor decide pelo bit “1”, e vice-versa. Tal equívoco na decisão é ocasionado por interferências de diversas origens (e.g. AWGN). Assim, os sistemas de transmissão digitais têm como um dos principais parâmetros para análise de desempenho a taxa de erro, pois um serviço de transmissão digital precisa de um certo patamar de taxa de erro para garantir a qualidade de serviço apropriada.
De forma a se obter uma estimativa do comportamento do sistema são utilizados modelos matemáticos para o cálculo da probabilidade de erro, a qual é dependente do tipo de canal. Tomando como base um canal sob influência de ruído branco gaussiano (canal AWGN), podemos calcular a probabilidade de erro ao utilizar a modulação BPSK como:
sendo a energia de bit; e a densidade espectral de potência do ruído.
Figura 2: Representação em Diagrama de Constelação do BPSK.
58
Referências
[1] http://en.wikipedia.org/wiki/Phase-shift_keying#Binary_phase-shift_keying_.28BPSK.29 – Acesso
em 20/01/2014
[2] http://en.wikipedia.org/wiki/Raised-cosine_filter#Roll-off_factor – Acesso em 20/01/2014
[3] Proakis, Salehi, Bauch; Modern Communication Systems Using Matlab®
; 3ªedição; Cengage
Learning.
[4] Dayan, Rausley; Transmissão Digital, Princípios e Aplicações; 1ª edição; Editora Érica.
[5] http://www-ee.uta.edu/dip/Courses/EE4330/comparison%20of%20modulation%20methods.pdf
59
Exercício
OBJETIVO: Repetir os loopbacks realizados pelo Tom Rondeau, um dos principais
desenvolvedores do GNU Radio. Tratam-se de experimentos de uma cadeia de transmissão/recepção
digital usando modulação PKS, simulados num ambiente com a presença de ruído AWGN,
multipercurso e offsets de tempo e frequência. Com base nas características do canal, são
estabelecidos métodos mitigadores para a recuperação da fase e frequência do sinal.
1. Caso ainda não esteja aberto, inicialize o GNU Radio Companion.
a. Abra um terminal digitando CRTL+ALT+t
b. Digite: gnuradio-companion e pressione ENTER
Alternativa:
a. Clique em Dash Home
b. Digite gnuradio e clique no ícone correspondente ao GRC
2. Com o GNU RADIO COMPANION aberto, crie um novo projeto
3. Clique duas vezes no Bloco Options. Esse bloco configura alguns parâmetros gerais do
flowgraph. Mantenha o ID como top_block. Digite um título para o projeto e um autor. Selecione
Generate Options como QT GUI, Run para Autostart e Realtime Scheduling para Off. Então,
feche a janela de propriedades.
60
4. A princípio será simulado o comportamento de uma fonte de ruído adicionada a uma onda
cossenoidal, e o resultado será visualizado no domínio do tempo e da frequência. Para isso,
construa seu projeto utilizando os blocos Noise Source, Signal Source, Throttle, Add, QT GUI
Frequency Sink, QT GUI Time Sink, QT GUI Waterfall Sink e QT GUI Range. Mantenha o
valor do Sample Rate do bloco Variable em 32000, e altere em todos os blocos o campo Type
para Complex. Com isso, interligue os blocos de forma que sua área de trabalho fique similar à
figura a seguir.
5. Primeiro, configure o bloco Signal Source, atribuindo-o uma forma de onda cossenoidal
(Waveform selecionado em Cosine), com Frequência de 1000 Hz, Amplitude igual a 1 e Offset
igual a 0. Assim, o bloco deve estar com os parâmetros configurados como o da figura abaixo.
6. O bloco Noise Source deve ser configurado com Output Type selecionado para Complex, Noise
Type como Gaussian (o popular ruído AWGN), no campo da Amplitude digite noise_amp, que é
um parâmetro que será configurado pelo bloco QT GUI Range para fazer o controle da
amplitude do ruído, enquanto a simulação é executada. Por fim, atribua 0 para o parâmetro
Seed.
61
7. Como já comentado no item anterior, configure agora o bloco QT GUI Range com os seguintes
parâmetros: ID para noise_amp, Label para Noise Amplitude e Type para Float. Determine o
Default Value para 1, Start em 0, Stop igual a 1 e o step de 0.01. Para uma melhor visualização
do parâmetro de controle do QT GUI Range, selecione Widget para Counter + Slider e Minimum
Length igual a 200.
8. Para finalizar as configurações, edite os parâmetros dos blocos QT GUI Frequency Sink, QT
GUI Time Sink, QT GUI Waterfall Sink conforme às figuras abaixo. Esses blocos são
responsáveis por mostrar a onda cossenoidal no domínio da frequência, do tempo e através de
um espectrograma, respectivamente.
9. Feito isso gere o gráfico e execute-o. Os resultados das figuras a seguir representam a onda
cossenoidal para dois cenários: sem ruído (Noise Amplitude igual a 0) e com a amplitude
máxima do ruído (Noise Amplitude igual a 1).
62
10. Agora crie um novo projeto ou edite o primeiro projeto criado neste hands-on.
11. Construa (edite) este novo projeto utilizando três blocos Variable, um bloco Import, um bloco
Random Source, um bloco PSK Mod, um bloco Multiply Const, um bloco Throttle, um bloco
QT GUI Frequency Sink, QT GUI Time Sink e QT GUI Waterfall Sink. Conecte os elementos
de forma que sua área de trabalho fique igual à figura a seguir.
63
12. Feita as conexões vamos iniciar a configuração dos parâmetros de cada bloco, começando
pelos blocos Variable. Clique duas vezes no bloco cujo ID é samp_rate e altere o campo Value
para 32000. Agora abra outro bloco Variable e edite seu ID para arity e o campo Value para 4,
no último bloco Variable, edite o ID para sps e o campo Value para 4. Confira como deve ficar a
configuração dos blocos a seguir.
13. Agora no bloco Random Source, edite os campos: Output Type para Byte; Minimum para 0,
Maximum para 256, Num Samples para 1000 e a opção Repeat para Yes. Esse bloco gera uma
fonte de informação aleatória para análise, com 1000 amostras. Observe a figura abaixo.
14. Agora configure o bloco PSK Mod, responsável por realizar a modulação da mensagem em
Byte. Edite o campo Number of Constellation para arity, selecione Gray Code para No,
Differential Encoding para No e Samples/Symbol para sps. Inicialmente, atribua no campo
Excess BW o valor de 0.35 (depois será simulado por valores de 0.1 e 0.7), este parâmetro
64
representa o fator de roll-off do sistema. Por fim, selecione Off tanto no campo Verbose quanto
Log. Neste caso, a modulação utilizada será a QPSK, transmitindo 4 bits/símbolo. Veja como
deve ficar a configuração do bloco na figura a seguir.
15. Configure o bloco Multiply Const, alterando o campo IO Type para Complex, Constant para
.5+.5j e Vec Length igual a 1. Este bloco funciona como um amplificador, em que o parâmetro
Constant é multiplicado pela amplitude do sinal de entrada.
16. Por fim, edite os parâmetros dos blocos QT GUI Frequency Sink, QT GUI Time Sink, QT GUI
Constellation Sink conforme às figuras abaixo.
17. Feito isso, execute o flowgraph e observe como deve ficar os gráficos iniciais do experimento.
65
18. Agora deve ser adicionado o canal no sistema, com o intuito de simular uma situação de
transmissão real. Para isso, adicione mais um bloco Variable, um bloco Channel Model e três
blocos QT GUI Range ao flowgraph. Interligue os blocos de maneira semelhante à figura abaixo.
19. Configure o novo bloco Variable de maneira similar à figura a seguir. Este bloco é responsável
por adicionar as características de multipercurso do canal, nos quais os parâmetros configurados
no campo Value representam os taps do canal, funcionando como um filtro atenuador.
66
20. Em seguida, configure os três blocos QT GUI Range de acordo com as figuras ilustradas a
seguir. Os blocos serão configurados para controlar e adicionar a intensidade do ruído, offset de
frequência e offset de tempo, respectivamente, do canal.
21. Depois de executar os itens 19 e 20, configure o bloco Channel Model de forma que os
parâmetros iniciais do mesmo sejam preenchidos pelos ID’s atribuídos nos blocos QT GUI
Range e Variable. Assim, o campo Noise Voltage será preenchido pelo parâmetro noise_volt,
Frequency Offset pelo freq_offset, Epsilon pelo time_offset e Taps por taps. Atribua 0 para o
campo Seed e selecione No para Block Tag Propagation.
22. Depois de configurar todos os blocos descritos, gere o gráfico e execute-o. Os gráficos devem
se comportar conforme é ilustrado na figura a seguir. Observe os efeitos do canal no sinal
recebido tanto na constelação, como no domínio do tempo e da frequência. A constelação do
demodulador encontra-se espelhadas entre as regiões de decisão, apresentando características
de problemas ocasionados pelo processo de formatação de pulso do modulador, provocando ISI
e falta de sincronismo de tempo.
67
23. A partir de agora serão utilizados métodos para recuperar o tempo de bit e corrigir as distorções
de fase do sinal, assim como melhorar seu ganho. Para iniciar esse processo de recuperação do
sinal, adicione os seguintes blocos na sua área de trabalho: dois blocos Variable, um bloco QT
GUI Range, um bloco Poliyphase Clock Sync e um bloco QT GUI Constellation Sink (com
isso, desabilite ou remova os blocos QT GUI Frequency Sink e QT GUI Time Sink). Mantenha
a interligação dos blocos semelhante à figura abaixo.
24. Agora configure os blocos Variable de acordo com a ilustração das figuras a seguir. Ambos são
configurados para trabalhar em conjunto com o bloco Poliyphase Clock Sync, sendo o primeiro
bloco responsável por determinar o número de filtros derivadores e o segundo responsável por
realizar a operação do filtro casado.
68
25. Depois disso, configure o bloco QT GUI Range de acordo com a figura abaixo. Esta
configuração é feita para realizar o controle da largura de banda do sistema.
26. Agora configure o bloco Poliyphase Clock Sync com os parâmetros iguais aos editados na
figura abaixo. Este bloco resolve o problema do sincronismo de tempo, implementando o PFB
(Banco de Filtros Polifásicos) e a operação do filtro casado.
27. Para finalizar, configure os dois blocos QT GUI Constellation Sink. As figuras a seguir ilustram
a configuração do bloco antes e depois do bloco Poliyphase Clock Sync, respectivamente.
69
28. Feito isso, gere o flowgraph e execute-o. O resultado gerado deve ser similar ao da figura
abaixo. O gráfico à esquerda mostra a constelação antes do bloco Poliyphase Clock Sync e a
constelação à direita é o sinal tratado após o uso do mesmo.
29. Observe na figura seguinte, que mesmo aumentando o parâmetro do offset de tempo (Timing
Offset) para o valor máximo, consegue-se obter a recuperação do sinal.
70
30. Agora serão mostrados dois cenários nos quais o bloco Poliyphase Clock Sync não consegue
recuperar a constelação corretamente. No primeiro cenário, é a ocorrência do offset de
frequência. Veja na figura abaixo, que com um offset (deslocamento) de 1x10-5
na frequência do
sinal, a constelação entra em rotação e perde o sincronismo de fase.
31. No outro cenário, deve ser alterado o fator de roll-off que foi configurado no bloco PSK Mod.
Para isso, altere o valor do parâmetro Excess BW de 0.35 para 0.1. Esta mudança causa o efeito
de ISI no sistema. Veja abaixo como deve ficar as configurações do bloco.
71
32. Feito isso, gere e execute o flowgraph. Observe na figura a seguir que, com a ocorrência da ISI,
a constelação encontra-se espalhadas na região de decisão, dificultando extremamente a
recuperação dos bits transmitidos.
33. Mantendo as mesmas configurações do flowgraph atual, acrescente o bloco CMA Equalizer e
mais um bloco QT GUI Range. Com isso, desconecte o bloco QT GUI Constellation Sink que
estar na saída do bloco Channel Model e conecte-o na saída do Poliyphase Clock Sync. E o
outro bloco QT GUI Constellation Sink deve ser conectado na saída do bloco CMA Equalizer.
Interligue os blocos de maneira que sua área de trabalho fique igual à figura abaixo.
72
34. Antes de configurar os novos blocos adicionados, clique no bloco Variable cujo ID é taps e
altere o campo Value para os mesmos valores que foram editados no item 19. Veja como deve
ficar os valores digitados na figura abaixo.
35. Feito isso, configure o novo bloco QT GUI Range com os mesmos parâmetros ilustrados na
figura a seguir. Este bloco vai ser responsável pelo controle do ganho do Equalizador, podendo
ser alterado durante o tempo de execução.
36. Para finalizar, configure o bloco CMA Equalizer atribuindo Num. Taps igual a 11 (esse valor é
estabelecido pelo autor, com base nas características do canal), Modulus igual 1, Gain para
eq_gain (parâmetro configurado no bloco QT GUI Range para o controle do ganho) e Samples
per Symbol igual a 2. Este bloco serve para combater o problema de ISI, ocasionado no
experimento anterior. O bloco deve estar configurado conforme a figura a seguir.
73
37. Gere e execute o Flowgraph. Observe que mesmo com fator de roll-off (Excess Band)
configurado para 0.1, o equalizador consegue evitar a ISI.
38. Portanto, um dos cenários propostos foi resolvido adicionando um Equalizador na cadeia de
recepção. Agora, no mesmo gráfico em execução, gere um offset de 1x10-5
na frequência e
observe como a constelação perde totalmente o sincronismo da fase.
74
39. Para resolver este problema de sincronismo de fase gerado pelo offset de frequência, usaremos
um dos métodos mais eficazes para realizar sincronismo de fase e frequência, que é o algoritmo
Costas Loop. Assim, adicione na sua área de trabalho o bloco Costas Loop e mais um bloco QT
GUI Range. Interligue os blocos de maneira que o flowgraph fique semelhante à figura abaixo.
40. Antes de configurar os novos blocos, faça uma alteração novamente no bloco Variable cujo ID é
taps, substituindo os parâmetros de multipercurso para 1. Verifique como deve ficar o bloco.
41. Agora, configure o bloco QT GUI Range, conforme é ilustrado na figura abaixo. Este bloco
atribui os parâmetros de fase do sistema, que será controlado pelo bloco Costas Loop.
75
42. Para finalizar, configure o bloco Costas Loop, atribuindo o ID do bloco QT GUI Range
configurado no item anterior no campo Loop Bandwidth, no campo Order digite a variável arity
(configurada anteriormente em um dos blocos Variable, que representa o número 4, ou seja, o
bloco Costas Loop terá ordem 4, devido ser QPSK) e selecione No para o campo Use SNR.
Este bloco serve para estimar a fase e frequência no receptor, assim como apresenta robustez
na presença de ruído. Veja como deve ficar a configuração deste bloco na figura abaixo.
43. Gere e execute o flowgraph. A constelação à esquerda da figura abaixo representa a saída do
sinal depois do equalizador, e a constelação à direita é depois do uso do algoritmo Costas Loop.
76
44. Agora, com o gráfico em execução, atribua um offset de frequência de 0.01 e veja que o Costas
Loop ainda consegue estimar a fase. Já a constelação na saída do CMA Equalizer entra em
rotação, perdendo totalmente o sincronismo.
45. Como já mencionado no item 42, além de conseguir trabalhar com offset de frequência, o
Costas Loop também é robusto a ruído. Para comprovar a teoria, com o gráfico em execução,
selecione novamente o range Frequency Offset para 0 e aumente o range de Noise Voltage para
uma amplitude de 0.24. Observe que com um tempo de simulação, a constelação à esquerda
entra em rotação e a constelação do Costas Loop permanece travada.
46. Vale salientar, que existem outros equalizadores que conseguiria suportar a amplitude de ruído
selecionada no item anterior. O CMA Equalizer é um equalizador “cego”, que não tem um
parâmetro de referência (piloto) para comparar com o valor esperado. Assim, se o canal estiver
severo, o equalizador obterá um mau desempenho.
77
ANEXO B – TRANSMISSÃO REAL DE TEXTO USANDO O GNU RADIO
78
Hands-on
Transmissão/Recepção Digital DPSK usando
USRP N210 – Vencendo o Canal sem Fio
79
Exercício
OBJETIVO: Realizar uma transmissão/recepção real de um arquivo .txt entre duas máquinas remotas,
através de uma USRP N210, usando o esquema de modulação DPSK.
1. Caso ainda não esteja aberto, inicialize o GNU Radio Companion.
a. Abra um terminal digitando CRTL+ALT+t
b. Digite: gnuradio-companion e pressione ENTER
Alternativa:
c. Clique em Dash Home
d. Digite gnuradio e clique no ícone correspondente ao GRC
2. Com o GNU RADIO COMPANION aberto, crie um novo projeto
3. Clique duas vezes no Bloco Options. Esse bloco configura alguns parâmetros gerais do
flowgraph. Mantenha o ID como top_block. Digite um título para o projeto e um autor. Selecione
Generate Options como QT GUI, Run para Autostart e Realtime Scheduling para Off. Então,
feche a janela de propriedades.
80
4. Antes de começar a construção da cadeia de transmissão, crie um novo documento em branco
(no formato txt) na área de trabalho da sua máquina e renomeie este arquivo.
5. Feito isso, digite uma frase ou um texto que você queira transmitir e salve-o. Veja na figura a
seguir como deve ficar a interface do documento txt.
6. Com isso, construa a cadeia de transmissão utilizando os seguintes blocos: um bloco Variable,
três blocos QT GUI Range, um bloco File Source, um bloco Packet Encoder, um bloco PSK
Mod, um bloco Multiply Const, um bloco UHD: USRP Sink e um bloco QT GUI Frequency
Sink. Interligue os blocos de maneira que sua área de trabalho fique semelhante à figura abaixo.
81
7. Comece a configuração pelo bloco Variable, atribuindo-o um sample rate de 1 MHz. Veja na
figura abaixo como deve ficar a configuração do bloco.
8. Agora configure os três blocos QT GUI Range de forma que os parâmetros fiquem semelhantes
aos configurados nas figuras abaixo. Esses blocos são responsáveis por controlar a frequência
(num range de 900 a 950 MHz), o ganho (de 0 a 20 dBi) e a amplitude (0 a 1 Volts) do sinal,
respectivamente, durante a transmissão da mensagem.
9. Na sequência, configure o bloco File Source. No campo File, clique no ícone com os “três
pontos” e localize o arquivo que você salvou na área de trabalho. Depois selecione Output Type
para Byte, Repeat para Yes (esta opção permite que a mensagem seja repetida várias vezes
durante a transmissão) e atribua Vec Length igual a 1. Este bloco ler valores de dados brutos no
formato binário, a partir do arquivo especificado. As configurações do bloco devem estar
semelhantes à figura abaixo.
82
10. Configure o bloco Packet Encoder para obter o Input Type em Byte, selecione o campo
Samples/Symbol igual a 1, Bits/Symbol também igual a 1, selecione Yes no campo Pad for
USRP e Payload Length para 4000. Este bloco serve como um formatador de pulso,
empacotando os dados em bits a serem transmitidos. Seu bloco deve estar com os parâmetros
iguais à figura a seguir.
11. Agora configure o bloco PSK Mod, responsável por realizar a modulação em fase da mensagem
(neste caso, a modulação DPSK). Edite o campo Number of Constellation para 4, selecione Gray
Code e Differential Encoding para Yes e Samples/Symbol para 4. Atribua no campo Excess BW
o valor de 0.35, este parâmetro representa o fator de roll-off do sistema. Por fim, selecione Off
tanto no campo Verbose quanto Log. Veja como deve ficar a configuração do bloco na figura a
seguir.
12. No bloco Multiply Const, selecione o campo IO Type para Complex, Constant para ampl (ID de
um dos blocos QT GUI Range, responsável por controlar o ganho do sinal) e Vec Length igual a
1. Este bloco funciona como um amplificador, em que o parâmetro Constant é multiplicado pelo o
sinal de entrada.
83
13. No bloco QT GUI Frequency Sink, configure Type para Complex, Name para Espectro, FFT
Size igual 1024 e Window Type para Blackman-harris. No campo Center Frequency atribua o ID
do bloco QT GUI Range responsável pelo controle da frequência (tun_freq) e Bandwidth para
samp_rate. Configure os outros parâmetros do bloco de acordo com a ilustração da figura
abaixo.
14. Por fim, configure o bloco UHD: USRP Sink de acordo com os parâmetros ilustrados na figura a
seguir. Este bloco é responsável por enviar a mensagem para USRP.
84
15. Feito isso, conecte sua máquina a USRP e abra um terminal. Para verificar se a USRP está em
pleno funcionamento, execute o comando: uhd_usrp_probe. Verifique se o computador
identificou a USRP. Se sim, execute o flowgraph. O espectro deve estar semelhante à figura
abaixo, com a mensagem sendo transmitida numa frequência central de 910 MHz.
16. Agora, abra um novo projeto em outra máquina e construa a cadeia de recepção. Mantenha as
mesmas configurações do flowgraph anterior para o bloco Variable e os três blocos QT GUI
Range. Adicione um bloco UHD: USRP Source, um bloco PSK Demod, um bloco Packet
Decoder e um bloco File Sink. No final, sua área de trabalho deve estar igual a da figura abaixo.
85
17. Comece configurando o bloco UHD: USRP Sink de acordo com os parâmetros ilustrados na
figura a seguir. Este bloco é responsável por receber a mensagem da USRP.
18. No bloco PSK Demod, configure os seguintes parâmetros: para o campo Number of
Constellation atribua o valor 4, selecione Differential Encoding para Yes, Samples/Symbol igual a
4 e Excess BW igual a 0.35. Nos campos Frequency BW, Timing BW e Phase BW atribua o valor
6.28/100 (que corresponde a 2π/100), selecione Gray Code para Yes e Off tanto no campo
Verbose quanto Log. O bloco deve estar configurado conforme à figura a seguir.
86
19. Configure o bloco Packet Decoder atribuindo Output Type para Byte e Threshold para -1. Veja
como deve ficar a configuração na figura abaixo.
20. Para finalizar a cadeia de recepção, configure o bloco File Sink. No parâmetro File, indique o
local onde o arquivo deve ser salvo, atribuindo um nome para o arquivo que será recebido e o
seu formato (neste caso, <nome>.txt). Selecione Input Type para Byte, Vec Length para 1,
Unbuffered para Off e Append file para Overwrite. A configuração deste bloco deve ficar de
maneira semelhante à figura abaixo.
21. Feito isso, conecte a máquina a USRP e realize o teste de conectividade descrito no item 15. Se
tudo der certo, gere e execute o flowgraph. O resultado gerado deve ser igual o ilustrado na
figura a seguir.
87
22. Neste momento, a mensagem estar sendo recebida repedidas vezes e criando o arquivo no
local que foi indicado no bloco File Sink. Feche a janela de simulação e verifique o arquivo
recebido.
23. Note que a mensagem é recebida repetidas vezes, conforme mencionado e configurado.
top related