92
Módulo de Comunicações Digitais para o ISTnanosat André Massano Matias Dissertação para obtenção do Grau de Mestre em Mestrado Integrado em Engenharia Electrotécnica e de Computadores Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares Júri Presidente: Prof. Doutor João Manuel Torres Caldinhas Simões Vaz Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares Vogal: Prof. Doutor João Miguel Raposo Sanches Outubro de 2014

Módulo de Comunicações Digitais para o ISTnanosat · Resposta em frequência do filtro de coseno elevado .....30 27. Resposta ao impulso do filtro de coseno elevado ... Esquema

Embed Size (px)

Citation preview

Módulo de Comunicações Digitais para o ISTnanosat

André Massano Matias

Dissertação para obtenção do Grau de Mestre em

Mestrado Integrado em Engenharia Electrotécnica e de

Computadores

Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares

Júri

Presidente: Prof. Doutor João Manuel Torres Caldinhas Simões Vaz

Orientador: Prof. Doutor Gonçalo Nuno Gomes Tavares

Vogal: Prof. Doutor João Miguel Raposo Sanches

Outubro de 2014

i

Agradecimentos

De forma resumida, e não especificando todas as pessoas abrangidas, quero

agradecer:

Ao meu orientador, professor Gonçalo Tavares, pelo apoio nas alturas de maior

necessidade e pela confiança no meu trabalho autónomo.

Ao Luis Ferreira, pela paciência e ajuda no início deste projecto, e aos meus colegas

da sala 303 pelo ambiente saudável e propício a bons resultados.

À minha família, por sempre me terem incentivado e ajudado a ser melhor (tanto a nível

pessoal como profissional), principalmente aos meus pais, à minha avó e aos meus primos.

Aos meus amigos, sempre presentes e capazes de aliviar a pressão e elevar o ânimo,

principalmente ao Diogo Peres.

À minha colega e namorada Mariana Cavique, por ser o meu maior suporte ao longo

destes cinco anos.

ii

Abstract

Nowadays, satellite communications are widely used and there is an increasing need to

use digital communication systems implemented using software (Software-Defined Radio -

SDR).

This project consists on developing a digital communications module through the

implementation of three different full-duplex modems in a Digital Signal Processor (DSP) with

ultra-low energy consumption. The purpose of these modems is to allow the conversion

between binary information and an appropriate analog signal to be transmitted (and vice-versa)

ensuring energetic and spectral efficiency.

The three implemented modems use three different modulations: Binary Phase-Shift

Keying (BPSK), Quadrature Phase-Shift Keying (QPSK) and Gaussian Minimum-Shift Keying

(GMSK). The BPSK and QPSK modems use phase modulation whereas the GMSK modem

uses frequency modulation.

The aim of this project was to develop and test an energy efficient and reliable digital

communications module, in order to be implemented in a nanosatellite, particularly in the

ISTnanosat.

The Digital Signal Processor (DSP) used in this project is a Texas Instruments (TI)

TMS320C5505 and audio CODEC is a TLV320AIC3204, also from TI. These components are

programmed in a TI development board C5505 eZdsp using the Code Composer Studio 5

(CCS).

All implemented modems were developed using a 24 kHz sampling frequency, and the

BPSK and GMSK modems work at 6 kbps binary rate whereas the QPSK modem operates at

12 kbps.

Keywords

DSP, GMSK, ISTnanosat, Modem, Satellite, Software Defined Radio.

iii

Resumo

Hoje em dia, as comunicações via satélite são largamente utilizadas, havendo cada vez

mais a necessidade de utilizar sistemas de comunicação digitais implementados através de

software (Software Defined Radio-SDR).

Neste projecto desenvolve-se um módulo de comunicações digital, através da

implementação de três modems full-duplex num Processador Digital de Sinais (Digital Signal

Processor - DSP) de consumo energético ultra-reduzido. A função destes modems é permitir a

conversão de informação binária para um sinal analógico adequado à transmissão no meio (e

vice-versa) garantindo eficiência energética e espectral.

Os três modems implementados utilizam três modulações diferentes: Binary Phase

Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), e Gaussian Minimum Shift

Keying (GMSK). Os modems BPSK e QPSK utilizam modulação de fase, enquanto o modem

GMSK utiliza modulação em frequência.

O objectivo deste projecto é desenvolver e testar um módulo de comunicações digitais

eficiente energeticamente e com um desempenho fiável para uma implementação num

nanosatelite, particularmente no ISTnanosat.

O DSP utilizado foi o TMS320C5505 da Texas Instruments, e o CODEC audio utilizado

foi o TLV320aic3204 também da Texas Instruments. Estes componentes foram programados

numa placa de desenvolvimento eZdsp C5505 da Texas Instruments, através do ambiente de

desenvolvimento Code Composer Studio 5.

Todos os modems implementados utilizam uma frequência de amostragem de 24 kHz,

sendo que os modems BPSK e GMSK funcionam com o ritmo binário de 6 kbps e o modem

QPSK funciona com 12 kbps.

Palavras-Chave

DSP, GMSK, ISTnanosat, Modem, Satélite, Software Defined Radio.

iv

Lista de Figuras

1. CubeSat de 1U..........................................................................................................................1

2. Diagrama genérico de um modem implementado.....................................................................5

3. Placa eZdsp C5505...................................................................................................................8

4. Ambiente de Desenvolvimento CCS5.......................................................................................9

5. Modulação MSK......................................................................................................................10

6. Forma dos pulsos gaussianos para BT=0.5 ou BT=0.3..........................................................11

7. Comparação do espectro dos sinais MSK; GMSK de BT=0.5; GMSK de BT=0.3..................12

8. Modulador GMSK....................................................................................................................13

9. Desmodulador GMSK..............................................................................................................13

10. Constelação BPSK ...............................................................................................................14

11. Constelação QPSK................................................................................................................15

12. Constelações do esquema π/4-QPSK..................................................................................16

13. Saltos de fase possíveis partindo do Símbolo S1.................................................................17

14. Detector π/4-QPSK diferencial..............................................................................................17

15. Transições entre estados possíveis na solução π/4-QPSK..................................................19

16. Esquema do modulador GMSK.3..........................................................................................20

17. Modem de Spread-Spectrum................................................................................................22

19. Esquema do modem e simulação de canal...........................................................................23

20. Sistema de recuperação em banda de base.........................................................................24

21. Sistema testado na solução CDMA.......................................................................................25

22. Esquema implementado na solução da ESA........................................................................26

23. Esquema do bloco de filtragem e equalização......................................................................27

24. Esquema BPSK implementado.............................................................................................28

25. Esquema do Scrambler ........................................................................................................29

26. Resposta em frequência do filtro de coseno elevado ..........................................................30

27. Resposta ao impulso do filtro de coseno elevado digital......................................................31

v

28. Resposta em frequência do filtro de coseno elevado digital.................................................31

29. Esquema lógico do modulador BPSK...................................................................................32

30. Constelação Diagrama do desmodulador "Costas Loop".....................................................33

31. Esquema do filtro passa-baixo IIR.........................................................................................34

32. Esquema da malha de sincronismo de bit.............................................................................35

33. Relações temporais entre amostras de entrade e de saída..................................................36

34. Relação entre as amostras utilizadas no algoritmo de TED..................................................37

35. Representação esquemática da rampa do NCO...................................................................38

36. Esquema do caso em que a emissão é mais rápida que a recepção...................................39

37. Esquema do caso em que a emissão é mais lenta que a recepção.....................................40

38. Esquema do descrambler......................................................................................................41

39. Modulador QPSK...................................................................................................................43

40. Costas Loop para sinal QPSK...............................................................................................43

41. Esquema alternativo para o desmodulador QPSK................................................................44

42. Esquema do modem GMSK implementado..........................................................................46

43. Resposta impulsional do filtro com BT=0.3 e N=5................................................................49

44. Espectro do sinal à saída do filtro com BT=0.3 e N=5..........................................................49

45. Resposta impulsional do filtro com BT=0.5 e N=3................................................................50

46. Espectro do sinal à saída do filtro com BT=0.5 e N=3..........................................................50

47. Esquema do integrador de rampa que realiza o NCO .........................................................51

48. Algoritmo da codificação convolucional.................................................................................53

49. Máquina de estados do codificador convolucional................................................................53

50. Diagrama do detector de fase GMSK....................................................................................54

51. Característica do detector de fase para atraso nulo do relógio de bit...................................55

52. Característica do detector de fase para atraso de 𝑇𝑏

4 do relógio de bit..................................56

53. Característica do detector de fase para atraso de 𝑇𝑏

2 do relógio de bit..................................56

54. Arquitectura quasi-coerente do detector de fase GMSK.......................................................57

vi

55. Algoritmo de descodificação GMSK......................................................................................58

56. "Trellis diagram" de uma transmissão sem erros..................................................................60

57. "Trellis diagram" de uma transmissão com erros..................................................................61

58. Espectro de uma sucessão de bits alternados......................................................................62

59. Espectro do sinal à saída do "scrambler"..............................................................................62

60. Espectro do sinal à saída do filtro de "pulse shaping"...........................................................63

61. Espectro do sinal BPSK após a modulação.........................................................................63

62. Sinais exemplificativos do bom funcionamento do modem BPSK........................................64

63. Emissão mais rápida que a recepção...................................................................................64

64. Emissão mais lenta que a recepção......................................................................................65

65. Constelação QPSK pré-filtragem..........................................................................................66

66. Constelação QPSK pós-filtragem..........................................................................................66

67. Sinal QPSK e respectivo espectro........................................................................................67

68. Bits enviados (a amarelo) e bits recebidos (a azul e rosa) no modem QPSK.......................67

69. Bits alternados e portadora modulada por GMSK.................................................................68

70. Bits após “scrambler” e após filtragem (com respectivo espectro)........................................68

71. Espectro do sinal enviado.....................................................................................................69

72. Saída do bloco de Lyon e respectivo espectro (rosa), e sinal após filtragem (azul).............69

73. Saída do bloco de Lyon (rosa) e sinal após filtragem (azul) e respectivo espectro.............70

74. Imagem exemplificativa do bom funcionamento do modem.................................................70

75. Curvas de BER teóricas........................................................................................................71

vii

Lista de Tabelas

1. Lista de Nanosatélites...............................................................................................................2

2. Grandezas e os respectivos valores utilizados no desenvolvimento do sistema......................6

3. Grandezas e os respectivos valores utilizados no desenvolvimento do modem BPSK..........28

4. Grandezas e os respectivos valores utilizados no desenvolvimento do modem QPSK.........41

5. Codificação diferencial QPSK.................................................................................................42

6. Descodificação diferencial QPSK............................................................................................45

7. Grandezas e os respectivos valores utilizados no desenvolvimento do modem GMSK.........45

8. Coeficientes do filtro com BT=0.3 e N=5.................................................................................48

9. Coeficientes do filtro com BT=0.5 e N=3.................................................................................48

10. Desempenho dos modems implementados..........................................................................72

viii

Lista de Acrónimos

ADC Analog-to-Digital Converter

AM Amplitude Modulation

AMSAT Radio Amateur Satellite Corporation

APLL Analog Phase Lock Loop

ASIC Application Specific Integrated Circuit

BER Bit Error Rate

BM Branch Metric

bps Bits per Second

BPSK Binary Phase-Shift Keying

CCS Code Composer Studio

CDMA Code Division Multiple Access

CPFSK Continuous Phase-Frequency-Shift Keying

CPSK Continuous Phase-Shift Keying

CPU Central Processing Unit

DAC Digital to Analog Converter

DBPSK Differential Binary Phase-Shift Keying

DC Direct Current

DPLL Digital Phase Lock Loop

DSP Digital Signal Processor

D-STAR Digital Smart Technologies for Amateur Radio

ESA European Space Agency

FEC Forward Error Correction

FIR Finite Impulse Response

FM Frequency Modulation

FPGA Field-Programmable Gate Array

FSK Frequency-Shift Keying

ix

GMSK Gaussian Minimum-Shift Keying

GPS Global Positioning System

HDL Hardware Description Language

HPF High-Pass Filter

IF Intermediate Frequency

IIR Infinite Impulse Response

ISI Intersymbol Interference

IST Instituto Superior Técnico

LPF Low-Pass Filter

LSB Least Significant Bit

MIPS Mega Instructions Per Second

MLSE Maximum Likelihood Sequence Estimation

MMACS Million Multiply Accumulate Cycles per Second

MSB Most Significant Bit

MSK Minimum-Shift Keying

MSPS Mega Samples Per Second

NCO Numerical Controlled Oscillator

NRZ Non-Return-to-Zero

OQPSK Offset Quadrature Phase-Shift Keying

QPSK Quadrature Phase-Shift Keying

OUFTI Orbital Utility For Telecommunication Innovation

PLL Phase Lock Loop

PM Path Metric

PSK Phase-Shift Keying

QPSK Quadrature Phase-Shift Keying

RF Radio frequency

SDR Software Defined Radio

SNR Signal to Noise Ratio

x

TED Time Error Detector

TI Texas Instruments

UC Unidade Curricular

UHF Ultra-High Frequency

UL Universidade de Lisboa

VCO Voltage Controled Oscilator

VHF Very-High Frequency

π/4 - QPSK π/4 - Quadrature Phase-Shift Keying

xi

Agradecimentos ............................................................................................................................. i

Abstract ......................................................................................................................................... ii

Resumo ......................................................................................................................................... iii

Lista de Figuras ..............................................................................................................................iv

Lista de Tabelas ............................................................................................................................ vii

Lista de Acrónimos ...................................................................................................................... viii

1. Introdução ............................................................................................................................. 1

1.1. Projecto ISTnanosat ...................................................................................................... 1

1.2. Software Defined Radio (SDR) ....................................................................................... 3

1.3. Tecnonolgia D-STAR ...................................................................................................... 4

1.4. Estrutura do Documento ............................................................................................... 4

2. Arquitectura do Sistema ....................................................................................................... 5

2.1. Visão Geral .................................................................................................................... 5

2.2. Hardware ....................................................................................................................... 6

2.2.1. Utilização de DSPs ................................................................................................. 6

2.2.2. Utilização de FPGAs ............................................................................................... 7

2.2.3. Implementação híbrida (DSP e FPGA) ................................................................... 7

2.2.4. Hardware Utilizado ................................................................................................ 7

2.2.4.1. Placa de Desenvolvimento ............................................................................ 7

2.2.4.2. DSP TMS320C5505 ........................................................................................ 8

2.2.4.3. CODEC áudio TLV320AIC3204 ....................................................................... 8

2.3. Software de Desenvolvimento Utilizado ....................................................................... 9

3. Enquadramento Teórico ..................................................................................................... 10

3.1. Modulação em Frequência .......................................................................................... 10

3.1.1. Minimum-Shift Keying (MSK) .............................................................................. 10

3.1.2. Gaussian Minimum-Shift Keying (GMSK) ............................................................ 11

3.2. Modulação de Fase ..................................................................................................... 14

3.2.1. Binary Phase-Shift Keying (BPSK) ........................................................................ 14

3.2.2. Quadrature Phase-Shift Keying (QPSK) ............................................................... 15

3.2.3. Offset Quadrature Phase-Shift Keying (OQPSK) .................................................. 16

3.2.4. π/4 – Quadrature Phase-Shift Keying (π/4 – QPSK) ............................................ 16

3.3. Medidas de Desempenho ........................................................................................... 18

4. Estado da Arte ..................................................................................................................... 19

4.1. Implementações em DSPs da Texas Instruments ....................................................... 19

4.1.1. Modem π/4 – QPSK ............................................................................................. 19

4.1.2. Modem GMSK ..................................................................................................... 20

xii

4.2. Implementações em DSPs genéricos .......................................................................... 21

4.2.1. Modem CPSK [21], [22] ....................................................................................... 21

4.2.2. Desmodulação de Sinais GMSK e CPFSK [23] ...................................................... 22

4.2.3. Modem CDMA para satélite [24] ........................................................................ 24

4.3. Implementação Híbrida DSP + FPGA ........................................................................... 25

5. Implementação ................................................................................................................... 28

5.1. Modem BPSK ............................................................................................................... 28

5.1.1. Emissor ................................................................................................................ 28

5.1.1.1. Scrambler e Codificador Diferencial ............................................................ 28

5.1.1.2. Filtro de Pulse Shaping ................................................................................ 29

5.1.1.3. Modulador ................................................................................................... 32

5.1.2. Receptor .............................................................................................................. 33

5.1.2.1. Desmodulador ............................................................................................. 33

5.1.2.2. Sincronizador de Bit .................................................................................... 35

5.1.2.3. Descodificador Diferencial e Descrambler .................................................. 40

5.2. Modem QPSK .............................................................................................................. 41

5.2.1. Emissor ................................................................................................................ 42

5.2.1.1. Codificador Diferencial ................................................................................ 42

5.2.1.2. Modulador ................................................................................................... 42

5.2.2. Receptor .............................................................................................................. 43

5.2.2.1. Desmodulador ............................................................................................. 43

5.2.2.2. Descodificador Diferencial .......................................................................... 44

5.3. Modem GMSK ............................................................................................................. 45

5.3.1. Emissor ................................................................................................................ 46

5.3.1.1. Filtro de Pulse Shaping ................................................................................ 46

5.3.1.2. Integrador e Modulador .............................................................................. 51

5.3.1.3. Codificação Convolucional e Algoritmo de Viterbi ...................................... 52

5.3.2. Receptor .............................................................................................................. 54

5.3.2.1. Desmodulador ............................................................................................. 54

5.3.2.2. Descodificação de Viterbi ............................................................................ 59

6. Resultados e Conclusões ..................................................................................................... 62

6.1. Modem BPSK ............................................................................................................... 62

6.2. Modem QPSK .............................................................................................................. 65

6.3. Modem GMSK ............................................................................................................. 68

6.4. Desempenho dos Modems ......................................................................................... 71

6.5. Conclusões................................................................................................................... 72

xiii

7. Trabalho Futuro ................................................................................................................... 74

8. Referências .............................................................................................................................. 76

1

1. Introdução

1.1. Projecto ISTnanosat

Desde que a tecnologia o permite, a exploração do espaço sempre foi uma prioridade

para a Humanidade. No entanto, devido às características exigentes desta actividade (requer

materiais resistentes, comunicações a muito longas distâncias, autonomia energética etc.) os

custos muito elevados sempre foram uma grande barreira.

Durante a década de 1960, um grupo de radioamadores lançou com sucesso o

primeiro satélite amador (OSCAR), ficando assim provado que é possível a construção e

utilização de satélites por parte de amadores [1].

Em 1999, para incentivar e regular o envio de satélites desenhados por Universidades

e grupos amadores, foi criado o projecto CubeSat.

O incentivo que este projecto trouxe foi permitir oportunidades de lançamento

frequentes, utilizando o espaço de sobra aquando do lançamento de foguetões ou

coordenando lançamentos múltiplos. Assim, os custos e o tempo de desenvolvimento

diminuíram, permitindo um grande crescimento do número de CubeSats. Por exemplo, em

2010 estima-se que tenham sido desenvolvidos um total de cerca de 250 CubeSats [1].

Para além disso, foram normalizados o tamanho e o peso máximo dos satélites, tendo

um CubeSat um volume de (10x10x10cm) e um peso máximo de 1.33 kg. Este cubo "standard"

(Figura 1) é designado por 1U, e satélites de maiores dimensões podem ser realizados

agrupando vários destes cubos (por exemplo um satélite 2U (10x10x20 cm)) [1].

Figura 1 - CubeSat de 1U [2].

2

Na tabela 1 indicam-se as principais características de alguns nanosatélites já desenvolvidos:

Nanosatellite Uplink Downlink Outras Comprado/Fa

bricado Antena

Jugnu

144-146 MHz, FSK, 1200 bps,

power: 20W

430-440 MHz, FSK, 9600 bps

power: 1W

UHF/VHF Beacon: 430-440 MHz, OOK

power: 10mW

Fabricado IIT Kanpur

2 Antenas ortogonais (Downlink)+ 1 Monopolo

1/4 Lambda (Uplink)

DICE 450MHz , 9.6kbit/s

FSK

460-470MHz 3Mbit/s FSK

Half-Duplex, FEC Fabricado por

L3

DelfiC3 435-438 MHz 145.8-146 MHz

power: 2W 1200 bit/s

BPSK modulation Comprado Monopolo 1/4 Lambda

Quake Sat 436.675MHz,

9.6kbit/s FSK

436.675MHz, 9.6kbit/s FSK

Power: 2W

Half-Duplex, Link-Margin 37.1 dB (uplink) e 34.9 dB

(downlink)

Comprado, TEKk packet

radio, Bay Pac 9600 baud

Monopolo 1/4 Lambda

BeeSat-3

435-438 MHz;

2.263 GHz (S-band)

435-438 MHz, 4.8 ou 9.6 Kbit/s,

GMSK, Power: 0.5 W; 2.263 GHz (S-

band)

Half-Duplex, FEC Comprado Monopolo; Antena S-

band

ESTCube-1 145-146 MHz 437,5 MHz,

9,6kbit/s, 2FSK, power: 0,5W

Callsign: ES5E-11, Packet format: AX.25 UI frames

Monopolo 1/4 Lambda

Aalto-1 VHF/UHF VHF/UHF Downlink S-band @2.4-

2.45GHz Comprado

STRaND-1 VHF

145.860MHz UHF 437.575MHz

FSK

Nominal RF output power:1 W Beacon mode power: 1.5W CW mode power: 0.25 W

Fabricado Monopolo

Armadillo VHF 145

MHz - GMSK/FSK

UHF 440 MHz - FSK/AFSK ,

Banda S 2300 MHz

dipolos cruzados (2.1 dBi) para UHF/VHF (ISIS Deployable

CDUV Antenna) e transceiver (Helium 100 UHF/VHF Radio)

Comprado

Antena de banda S (5 dBi) (Taoglas

WLP.2450.24.4.A.02 ) e transceiver (Microhard

MHX 2420 Radio).

All-Star 435MHz,

BPSK, 9.600 Bps

2,4GHz, BPSK, 100.000 Bps, Power: 1W

Two-arm spiral (6*6*3 cm3), link margin 39dB (uplink) e

6,9dB (downlink),

Fabricado por eles

Dipolo (uplink) Two-arm Spiral (downlink)

RAX 2.4 GHz, 115kbps

2,4 GHz, 115kpbs

data: MHX-2400 from Microhard beacon:

Lithium-1 from AstroDev

Data Transceiver: 2.4 GHz patch Beacon:

UHF wide-beam turnstile

Tabela 1 - Lista de Nanosatélites (adaptado de [3]).

3

O projecto ISTNanosat foi criado em 2010, sendo candidato a ser o primeiro satélite

português realizado na sua totalidade por professores, alunos e radioamadores do IST/UL. [1]

Este satélite terá como missão principal medir um fenómeno denominado de "Flyby

Anomaly" que consiste numa mudança de velocidade inesperada quando os veículos

espaciais, após a sua assistência gravitacional, passam junto da Terra.

Apesar da redução do custo de desenvolvimento/lançamento devido aos programas de

CubeSats, o investimento neste projecto é ainda assim elevado, pois cada módulo deve ser

robusto e com alta fiabilidade.

Esta tese vem propor um módulo de comunicações digitais para o ISTNanosat,

baseado num "modem full-duplex" (permite emissão e recepção simultâneas), em banda de

base, que utiliza como técnicas de modulação GMSK, BPSK e QPSK.

Assim, o módulo referido deve converter a informação digital (a ser enviada) numa

onda (em banda de base) modulada - Emissão, e também receber um sinal modulado (em

banda de base) e convertê-lo no "bitstream" correspondente - Recepção.

O módulo descrito neste documento permite um débito binário de 6kbps, sendo a

alteração deste valor facilmente implementada através de "firmware". Este valor de débito

binário depende também da capacidade de processamento da plataforma de "hardware"

utilizada.

Como resultado final, foi implementado um protótipo funcional do módulo de

comunicações previamente descrito.

1.2. Software Defined Radio (SDR)

A tecnologia de "Software-Defined Radio" tem sido cada vez mais utilizada, e consiste

numa implementação digital através de DSPs e/ou FPGAs dos componentes do sistema de

rádio. Este aumento de utilização advém, em parte, do crescente desempenho dos ADCs e

DACs e também dos DSPs e das FPGAs.

O propósito do SDR é desenhar sistemas de transmissão via rádio mais versáteis,

fiáveis e com menor custo de desenvolvimento, através da implementação digital em DSPs ou

FPGAs (reprogramáveis). Para além disso, visto que são transmitidos sinais digitais, o SDR

permite o envio de qualquer conteúdo (som, imagem, texto, etc.), permitindo acompanhar a

procura de interactividade por parte dos utilizadores.

4

1.3. Tecnonolgia D-STAR

A tecnologia D-STAR ("Digital Smart Technology for Amateur Radio") consiste num

sistema radioamador que permite a transmissão digital de informação, quer seja transmissão

de rádio, GPS, ficheiros digitais ou mensagens de texto [4].

O primeiro fabricante a utilizar rádios compatíveis com a tecnologia D-STAR foi a

empresa "ICOM" (Japão). Para o uso desta solução é preciso utilizar um codec de voz

("AMBE") que está patenteado pela empresa "Digital Voice Systems, Inc" e é proprietário.

No que diz respeito à utilização desta solução em transmissões via satélite, a primeira

comunicação foi feita em 2007, utilizando o microsatélite "AO-27" desenhado pela AMSAT

("Radio Amateur Satellite Corporation"). O primeiro "CubeSat" que utiliza o sistema D-STAR

estava programado para ser lançado em 2012, e é um projecto da Universidade de Liège

apelidado de OUFTI-1 ("Orbital Utility For Telecommunication Innovation").

O interesse nesta tecnologia para o projecto do ISTnanosat prende-se com o facto de

que a mesma se baseia em transmissão com modulação GMSK, podendo assim ser integrada

no desenho do ISTnanosat.

1.4. Estrutura do Documento

Este documento apresenta sete capítulos, sendo estes:

1. Introdução - onde se contextualiza o projecto;

2. Arquitectura do Sistema - onde se discute os meios utilizados e onde se inclui uma

visão geral do sistema implementado;

3. Enquadramento Teórico - onde se fornece as bases teóricas das modulações

utilizadas e das medidas do desempenho do sistema;

4. Estado da Arte - onde se analisa alguns projectos já implementados, relevantes no

âmbito do sistema implementado;

5. Implementação - onde se descreve os "modems" implementados, e todos os blocos

constituintes;

6. Resultados e conclusões - onde se analisa o desempenho das soluções

implementadas;

7. Trabalho Futuro - onde se faz uma análise crítica ao que pode ser melhorado, e se

propõe algumas soluções para desenvolvimento futuro.

5

2. Arquitectura do Sistema

2.1. Visão Geral

Neste projecto foi desenvolvido um módulo de comunicações digitais, sendo este

representado na figura 2:

Figura 2 - Diagrama genérico de um modem implementado.

O propósito deste módulo é transformar a informação digital (bits) em sinais em

analógicos modulados (que posteriormente irão modular uma portadora de alta frequência e

enviados para o espaço) e vice-versa.

No que diz respeito à transmissão, o primeiro bloco representado na figura 2 pode ou

não ser implementado, dependendo da modulação utilizada, e consiste num codificador

convolucional que aumenta a redundância de informação e consequentemente diminui a taxa

de erros de transmissão.

O segundo bloco é um baralhador ("scrambler") de bits que permite aumentar a

aleatoriedade dos bits a enviar. É seguido por um codificador diferencial que permite eliminar o

efeito da incerteza da fase absoluta.

O filtro de formatação do espectro ("pulse shaping") reduz a largura de banda

(teoricamente infinita) dos sinais digitais a transmitir, melhorando a eficiência espectral. Por fim,

o sinal vai modular uma portadora sinusoidal, utilizando modulação BPSK, QPSK ou GMSK.

6

Do lado da recepção o processo apresenta a ordem inversa. O primeiro bloco é o

desmodulador respectivo à modulação usada na emissão, sendo seguido do bloco de

sincronização de bit que irá determinar (através de interpolação e de uma malha de retroacção)

os instantes mais indicados para amostrar o sinal e para recuperar os dados.

A jusante da sincronização de bit encontra-se o descodificador diferencial, o

desbaralhador ("descrambler") e o descodificador de Viterbi, sendo estes os blocos

complementares ao codificador diferencial, "scrambler" e codificador convolucional

(respectivamente). Na saída deste último encontram-se os bits de dados recebidos.

O sistema anteriormente sumarizado foi implementado utilizando os valores indicados

na tabela 2:

Grandeza Valor Frequência de Amostragem (fS) 24 kHz

Frequência da Portadora (f0) 6 kHz

Débito Binário (Db) 6 kbps

Tabela 2 - Grandezas e os respectivos valores utilizados no desenvolvimento do sistema.

Volta-se a referir que estes valores são facilmente alteráveis através de modificações

simples no "firmware".

2.2. Hardware

Como já foi referido, as técnicas de telecomunicações baseadas em software utilizam,

salvo raras excepções, DSPs e/ou FPGAs. De seguida é feita uma breve análise aos sistemas

que utilizam DSPs, FPGAs ou ambos (híbridos).

2.2.1. Utilização de DSPs

As vantagens de utilizar Processadores Digitais de Sinal (DSP), em relação a outros

dispositivos programáveis, advêm de diversos factores, entre eles o muito baixo consumo

energético, o preço, a possibilidade de programação em linguagens de alto nível (tipicamente

C), a reduzida latência do processamento em tempo real [5] e a possibilidade de

reconfiguração e/ou actualização do sistema por simples mudanças de "firmware".

No entanto, segundo [6] um DSP capaz de realizar 400 milhões de instruções por

segundo (MIPS) possui uma largura de banda na ordem dos 16 MHz. Em parte, isto é devido à

intrínseca arquitectura em série dos mesmos, permitindo pouco paralelismo.

Por exemplo, segundo [7] os processadores da Texas Instruments da família

TMS320C50xx não conseguem realizar um equalizador ou um descodificador de Viterbi a uma

frequência de amostragem suficientemente elevada para garantir um ritmo binário praticável.

Refere-se ainda neste documento que a implementação do modem em frequência intermédia

(IF) não é recomendada em DSP.

7

2.2.2. Utilização de FPGAs

No que diz respeito à utilização de FPGAs na realização de modems digitais, as

vantagens advêm principalmente da rapidez de processamento e do paralelismo inerente à sua

arquitectura. No entanto estes dispositivos são normalmente mais dispendiosos e têm, para a

mesma operação, um consumo duas a três vezes superior que o dos DSPs [5].

Estes dispositivos apresentam também a vantagem (tal como acontecia com os DSPs)

de poderem ser reprogramáveis, sendo que as FPGAs são programadas usando uma

Hardware Description Language (HDL) como linguagem (VHDL ou Verilog), com

implementações normalmente mais demoradas a desenvolver do que em linguagem C de

vírgula fixa.

De acordo com [8], em geral, o número de "slices" da FPGA para realizar um modem é

relativamente baixo, pelo que uma mesma FPGA poderá ser utilizada em simultâneo para

realizar o modem e outros componentes do sistema total.

2.2.3. Implementação híbrida (DSP e FPGA)

Existem várias implementações recentes em que se tira partido das vantagens das

FPGAs e dos DSPs, sendo uma delas [9] apresentada na secção 4.3 deste documento. Para o

conseguir é comum utilizar-se a FPGA apenas para a parte de desmodulação em frequência

intermédia e o DSP para o tratamento de sinal em banda base. Assim, é possível tirar partido

do paralelismo e maior capacidade de processamento da FPGA na desmodulação utilizando

frequências de amostragem mais elevadas, sendo que a baixa latência e baixo consumo do

DSP (que utiliza frequências de amostragem mais baixas) são utilizados no processamento do

sinal em banda base [10].

Um método muito comum de desenvolvimento consiste em utilizar o Simulink do

programa Matlab (MathWorks) para realizar o sistema, tirando ainda partido das diversas

"toolboxes" que traduzem este projecto para a utilização tanto em FPGAs como em DSPs,

facilitando assim o desenho dos modems.

Uma vez mais é de referir que a FPGA não necessita de ser dedicada ao modem,

podendo ser utilizada para implementar outras funcionalidades do transponder. O DSP, no

entanto, é dedicado apenas ao processamento em banda base, uma vez que este

processamento consome, normalmente, a totalidade dos seus recursos.

2.2.4. Hardware Utilizado

2.2.4.1. Placa de Desenvolvimento

A placa de desenvolvimento utilizada é uma eZdsp C5505 da Texas Instruments, que

contém o DSP C5505, o CODEC áudio AIC3204, interface USB, etc. Esta placa encontra-se

representada na figura 3, com o DSP e o CODEC evidenciados:

8

Figura 3 – Placa eZdsp C5505.

2.2.4.2. DSP TMS320C5505

O DSP utilizado neste trabalho é um DSP de vírgula fixa (com palavras de 16 bits) da

Texas Instruments de consumo energético ultra-reduzido, mas de alta performance,

TMS320C5505.

Este DSP é extremamente eficiente a nível de consumo energético, tendo este facto

sido um dos principais motivos da sua escolha para o ISTnanosat, pois o consumo energético

de um satélite é crítico.

Este DSP pode funcionar com frequências de relógio entre 60 e 120 MHz, sendo que a

que foi utilizada neste trabalho foi de 100 MHz, representando um compromisso entre rapidez

de processamento e consumo energético. A este ritmo, e sendo possível a realização de duas

instruções por ciclo, tendo em conta a frequência de amostragem de 24 kHz, é possível realizar

aproximadamente 8333 instruções por amostra.

Para além das características já referidas, este DSP possui dois multiplicadores

dedicados capazes de realizar 200 milhões de multiplicações e acumulações por segundo (200

MMACS).

2.2.4.3. CODEC áudio TLV320AIC3204

O codec de áudio utilizado é o TLV320AIC3204 da Texas Instruments. Este CODEC

estéreo possui conversores analógico para digital de 16 bits (ADCs) com 93 dB de relação sinal

ruído (SNR) e conversores digital para analógico (DACs) com 100 dB de SNR.

Uma vez mais, devido à preocupação de baixo consumo neste trabalho, este CODEC

foi escolhido devido à sua capacidade de regulação fina do consumo energético, através da

ferramenta "PowerTune". Para além disso, este CODEC tem ainda uma função de "bypass" em

que reduz o consumo energético para um mínimo quando não está a ser utilizado.

9

O TLV320aic3204 possui entradas e saídas estéreo, e uma malha de captura de fase

(PLL) integrada para geração de relógios internos.

2.3. Software de Desenvolvimento Utilizado

O software utilizado foi o Code Composer Studio 5, sendo este um ambiente de

desenvolvimento baseado em Eclipse 3.7 e optimizado para a programação em linguagem C

de vírgula fixa de DSPs da Texas Instruments.

Este ambiente de desenvolvimento é bastante intuitivo e permite o "debug" detalhado,

sendo também possível gerar e alterar o código Assembly enviado para o DSP. Para além

disso, apesar dessa funcionalidade não ter sido utilizada neste trabalho, o CCS5 permite o

"debug" de processadores com múltiplos núcleos, garantindo o sincronismo entre estes.

Um exemplo do ambiente de desenvolvimento CCS5 encontra-se na figura 4:

Figura 4- Ambiente de Desenvolvimento CCS5.

10

3. Enquadramento Teórico

3.1. Modulação em Frequência

3.1.1. Minimum-Shift Keying (MSK)

A modulação Minimum-Shift Keying (MSK) é uma modulação de fase contínua de dois

níveis, pois para cada nível lógico a portadora tem uma frequência diferente e a mudança de

frequência é feita quando a portadora tem o valor nulo. Deste modo, apesar da frequência da

portadora mudar, idealmente não existem descontinuidades no sinal modulado,

descontinuidades essas que se traduzem sempre num aumento do conteúdo harmónico do

sinal com o aparecimento de impulsos no espectro [11]. Na figura 5 está representada esta

modulação:

Figura 5 - Modulação MSK [12].

Para garantir a mudança de frequência na passagem da portadora pelo valor nulo, as

duas frequências (fm e fM) têm de estar relacionadas entre si e também com o débito binário

(Db). Esta relação deverá ser então:

fM − fm = Db/2 (1)

Deste modo, se o débito for de 19200 baud/s, e se considerarmos fM = 24 KHz,

teremos que fm = 24000 − 9600 = 14,400 KHz.

Esta propriedade do sinal MSK é normalmente indicada através do índice de

modulação m=0.5, sendo:

𝑚 = (𝑓𝑀 − 𝑓𝑚)/(𝐷𝑏/2) (2)

11

3.1.2. Gaussian Minimum-Shift Keying (GMSK)

O maior problema da solução MSK é o facto de o conteúdo espectral ser ainda

bastante disperso na frequência [9]. Este problema é atenuado com a utilização de um filtro

passa-baixo antes da modulação (ou seja, sobre o sinal modulante). Este filtro deve ter uma

largura de banda estreita e muito pouca sobreelevação na resposta ao impulso.

O tipo de filtros usado é o filtro Gaussiano, cuja resposta no tempo tem a forma em sino

característica da distribuição Gaussiana (figura 6). Assim, o sinal digital (onda rectangular) é

transformado numa sucessão de pulsos Gaussianos como os da figura 6.

Figura 6 - Forma dos pulsos gaussianos para BT=0.5 ou BT=0.3 [13].

O filtro utilizado na modulação GMSK tem a seguinte resposta na frequência:

𝐻(𝜔) = 𝐴. 𝑒−𝛼.𝜔2 (3)

sendo que a sua resposta temporal ao impulso pode ser calculada através da transformada de

Fourier inversa como:

ℎ(𝑡) = 𝐴√

𝜋

𝛼. 𝑒−

𝑡2

4.𝛼 (4)

O parâmetro que irá ditar a resposta temporal do filtro é denominado BT, sendo o

produto da largura de banda a -3 dB do filtro (B) e o período de bit (T).

Tendo em conta os valores para f=0 e para f=B de H(ω)

𝐻(0) = 𝐴

𝐻(2𝜋𝐵) =𝐴

√2 = 𝐴. 𝑒−𝛼.(2𝜋𝐵)2

(5)

(6)

é de fácil demonstração que:

12

−𝛼. (2𝜋𝐵)2 = −

ln (2)

2 => 𝛼 =

ln (2)

2. (2𝜋𝐵)2 =

T2. ln (2)

2. (2𝜋𝐵𝑇)2

(7)

Utilizando então a fórmula (7) é possível a obtenção de α a partir da grandeza BT.

A resposta no tempo virá então dada por:

ℎ(𝑡) = 𝐴√

𝜋

𝛼. 𝑒−

𝑡2

4.𝛼 =2.(2𝜋𝐵𝑇).𝐴

𝑇. √

𝜋

ln(2) . 𝑒

−(2𝜋𝐵𝑇)2

2.ln (2).(

𝑡

𝑇)

2

(8)

Utilizando um ganho

𝐴 =

𝑇

2𝜋

(9)

obtém-se a expressão final do filtro dada por:

ℎ(𝑡) =

𝛽

√𝜋. 𝑒−𝛽2.(

𝑡𝑇

)2

(10)

onde β é dado por:

𝛽 =

2𝜋𝐵𝑇

√2. ln (2)

(11)

Como se pode verificar pela figura 4, a informação relativa a um bit irá ser "espalhada"

num tempo que depende de BT, mas que é claramente maior que um tempo de bit (1/Db).

Assim é de prever que este filtro venha a causar interferência intersimbólica. Para além disso,

verificamos que à medida que o filtro fica mais estreito, BT diminui e a interferência

intersimbólica aumenta. Deste modo há que ter em conta o compromisso entre a eficiência

espectral e a interferência entre símbolos.

Na figura 7 podemos comparar os espectros dos sinais: MSK, GMSK de BT=0.5 e

GMSK de BT=0.3

Figura 7 - Comparação do espectro dos sinais MSK; GMSK de BT=0.5; GMSK de BT=0.3 [13].

13

Uma possível implementação de um modulador GMSK encontra-se representada na

figura 8. Esta implementação usa os princípios de fase e quadratura (I-Q), somando as duas

componentes antes da emissão. Como é possível verificar, o sinal NRZ (Non-Return-to-Zero ) é

integrado e posteriormente filtrado por um filtro de resposta do tipo Gaussiana.

Figura 8 - Modulador GMSK [14].

Uma solução complementar ao modulador GMSK anteriormente apresentado é o

desmodulador GMSK da figura 9:

Figura 9 - Desmodulador GMSK [14].

É de notar que o sinal é separado nas suas componentes em fase e em quadratura (I-

Q) através da multiplicação pela sinusóide respectiva (coseno ou seno) e da filtragem passa-

baixo. O valor da fase correspondente em ordem ao tempo é obtido através do cálculo da

função arctan(.), e posteriormente derivada para compensar a operação realizada na

modulação.

14

3.2. Modulação de Fase

A modulação da fase da portadora (PSK) tem vindo a ser muito utilizada, pois existem

modulações bastante robustas e de relativa simplicidade de implementação.

3.2.1. Binary Phase-Shift Keying (BPSK)

O caso mais simples de modulação de fase é o caso da Binary Phase-Shift Keying

(BPSK) ( dois estados apenas), em que se o bit tiver o valor lógico '1' a fase da portadora tem o

valor de 0º, e caso contrário a fase da portadora tem o valor de 180º (ou seja, multiplica-se a

portadora por -1). A constelação equivalente encontra-se na figura 10:

Figura 10 - Constelação BPSK.

No entanto, este esquema de modulação não é normalmente utilizado devido à grande

dificuldade de se obter a fase absoluta do sinal na recepção, pois o canal insere uma fase

aleatória no sinal que pode causar ambiguidade de fase devido ao carácter periódico da

mesma. Assim, é utilizado um esquema diferencial (DBPSK) no qual, em vez de se utilizar o

valor lógico do bit para modular a fase, utiliza-se o sinal:

dn = (bitn) XOR (dn−1) (12)

em que bitn é o bit actual e dn-1 é resultado da operação anterior.

Na recepção é utilizada a operação complementar, sendo que

bit′n = (d′n) + (d′n−1) (13)

em que d'n é o valor lógico recebido no instante actual, e d'n-1 o valor lógico recebido no instante

anterior.

15

Deste modo é apenas enviada a diferença de fase, sendo possível retirar o sinal digital

(após a desmodulação) sem existir o problema da ambiguidade de fase.

Um dos parâmetros chave de um esquema de modulação é a sua eficiência de

modulação (N) que consiste no número de bits (B) por símbolo da constelação (M). No caso do

BPSK é óbvio que N=1, pois só existem dois símbolos na constelação, e assim B = log2M = 1.

Para se conseguir débitos binários mais elevados, uma solução possível é aumentar a

eficiência de modulação, colocando mais bits em cada símbolo e tendo uma constelação com

maior número de símbolos. No entanto é preciso ter em conta que à medida que o número de

símbolos aumenta, estes ficam mais próximos na constelação, aumentando assim a

probabilidade de erro (para a mesma potência de emissão).

3.2.2. Quadrature Phase-Shift Keying (QPSK)

Uma solução muito utilizada, por ter o dobro da eficiência da eficiência do esquema

BPSK (N=2), é a solução Quadrature Phase-Shift Keying (QPSK) representada na figura 11:

Figura 11 - Constelação QPSK [15].

Esta representação nos eixos I e Q é bastante utilizada, e parte do princípio que é

utilizada uma implementação I-Q, ou Fase-Quadratura ("In-phase", "Quadrature"), que se

baseia na modulação de um seno e de um coseno, que são posteriormente somados. Na

recepção, é novamente feita a separação das duas ondas, e retirada a informação I-Q.

Como foi dito antes, o número de bits por símbolo é agora B = log2M = log24 = 2. Se

adoptarmos o mesmo princípio de codificação diferencial, iremos obter um esquema QPSK

diferencial em que as diferenças de fase pertencem ao conjunto {0º, 90º,180º, 270º}.

Estes saltos de fase correspondem a descontinuidades no sinal transmitido, originando

grande conteúdo harmónico indesejável, principalmente nos saltos de 180º.

16

Para além disso, apenas com este esquema, verifica-se que ao existirem diferenças de

fase de 180º cruza-se a origem do referencial da constelação. Este facto leva a que a potência

no receptor tenha valor nulo instantâneo em certos casos, tendo impacto negativo nos

algoritmos de recepção. Este facto é também problemático para os amplificadores de potência

na emissão.

3.2.3. Offset Quadrature Phase-Shift Keying (OQPSK)

A modulação Offset Quadrature Phase-Shift Keying (OQPSK) tem exactamente a

mesma constelação que a modulação QPSK mas, para evitar os saltos de fase de 180º, impõe

um atraso de meio período de bit (Tb/2) a um dos “bitstreams” (I ou Q). Deste modo, as

diferenças de fase entre símbolos da constelação pertencem ao conjunto {0º, 90º, 270º}, pois

em cada meio período de bit pelo menos um dos canais é mantido constante.

Como consequência, verifica-se que existe uma mudança de símbolo a uma frequência

duas vezes mais elevada que na modulação QPSK, sendo esta característica devida ao facto

que, de meio em meio período de bit, um dos canais actualiza o seu valor lógico.

É de notar que não existe perda de eficiência, visto que os canais mantêm as mesmas

características da modulação QPSK, apenas existe um atraso adicional de meio período de

símbolo na desmodulação.

3.2.4. π/4 – Quadrature Phase-Shift Keying (π/4 – QPSK)

Uma solução alternativa à solução OPSK é a π/4-QPSK, cujas constelações se

encontram representadas na figura 12:

Figura 12 - Constelações do esquema π/4-QPSK [16].

Nesta solução são usadas duas constelações QPSK rodadas de 45º (π/4), sendo uma

delas representada na figura 12 a azul e a outra representada a verde.

17

O princípio de funcionamento desta solução é que, de 2 em 2 bits, é trocada a

constelação que vai modular a portadora, ou por outras palavras, os saltos entre símbolos são

sempre feitos entre duas constelações diferentes. Devido ao facto de existir uma permanente

troca de constelação, é implementada uma detecção diferencial.

Um exemplo de mapa de saltos de fase possíveis encontra-se na figura 13:

Figura 13 - Saltos de fase possíveis partindo do Símbolo S1 [17]. Pelo exemplo da figura 13, percebe-se que os saltos de fase estão agora contidos no

conjunto {-135º, -45º, 45º e 135º}, não existindo assim o problema do cruzamento da origem

presente na solução π/4-QPSK, e sendo atenuado o espalhamento espectral devido a não

existirem saltos de fase de 180º.

Na recepção, uma possível solução para a detecção é a da figura 14. Neste caso,

pressupõe-se que a separação nas componentes I-Q já foi feita usando a multiplicação pela

sinusóide correspondente e a filtragem passa-baixo.

Uma vez mais, neste caso, é calculado o valor da fase através da operação arctan(.).

Depois de obtida a fase absoluta, é obtida a fase diferencial através de um diferenciador digital

(Phase-difference computer). Esta fase, devido à periodicidade da mesma, poderá não estar

contida no intervalo desejado ]-π, π] pelo que é ainda aplicada lógica para esta conversão. Na

saída deverá estar a estimativa da sequência emitida.

Figura 14 - Detector π/4-QPSK diferencial (adaptado de [18]).

18

3.3. Medidas de Desempenho

Para se medir a performance de um modem digital, a métrica habitualmente utilizada é

a probabilidade de erro de bit. Assumindo que é conhecido o quociente entre a energia por bit e

a energia do ruído (assumido como ruído branco) Eb/No, a função de distribuição de

probabilidade de erro de bit [19] pode ser expressa por meio da função:

𝑄(𝑥) =

1

√2𝜋. ∫ 𝑒−

𝑢2

2 𝑑𝑢∞

𝑥

(14)

Nas expressões seguintes parte-se do princípio que o ruído tem uma distribuição

gaussiana e que a constelação é codificada utilizando um código de Gray para minimizar os

erros. Toma-se também a probabilidade de cada valor de bit ('0' ou '1') como sendo a mesma e

igual a 0.5.

Para as modulações BPSK e QPSK a probabilidade de erro de bit é dada por:

𝑃𝑏 = 𝑄 (√2. 𝐸𝑏

𝑁𝑜

) = 1

√2𝜋. ∫ 𝑒−

𝑢2

2 𝑑𝑢∞

√2.𝐸𝑏𝑁𝑜

(15)

No caso da modulação GMSK, esta é obtida através da fórmula:

𝑃𝑏 = 𝑄 (√2. 𝛼. 𝐸𝑏

𝑁𝑜

) = 1

√2𝜋. ∫ 𝑒−

𝑢2

2 𝑑𝑢∞

√2.𝛼.𝐸𝑏

𝑁𝑜

(16)

sendo α =ln (2)

√2.B , onde B é a largura de banda a -3dB.

É de notar que no caso da modulação QPSK a energia por bit é metade do que a dos

casos BPSK e GMSK, para a mesma energia por símbolo.

19

4. Estado da Arte

4.1. Implementações em DSPs da Texas Instruments

No que toca a implementações de modems nos DSPs da Texas Instruments (TI), já

existem duas "application notes" publicadas pela própria empresa [17] e [20]. Nestes

documentos são explicados detalhadamente os princípios teóricos e o modo de implementação

de cada modem, sendo possível comprar licenças para o código respectivo.

4.1.1. Modem π/4 – QPSK

Como já foi dito na secção 3.2.4 deste documento, esta modulação consiste em duas

constelações de quatro símbolos (I,Q) cada, rodadas de π/4 radianos. Em cada mudança de

estado é feita a transição de uma constelação para a outra. Na figura 15 representam-se todas

as transições possíveis de estados desta solução:

Figura 15 - Transições entre estados possíveis na solução π/4-QPSK [17].

Nesta solução é utilizada um esquema I-Q não explícito, ou seja, nunca são calculadas

as componentes em fase e em quadratura.

Na emissão é feito um acréscimo de fase ao sinal de acordo com os dois bits actuais

Ak e Bk (usando codificação de Gray), de modo a obter-se a constelação referida na figura 15.

20

Na recepção, é evitado o cálculo das componentes I-Q devido à diferença de fase entre

a fase actual e a do instante anterior (ΔΦk) que permite, através do endereçamento de tabelas,

determinar os bits enviados. Este facto aumenta bastante a eficiência pois evita operações de

arctan(.) ou divisões.

Para evitar o problema da interferência intersimbólica (ISI), são aplicados em ambos os

canais I-Q filtros do tipo coseno-elevado, implementados através de filtros FIR de fase linear de

ordem 20. Nestes filtros de “pulse shaping” é utilizada interpolação com um factor de L=4.

4.1.2. Modem GMSK

A primeira solução referida em [21] é a solução GMSK.3, ou seja, GMSK com BT =

f−3dB/fsymb = 0.3.

Numa forma esquemática, o modulador GMSK.3 pode ser representado como indicado

na figura 16 (para Db=8kbps):

Figura 16 - Esquema do modulador GMSK.3 [20].

Como se pode verificar na figura 16, o bitstream é passado num filtro de resposta

Gaussiana no tempo, cuja saída é depois aplicada a um modulador FM com índice de

modulação m=0.5.

Este valor de BT=0.3 tem em conta o compromisso entre o grande conteúdo espectral

(BT maior) e a grande interferência intersimbólica (BT menor).

O filtro, neste caso, é implementado através de um filtro FIR de fase linear de ordem 12

que é desenhado para aproximar a resposta do filtro Gaussiano.

21

No receptor, a primeira operação realizada sobre o sinal de entrada é a separação do

mesmo nos sinais I-Q, através de um filtro FIR de ordem 7, que aproxima a transformada de

Hilbert. Esta transformada, visto o sinal ser real, apenas gera dois sinais, um igual ao de

entrada e outro com um atraso de 90º em relação ao primeiro.

O sinal é posteriormente feito passar por um descriminador FM, que mapeia a

frequência dos sinais I-Q numa tensão normalizada pelo factor 1/(I2+Q2) a fim de eliminar

variações de energia inseridas pelo canal. É ainda aplicada uma decimação de M=2, o que

diminui a frequência de amostragem, a jusante, para metade.

Na desmodulação GMSK existe um filtro adaptado ao da emissão, ou seja, com a

resposta idêntica ao da emissão.

É depois feita uma estimativa DC para retirar a componente contínua do sinal, sendo

este depois integrado para se realizar a descodificação diferencial. São implementados

também módulos de sincronismo de bit e de trama ("frame").

4.2. Implementações em DSPs genéricos

4.2.1. Modem CPSK [21], [22]

Esta solução inovadora introduz a modulação CPSK (code-phase-shift keying), que

permite aumentar o débito sem comprometer o desempenho. A solução foi implementada em

DSPs, sendo que na recepção o processamento é feito em quatro DSPs TI TMS320C40 (um

para emitir, três para receber). A captura e aquisição são feitas através de uma nova técnica

denominada recepção de fase invariante, que evita malhas de sincronização de fase ou filtros

de estimação de fase em DSPs.

São usados, para a digitalização, dois conversores Analógico-Digital (ADC) de 8 bits a

funcionar com 2 MSPS (mega amostras por segundo) e os débitos vão de 100bps até 9.4 kbps.

É de referir que esta é uma técnica de grande espalhamento espectral, pelo que ocupa

uma largura de banda muito maior que a mínima necessária.

Na figura 17 encontra-se representado o esquema do modem implementado:

22

Figura 17 - Modem de Spread-Spectrum ([21]).

Neste caso tanto a modulação como a desmodulação são feitas numa frequência

intermédia (IF), utilizando um oscilador local, havendo uma conversão para rádio frequência

(RF) posterior ou anterior (respectivamente).

4.2.2. Desmodulação de Sinais GMSK e CPFSK [23]

Esta solução propõe a desmodulação de sinais GMSK e CPFSK (modulação na

frequência com fase contínua) através de DPLL (malha de captura de fase digital)

implementada num DSP. Primeiro é proposta uma malha DPLL que simula o comportamento

da malha analógica APLL, sendo depois adoptado o esquema de estimação de sequência para

reduzir a Interferência Intersimbólica (ISI).

A malha DPLL implementada no DSP, que simula o comportamento da malha

analógica APLL, é representada na figura 18:

23

Figura 18 - DPLL implementada em DSP [23].

Uma vez mais, o bloco à esquerda da linha a tracejado tem como propósito separar o

sinal nas suas componentes em fase e em quadratura I-Q (detecção quase síncrona). É

posteriormente obtida a fase do sinal através da operação arctan(.). Uma vez mais, como a

fase é periódica, é necessário um bloco para a colocar no intervalo de interesse ]-π, π]. É então

utilizado um detector de fase e compensada a perda de energia do sinal. Este sinal irá entrar

no Loop Filter (filtro passa-baixo) para controlar o VCO. O sinal desmodulado é a saída do

Loop Filter com um ganho K aplicado.

O esquema do modem completo é apresentado na figura 19:

Figura 19 - Esquema do modem e simulação de canal [23].

A parte superior consiste no emissor seguido do canal que é simulado através dos três

tipos de fenómenos indicados.

24

Na recepção é utilizada a detecção quase coerente e a DPLL implementada num DSP

acima referida. A saída deste é feita passar por um filtro passa-alto para eliminar a componente

contínua causada pelo efeito de Doppler. O bloco I&D (Integrate&Drop) realiza a integração da

fase e entrega o resultado a um descodificador de Viterbi que compensa significativamente a

Interferência Intersimbólica (ISI).

Esta implementação apresentou resultados consideravelmente melhores que a DSP

DPLL que apenas simula a APLL.

4.2.3. Modem CDMA para satélite [24]

Esta solução apresenta um esquema de baixa complexidade para aquisição, captura e

recuperação de desvios de frequência para um satélite usando DSP num esquema CDMA

(acesso múltiplo por divisão de código).

Esta solução, para cada estação, utiliza modulação QPSK e foi implementada num

DSP da Texas Instruments TMS320C62x. O sistema de recuperação em banda de base

encontra-se representado na figura 20:

Figura 20 - Sistema de recuperação em banda de base [24].

Os testes foram realizados para um DSP TI TMS320C6201, com um débito binário de

aproximadamente 64 kbps. O esquema de testes (com simulação do canal) encontra-se

representado na figura 21:

25

Figura 21 - Sistema testado na solução CDMA [24].

4.3. Implementação Híbrida DSP + FPGA

A Agência Espacial Europeia (European Space Agency - ESA) desenvolveu e testou

uma arquitectura de desmodulação GMSK utilizando um esquema híbrido FPGA + DSP [9].

A arquitectura utilizada tira partido da decomposição de Laurent do sinal MSK C0(t) e

consiste num detector de fase baseado no Costas Loop, em que os filtros de dados são

adaptados à resposta C0(t) e cujos ramos se encontram desfasados de um período de bit.

A figura 22 apresenta um esquema da arquitectura completa do desmodulador GMSK:

26

Figura 22 - Esquema implementado na solução da ESA [9].

Este desmodulador é um desmodulador coerente, sendo que a portadora é estimada a

partir dos sinais à saída do bloco de filtragem e equalização. O sincronismo de símbolo é

recuperado através de um bloco de estimação de erro do tempo de símbolo, cuja saída irá

ajustar a frequência de amostragem (através da selecção dos coeficientes dos filtros a serem

utilizados) permitindo a recuperação do tempo de símbolo.

O bloco de filtragem e equalização (representado na figura 23) utiliza os filtros com

resposta adaptada ao primeiro elemento da série de Laurent C0(t) seguido de uma decimação e

de um atraso de um símbolo em cada ramo. A equalização de Wiener tem como objectivo a

compensação da Interferência Intersimbólica (ISI) nos casos em que o valor de BT é

suficientemente reduzido para que este fenómeno seja relevante. No caso de BT=0.5 este

fenómeno é desprezável, sendo que a equalização de Wiener não é necessária.

É de referir que as amostras utilizadas para decisão se encontram desfasadas de um

período de símbolo nos dois canais. É de referir também que tanto o algoritmo de

compensação do erro de sincronismo de símbolo, como o de compensação da frequência da

portadora, utilizam duas amostras por símbolo.

27

Figura 23 - Esquema do bloco de filtragem e equalização [9].

28

5. Implementação

5.1. Modem BPSK

O modem BPSK foi implementado utilizando os valores de grandezas indicados na

tabela 3:

Grandeza Valor Frequência de Amostragem (fS) 24 kHz

Frequência da Portadora (f0) 6 kHz

Débito Binário (Db) 6 kbps

Tabela 3 - Grandezas e os respectivos valores utilizados no desenvolvimento do modem BPSK

Como já antes foi referido, a modulação BPSK é uma modulação de fase com dois

estados (1 bit por símbolo) que codifica, neste caso diferencialmente, cada bit num valor de

fase (0° ou 180°) somado à fase da portadora. O esquema do sistema emissão e recepção

BPSK implementado encontra-se na figura 24.

Figura 24 - Esquema BPSK implementado.

5.1.1. Emissor

5.1.1.1. Scrambler e Codificador Diferencial

O emissor recebe os dados (bitn) que tomam a forma de uma sucessão de bits que não

têm as características necessárias para a emissão. Por um lado, podem conter longas

sucessões de valor lógico igual e por outro não são totalmente aleatórios. Na secção 6.1

apresenta-se um exemplo demonstrativo deste facto obtido experimentalmente.

29

Para tornar os bits mais aleatórios o elemento inicial do emissor é um "scrambler"

(baralhador) de bits. Este elemento consiste numa linha de sete atrasos, da qual é calculada a

saída en através da soma em módulo 2 (XOR) de acordo com o polinómio:

𝑃(𝑥) = 1 + 𝑥−6 + 𝑥−7 (17)

Este polinómio foi proposto no protocolo CCITT V.27 [24] como tendo um bom

compromisso entre a os custos computacionais (tempo e memória) e a eficiência espectral do

sinal.

O esquema da implementação do scrambler encontra-se na figura 25, onde o atraso TS

simboliza o atraso de um período de bit:

Figura 25 - Esquema do Scrambler.

A saída do "scrambler" é então codificada diferencialmente utilizando a operação

indicada em (18). Esta operação é necessária devido ao facto do canal distorcer a fase

absoluta do sinal, facto esse que não se verifica na fase diferencial devido ao aniquilamento do

efeito comum a ambas as fases (ver secção 3.2.1 deste documento):

𝑑𝑛 = 𝑑𝑛−1 ⨁ 𝑒𝑛 (18)

5.1.1.2. Filtro de Pulse Shaping

Antes da filtragem é necessário fazer a conversão dos valores dos bits ('0' ou '1') para

os valores NRZ ('-1' ou '1' respectivamente), sendo que é um sinal NRZ que é filtrado pelo filtro

de "pulse shaping" de coseno elevado com α=0.5.

O filtro de resposta de coseno elevado é dado por:

30

H(f) = {

T, se |f| <1−α

2TT

2. (1 + cos [

πT

α. (|f| −

1−α

2T)]) , se

1−α

2T< |f| <

1+α

2T

0 , caso contrário

(19)

onde T é a duração de um símbolo e 0 < 𝛼 ≤ 1 é um parâmetro que controla o excesso de

banda entre zero (𝛼 = 0) e 1

2𝑇 (𝛼 = 1).

A resposta deste filtro encontra-se representada na figura 26.

Figura 26 - Resposta em frequência do filtro de coseno elevado.

Como é de verificar o lobo principal, devido ao excesso de banda de 50%, possui uma

largura de banda de (6x1,5) = 9 kHz, visto que a frequência de bit é de 6 kbps. O ponto de -3dB

em relação ao ganho DC é verificado a 3kHz.

Os coeficientes dos filtros foram obtidos através do programa Matlab, utilizando a

função "filterbuilder". De modo a aumentar a frequência de amostragem para o valor necessário

à realização do modulador digital, utiliza-se um de interpolação de L=4

31

A resposta ao impulso do filtro utilizado encontra-se na figura 27, enquanto a resposta

em frequência se encontra representada na figura 28, sendo a curva denominada "Reference"

a curva do filtro com os coeficientes não quantizados e a curva denominada "Quantized" a

curva com os coeficientes de 16 bits:

Figura 27 - Resposta ao impulso do filtro de coseno elevado.

Figura 28 - Resposta em frequência do filtro de coseno elevado.

32

5.1.1.3. Modulador

O modulador BPSK é conceptualmente bastante simples, sendo que realiza a

operação:

𝑦𝑛 = 𝑥𝑛 . cos(2𝜋. 𝑓𝑐. 𝑡) (19)

onde fc é a frequência da portadora a ser modulada pela saída do filtro de "pulse shaping" xn.

Visto que, na implementação realizada a frequência da portadora é dada por:

𝑓𝑐 =𝑓𝑆

4 (20)

então a multiplicação pode ser substituída por um esquema lógico representado na figura 29,

(pois cos(2𝜋𝑓𝑐𝑡) = cos (𝑓𝑠

4. 𝑛. 𝑇𝑆) = cos (

𝑛𝜋

2) = 1, 0, −1, 0, 1, … ):

Figura 29 - Esquema lógico do modulador BPSK.

A variável de decisão 'sw' pode ter os valores {0,1,2,3} dependendo da fase da

portadora que tem, respectivamente, os valores {0°,90°,180°,270°}.

A saída yn é então o sinal BPSK enviado para o canal.

33

5.1.2. Receptor

5.1.2.1. Desmodulador

O primeiro bloco do receptor é um desmodulador BPSK. Nesta implementação, foi

utilizado o algoritmo "Costas Loop" [26] que consiste numa PLL que, para além do sincronismo

com a portadora, permite a desmodulação do sinal BPSK em simultâneo. A figura 30 traduz

esquematicamente o algoritmo:

Figura 30 - Diagrama do desmodulador "Costas Loop".

Este algoritmo, proposto por John P. Costas [26], tira partido da retroacção negativa

para garantir a estabilidade da malha e o sincronismo com a portadora do emissor.

Quando a malha não está sincronizada, temos que o sinal y'n é dado por:

𝑦′𝑛 = 𝑥′𝑛 . cos(2𝜋. 𝑓𝑐 . 𝑡) (21)

sendo fc a frequência da portadora.

O sinal é posteriormente multiplicado tanto pelo -seno como pelo coseno à frequência

f0 do receptor, originando os sinais:

𝑣′𝑛

= 𝑥′𝑛 . cos(2𝜋. 𝑓𝑐. 𝑡). cos(2𝜋. 𝑓0. 𝑡 + ∅)

= 𝑥′𝑛. [

cos(2𝜋. (𝑓𝑐 − 𝑓𝑜). 𝑡 − ∅) + cos(2𝜋. (𝑓𝑐 + 𝑓𝑜). 𝑡 + ∅)

2]

(22)

𝑢′𝑛

= 𝑥′𝑛 . cos(2𝜋. 𝑓𝑐. 𝑡). sen(2𝜋. 𝑓0. 𝑡 + ∅)

= 𝑥′𝑛 . [sen(2𝜋. (𝑓𝑐 + 𝑓𝑜). 𝑡 + ∅) − sen(2𝜋. (𝑓𝑐 − 𝑓𝑜). 𝑡 − ∅)

2]

(23)

34

A jusante, os filtros de dados (passa-baixo) cortam as componentes das somas das

frequências, ficando apenas as componentes de baixa frequência. É de notar que, em caso de

sincronismo, à saída do filtro de dados do ramo superior se encontra exactamente o sinal x'n

filtrado e que no ramo inferior o sinal tem um valor médio nulo.

Na malha de retroacção, são multiplicadas as saídas dos filtros de dados, obtendo-se:

𝑤′

𝑛 =( 𝑥′

𝑛)2

4 . (− sen(2𝜋. (𝑓𝑐 − 𝑓𝑜). 𝑡)).cos(2𝜋. (𝑓𝑐 − 𝑓𝑜). 𝑡)

=sen(4𝜋. (𝑓𝑐 − 𝑓𝑜). 𝑡 + 2∅)

8

(24)

O sinal w'n é posteriormente feito passar pelo filtro de malha (passa-baixo) mais

selectivo que os filtros de dados, sendo que o sinal ε(t) que irá excitar o VCO é dado por

ε(t) =

sen(2∅)

8

(25)

sendo este o sinal de erro que irá compensar a diferença de fase e de frequência entre a

portadora e o receptor.

Os filtros utilizados são filtros passa-baixo IIR com um pólo e um zero, sendo

representados pela sua equação às diferenças (26) e de forma esquemática pela figura 31:

𝑦(𝑛) = 𝛼. 𝑦(𝑛 − 1) + 𝛾.1−𝛼

1−𝛽. [𝑥(𝑛) − 𝛽. 𝑥(𝑛 − 1)] (26)

Figura 31 - Esquema do filtro passa-baixo IIR.

O valor de β irá determinar o zero do filtro, enquanto o valor de α determina o valor do

pólo. O valor usado para α varia ao longo da implementação, sendo este o elemento que

determina a frequência de corte do filtro. O valor de β foi sempre tomado como β=0.5 para que

o filtro insira um zero a metade da frequência de amostragem. Este facto ajuda a eliminar a

componente da soma das frequências na saída dos filtros de dados do Costas Loop que, em

caso de sincronismo perfeito, deveria apresentar exactamente esse valor de frequência.

35

O parâmetro ϒ apenas determina um ganho para o filtro, e o seu valor foi mantido

como unitário por omissão.

5.1.2.2. Sincronizador de Bit

À saída do costas loop temos então que recuperar os bits a partir dos pulsos

desmodulados x'n. Este processo é feito através da malha de sincronismo de bit, que utiliza o

algoritmo de "Time Error Detecting" (TED) [27], [28], [29]. É de notar que a malha de retroacção

para recuperação do sincronismo de bit é válida para qualquer sinal de entrada cuja forma seja

uma sucessão de pulsos. O esquema desta malha é apresentado na figura 32:

Figura 32 - Esquema da malha de sincronismo de bit [28].

O sincronismo de bit irá ser feito através de uma técnica de interpolação. Esta técnica

consiste no cálculo de uma estimativa do sinal num tempo arbitrário µk entre duas amostras

recebidas nos intervalos mk. TS e (mk + 1). TS [figura 33]. Esta estimativa pode ser obtida com

diversos algoritmos [29] sendo que na implementação aqui proposta o objectivo é a maior

eficiência possível, tendo sido escolhida a interpolação linear. Em [29] são comparados vários

algoritmos de interpolação polinomiais e é provado que o desempenho da interpolação linear é

bastante satisfatório.

36

Figura 33 - Relações temporais entre amostras de entrade e de saída [28].

Visto que na emissão o sinal emitido tem quatro amostras por símbolo, e que o

algoritmo de sincronismo de bit apenas utiliza duas amostras por símbolo, o primeiro passo é

re-amostrar o sinal x(n. TS) com frequência fS para metade dessa frequência (fi =fS

2) obtendo-se

assim o sinal x(m).

O sinal x(m) é então interpolado no instante de tempo µk, que é calculado através da

malha de sincronismo de bit, e é obtido o sinal y(k). Como já foi referido, este algoritmo

funciona com duas amostras por símbolo e, assim, durante um tempo de bit Tb são calculadas

duas amostras de y(k), sendo que uma delas é utilizada para a decisão de bit, e outra é

apenas utilizada na malha de sincronismo de bit.

A interpolação é feita no instante de tempo determinado pela malha de sincronismo de

bit. Esta determina as duas amostras (x(mk) e x(mk + 1)) a serem interpoladas, através de uma

"flag" activada pela saída do NCO, e determina o instante de tempo µk entre as duas amostras

seleccionadas onde irá ser feita a interpolação linear, com base na equação:

𝑦(𝑘) = 𝑥(𝑚𝑘) + 𝜇𝑘[𝑥(𝑚𝑘 + 1) − 𝑥(𝑚𝑘)] (27)

Esta equação é a equação clássica de uma recta que interliga as duas amostras

supracitadas.

O bloco "Time Error Detector" (TED) realiza a seguinte operação com base na amostra

de decisão anterior y(r − 1), na amostra anterior (não usada para decisão) y(r −1

2) e na

amostra de decisão actual y(r):

𝑢𝑇(𝑟) = 𝑦 (𝑟 −1

2) . [𝑦(𝑟) − 𝑦(𝑟 − 1)] (28)

37

Este algoritmo gera um sinal de erro uT(r) que é proporcional ao atraso/avanço do

ponto de interpolação actual em relação ao ponto de interpolação óptimo [27]. Pode-se

imediatamente verificar duas propriedades do algoritmo: a primeira é que caso o ponto de

interpolação seja o óptimo, o erro será nulo pois y(k −1

2) = 0 (ver figura 34); e a segunda é que

caso não existam transições a nível de bit, y(r) = y(r − 1) e assim o erro é também nulo, não

contribuindo este algoritmo para o sincronismo de bit. Este problema é praticamente irrelevante

quando se utiliza "scrambler" na emissão.

Figura 34 - Relação entre as amostras utilizadas no algoritmo de TED [27].

O filtro de malha que se encontra à saída do TED é um filtro em tudo semelhante ao

"loop filter" do algoritmo do "Costas Loop", é feito utilizando um filtro IIR de primeira ordem e

realiza uma média ponderada do valor actual do erro e do valor anterior. Este filtro suaviza as

variações da palavra de controlo do NCO e permite que o NCO estabilize, em média, na

frequência que leva à interpolação nos instantes óptimos.

Assim, a palavra de controlo do NCO será a saída do "loop filter" W(m). O NCO foi

implementado utilizando uma rampa decrescente (figura 35) e cuja equação é dada por:

𝜂(𝑚) = [𝜂(𝑚 − 1) − 𝑊(𝑚 − 1)]𝑚𝑜𝑑 − 1 (29)

onde W(m) é a saída do filtro de malha e a operação mod-1 soma uma unidade ao resultado,

caso seja necessário, para que 0< η(m) < 1.

Analisando a equação anterior, verifica-se que a palavra de controlo W(m-1) é

subtraída ao valor actual do conteúdo da variável da rampa η(m − 1) e, caso este valor seja

negativo, é-lhe somado uma unidade.

As amostras a serem interpoladas são dadas pelos "underflows" do NCO, ou seja,

quando o resultado da subtracção descrita é negativo, é activada a "flag" que indica ao

interpolador a necessidade de, na próxima amostra, se realizar interpolação.

É fácil de verificar que em média, o período do NCO é Ti =TS

W(m) e, assim, W(m) =

TS

Ti.

38

Figura 35 - Representação esquemática da rampa do NCO (baseado em ]28]).

A partir da figura 35, e recorrendo às propriedades da semelhança dos triângulos 1 e 2,

assinalados na mesma, obtém-se que:

tg(𝜃) =

𝜇𝑘. 𝑇𝑆

𝜂(𝑚𝑘)=

(1 − 𝜇𝑘). 𝑇𝑆

1 − 𝜂(𝑚𝑘 + 1)→ 𝜇𝑘 =

𝜂(𝑚𝑘)

𝑊(𝑚𝑘)

(30)

Designando ξ0 =1

W(mk), verifica-se que em média ξ0 =

Ti

TS e que μk = ξ0. η(mk).

No caso da implementação adoptada, em média Ti = TS → ξ0 = 1 → μk = η(mk) não

sendo assim necessária nenhuma operação adicional na computação de μk. Esta escolha foi

feita devido à necessidade de se computarem duas amostras por bit para o algoritmo de TED.

Visto que a velocidade do "bitsream" de emissão não irá ser exactamente igual à do de

recepção devido às ligeiramente diferentes frequências de amostragem dos DSPs, vão existir

ciclos de processamento em que o NCO não fica negativo, sendo assim excluída, ou

duplamente utilizada, uma amostra para a interpolação e para o algoritmo de TED.

Em baixo são explicados os dois casos possíveis de ciclos em que o NCO não é

regenerado. Por uma questão de simplificação da explicação dos casos indicados, assume-se

que as amostras são retiradas sincronizadas com o sinal recebido. Não existe perda de

generalidade, pois o caso real traduz-se apenas numa variação nos valores interpolados,

sendo os resultados em tudo semelhantes aos relatados usando a simplificação.

39

1. Emissão mais rápida que a recepção;

Figura 36 - Esquema do caso em que a emissão é mais rápida que a recepção.

Na figura 36, as cruzes representam os instantes em que o sinal de entrada é

amostrado, sendo que a letra "S" indica amostras em que se calcula a informação de decisão

("strobe"). Os círculos representam os valores calculados na amostra imediatamente anterior.

Neste caso verifica-se que, devido ao facto da emissão ser mais rápida que a

recepção, os valores calculados em cada amostra deslocam-se para a esquerda, sendo que no

instante assinalado com F=0 o NCO não regenera. Devido a este facto, neste instante são

calculados o valor referente à amostra intermédia (não usada na decisão) e ainda o valor

referente à amostra de decisão (a vermelho), sendo assim recuperado o atraso em relação à

emissão.

40

2. Emissão mais lenta que a recepção;

Figura 37 - Esquema do caso em que a emissão é mais lenta que a recepção.

Na figura 37, as cruzes representam os instantes em que o sinal de entrada é

amostrado, sendo que a letra "S" indica amostras em que se calcula a informação de decisão

("strobe"). Os círculos representam os valores calculados na amostra imediatamente anterior.

Para este caso, visto que a emissão é mais lenta que a recepção, irá descartar-se uma

amostra para que se recupere do avanço em relação à emissão. Assim, quando o NCO não

regenera (instante assinalado com F=0), é feito o cálculo normal mas é activada uma "flag"

para que no próximo instante de amostragem a amostra seja descartada. Assim, no instante de

amostragem seguinte, apenas é actualizado o valor do NCO, não se realizando nenhuma

operação de interpolação.

5.1.2.3. Descodificador Diferencial e Descrambler

O sinal d'n à saída da malha de recuperação de bit é a informação codificada

diferencialmente, e por este motivo é necessária a sua descodificação diferencial através da

operação inversa da usada na emissão, de modo a obter-se o sinal e'n. A operação do

descodificador diferencial é dada por:

𝑒′𝑛 = 𝑑′𝑛−1 ⨁ 𝑑′𝑛 (31)

41

Para a recuperação dos bits "bit'n" originais, é necessário que a última operação

realizada sobre os dados e'n seja a operação inversa da realizada no "scrambler". Essa

operação é a complementar do "scrambler", usando o mesmo polinómio, e é realizada através

do esquema da figura 38:

Figura 38 - Esquema do descrambler.

Como já referido, os dados originais encontram-se (se o canal não inserir erros) no

"bitstream" bit'n à saída do "descrambler".

5.2. Modem QPSK

O modem QPSK foi implementado utilizando os valores de grandezas indicados na

tabela 4:

Grandeza Valor Frequência de Amostragem (fS) 24 kHz

Frequência da Portadora (f0) 6 kHz

Débito Binário (Db) 12 kbps

Tabela 4 - Grandezas e os respectivos valores utilizados no desenvolvimento do modem QPSK

O modem QPSK será, a um nível hierárquico elevado, em tudo igual ao modem BPSK,

sendo que a figura 24 (secção 5.1 deste documento) representa exactamente o esquema de

emissão e recepção QPSK.

No entanto, visto que a modulação QPSK mapeia dois bits por símbolo (eficiência

dupla em relação ao BPSK) existem algumas mudanças em relação ao modem BPSK. Assim,

são apresentadas nas seguintes secções as mudanças realizadas.

42

5.2.1. Emissor

5.2.1.1. Codificador Diferencial

A codificação diferencial terá de ser feita ao nível de símbolo, e enquanto para o

modem BPSK existia apenas um bit por símbolo, no QPSK existem dois. Assim, a primeira

operação a realizar após o "scrambler" dos bits é agrupar pares de bits em símbolos

{'00','01','10','11'}.

Para além disso, enquanto no modem BPSK era realizada uma operação XOR entre o

símbolo actual e o anteriormente enviado, no caso do modem QPSK esta operação tem de ser

feita em duas dimensões e, assim, através de uma tabela. A tabela de codificação é

apresentada em baixo:

Endereço Saída

Símbolo Enviado Anterior

Símbolo Actual Símbolo a Enviar

00 00 00

00 01 01

00 10 10

00 11 11

01 00 01

01 01 11

01 10 00

01 11 10

10 00 10

10 01 00

10 10 11

10 11 01

11 00 11

11 01 10

11 10 01

11 11 00 Tabela 5 - Codificação diferencial QPSK.

Este codificador foi implementado através de uma tabela cujo conteúdo é a coluna da

saída e cujo endereço são os quatro bits das duas primeiras colunas.

Antes do filtro de "pulse shaping", e após ser calculado o símbolo a enviar, este último

é novamente dividido em dois "bitsreams" (sinal em fase e sinal em quadratura), sendo que

cada "bitstream" irá ser feito passar pelo filtro como se tratasse de um sinal BPSK.

5.2.1.2. Modulador

Após os filtros de "pulse shaping", o ramo em fase é feito passar por um modulador

BPSK igual ao referido na secção 5.1.1.3 deste documento, sendo que a portadora é o coseno.

O ramo em quadratura é modulado da mesma maneira, sendo que a portadora é o (-seno). O

sinal QPSK é obtido somando as duas componentes, e é posteriormente enviado.

43

O modulador QPSK encontra-se representado esquematicamente na figura 39:

Figura 39 - Modulador QPSK.

5.2.2. Receptor

Do lado do receptor, existem algumas mudanças relativamente ao modem BPSK que

merecem referência.

5.2.2.1. Desmodulador

A mudança ao nível do desmodulador Costas Loop consiste apenas na duplicação do

número de ramos, como é possível perceber pela figura 40:

Figura 40 - Costas Loop para sinal QPSK.

44

Como se pode verificar, os sinais sinusoidais produzidos pelo NCO estão desfasados

de 45°, e verifica-se que os dados da componente em fase xIn se encontram no ramo que é

multiplicado pelo coseno e que os dados da componente em quadratura xQ

n se encontram no

ramo que é multiplicado pelo (-seno). Estes dois sinais são posteriormente utilizados pela

malha de recuperação de bit, neste caso na sua versão de duas dimensões, e à saída deste

elemento temos dois "bitsreams" (fase e quadratura) codificados diferencialmente.

É de notar que, apesar da vantagem conceptual deste esquema, este possui sete

multiplicações, o que fará com que o peso da sua computação seja bastante mais elevado que

o do modem BPSK. Existe, no entanto, uma implementação baseada em "hard decisions" que

realiza a mesma operação, sendo apresentada na figura 41:

Figura 41 - Esquema alternativo para o desmodulador QPSK.

Apesar do esquema sugerir que após as decisões ("hard decisions") existe uma

multiplicação, essa multiplicação tem como um dos operandos os valores NRZ ('1' ou '-1'),

sendo que pode ser apenas feita a alteração do sinal quando a decisão é o valor '-1'. Deste

modo o esforço computacional do esquema alternativo é bastante semelhante ao do BPSK, e

bastante menor que o do QPSK convencional representado na figura 40.

5.2.2.2. Descodificador Diferencial

O procedimento de descodificação diferencial é em tudo semelhante ao da codificação

a duas dimensões. Primeiramente, os dois bits recuperados são emparelhados em símbolos e

é utilizada a função implementada através da tabela 6:

45

Endereço Saída

Símbolo Descodificado Anterior

Símbolo Actual Símbolo Descodificado

00 00 00

00 01 01

00 10 10

00 11 11

01 00 10

01 01 00

01 10 11

01 11 01

10 00 01

10 01 11

10 10 00

10 11 10

11 00 11

11 01 10

11 10 01

11 11 00 Tabela 6 - Descodificação diferencial QPSK.

Na saída do descodificador, os símbolos são novamente divididos em dois bits (fase e

quadratura) e é aplicado o algoritmo inverso do "scrambler" a cada um dos "bitstreams". As

saídas dos "descramblers" são posteriormente agregadas para recuperar o "bitstream" único

inicial.

5.3. Modem GMSK

O modem GMSK foi implementado utilizando os valores de grandezas indicados na

tabela 7:

Grandeza Valor Frequência de Amostragem (fS) 24 kHz

Frequência da Portadora (f0) 6 kHz

Débito Binário (Db) 6 kbps

Tabela 7 - Grandezas e os respectivos valores utilizados no desenvolvimento do modem BPSK

Como já foi referido na secção 3.1 deste documento, a modulação GMSK é uma

modulação em frequência com dois estados (1 bit por símbolo) que codifica, neste caso

diferencialmente, cada bit num valor de frequência fm = ± fb

4 a ser somada à frequência central

fc. O esquema do sistema de emissão e recepção GMSK implementado encontra-se

representado na figura 42.

46

Figura 42 - Esquema do modem GMSK implementado.

5.3.1. Emissor

O emissor GMSK implementado é, até à entrada do filtro de "pulse shaping",

praticamente igual ao modem BPSK, sendo que é aplicado o mesmo algoritmo do "scrambler"

aos bits a transmitir e é feita a codificação diferencial da saída do "scrambler". É no entanto

precedido dum bloco de codificação convolucional opcional.

5.3.1.1. Filtro de Pulse Shaping

A primeira grande diferença em relação ao emissor BPSK é o facto de o filtro de "pulse

shaping" ter uma resposta ao escalão gaussiana (e não de coseno elevado). É, no entanto,

feita a conversão dos valores dos bits ('0' ou '1') para os valores NRZ ('-1' ou '1'

respectivamente) antes da filtragem, tal como acontecia no emissor BPSK.

Como referido na secção 3.1.2 deste documento, o filtro utilizado na modulação GMSK

tem a seguinte resposta impulsional:

ℎ(𝑡) =

𝛽

√𝜋. 𝑒−𝛽2.(

𝑡𝑇

)2

(31)

onde β é dado por:

𝛽 =

2𝜋𝐵𝑇

√2. ln (2)

(32)

47

Dado que o sinal de entrada não é uma sucessão de impulsos mas sim uma sucessão

de rectângulos NRZ, é necessário calcular a resposta ao escalão de Heaviside (rectângulo).

Essa resposta g(t) é então calculada fazendo a convolução de um escalão de Heaviside com a

resposta impulsional h(t):

𝑔(𝑡) = [𝑢(𝑡) − 𝑢(𝑡 − 𝑇] ⊗ ℎ(𝑡) = ∫ 𝑢(𝜆). ℎ(𝑡 − 𝜆)𝑑𝜆

−∞

= ∫ ℎ(𝑡 − 𝜆)𝑑𝜆∞

0

(33)

realizando a mudança de variável v = t − λ

𝑔(𝑡) = ∫ ℎ(𝑣)(−𝑑𝑣) = ∫ ℎ(𝑣)𝑑𝑣 =

𝑡

−∞

−∞

𝑡

∫ ℎ(𝑣)𝑑𝑣 + ∫ ℎ(𝑣)𝑑𝑣 =𝑡

0

0

−∞

=1

2+ ∫

𝛽

√𝜋. 𝑒−𝛽2.𝑣2

𝑑𝑣 =1

2. [1 + 𝑒𝑟𝑓(𝛽𝑡) − (1 + 𝑒𝑟𝑓(𝛽(𝑡 − 𝑇)))]

𝑡

0

=1

2. [𝑒𝑟𝑓(𝛽𝑡) − 𝑒𝑟𝑓(𝛽(𝑡 − 𝑇))]

(34)

onde erf(x) é a função de erro:

𝑒𝑟𝑓(𝑥) =

2

√𝜋∫ 𝑒−𝑡2

𝑑𝑡𝑥

0

(35)

Assim, a resposta utilizada para obter os coeficientes dos filtros gaussianos será:

𝑔(𝑡) =

1

2. [𝑒𝑟𝑓(𝛽𝑡) − 𝑒𝑟𝑓(𝛽(𝑡 − 𝑇))]

(36)

O filtro gaussiano foi implementado através de um filtro FIR com um número de

coeficientes variável para cada valor de BT. O filtro incorpora um interpolador com um factor de

interpolação L=4.

O método utilizado para a obtenção dos coeficientes dos filtros gaussianos foi a

amostragem da resposta g(t), sendo que os instantes de amostragem normalizados são

múltiplos de 1/L e contidos no intervalo {-N/2; N/2} onde N é o número de símbolos que

interferem entre si (ISI).

Para a modulação com BT=0.3 e N=5, os coeficientes são os apresentados na tabela 8

enquanto que para a modulação com BT=0.5 e N=3 são os apresentados na tabela 9:

48

Coeficientes Coeficientes Q15

0,0000002975466 0

0,000037145 1

0,0003417673 11

0,0023266577 76

0,0117821631 386

0,0447123192 1465

0,1284688837 4209

0,2833647549 9285

0,4882148615 15997

0,6695589477 21940

0,7423786827 24326

0,6695589477 21940

0,4882148615 15997

0,2833647549 9285

0,1284688837 4209

0,0447123192 1465

0,0117821631 386

0,0023266577 76

0,0003417673 11

0,000037145 1

Tabela 8 - Coeficientes do filtro com BT=0.3 e N=5.

Coeficientes Coeficientes Q15

0.00000850683 2

0,0023268328 76

0,0295990802 969

0,1727473702 5660

0,4999194932 16381

0,824924599 27031

0,9408018245 30828

0,824924599 27031

0,4999194932 16381

0,1727473702 5660

0,0295990802 969

0,0023268328 76

Tabela 9 - Coeficientes do filtro com BT=0.5 e N=3.

Estes coeficientes foram obtidos através do programa MATLAB, e a partir destes foram

representadas graficamente a respectiva respostas no tempo e o respectivo espectro em

banda base.

49

As figuras 43 e 44 dizem respeito ao filtro de BT=0,3 e N=5, enquanto as figuras 45 e

46 dizem respeito ao filtro de BT=0,5 e N=3.

Figura 43 - Resposta impulsional do filtro com BT=0.3 e N=5.

Figura 44 - Espectro do sinal à saída do filtro com BT=0.3 e N=5.

-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

Normalized time, t/Tb

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-70

-60

-50

-40

-30

-20

-10

0

10

Normalized frequency, f/fb

PS

D,

dB

50

Figura 45 - Resposta impulsional do filtro com BT=0.5 e N=3.

Figura 46 - Espectro do sinal à saída do filtro com BT=0.5 e N=3.

-1.5 -1 -0.5 0 0.5 1 1.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Normalized time, t/Tb

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-70

-60

-50

-40

-30

-20

-10

0

10

Normalized frequency, f/fb

PS

D,

dB

51

5.3.1.2. Integrador e Modulador

A integração da saída do filtro gaussiano é realizada através de um integrador de

rampa, a partir de um oscilador controlado numericamente (NCO), aproveitando a circularidade

da representação em complemento para 2. Tendo em conta que foi utilizada uma variável de

16 bits de comprimento, com sinal, verificamos que a gama dinâmica da mesma é [-215

; 215

-1],

que é aproximadamente [-32768; 32767].

Assim, o integrador em rampa utilizado será o apresentado na figura 47:

Figura 47 - Esquema do integrador de rampa que realiza o NCO.

Como é perceptível na imagem, a variável delta (Δ) é o passo/incremento do integrador

em cada período de amostragem TS, ou seja, será o valor a ser integrado. Então, o período do

sinal de saída TO será:

𝑇0 = [215 − (−215)].𝑇𝑆

∆(𝑡)=

𝑇𝑆.216

∆(𝑡) (37)

Ou por outro lado, a modulação em frequência é feita através do oscilador de

relaxação, cuja expressão será dada por

𝑓0(𝑡) =1

𝑇0=

𝑓𝑆.∆(𝑡)

216 = 𝑓𝑐 + 𝑓𝑚. 𝑔(𝑡) (38)

onde fc é a frequência central da portadora, fm = ± fb

4 é a constante multiplicativa de frequência

a ser multiplicada pela saída g(t) do filtro gaussiano para que a modulação tenha m=0.5.

Deste modo, em cada ciclo, o delta integrado pelo oscilador em rampa é dado por:

52

∆(𝑡) =

𝑓𝑐 + 𝑓𝑚. 𝑔(𝑡)

𝑓𝑠. 216 = ∆𝑂 + ∆𝑚(𝑡)

(39)

sendo que

∆𝑂=1

𝑇0=

𝑓𝐶

𝑓𝑆. 216 (40)

e

∆𝑚(𝑡) =𝑓𝑚 .𝑔(𝑡)

𝑓𝑠. 216 (41)

A saída do modulador é o sinal transmitido para o canal.

5.3.1.3. Codificação Convolucional e Algoritmo de Viterbi

Como já foi referido na secção 3.1.2 deste documento, a modulação GMSK é bastante

eficiente espectralmente mas introduz interferência inter-simbólica (ISI) devido ao

prolongamento dos pulsos da resposta no tempo por mais do que um período de bit. Deste

modo, a decisão bit-a-bit não é o procedimento mais indicado, sendo que um algoritmo de

estimativa de sequência mais provável (Maximum Likelihood Sequence Estimation - MLSE)

permite uma maior robustez a erros de transmissão e assim uma menor probabilidade de erro.

O algoritmo de MLSE mais utilizado, e aqui implementado, é o algoritmo de Viterbi.

Este algoritmo atribui um peso à informação descodificada de acordo com uma métrica e com a

informação esperada, e posteriormente calcula a sequência que minimiza essa métrica,

obtendo assim a sequência de bits mais provável de ter sido enviada.

Normalmente o algoritmo de Viterbi é também combinado com uma componente de

equalização, em que é feita uma estimativa da resposta do canal através de uma sequência de

bits conhecida tanto pelo emissor como pelo receptor (sequência de treino) e, posteriormente,

é feita uma filtragem adaptada a essa resposta.

Para aumentar a robustez a erros de transmissão, foi inserida alguma redundância de

informação através da implementação de um código convolucional opcional. Este código faz

com que cada bit de dados seja transformado num símbolo (com um maior número de bits),

melhorando assim a recuperação de informação na recepção. A maior desvantagem deste

método é a diminuição da velocidade de transmissão de dados, sendo que foi escolhido um

rácio de 1/2 (2 bits por símbolo) e, consequentemente, a velocidade de transmissão de dados

foi reduzida para metade.

O algoritmo utilizado para implementação do código convolucional [30] é o

representado na figura 48:

53

Figura 48 - Algoritmo da codificação convolucional.

Como é perceptível na figura 48, o algoritmo utiliza um "buffer" de bits de dados com

dimensão K=3, sendo que os bits são inseridos pela esquerda (mais significativos) e removidos

pela direita (menos significativos). O bit "I" representa o bit actual, e os bits "S" representam os

bits anteriores, ou seja, representa o estado em que o codificador se encontra.

Os dois bits enviados por bit de dados formam um símbolo cujo bit mais significativo

(MSB) é dado pela soma dos 3 bits do "buffer" nesse instante, e cujo bit menos significativo

(LSB) é dado pela soma dos extremos (I e S1) do mesmo.

Visto que o estado contém dois bits, e tendo em conta as funções lógicas aplicadas, é

de fácil dedução a representação gráfica de uma máquina de estados possível para a emissão

representada na figura 49:

Figura 49 - Máquina de estados do codificador convolucional.

54

Os símbolos marcados por cima das linhas representativas de transições de estado

são os símbolos transmitidos, e são utilizados na recepção para se estimar os dados com

maior probabilidade de terem sido enviados.

5.3.2. Receptor

O receptor de GMSK difere apenas em três pontos em relação ao receptor BPSK. O

primeiro é no detector de fase, sendo que este é semelhante ao Costas Loop mas precisa do

relógio de bit recuperado pelo bloco de sincronismo de bit. Após o sincronismo, o sinal

necessita de ser desmodulado (ao contrário do BPSK cuja desmodulação era inerente ao

Costas Loop). Para isso é necessário um algoritmo que calcule, exacta ou aproximadamente, a

derivada da função arctan(x) sendo que x é dado pelo quociente entre a parte imaginária e a

parte real do sinal à saída do detector de fase. Por último, é necessário um descodificador de

Viterbi (caso se utilize codificação convolucional na emissão) para recuperar os bits de dados a

partir dos símbolos transmitidos.

5.3.2.1. Desmodulador

Como já foi referenciado, o primeiro bloco do receptor é um detector de fase baseado

no Costas Loop utilizado no modem BPSK. Nesta primeira solução testada, o algoritmo do

detector de fase varia apenas relativamente ao Costas Loop clássico pela à multiplicação do

sinal antes do filtro de malha pelo relógio de bit obtido pelo algoritmo de recuperação de

sincronismo de bit. A figura 50 traduz esquematicamente o algoritmo:

Figura 50 - Diagrama do detector de fase GMSK.

Neste algoritmo são de notar três particularidades. A primeira é que este depende do

sinal de relógio à frequência de bit fornecido pelo bloco de sincronismo de bit. Deste modo, o

detector de fase irá sincronizar após a recuperação do sincronismo de bit, ao contrário dos

modems BPSK ou QPSK.

55

A segunda particularidade é que, para posterior desmodulação, é necessário enviar

tanto a parte real R'n como a parte imaginária I'n do sinal, para posterior cálculo da função de

arctan(.).

Por fim, é de notar que o algoritmo depende do atraso imposto ao relógio de bit antes

da multiplicação. O atraso que optimiza a característica do detector de fase é de metade do

período de bit, de modo a que o centro de cada pulso de relógio seja o instante de

interpolação. As figuras 51, 52, e 53 mostram a característica do detector de fase para BT=0.5,

N=3 e atrasos de 0, 𝑇𝑏

4 e

𝑇𝑏

2 respectivamente. A verde apresenta-se a característica ideal e a

azul a característica obtida através do algoritmo acima apresentado.

Figura 51 - Característica do detector de fase para atraso nulo do relógio de bit.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.025

-0.02

-0.015

-0.01

-0.005

0

0.005

0.01

0.015

0.02

0.025

Normalized phase /

Mean d

iscrim

inato

r outp

ut

Actual

Theory

56

Figura 52 - Característica do detector de fase para atraso de 𝑇𝑏

4 do relógio de bit.

Figura 53 - Característica do detector de fase para atraso de 𝑇𝑏

2 do relógio de bit.

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.25

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

Normalized phase /

Mean d

iscrim

inato

r outp

ut

Actual

Theory

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

Normalized phase /

Mean d

iscrim

inato

r outp

ut

Actual

Theory

57

Ao avaliar o desempenho deste detector de fase nas placas de desenvolvimento,

verificou-se que o sincronismo da portadora apresentava bastante instabilidade, pelo se optou

por uma arquitectura computacionalmente muito eficiente e que não acarreta uma perda de

desempenho significativa. Foi então adoptada a arquitectura quasi-coerente representada na

figura 54:

Figura 54 - Arquitectura quasi-coerente do detector de fase GMSK.

À primeira vista, esta arquitectura pode parecer ter um pior desempenho, mas foi

verificado experimentalmente que, devido ao algoritmo de Lyon [31] o desvio nas frequências

centrais da portadora é desprezável comparativamente à frequência de símbolo.

Após a recuperação dos sinais em fase e em quadratura é necessária o cálculo de:

𝑑′𝑛 =𝑑 [tan−1(

𝑄𝑛

𝐼𝑛)]

𝑑𝑡

(42)

Esta operação é computacionalmente demasiado exigente, e assim foi utilizado um

algoritmo proposto por Lyon [31] que aproxima o resultado desta operação e que se representa

na figura 55:

58

Figura 55 - Algoritmo de descodificação GMSK.

Este algoritmo consiste na seguinte sucessão de operações:

∆𝜃𝑛 = 𝐾. { [ 𝐼𝑛−1. (𝑄𝑛 − 𝑄𝑛−2) ] − [𝑄𝑛−1. (𝐼𝑛 − 𝐼𝑛−2) ] } (43)

Utilizando este algoritmo, à saída do mesmo, o sinal ∆𝜃𝑛 (ou d'n da figura 42) conterá a

informação dos bits antes da descodificação diferencial.

Para um melhor desempenho, e visto que foi poupado algum esforço computacional ao

utilizar uma arquitectura quasi-coerente do detector de fase, foi implementado um filtro FIR

passa-baixo de ordem 20 entre a saída do bloco que realiza o algoritmo de Lyon e o bloco de

sincronismo de bit.

É necessário, então, recuperar o sincronismo de bit, realizar a descodificação

diferencial e por fim fazer o "descrambling" dos bits. Para isso, são utilizados os blocos de

descodificação diferencial e de "descrambler" rigorosamente idênticos aos do modem BPSK.

59

5.3.2.2. Descodificação de Viterbi

A descodificação de Viterbi é um método de estimar a sequência mais provável (MLSE)

através do cálculo da semelhança, em cada instante, de todos os símbolos possíveis de terem

sido transmitidos e do símbolo recebido. Para isso, em casa instante são calculadas as

métricas de ramo (Branch Metrics - BM) que se traduzem numa distância calculada entre o

símbolo recebido e o símbolo de cada ramo.

A distância óptima a ser utilizada no algoritmo de descodificação de Viterbi é a

distância mínima Euclidiana, dada pela equação 44:

𝐵𝑀𝐸𝑢𝑐𝑙 = √(𝑥𝐴 − 𝑥𝐵)2 + (𝑦𝐴 − 𝑦𝐵)2 (44)

sendo que o símbolo A= {xA, yA} é o valor esperado do ramo a ser calculado, e o símbolo B={xB,

yB} é o símbolo recebido.

Apesar desta distância maximizar a probabilidade de detecção correcta da sequência

mais provável, devido às operações não lineares, é computacionalmente muito exigente. Deste

modo, e tal como em [30] é dito que a maioria dos coprocessadores de Viterbi a utilizam, foi

utilizada a distância de Hamming que é dada pelo número de bits diferentes entre o símbolo do

ramo e o símbolo recebido. Deste modo, apenas pode apresentar os valores {0, 1, 2} e é fácil

de calcular utilizando uma tabela.

Após o cálculo das BM, para cada estado é calculada a métrica de caminho (Path

Metric - PM) sendo esta o menor valor da soma da PM do estado que antecedeu o actual com

a BM do ramo que liga os dois. Assim, em cada instante, cada estado possui uma PM que

minimiza a distância de Hamming, ou seja, maximiza a semelhança entre a sequência recebida

e a esperada.

Para que a sequência de bits de dados mais provável seja recuperada, é necessário

calcular a métrica acumulada ao longo de N símbolos, sendo que no último é feito um

"traceback" pelo caminho de menor valor de PM, sendo os bits recuperados em cada ramo que

liga dois estados com PM menores. Este caminho é normalmente referido como o caminho

sobrevivente.

O valor de N depende da interferência intersimbólica sendo que o compromisso entre a

sua minimização e o esforço computacional dos cálculos para N maiores levaram à escolha de

um valor de N=3, ou seja, a cada três instantes é feito o "traceback” dos bits mais prováveis de

terem sido enviados. Esta escolha deve-se ao facto de que, para um modem GMSK de BT=0.3,

o número de símbolos interferentes é aproximadamente três.

Na figura 56 apresenta-se um exemplo do algoritmo de Viterbi, através de um "trellis

diagram", em que não existem erros de transmissão:

60

Figura 56 - "Trellis diagram" de uma transmissão sem erros.

Neste diagrama é de notar que as BM se encontram por cima dos ramos entre estados

(marcados com bolas) e que as PM de cada instante se encontram a cinza por cima do estado

correspondente. As BM são calculadas utilizando a distância de Hamming, baseadas na

máquina de estados da figura 49.

Como já foi referido, se for feito o "traceback" a cada três instantes, temos que no

instante t6 o estado com menor PM é o estado "10", sendo antecedido do estado "00" dois

instantes seguidos e originado pelo estado "01". Deste modo verifica-se a descodificação dos

bits de dados "001", sendo que estes são exactamente iguais aos enviados.

É de notar que no caso de não existirem erros de transmissão nunca existem dois

estados com a mesma PM mínima (caso de empate), sendo que o "traceback" é feito sem

ambiguidade nem atraso adicional. Este facto não se verifica em casos em que existem erros

de transmissão, como se pode verificar pela figura 57:

61

Figura 57 - "Trellis diagram" de uma transmissão com erros.

Neste exemplo, na linha de símbolos recebidos, podemos verificar dois erros

(sublinhados) nos instantes t3 e t6. Visto que estes são instantes de "traceback", é perceptível

que existem empates nos instantes indicados, por exemplo no instante t6 todos os estados

excepto o estado "01" têm PM mínima.

Para resolver este problema, visto que o "traceback" é feito a cada três instantes, foi

implementada uma solução que adia o "traceback" até ao primeiro instante em que o empate é

resolvido (neste exemplo, seria no instante t8). O algoritmo implementado permite um

adiamento de "traceback" até ao instante de "traceback" seguinte, ou seja, permite um atraso

de três instantes.

Como se pode verificar pela figura, apesar de existirem erros de transmissão, os bits

descodificados para os instantes t4, t5 e t6 são igualmente "001", sendo assim provada a

utilidade do código convolucional e da descodificação de Viterbi.

62

6. Resultados e Conclusões

6.1. Modem BPSK

Na figura 58 apresenta-se o espectro de uma sucessão de bits alternados a serem

enviados (a verde). Como foi dito anteriormente, este tipo de sinal não é adequado para ser

modulado e posteriormente enviado devido ao espectro ser bastante prolongado na frequência.

Mesmo com a atenuação do filtro passa-baixo do CODEC na saída da placa é possível

observar as harmónicas do mesmo (a rosa na figura 58).

Figura 58 - Espectro de uma sucessão de bits alternados.

Como já foi referido, este problema é mitigado usando um "scrambler", e na figura 59 é

apresentado o espectro (a rosa) do sinal na depois do "scrambler" (a verde) cuja síntese é feita

através do algoritmo descrito na secção 5.1.1.1 deste documento.

Figura 59 - Espectro do sinal à saída do "scrambler".

Apesar desta melhoria de eficiência espectral o sinal este sinal ainda não é adequado a

ser modulado e enviado, sendo feito passar por um filtro de "pulse shaping" cuja saída (a

verde) apresenta o espectro (a rosa) representado na figura 60.

63

Figura 60 - Espectro do sinal à saída do filtro de "pulse shaping".

Este espectro já se encontra limitado a menos de 6 kHz (fS/4) e assim já pode ser

modulado cumprindo o teorema de Nyquist, como se verifica na figura 61:

Figura 61 - Espectro do sinal BPSK após a modulação.

É de verificar que o filtro de "pulse-shaping" possui um excesso de banda de 50% e,

assim, o sinal BPSK de 6 kbps possui uma largura de banda de (6x1.5)=9 kHz.

O sinal enviado é desmodulado e descodificado pelo receptor, sendo que na figura 62

se apresenta o sinal BPSK (a amarelo), os bits enviados (a azul), o sinal desmodulado (a

verde) e o sinal descodificado (a rosa). O bom funcionamento é visível através da ausência de

erros do sinal descodificado em relação aos bits enviados (apenas existe um atraso indicado

pelos cursores verticais).

64

Figura 62 - Sinais exemplificativos do bom funcionamento do modem BPSK.

De seguida são sumariamente apresentados os resultados dos dois casos possíveis da

malha de sincronismo de bit referidos na secção 5.1.2.2. O sinal de entrada utilizado para

testar este módulo é uma sinusóide cuja frequência é adaptada ao caso indicado. Em qualquer

dos casos, a azul encontra-se representado o sinal de entrada (sinusoidal), a amarelo

encontra-se representado o relógio sincronizado com os bits decididos e a verde encontram-se

representados os bits decididos.

1. Emissão mais rápida que a recepção:

O primeiro caso encontra-se representado na figura 63:

Figura 63 - Emissão mais rápida que a recepção.

65

Como se pode verificar, visto que a velocidade de recepção é menor que a de emissão,

existe um símbolo que tem menos um ciclo de duração que os restantes, para que seja feito o

ajuste da velocidade de recepção de modo a ficar (em média) igual à da emissão.

2. Emissão mais lenta que a recepção:

O segundo caso encontra-se representado na figura 64:

Figura 64 - Emissão mais lenta que a recepção.

Como se pode verificar, visto que a velocidade de recepção é maior que a de emissão,

existe um símbolo que tem um ciclo de duração a mais que os restantes, para que seja feito o

ajuste da velocidade de recepção de modo a ficar (em média) igual à da emissão.

6.2. Modem QPSK

Na figura 65 é apresentada a constelação QPSK a montante do bloco de filtragem de

"pulse-shaping", sendo que esta figura é resultado da apresentação dos bits à saída do

codificador diferencial (fase e quadratura) em modo XY (respectivamente).

66

Figura 65 - Constelação QPSK pré-filtragem.

Como já foi justificado anteriormente, é necessária a filtragem com um filtro formatador

de espectro dos bits à saída do codificador diferencial. Após essa filtragem a constelação

resultante é a da figura 66:

Figura 66 - Constelação QPSK pós-filtragem.

67

Naturalmente verifica-se que, após a filtragem, a constelação não é tão nítida. Este

facto já foi anteriormente justificado, e deve-se ao compromisso entre eficiência espectral

(aumenta com a filtragem) e a interferência intersimbólica (aumenta com a filtragem).

Na figura 67 é apresentado o sinal QPSK enviado (a verde) e o respectivo espectro (a

rosa). É de notar que o espectro está centrado em 6kHz (a frequência da portadora) e que este

não ultrapassa o limite imposto pelo teorema de Nyquist.

Figura 67 - Sinal QPSK e respectivo espectro.

A figura 68 mostra o "bitstream" à saída do codificador diferencial em fase na emissão

(a amarelo) e os dois "bitstreams" recebidos após a malha de sincronismo de bit, sendo que o

"bitstream" a azul é a componente em fase recebida e o "bistream" a rosa a componente em

quadratura.

Figura 68 – Bits enviados (a amarelo) e bits recebidos (a azul e rosa) no modem QPSK.

Como se pode observar, o sinal a azul não apresenta erros em relação ao sinal a

amarelo, apenas um atraso, sendo assim demonstrado o bom funcionamento do modem.

68

6.3. Modem GMSK

Como se pode verificar na figura 69, no caso do modem GMSK, a modulação é feita na

frequência, sendo que durante o tempo de bit (a rosa) em que este apresenta o valor ‘0’ a

frequência da portadora (a azul) é diferente de quando apresenta o valor ‘1’:

Figura 69 – Bits alternados e portadora modulada por GMSK.

Nesta modulação, é usado um filtro gaussiano para efeitos de formatação de espectro,

sendo que na figura 70 são representados os bits após o “scrambler” (a verde) e após o filtro (a

amarelo) antes de entrarem no modulador de frequência. A rosa apresenta-se o espectro do

sinal filtrado, característico de um sinal GMSK, para BT=0.5.

Figura 70 – Bits após “scrambler” e após filtragem (com respectivo espectro).

Na figura 71 encontra-se representado o espectro do sinal enviado, ou seja, após a

modulação. É de notar que este sinal é igual ao do da figura 70 cujo centro foi deslocado para

a frequência central da portadora.

69

Figura 71 – Espectro do sinal enviado.

Na recepção, é feita a desmodulação e é aplicado o algoritmo de Lyon, sendo o sinal

recuperado à saída desse bloco representado na figura 72 a rosa (em cima).

É de notar que, devido à característica do receptor, existe uma componente de

aproximadamente 12 kHz (dobro da frequência da portadora) sobreposta aos dados. Como foi

referido em 5.3.2.1, foi aplicado um filtro passa-baixo FIR com 20 coeficientes para eliminar

essa componente de alta frequência (ruído). A saída do filtro encontra-se representada a azul,

onde se pode verificar a praticamente total atenuação da componente de alta frequência,

melhorando assim as condições da recuperação dos dados e da descodificação.

A curva no fundo da imagem representa o espectro do sinal sem filtragem.

Figura 72 – Saída do bloco de Lyon e respectivo espectro (rosa), e sinal após filtragem (azul).

70

Na figura 73 apresenta-se exactamente os mesmos sinais que na figura 72, com a

excepção de que a curva no fundo da imagem apresenta o espectro do sinal após filtragem. É

de fácil percepção a melhoria na eliminação de ruído.

Figura 73 – Saída do bloco de Lyon (rosa) e sinal após filtragem (azul) e respectivo espectro.

O bom funcionamento do modem é perceptível na figura 74:

Figura 74 – Imagem exemplificativa do bom funcionamento do modem.

A verde encontra-se o sinal enviado, modulado pelo sinal a amarelo (após “scrambler”

e filtro gaussiano), que é originado pelo envio de bits alternados. A rosa encontram-se a

informação de decisão (antes de descodificação e “descrambler”), onde se pode verificar que

apenas existe um atraso em relação aos bits enviados (a amarelo) e não existem erros. A azul

representam-se os bits de dados recebidos, sendo estes alternados e sem erros.

71

6.4. Desempenho dos Modems

Neste projecto, o estudo detalhado dos modems na presença de ruído não foi possível

de realizar pois não foi possível o acesso ao material necessário para medições precisas das

energias dos sinais, tanto do sinal emitido como do ruído. Assim, é só apresentado o

comportamento teórico na presença de ruído branco.

As curvas da probabilidade de erro de bit (BER) teóricas, calculadas pelas fórmulas da

secção 3.3 deste documento encontram-se representadas na figura 75:

Figura 75 - Curvas de BER teóricas.

É de notar que a curva QPSK se encontra representada pela energia por símbolo, o

que significa um "shift" horizontal da curva do modem BPSK de 3 dB de SNR para a direita, ou

seja, 𝑃𝑒𝐵𝑃𝑆𝐾(𝑥) = 𝑃𝑒

𝑄𝑃𝑆𝐾(𝑥 + 3).

72

No que toca aos tempos de processamento, os resultados obtidos são os da tabela 10:

tempo processamento

(us)

Percentagem do período de amostragem

(%)

emissor BPSK 7.7 18.480

Receptor BPSK 17.92 43.008

Emissor QPSK 11.32 27.168

Receptor QPSK 22.52 54.048

emissor GMSK 8.8 21.120

Receptor GMSK 16.24 38.976

modem BPSK 25.62 61.488

modem QPSK 33.84 81.216

modem GMSK 25.04 60.096

Tabela 10 - Desempenho dos modems implementados.

Como se percebe pela tabela, o modem mais eficiente é o modem GMSK que, devido

ao receptor "quasi-coerente" ("free-running") consegue o melhor desempenho. O modem BPSK

consegue um desempenho muito semelhante ao GMSK, devido à inerente simplicidade desta

modulação. Como seria de esperar, o modem QPSK é o modem computacionalmente mais

exigente, mas é de notar que neste modem o ritmo de transmissão de dados é o dobro da dos

restantes.

Foi também testada a robustez a variações de frequência central da portadora, sendo

os resultados sumarizados de seguida:

Modem BPSK - Variação de 2Hz na frequência da portadora faz aumentar BER em

mais de 1%;

Modem QPSK - Variação de 1Hz na frequência da portadora faz aumentar BER em

mais de 1%;

Modem GMSK - Variação até 50Hz na frequência da portadora não faz aumentar BER

significativamente.

6.5. Conclusões

Como se demonstrou em toda a secção 6 deste documento, qualquer um dos três

modems apresenta resultados promissores e que dão garantias de um bom desempenho caso

sejam implementados no ISTnanosat.

Contudo, cada um dos três modems apresenta algumas particularidades que podem

ser decisivas na escolha para implementação no satélite. De seguida apresenta-se um resumo

das particularidades positivas e negativas de todos os modems implementados:

73

Modem BPSK:

Prós:

Implementação muito simples e intuitiva;

Modem bastante rápido (desempenho semelhante ao do GMSK);

Melhor comportamento teórico na presença de ruído gaussiano.

Contras:

Funcionamento com fs=24kHz permite um ritmo binário de 6kbps;

Grande sensibilidade à potência do sinal de entrada;

Fraco desempenho para desvios de frequência central da portadora da ordem de 2 Hz.

Modem QPSK:

Prós:

Funcionamento com fs=24kHz permite um ritmo binário de 12kbps (dobro dos

restantes modems implementados);

Contras:

Modem implementado mais lento;

Pior comportamento teórico na presença de ruído gaussiano.

Grande sensibilidade à potência do sinal de entrada;

Fraco desempenho para desvios de frequência central da portadora da ordem de 1 Hz.

Modem GMSK:

Prós:

Implementação muito simples e intuitiva;

Modem mais rápido (desempenho semelhante ao do BPSK);

Bom comportamento teórico na presença de ruído gaussiano.

Excelente desempenho para desvios de frequência central da portadora até 50 Hz.

Pouca sensibilidade à potência do sinal de entrada;

Contras:

Funcionamento com fs=24kHz permite um ritmo binário de 6kbps;

Pelas razões acima resumidas, conclui-se que para a implementação no satélite

ISTnanosat deve ser escolhido um modem entre BPSK ou GMSK. O critério de escolha poderá

advir do tipo de modulação (BPSK usa modulação na fase, e GMSK na frequência), no

comportamento na presença de ruído ou na resposta à variação da frequência central.

74

7. Trabalho Futuro

Tendo em conta todo o desenvolvimento deste projecto, existem alguns aspectos que

devem ser considerados para a implementação do módulo de comunicações digital do

ISTnanosat.

O primeiro aspecto prende-se com a necessidade de se construir um "transponder"

com preocupações em diminuir o ruído, visto que a placa de desenvolvimento (de reduzido

preço e com elevado número de funcionalidades) apresenta demasiado ruído para garantir

uma implementação de alto desempenho.

O segundo aspecto deverá consistir na medida exacta do desempenho dos modems na

presença de ruído, com o material adequado e após a implementação no "transponder" acima

indicado. Como esta medida de desempenho ainda não foi realizada, ir-se-ão fazer algumas

considerações baseadas no comportamento teórico dos modems.

A primeira escolha a ser feita deverá ser o modem a ser utilizado (BPSK, QPSK ou

GMSK). Pela análise dos resultados anteriormente apresentada, a escolha deverá recair sobre

o modem BPSK ou o modem GMSK, dependendo das prioridades das características

desejadas. Por exemplo, caso a resiliência à alteração significativa da frequência da portadora

seja uma prioridade, o modem GMSK deve ser o escolhido. Caso o tempo de processamento

seja um factor extremamente crítico, o modem BPSK poderá ser a escolha acertada.

O modem QPSK apresenta um desempenho teórico na presença de ruído e um tempo

de processamento bastante piores que os dois restantes modems, e assim sendo, este modem

deverá ser considerado para implementação apenas se o ritmo binário for o factor mais

influente da escolha, visto que este modem apresenta o dobro do ritmo binário do que os

restantes modems (para a mesma frequência de amostragem).

Caso o modem GMSK seja o escolhido, há ainda que ponderar a implementação dos

algoritmos de codificação convolucional e Viterbi.

Na implementação desenvolvida, devido à grande complexidade computacional da

descodificação de Viterbi, quando foram utilizados estes algoritmos a frequência de

amostragem teve de ser reduzida em quatro vezes para permitir o tempo de processamento

correcto para a descodificação de Viterbi. Assim, caso o modem GMSK seja implementado no

DSP utilizado neste projecto, estes dois algoritmos não devem ser considerados.

Para além deste facto, os descodificadores de Viterbi têm normalmente duas

componentes, a descodificação do código convolucional e a estimativa do canal e consequente

filtragem adaptada. Esta última característica pode melhorar bastante o desempenho do

modem GMSK, tendo como contrapartida uma complexidade computacional extremamente

elevada.

75

Deste modo, visto que para melhorar significativamente o desempenho do modem

GMSK seria preciso bastante mais poder de processamento, recomenda-se a utilização de um

sistema híbrido semelhante ao utilizado pela ESA no artigo referido em [9].

Visto que o ISTnanosat terá obrigatoriamente de ter pelo menos uma placa FPGA de

grande poder de processamento, recomenda-se a utilização de parte desta para efectuar o

processamento em Frequência Intermédia (IF), filtragem e a descodificação de Viterbi. O DSP

de ultra baixo consumo realizaria o processamento em banda base, sendo este menos

exigente computacionalmente, permitindo elevar consideravelmente o ritmo binário.

O processamento em frequência intermédia consistiria na modulação da portadora e na

eventual utilização da descodificação de Viterbi completa (algoritmo de Viterbi e filtragem

adaptada). O processamento em banda base consistiria em realizar "scrambler"/"descrambler",

codificação e descodificação diferencial e recuperação de sincronismo de bit.

76

8. Referências

[1] J. Ferreira, “ISTNanosat-q Heart- Processing and Digital Communications unit”,

Dissertação de Mestrado, Instituto Superior Técnico, Lisboa, 2012.

[2] “XI-IV,” univ. of Tokyo Cubesat Team, [Online]. Available: http://www.space.t.u-

tokyo.ac.jp/cubesat/news/img/011231l.jpg. [Acedido em 29 11 2013].

[3] M. Piedade, “Tabela de Nanosatélites,” UC Formação Livre III.

[4] S. A. R. Association, “"D-STAR digital Smart Technologies for Amateur Radio,” [Online].

Available: http://www.gls.net/rvarc/files/WS4VA D-STAR Presentation.pdf. [Acedido em

27 12 2013].

[5] R. Guizen, "FPGA/DSP hybrid architectures: Satisfying the reconfigurability requirementes

of the military", OpenSystems Publishing, Bitware Inc., 2007.

[6] F. Charlot, "Digital Signal Processor evolution over the last 30 years", March 2013,

[Online]. Available: http://www.slideshare.net/fcharlot/digital-signal-processor-

evolution-over-the-last-30-years. [Acedido em 14 09 2014].

[7] R. Andraka, "modulation and Demodulations Techniques for FPGAs", the Andraka

Consulting Group Inc., USA, 2000.

[8] D. Bernal, P.Closas, J. Fernández-Rubio, "Digital I&Q Demodulation in Array Processing:

Theory and Implementation", EUSIPCO 2008, Lausanne, Switzerland, 2008.

[9] G. Sessler, R. Abelló, N. James, R. Maddè, E. Vassallo, ""GMSK Demodulator

Implementation for ESA Deep-Space Missions", IEEE Vol. 95, No.11, 2007.

[10] C.-M. Kang, "High Performance PSK Demodulator in FPGA for Wireless Communication

Receivers", Innovative Integration, USA,

[11] G. Stübe, Principles of Mobile Communication, USA: Kuwer Academic Publishers, 2002.

[12] I. Poole, “What is MSK, Minimum Shift keying Modulation,” [Online]. Available:

http://www.radio-electronics.com/info/rf-technology-design/pm-phase-

modulation/what-is-msk-minimum-shift-keying-tutorial.php. [Acedido em 29 11 2013].

[13] P. Govindaiah, “Design and Development of Gaussian Minimum Shift Keying (GMSK)

Demodulator for Satellite Communications,” Bonfring internetional Journal of Research in

Communication Engineering, 2012.

[14] J. K. F. Kostedt, “Practical GMSK Data Transmission,” MX.COM, Inc., USA, 1998.

77

[24] I.-T. R. V. ter, “4800/2400 bits per second modem standardized for use in the general

switched telephone network”, ITU-T Recommendation V.27 ter, Tech. Rep., 1984.

[25] J.P. Costas, "Synchronous Communications", Proceedings of the IEEE, Vol. 90, USA, 2002.

[26] F. Gardner, "A BPSK/QPSK Timing-Error Detector for Sampled Receivers", IEEE Vol. COM-

34, No.5, 1986.

[27] F. Gardner, "Interpolation in Digital modems - Part I: Fundamentals", IEEE Vol. COM-41,

No.6, 1993.

[28] F. Gardner, "Interpolation in Digital modems - Part II: Implementation and Performance",

IEEE Vol. COM-41, No.3, 1993.

[29] M. Bapat, D. Levenglick, O. Dahan, "GSM Channel Equalization, Decoding, and SOVA on

the MSC8126 Viterbi Coprocessor (VCOP)", Freescale Semiconductor Inc., App. Note ,

USA, 2005AN2943,

[15] tienlbhoc (username), “Signac constellation diagram,” [Online]. Available: http://tele-

information.cpm/2012/11/signal-constellation-diagram/. [Acedido em 29 11 2013].

[16] F. Sadikoglu, “Digital Modulation Techniques in Mobile Communications,” [Online].

Available: http://staff.neu.edu.tr/~fahri/wireless_chp6.pdf. [Acedido em 29 11 2013].

[17] N. Dahnoun, J. Webber, “Implementing a pi/4 Shift D-QPSK Baseband Modem Using the

TMS320C50,” Texas Instrument, USA, 1996.

[18] S. Haykins, Communication Systems, USA: John Wiley & Sons, Inc., 2001.

[19] V. Podosinov, "A Hybrid DSP and FPGA Systemfor Software Defined Radio Applications",

Master Thesis, Virginia polytechnic Institute and State University, Blacksburg, 2011.

[20] E. Resweber, “A DSP GMSK Modem for Mobitex and other Wireless Infrastructures,”

Texas Instruments, USA, 1994.

[21] F. Harris, A. Ramamurty, “An All Digital Implementation of Constant Envelope: Bandwidth

Efficient GMSK Modem using Advanced Digital Signal Processing Techniques,” Springer

Science + Business Media, LLC, 2008.

[22] J. Miller, “9600 Baud Packet Radio Modem Design,” em RRL 7th Computer Networking

Conference, US, 1988.

[23] S. Raisenfeld, S. Kandeepan, “Fast Doppler tracking DSP-based Earth Station modem for

LEO satellite applications,” Intelligent Signal Processing and Communications Systems,

2004.

78

[30] R. Lyons, Understanding Digital Signal Processing, USA, Prentice Hall PTR, 2001.

[31] M. Salehi, J. Proakis, Digital Communications, USA, McGraw-Hill, 2007.

[32] J. Cavaleiro, “Digital Underwater Acoustic Communication System”, Dissertação de

Mestrado, Instituto Superior Técnico, Lisboa, 2011.

[33] M. Piedade, G. Tavares, “SEPS - Digital Signal Processors,” 2013.