Você está na página 1de 114

Dados Internacionais de Catalogação-na-Publicação (CIP)

Divisão de Informação e Documentação


Trofino, Sérgio Henrique
Implementação de um processador SAR Range-Doppler em um computador pessoal visando
operação em tempo real / Sérgio Henrique Trofino.
São José dos Campos, 2014.
113f.

Dissertação mestrado – Curso de Engenharia Eletrônica e Computação, Área de Dispositivos e


Sistemas Eletrônicos – Instituto Tecnológico de Aeronáutica, 2014. Orientador: Prof. Dr. Roberto
d'Amore.

1. SAR em tempo real. 2. Range-Doppler. 3. SAR em PC. I. Instituto Tecnológico de Aeronáutica.


II.Título

REFERÊNCIA BIBLIOGRÁFICA

Trofino, Sérgio Henrique. Implementação de um processador SAR Range-Doppler em um


computador pessoal visando operação em tempo real. 2014. 113f. Dissertação de mestrado
em Dispositivos e Sistemas Eletrônicos – Instituto Tecnológico de Aeronáutica, São José dos
Campos.

CESSÃO DE DIREITOS

NOME DO AUTOR: Sérgio Henrique Trofino


TÍTULO DO TRABALHO: Implementação de um processador SAR Range-Doppler em um
computador pessoal visando operação em tempo real
TIPO DO TRABALHO/ANO: Dissertação / 2014

É concedida ao Instituto Tecnológico de Aeronáutica permissão para reproduzir cópias desta


dissertação e para emprestar ou vender cópias somente para propósitos acadêmicos e
científicos. O autor reserva outros direitos de publicação e nenhuma parte desta dissertação
pode ser reproduzida sem a sua autorização (do autor).

__________________________________________
Sérgio Henrique Trofino
Rua Tupinambás, 348 - Casa 08 - Jd. Luiza
12305-240 - Jacareí - SP
sergio.trofino@yahoo.com.br
iii

IMPLEMENTAÇÃO DE UM PROCESSADOR SAR RANGE-


DOPPLER EM UM COMPUTADOR PESSOAL VISANDO
OPERAÇÃO EM TEMPO REAL

Sérgio Henrique Trofino

Composição da Banca Examinadora:

Prof. Dr. Marcelo da Silva Pinho Presidente - ITA


Prof. Dr. Roberto d'Amore Orientador - ITA
Prof. Dr. David Fernandes Membro - ITA
Prof. Dr. Esdon Luiz França Senne Membro Externo - UNESP

ITA
iv

A minha esposa
e a meus pais.
v

Agradecimentos

Primeiramente, gostaria de agradecer ao meu orientador, Prof. Dr. Roberto d'Amore,

por ter me incentivado quando eu desanimava e pela dedicação para que esse trabalho fosse

possível.

Gostaria de agradecer, também, ao Prof. Dr. David Fernandes, principalmente, pelos

ensinamentos sobre o tema, a empolgação e o tempo dedicado, sem os quais inviabilizariam a

realização deste estudo.

Gostaria de agradecer a meus pais, Sérgio e Samanta, que sempre foram meu alicerce

e horizonte.

Agradecer a minha esposa, Aline, pela compreensão, carinho e incentivo.

Agradecer à Mectron, aos companheiros de serviço e, principalmente, aos Eng. André

Keller Abadie e Thomaz Daibert Machado Tavares, pela amizade, contribuição e apoio para a

realização desde trabalho.

A todos meus amigos, especialmente ao Leandro Auler e ao Sandro Lombardo, pelo

apoio e confiança nesta jornada.

À Monity, em especial, ao Ronaldo Moura, pela amizade e ensinamentos.

Aos bibliotecários do ITA, em especial, à Sayonara Lizton, pelo apoio.

Aos membros da banca examinadora e ao ITA, pela oportunidade.


vi

"Se vi mais longe, foi por estar de pé sobre ombros de gigantes."


- Isaac Newton -
vii

Resumo

O uso de radares de imageamento, como o radar de abertura sintética - SAR - (do

inglês: Synthetic Aperture Radar), tem sido cada vez mais comum. Eles podem ser

encontrados em sistemas de alto custo, como plataformas orbitais, ou até em veículos aéreos

não tripulados. A demanda crescente na obtenção de informações para tomada de decisões em

curto espaço de tempo, e avaliação da imagem em tempo real, remete ao desafio do

processamento de imagens SAR em tempo real.

Diversas plataformas de hardware podem ser empregadas para o processamento de

imagens SAR em tempo real: processadores de sinais digitais, unidade de processamento

gráfico ou hardwares programáveis. Neste trabalho, propõe-se o uso de um computador de

propósito geral para realizar a tarefa de processar e exibir a imagem SAR, focalizada em

tempo suficiente de modo que não haja acúmulo de dados sem processamento. Os testes

realizados apresentam resultados que indicam a viabilidade do emprego desta plataforma de

baixo custo em operações com aeronaves.


viii

Abstract

The use of imaging radars, like the Synthetic Aperture Radar (SAR), is becoming

more frequent. They can be found in high cost systems, like orbital platforms to Unmanned

Aerial Vehicles (UAV). The increasing demand to acquire information for decision in a short

period of time, and real time image evaluation, take to the challenge of processing SAR

images in real time.

Many hardware platforms can be employed to processing SAR images in real time,

from digital signal processors, graphics processors to programmable hardware. In this work,

we propose the use of a general-purpose computer to perform the task of processing and

displaying a focused SAR image, in such a way that there is no accumulation of unprocessed

data. The tests show results indicate the viability in using this low-cost platform in aircraft's

operations.
ix

Lista de Ilustrações

Figura 2.1 - Representação de um SAR aerotransportado........................................................ 30

Figura 2.2 - SAR operando no modo stripmap boresight . ...................................................... 31

Figura 2.3 - SAR operando no modo stripmap squinted. ......................................................... 31

Figura 2.4 - SAR operando no modo scan. .............................................................................. 32

Figura 2.5 - SAR operando no modo spotlight......................................................................... 32

Figura 2.6 - Geometria de aquisição de dados.......................................................................... 34

Figura 2.7 - Geometria para determinação do número de pontos em range. ........................... 38

Figura 2.8 - Frame a cada fim de processamento de N linhas. ................................................ 42

Figura 2.9 - Função que descreve a distância de um alvo estático ao SAR. ............................ 43

Figura 2.10 - Representação da migração da célula de resolução ............................................ 44

Figura 2.11 - Algoritmo Range-Doppler .................................................................................. 46

Figura 2.12 Componente real da imagem complexa do dado bruto de um alvo pontual na cena.

...................................................................................................................................... 48

Figura 2.13 - Imagem módulo após compressão em range de uma cena contendo um alvo

pontual. ......................................................................................................................... 48

Figura 2.14 - Imagem módulo após correção da RCM de uma cena contendo um alvo pontual.

...................................................................................................................................... 48

Figura 2.15 - Imagem módulo após compressão em azimute de uma cena contendo um alvo

pontual. ......................................................................................................................... 49

Figura 2.16 - Imagem módulo após compressão em azimute de uma cena contendo um alvo

pontual com as cores invertidas e um círculo no alvo para destacá-lo. ....................... 49

Figura 2.17 - Espalhamento da energia do alvo na direção range após processamento da

imagem. ........................................................................................................................ 50
x

Figura 2.18 - Espalhamento da energia do alvo na direção azimutal após processamento da

imagem. ........................................................................................................................ 50

Figura 2.19 - Representação da temporização no processamento. ........................................... 52

Figura 3.1 - Representação do sistema de teste utilizando três computadores. ........................ 55

Figura 3.2 - Representação do sistema de teste implementado. ............................................... 56

Figura 3.3 - Exemplo do formato do arquivo de parâmetros utilizado no sistema de teste. .... 57

Figura 3.4 - Representação do cenário em arquivo. ................................................................. 58

Figura 3.5 - Parte real da imagem bruta simulada. ................................................................... 60

Figura 3.6 - Cena obtida utilizando-se o ERS-1. a) Imagem focalizada; b) Imagem composta

pela parte real dos dados brutos do ERS-1 ................................................................... 62

Figura 3.7 - Método utilizado para medida de tempo de execução .......................................... 64

Figura 3.8 - Subprocessos......................................................................................................... 73

Figura 3.9 - Estrutura para troca de dados utilizada pelo primeiro subprocesso. ..................... 75

Figura 3.10 - Fluxo de aquisição de dados na entrada do processamento ................................ 77

Figura 3.11 - Descontinuidade na junção de frames devido ao descarte de dados sem a devida

compensação dos dados descartados. ........................................................................... 79

Figura 3.12 - Estrutura para troca de dados utilizada pelo segundo subprocesso. ................... 80

Figura 3.13 - Uso do buffer 2.1, buffer 2.2 e buffer 2.3 entre SP2 e SP3. ................................ 81

Figura 3.14 - Estrutura para troca de dados utilizada pelo terceiro subprocesso. .................... 83

Figura 3.15 - Estrutura para troca de dados utilizada pelo visualizador................................... 85

Figura 3.16 - Lógica implementada para dar noção de imageamento contínuo ao processador

SAR. ............................................................................................................................. 86

Figura 4.1 - Parâmetros para compilação da biblioteca FFTW. ............................................... 91

Figura 4.2 - Parâmetros para compilação do SimSAR e do ProcSAR. .................................... 92

Figura 4.3 - Configuração do sistema para o SimSAR e ProcSAR operando no mesmo PC. . 93
xi

Figura 4.4 - Configuração do sistema para o SimSAR e ProcSAR operando em dois PCs

diferentes. ..................................................................................................................... 93

Figura 4.5 - Configuração do sistema sem o SimSAR. ............................................................ 94

Figura 4.6 - Configuração do sistema sem o SimSAR e sem a visualização da imagem

processada. ................................................................................................................... 94

Figura 4.7 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos simulados

com 64 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 96

Figura 4.8 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos simulados

com 32 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 96

Figura 4.9 - Espalhamento da energia dos alvos pontuais em range após processamento com

64 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 97

Figura 4.10 - Espalhamento da energia dos alvos pontuais em azimute após processamento

com 64 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 98

Figura 4.11 - Espalhamento da energia dos alvos pontuais em range após processamento com

32 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 98

Figura 4.12 - Espalhamento da energia dos alvos pontuais em azimute após processamento

com 32 bits de representação de ponto flutuante e funções para aritméticas de ponto

flutuante com 64 bits. ................................................................................................... 99


xii

Figura 4.13 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos

simulados com 32 bits de representação de ponto flutuante e funções para aritmética

de ponto flutuante com 32 bits. .................................................................................. 100

Figura 4.14 - Espalhamento da energia dos alvos pontuais em range após processamento com

32 bits de representação de ponto flutuante e funções para aritmética de ponto

flutuante com 32 bits. ................................................................................................. 100

Figura 4.15 - Espalhamento da energia dos alvos pontuais em azimute após processamento

com 32 bits de representação de ponto flutuante e funções para aritmética de ponto

flutuante com 32 bits. ................................................................................................. 101

Figura 4.16 - Cenário simulado exibido instantes após a inicialização do sistema. ............... 102

Figura 4.17 - Cenário simulado exibido instantes após a Figura 4.16. .................................. 102

Figura 4.18 - Cenário simulado exibido instantes após a Figura 4.17. .................................. 102

Figura 4.19 - Módulo da imagem ERS-1 focalizada: a) Precisão numérica de 64 bits para

ponto flutuante. Funções para aritmética de ponto flutuante de 64 bits; b) Módulo da

imagem ERS-1 focalizada. Precisão numérica de 32 bits para ponto flutuante. Funções

para aritmética de ponto flutuante de 64 bits; c) Módulo da imagem ERS-1 desfocada.

Precisão numérica de 32 bits para ponto flutuante. Funções para aritmética de ponto

flutuante de 32 bits. .................................................................................................... 104

Figura 4.20 - Três sequências de imagens do sistema processando o Cenário ERS-1. .......... 105
xiii

Lista de Tabelas

Tabela 2.1 - Designação de letra para bandas de frequência de radar ...................................... 29

Tabela 2.2 - Parâmetros do radar e de um cenário com alvo pontual para exemplificar as

etapas do algoritmo Range-Doppler. ............................................................................ 47

Tabela 3.1 - Parâmetros do radar e do cenário de teste com dados simulados. ........................ 61

Tabela 3.2 - Parâmetros do Radar e do cenário de teste com dados do ERS-1 ........................ 62

Tabela 3.3 - Funções utilizadas na comunicação dos processos - envio de dados. .................. 65

Tabela 3.4 - Funções utilizadas na comunicação dos processos - recepção de dados. ............. 65

Tabela 3.5 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-opatient" (escolhe o algoritmo de FFT com melhor desempenho em um

grupo restrito de algoritmos definido pela biblioteca), "i" (preservar vetor com os

dados de entrada) e "b" (FFT inversa).......................................................................... 67

Tabela 3.6 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-oexhaustive" (escolhe o algoritmo de FFT com melhor desempenho em um

grupo que abrange mais algoritmos do que o grupo utilizado com "-opatient"), "i"

(preservar vetor com os dados de entrada) e "b" (FFT inversa). .................................. 67

Tabela 3.7 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-oestimate" (utiliza uma heurística simples para escolher um algoritmo de

FFT com desempenho razoável), "i" (preservar vetor com os dados de entrada) e "b"

(FFT inversa). ............................................................................................................... 68

Tabela 3.8 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-oestimate" (utiliza uma heurística simples para escolher um algoritmo de

FFT com desempenho razoável), "o" (corromper vetor com os dados de entrada) e "b"

(FFT inversa). ............................................................................................................... 68


xiv

Tabela 3.9 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-oestimate" (utiliza uma heurística simples para escolher um algoritmo de

FFT com desempenho razoável), "i" (preservar vetor com os dados de entrada) e "f"

(FFT direta). ................................................................................................................. 69

Tabela 3.10 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo

"bench" "-oestimate" (utiliza uma heurística simples para escolher um algoritmo de

FFT com desempenho razoável), "o" (corromper vetor com os dados de entrada) e "f"

(FFT direta). ................................................................................................................. 69

Tabela 3.11 - Número de amostras descartadas no cenário simulado. ..................................... 87

Tabela 3.12 - Número de amostras descartadas no cenário ERS-1. ......................................... 89

Tabela 4.1 - Tempos de execução do cenário simulado. .......................................................... 95

Tabela 4.2 - Tempos de execução do cenário ERS-1 ............................................................. 103


xv

Lista de Abreviações e Siglas

CUDA - Compute Unified Device Architecture

CV - Com Visualizador

DSPs - Digital Signal Processors

ERS-1 - European Remote Sensing Satellite-1

FFT - Fast Fourier Transform

FINEP - Financiadora de Estudos e Projetos

FPGA - Field-Programmable Gate Array

GCC - GNU Compiler Collection

GPGPU - Gerenal-Purpose Computing on Graphics Processing Units

GPU - Graphics Processing Unit

HDD - Hard Disk Drive

IEEE STD - Institute of Electrical and Electronics Engineers Standard

ITA - Instituto Tecnológico de Aeronáutica

NASA - National Aeronautics and Space Administration

PC - Personal Computer

PRF - Pulse Repetition Frequency

PROSAR-BR - Processador SAR Brasileiro

PSLR - Peak Sidelobe Ratio

RADAR - Radio Detection and Ranging

RAM - Random Access Memory

RCM - Range Cell Migration

SAR - Synthetic Aperture Radar

SEASAT - Seafaring Satellite


xvi

SIVAM - Sistema de Vigilância da Amazônia

SLAR - SideLooking Airborne Radar

SP1 - Subprocesso 1

SP2 - Subprocesso 2

SP3 - Subprocesso 3

SP4 - Subprocesso 4

ST - Sem Transmissão

SV - Sem Visualizador

TMC - Transmissão no Mesmo Computador

TOC - Transmissão em Outro Computador

UHF - Ultra High Frequency

USB - Universal Serial Bus

VANTs - Veículos Aéreos Não Tripulados


xvii

Lista de Símbolos

La - Comprimento efetivo da antena na direção azimutal

h - Altura do sensor com relação ao solo

0 - Ângulo de visada do centro da cena a uma distância r0

r0 - Distância normal à trajetória da plataforma ao centro da

cena

a - Abertura azimutal da antena

e - Abertura da antena em elevação

r0 a - Dimensão azimutal do feixe da antena na cena

r0e / sen0 - Largura da faixa imageada

vp
- Velocidade da plataforma transportando o sensor SAR

Tp - Duração do pulso

f0
- Frequência de repetição de pulso (PRF)

T0 - Período de repetição de pulso

 - Comprimento de onda da portadora

s(t ) - Envoltória complexa de um sinal transmitido pelo SAR

j - Unidade de número imaginário

A - Amplitude do sinal transmitido pelo SAR

R - Variação instantânea de frequência do sinal emitido pelo

SAR (chirp rate)


xviii

 t 
rect   - Função retangular de amplitude unitária, centrada em
 Tp 

zero e de duração Tp

a - Coordenada azimutal de um alvo pontual

r - Coordenada radial de um alvo pontual

a' - Eixo azimutal do sistema de referência utilizado

r' - Eixo radial do sistema de referência utilizado

g (a ' a, r ' r; r ) - Resposta impulsiva do sistema Radar para um alvo

pontual nas coordenadas (a, r ) em um sistema de referência

formado pelo eixo azimutal a ' e pelo eixo radial r '

c0 - Velocidade da luz no espaço livre

Ls - Abertura sintética da antena

e xp   - Função exponencial

 (a ', r ') - Refletividade complexa da cena

h (a ', r ') - Imagem bruta da cena imageada

H ( ,; r ) - Aproximação da transformada dupla de Fourier da

função h (a ', r ')

G( , ; r ) - Aproximação da transformada dupla de Fourier da

função g (a ' a, r ' r; r )

 ( ,; r ) - Fase da função G( ,; r )

2 - Largura da faixa azimutal da imagem bruta

2 - Largura da faixa radial da imagem bruta

R - Resolução radial da imagem SAR


xix

A - Resolução azimutal da imagem SAR

DF - Distância, no solo, da região imageada

LF - Largura, no solo, da região imageada

M0 - Número de amostras em range representação como

potência de dois

rmax - Maior distância radial da cena à trajetória do SAR

rmin - Menor distância radial da cena à trajetória do SAR

Ts - Período de amostragem do sinal em range

 - Menor inteiro maior ou igual a 

M - Número de amostras em range como potência de dois

Nd - Número de pontos a serem descartados em azimute

devido ao efeito de borda da convolução de uma série finita

Md - Número de pontos a serem descartados em range devido

ao efeito de borda da convolução de uma série finita

dA - Espaçamento entre os pixels em azimute

dR - Espaçamento entre os pixels em range

N - Número de amostras em azimute

DR - Dimensão radial da imagem bruta

DA - Dimensão azimutal da imagem bruta

Taq - Tempo de aquisição de uma imagem bruta para gerar um

frame

* - Complexo-conjugado

S( f ) - Espectro de um sinal s(t )


xx

H( f ) - Espectro de um sinal h(t )

 - Convolução entre dois sinais

W (i) - Resposta do filtro de Hamming no caso discreto

K - Número total de amostras na região onde o filtro de

Hamming será empregado

 - Coeficiente do filtro de Hamming

TRange - Tempo do processamento em range

TRCM - Tempo de processamento para realizar a correção da

RCM

TAzimutal - Tempo de processamento da compressão em azimute

Tproc - Tempo de processamento para se corrigir a RCM e

realizar a compressão em azimute

TCrítico - Tempo para acumulação dos dados em azimute

TVisual - Tempo disponível para visualização do frame processado

 - Squint angle

µ - Milionésimo
xxi

Sumário

1 Introdução .......................................................................................................................... 22
1.1 Radares ..................................................................................................................... 22
1.2 Motivação ................................................................................................................. 23
1.3 Contribuição ............................................................................................................. 25
1.4 Sequência de tópicos ................................................................................................ 27
2 Radar e Processador ........................................................................................................... 28
2.1 SAR .......................................................................................................................... 29
2.1.1 Geometria de aquisição de dados ..................................................................... 33
2.1.2 Resposta impulsiva ........................................................................................... 35
2.2 Processador Range-Doppler ..................................................................................... 42
2.3 Limites de tempo do processamento ........................................................................ 51
3 Sistema para processamento em tempo real ...................................................................... 54
3.1 Sistema ..................................................................................................................... 54
3.2 Parâmetros do Sistema ............................................................................................. 56
3.3 Gerador de Cenário ................................................................................................... 57
3.4 Cenário ..................................................................................................................... 58
3.4.1 Cenário simulado .............................................................................................. 60
3.4.2 Cenário ERS-1 .................................................................................................. 61
3.5 SimSAR .................................................................................................................... 63
3.6 ProcSAR ................................................................................................................... 65
3.6.1 Biblioteca de FFT ............................................................................................. 66
3.6.2 Estrutura do ProcSAR ...................................................................................... 72
3.7 Visualizador .............................................................................................................. 84
3.8 Consistência do sistema idealizado com os cenários de teste propostos .................. 87
3.8.1 Consistência do cenário simulado .................................................................... 87
3.8.2 Consistência do cenário ERS-1 ........................................................................ 89
4 Experimento em tempo real ............................................................................................... 91
4.1 Configuração do experimento .................................................................................. 91
4.1.1 Experimento com o cenário simulado. ............................................................. 95
4.1.2 Experimento com cenário ERS-1 ................................................................... 103
4.2 Discussão dos Resultados ....................................................................................... 105
5 Conclusões ....................................................................................................................... 108
5.1 Trabalhos futuros .................................................................................................... 109
Referências ............................................................................................................................. 110
22

1 Introdução

Apresenta-se, neste capítulo, uma breve introdução teórica, a motivação deste trabalho

e a maneira como ele está organizado.

1.1 Radares

Radar (Radio Detection and Ranging) consiste em um sistema eletromagnético para

detecção e localização de objetos. Os radares operam transmitindo sinais eletromagnéticos e

recebendo os sinais refletidos (ecos) pelos objetos (alvos) dentro da região de cobertura,

extraindo a localização e outras informações do alvo a partir do sinal eco. O equipamento

radar pode ser operado com o transmissor desligado, funcionando como um localizador

passivo direcional de fontes de radiação dentro da banda de recebimento do sistema [1].

Dentre as diversas aplicações de radares, pode-se citar o auxílio à navegação e ao

controle dos tráfegos aéreo e marítimo, detecção e acompanhamento de condições climáticas,

estimação da velocidade de automóveis, sistema de vigilância, controle de armamento e

funções de inteligência [2].

O sensor radar pode operar em uma estação solo, como é o caso dos radares utilizados

no controle de tráfego aéreo, ou numa plataforma móvel, como um satélite ou uma aeronave,

sendo este o caso do SAR (Synthetic Aperture Radar).

O SAR é um tipo de radar imageador que sintetiza uma antena de grande dimensão

através do movimento de uma antena de menor dimensão ao longo de um caminho (caminho

de voo da plataforma) e, então, processa devidamente o sinal recebido [3]. Ele se enquadra na

categoria SLAR (Side Looking Airborne Radar – radar aerotransportado de visada lateral) [4],
23

pois opera instalado numa plataforma aérea (aeronave ou satélite), de modo a produzir a

imagem de uma cena observada lateralmente à trajetória seguida pela plataforma.

1.2 Motivação

Após os resultados obtidos com o satélite SEASAT (Seafaring Satellite) da NASA

(National Aeronautics and Space Administration), onde imagens detalhadas da superfície da

terra foram obtidas utilizando-se SAR, a comunidade de sensoriamento remoto atentou-se

para este tipo de sensor e uma necessidade surgiu: o desenvolvimento de processadores SAR

digitais [5]. Desde então, diversas arquiteturas para implementação dos processadores têm

sido estudadas: GPGPU (General-Purpose Computing on Graphics Processing Units) [6],

DSPs (Digital Signal Processor) [7], FPGAs (Field-Programmable gate array) [8], dentre

outras.

Em setembro de 1990, o antigo Ministério da Aeronáutica iniciou a tarefa de

implantação do Sistema de Vigilância da Amazônia (SIVAM), o qual previa a aquisição de

um SAR embarcado em aeronaves [9]. A solução contratada continha limitações que foram

compensadas pelo PROSAR-BR (Processador SAR Brasileiro). Este processador fazia uso de

computadores pessoais para processar os sinais ecos e gerar as imagens das cenas imageadas

(sem ser em tempo real) [4].

Em 2006, a FINEP (Financiadora de Estudos e Projetos) financiou um projeto de

quatro anos (número do convênio: 01.06.0953.02), projeto este com o objetivo de desenvolver

um sistema de processamento de imagens em tempo real para SAR aerotransportado em

aplicações de defesa, no mar e na terra. Este projeto resultou em um processador SAR

baseado em FPGA [8].


24

Já em 2010, a FINEP financiou outro projeto envolvendo SAR (número do convênio:

01.10.0588.00), projeto este denominado AEROSAR, que visa o desenvolvimento de um

emulador SAR aeroembarcado em tempo real para aplicações militares. No contexto deste

projeto está inserido este trabalho.

Tanto o PROSAR-BR quanto os projetos FINEP de 2006 e 2010 utilizaram-se do

algoritmo Range-Doppler para processamento das imagens.

Muitos trabalhos apresentam estudo sobre processamento SAR em tempo real [6],

[10], [11], [12] e [13]. Geralmente os trabalhos dão foco ao algoritmo de processamento,

porém, o sistema como um todo (a entrada de dados, a interface de comunicação utilizada, a

etapa de visualização etc.) não é detalhado, sendo até negligenciado na avaliação para uso em

aplicações de tempo real. Pelo termo "tempo real" entende-se, neste trabalho, que o tempo

demandado pela tarefa de processamento do algoritmo e pela etapa de visualização da

imagem permite um acompanhamento contínuo do imageamento, sem acúmulo de dados

brutos a serem processados.

Percebe-se que, apesar dos mais de 60 anos desde o surgimento do conceito do SAR

[5], este ainda é um tema de relevância para a comunidade científica e para o Brasil. Tanto no

setor ambiental [14], [15], quanto no setor da defesa [16], se faz importante o tempo levado

para se obter informações para tomada de decisão. Daí, por exemplo, a necessidade de obter

uma imagem SAR em tempo real, principalmente com a recente tendência de se utilizar SAR

em plataformas VANTs (Veículos Aéreos não Tripulados) [10] e [11].

Este cenário, aliado ao constante avanço da tecnologia dos computadores de propósito

geral, motivou o estudo do processador SAR, utilizando o algoritmo Range-Doppler, para

gerar imagens em um computador pessoal portátil (PC - Personal Computer), a fim de obtê-

las em tempo real, analisando desde a entrada dos dados no processador até a sua saída. Este

dispositivo (PC) foi escolhido para o estudo porque possui interfaces de aquisição de dados
25

(ethernet, USB), hardware para visualização de imagens (monitor), ferramentas amigáveis

para desenvolvimento e teste (sistema operacional, ambiente de desenvolvimento de software

etc.) e sua aquisição é simples, quando comparada a um hardware específico para aplicação,

evitando a etapa de desenvolvimento e montagem de um sistema dedicado.

1.3 Contribuição

Atualmente, trabalhos utilizando PCs para processar imagens SAR em tempo real

tornaram-se comuns devido à possibilidade de se usar o processador gráfico do computador

(GPU - Graphics Processing Unit) para auxiliar no processamento da imagem [6], [10].

Contudo, esta abordagem requer o conhecimento de uma tecnologia específica, por exemplo,

CUDA (Compute Unified Device Architecture) [17], um modelo de programação e plataforma

de computação paralela, introduzida pela NVIDIA Corporation, que permite utilizar GPUs

para computação de propósito geral, com a maioria das operações iguais às disponíveis em

processadores de uso geral.

O uso de PC no processamento radar é descrito na literatura [10], [18]. Em [10], é

apresentado um processador SAR operando em uma GPU de um notebook com dados

adquiridos, em tempo real, de um veículo ultraleve transportando um SAR de dois canais.

Malanowski justifica [10] o uso de um notebook por ser pequeno e leve, o que o permite ser

transportado facilmente e usado em diversas condições, além de reduzir o tempo de

desenvolvimento da aplicação quando comparado a DSPs especializados ou FPGAs. Já [18]

acrescenta, nas justificativas para utilizar um PC no processamento de sinal radar, a

diminuição dos custos do desenvolvimento e manutenção de um sistema radar e o aumento da

flexibilidade do sistema, uma vez que os algoritmos são utilizados como componentes de

software que podem ser modificados facilmente.


26

O processamento SAR em tempo real é discutido em vários trabalhos [6], [8], [10],

[19] e [20]. Contudo, são poucos os trabalhos que apresentam um sistema completo,

principalmente usando o algoritmo Range-Doppler, e fazem o detalhamento dos tempos de

processamento e a descrição do cenário de teste. Por exemplo, [6], [13] e [19] estudaram o

processamento SAR em busca de desempenho para operação em tempo real, mas não

analisaram o sistema integralmente, uma vez que não consideraram as interfaces para entrada

de dados brutos do radar e a saída da imagem processada; não consideraram o tempo e a

influência no processamento que estas tarefas irão causar, bem como, a integração delas ao

processador. Em [21], apresenta-se um sistema completo, o qual foi testado utilizando-se

dados de um SAR embarcado em um satélite e foi escolhido o algoritmo Chirp Scaling para

processar os dados, uma vez que este algoritmo foi considerado mais apropriado para operar

em uma GPU.

Este trabalho apresenta o algoritmo Range-Doppler executado em um PC, levando em

conta o fluxo de entrada e saída de dados. Para tal, foi desenvolvido um sistema de teste que

apresenta imagens processadas a partir de dados brutos. Estes dados podem ter como origem

outro PC, simulando um radar em operação, ou podem ser gerados no mesmo computador.

Um processador Range-Doppler sem compensação de movimento foi codificado. Para

se avaliar o processamento, a visualização em tempo real e comprovar a operação do

processador, foram usados dados de entrada representando alvos pontuais e dados reais

obtidos do satélite ERS-1 (European Remote Sensing Satellite 1). A ausência de compensação

de movimento tornará a imagem desfocada se o processador for usado com dados sem um

tratamento prévio obtidos de aeronaves, como apresentado em [4], mas, como um trabalho

prévio, decidiu-se ignorar este problema, dando foco a uma versão básica do processador,

como realizado em [6] e [19], ficando uma versão mais completa para um trabalho futuro.
27

As contribuições deste trabalho são a implementação do processador SAR utilizando-

se somente um computador pessoal e a apresentação de um sistema completo, desde a

aquisição dos dados brutos até a visualização da imagem. Como vantagem, pode-se citar a

reduzida complexidade no desenvolvimento, quando comparado ao desenvolvimento de um

hardware com capacidade de processamento suficiente para processar imagens SAR. A

solução, um código em linguagem C, pode, com pequenos ajustes, ser compilada para um

DSP, ao contrário de um software desenvolvido para GPU. Isto facilita a portabilidade do

código.

1.4 Sequência de tópicos

No Capítulo 2, os conceitos envolvidos para realização do trabalho são apresentados

com um nível de detalhamento maior, como a geometria de aquisição de dados do SAR, o

algoritmo Range-Doppler e o cenário de aplicação deste trabalho.

No Capítulo 3, o sistema é apresentado, com detalhamento do simulador do SAR, do

processador Range-Doppler e da lógica para visualização da imagem.

No Capítulo 4, os recursos utilizados são descritos, os ensaios são apresentados e a

discussão dos resultados é exposta.

O Capítulo 5 apresenta a conclusão do trabalho e propostas de trabalhos futuros.


28

2 Radar e Processador

Apresenta-se, neste capítulo, o detalhamento teórico do SAR, do processador Range-

Doppler e o cenário de aplicação. A formulação matemática deste trabalho foi baseada em

[12] e muitos conceitos foram extraídos de [4].

Os radares podem se apresentar em configurações monoestáticas, biestáticas ou

multiestáticas. Estas configurações dizem respeito à configuração do transmissor e do

receptor, ou dos transmissores e receptores. Radar monoestático é o radar que possui uma

antena transmitindo o sinal e a mesma antena recebe o sinal eco do alvo. Radar biestático é o

radar que possui uma antena transmitindo sinal e outra recebendo o sinal eco. Radar

multiestático é uma configuração formada por um transmissor e mais de um receptor ou por

mais de um transmissor combinados com mais de um receptor [22].

Os sensores de micro-ondas aerotransportados são classificados em dois grandes

grupos: os sensores ativos e os passivos [4]. O uso de sensores passivos no sensoriamento

remoto trás algumas limitações contornadas pelos sensores ativos. Estas limitações são:

dependência da radiação emitida pelo alvo e dependência de iluminação (dia e noite) e

condições climáticas favoráveis para operação (cobertura de nuvens) [3]. Devido a este fato, o

uso de sensores ativos complementa, por exemplo, o uso de sensores ópticos.

Embora a maioria das aplicações em sensoriamento remoto esteja voltada aos radares

imageadores, há três categorias distintas de sistemas ativos: imageadores, escaterômetros e

altímetros, sendo os dois últimos não imageadores [4].

Além disto, conforme a aplicação, um radar pode operar nas bandas de frequência do

espectro eletromagnético apresentadas na Tabela 2.1, conforme padrão IEEE STD 521

(Standard Letter Designations for Radar Frequency Bands) [23].


29

Tabela 2.1 - Designação de letra para bandas de frequência de radar

Nomenclatura de Radar
Letra de designação Faixa de
de Radar frequência
HF 3-30 MHz
VHF 30-300 MHz
UHF 300-1000 MHz
L 1-2 GHz
S 2-4 GHz
C 4-8 GHz
X 8-12 GHz
Ku 12-18 GHz
K 18-27 GHz
Ka 27-40 GHz
V 40-75 GHz
W 75-110 GHz
mm 110-300 GHz

Uma denominação muitas vezes usada na literatura é o de banda P. Normalmente, se

refere à banda de 420 a 450 MHz, a qual é parte oficial da banda UHF (Ultra High

Frequency), mas também foi usada para se referir à frequência em torno de 230 MHz. Essa

denominação não é incluída no IEEE STD 521 e não deve ser usada [23].

2.1 SAR

Para compreender o funcionamento e a geração de imagens a partir do sinal

transmitido e recebido pelo SAR, deve-se entender a geometria de aquisição de dados e a

resposta impulsiva do SAR. A direção de voo é chamada direção azimutal e a direção de

propagação da onda, definida pelo apontamento da antena, de comprimento efetivo La na

direção azimutal, é dita direção de alcance, ou range, veja Figura 2.1.


30

Figura 2.1 - Representação de um SAR aerotransportado.

Após o processamento do sinal eco recebido, obtém-se uma imagem bidimensional de

boa resolução. Essa imagem de boa resolução só é possível ser formada graças à técnica de

sintetização de uma antena de maior comprimento efetivo (menor abertura angular) por meio

de processamento do sinal eco.

O uso de dois receptores ou de dois sistemas SAR completos permite a geração de

imagens tridimensionais. Isto é possível explorando a diferença de fase, usualmente

referenciada como interferograma de fase, ou só interferograma, entre as duas imagens

geradas. Um interferograma também pode ser gerado utilizando um sistema SAR, ao se

imagear uma mesma cena em dois instantes de tempo diferentes, técnica conhecida como

interferometria de duas passagens [3].

O SAR possui três modos de operação: stripmap (faixa), scan (varredura) e spotlight

(pontual), representados na Figura 2.2, na Figura 2.3, na Figura 2.4 e na Figura 2.5. No modo

stripmap a antena do radar aponta para uma direção fixa, tendo como referência a trajetória da

plataforma. Neste modo, há duas geometrias possíveis: boresight, onde o feixe da antena

aponta para o plano perpendicular à direção de voo, e a geometria squinted, com a antena
31

fazendo um ângulo de apontamento, referenciado como ângulo squint, tendo como referência

a direção boresight. Este ângulo pode ser intencional ou pode ser devido a movimentos

indesejáveis da plataforma [3].

Figura 2.2 - SAR operando no modo stripmap boresight .

Figura 2.3 - SAR operando no modo stripmap squinted.

O modo scan permite um drástico aumento da faixa imageada na direção range. Isto é

alcançado alterando periodicamente o apontamento do feixe da antena para subfaixas vizinhas

[3].
32

Figura 2.4 - SAR operando no modo scan.

O modo spotlight difere da filosofia adotada no modo stripmap e scan. Neste modo, a

antena é rotacionada durante todo o período de aquisição para iluminar a mesma área [3].

Veja Figura 2.5.

Figura 2.5 - SAR operando no modo spotlight.

O objetivo do processamento é focalizar a energia recebida de modo a obter a imagem

da cena imageada. Vários algoritmos são usados para o processamento do sinal eco a fim de
33

gerar esta imagem. Dentre eles, pode-se citar o Narrow-Focus [3], Range-Doppler [3], Chirp

Scaling [5] e o Omega-K [5].

Este trabalho considera o algoritmo Range-Doppler codificado para executar em um

PC, tendo como entrada um sinal eco simulado ou adquirido de um SAR real. A escolha pelo

Range-Doppler se baseia na conhecida eficiência e precisão deste algoritmo, incluindo a sua

capacidade de preservar a fase do sinal [4].

2.1.1 Geometria de aquisição de dados

A focalização da imagem SAR é baseada no conhecimento, a priori, da imagem de um

alvo pontual. Esta imagem é a resposta impulsiva do Radar. Uma imagem de uma cena

qualquer é formada pixel a pixel, através do casamento dos dados brutos, na saída do radar,

com a resposta impulsiva [4].

O dado bruto de um sistema SAR consiste em uma imagem complexa contendo uma

parte real (amplitude) e uma parte imaginária (fase), as quais são provenientes da

demodulação do sinal eco recebido.

A geometria de aquisição do sistema SAR considerado neste trabalho é apresentada na

Figura 2.6, assumindo-se um radar monoestático, o qual é tipicamente utilizado em

sensoriamento remoto [5]. Desta geometria, extrai-se o sistema de coordenadas utilizado na

determinação da resposta impulsiva do radar.


34

Direção Azimutal
h 0
e a
r0 r0

a) Vista lateral b) Vista superior

h
0

r0

r0 a
r0e / sen ( 0 )

c) Vista composta

Figura 2.6 - Geometria de aquisição de dados.

Na Figura 2.6, h é a altura do sensor com relação ao solo, 0 é o ângulo de visada do

centro da cena a uma distância r0 ,  a é a abertura azimutal da antena,  e é a abertura da

antena em elevação, r0 a é a dimensão azimutal do feixe da antena no centro da cena e

r0e / sen0 é a largura da faixa imageada.

Considera-se a plataforma movendo com uma velocidade constante v p , em linha reta e

a uma altura h do solo considerada também constante, com uma antena de visada lateral com
35

ângulo de abertura azimutal  a , ângulo de abertura vertical  e , sendo r0 a distância normal à

trajetória da plataforma ao centro da cena imageada.

Os pulsos eletromagnéticos emitidos pelo SAR possuem duração Tp e são modulados

linearmente em frequência (denominados chirp) numa cadência f 0 (denominada PRF – Pulse

Repetition Frequency) ou T0  1 f 0 (período de repetição de pulso). Eles possuem portadora

com comprimento de onda  e comprimento efetivo da antena na direção azimutal La .

2.1.2 Resposta impulsiva

O sinal transmitido pelo SAR utiliza uma portadora de frequência muito maior que sua

banda, constituindo assim um sinal passa-faixa com faixa estreita.

A envoltória complexa desse sinal é dada por:

t 
s(t )  Arect   exp  j Rt 2  (2.1)
 Tp 

onde A é a amplitude do sinal,  R é o chirp rate (variação instantânea de frequência do sinal

emitido), dado por:

banda do sinal transmitido


R  (2.2)
Tp

 t 
Tp é a duração do pulso transmitido e rect   é a função retangular de amplitude unitária,
 Tp 

centrada em zero e de duração Tp .


36

A resposta impulsiva do sistema Radar para um alvo pontual nas coordenadas (a, r )

em um sistema de referência formado pelo eixo azimutal a ' e pelo eixo radial r ' , é dado por

[3]:

 r ' r 2   a ' a 2 
 a ' a   
g (a ' a, r ' r; r )  A rect   rect 
 s 
L c0Tp / 2 
 
 4 r 2  (a ' a) 2  r 
 e xp  j  (2.3)
  
 4
  
2
 e xp  j 2 R r ' r 2  (a ' a ) 2
 c0

onde c0 é a velocidade da luz no espaço livre e Ls é a abertura sintética definida por:


Ls  r0 a  r0 (2.4)
La

Já a imagem bruta da cena imageada, considerando uma função  (a ', r ') como

representativa da refletividade complexa da cena, é descrita pela convolução, variante com a

distância r , dada por:

 4 
h (a ', r ')    (a, r ) exp  j r  g (a ' a, r ' r; r )dadr (2.5)
  

ou, em termos espectrais:


37

 4 
H ( , )    (a, r ) exp  j r  G ( , ; r ) (2.6)
  
 exp  j 2 a exp  j 2 r dadr

onde H ( ,; r ) e G( ,; r ) são as transformadas duplas de Fourier aproximadas de h(a ', r ')

e g (a ' a, r ' r; r ) , respectivamente, e G( ,; r ) é dada por:

     
G ( , ; r )  rect   rect    exp  j 2 ( , ; r ) (2.7)
 2   2 

e ainda:

 2c0Tp  2  2
2

 ( , ; r )  n  r  r n    2 (2.8)
8    

onde 2 é, em termos de número de onda (1/m), a largura de faixa azimutal da imagem

bruta e 2 a largura de faixa radial da imagem bruta, também em número de onda (1/m).

1 a
   (2.9)
La 

e
38

 RT p
  (2.10)
c0

A resolução radial da imagem SAR, dada por [12]:

1 c
R   0 (2.11)
2 2 RTp

e a resolução azimutal da imagem SAR, dada por [12]:

1 
A   (2.12)
2 2 a

Através da geometria apresentada na Figura 2.7, pode-se calcular o número de

amostras em range obtidas de cada pulso.

DF
LF

Figura 2.7 - Geometria para determinação do número de pontos em range.


39

Na Figura 2.7, DF representa a distância, no solo (ground range), da região imageada

e LF representa a largura, no solo, da região imageada.

O número de amostras em range ( M 0 ) pode ser escrito como:

 2  (rmax  rmin) 
M0    (2.13)
 c0Ts 

sendo rmax é a maior distância radial da cena à trajetória do SAR, dado por:

rmax  h2  ( DF  LF )2 (2.14)

rmin é a menor distância radial da cena à trajetória do SAR, dado por:

rmin  h2  DF2 (2.15)

Ts o período de amostragem do sinal em range, c0 é a velocidade da luz no vácuo, 

representa a função teto, ou seja, o menor número inteiro maior ou igual a  e o fator 2 é

devido ao caminho de ida e volta da onda eletromagnética. Para um melhor desempenho nas

operações de FFT (Fast Fourier Transform), usa-se o número de amostras como potência de

dois [12]. Logo:

  2  (rmax  rmin)  
M  2 log 2 
  c0Ts  (2.16)

sendo M o número de amostras em range como potência de dois.


40

No processamento dos dados é necessário descartar dados devido ao efeito de borda

causado pela convolução dos dados com as funções de referência azimutal e radial que são

utilizadas no processo de foco da imagem. Esse descarte é dado por [12]:

 max Ls    rmax a 


Nd     (2.17)
 dA   dA 

 c0Tp 
Md    (2.18)
 2d R 

onde N d representa o descarte em azimute, M d o descarte em range, d A é o espaçamento

entre os pixels em azimute, que é definido por:

d A  v pT0 (2.19)

onde T0 representa o período de repetição de pulsos e d R é o espaçamento entre pixels em

range, definido como:

c0TS
dR  (2.20)
2

e  a é a abertura azimutal da antena.

Pode-se reescrever (2.5) e (2.6) na forma:


41

 2 
 rmax a   rmax  /(2 A )    h   DF  LF  
2

Nd     (2.21)
 dA   v pT0   2 Av pT0 

 c T   c0 
Md   0 p     (2.22)
 2d R   2TS  R r 

Considerando N a quantidade de sinais ecos de uma aquisição utilizados para gerar

uma imagem, que é equivalente ao número de amostras em azimute, e M o número de

amostras em range, devido ao descarte, esses valores devem ser tais que [12]:

N  2 Nd (2.23)

M  2M d (2.24)

Com estes parâmetros definidos, obtém-se uma imagem bruta de dimensões DR  DA .

DR representa a dimensão radial da imagem bruta em metros e DA representa a

dimensão azimutal da imagem bruta em metros. O cálculo de DR e DA se dá segundo as

Equações (2.25) e (2.26).

DR  M  d R (2.25)

e
42

DA  N  d A (2.26)

Da imagem bruta, após o processamento e o descarte das bordas, obtém-se um frame

de dimensões (M  M d )d R  ( N  Nd )d A , como mostrado na Figura 2.8.


Range

DR  DA (m2 )

Md / 2

M Nd / 2
Nd / 2

Md / 2

Azimute
N

Figura 2.8 - Frame a cada fim de processamento de N linhas.

A imagem bruta que gera o frame apresentado na Figura 2.8 é aquisicionada em um

tempo Taq equivalente a:

Taq  NT0 (2.27)

2.2 Processador Range-Doppler

Em um processador Range-Doppler, realizam-se operações unidimensionais de

convolução do sinal eco em cada direção (range e azimute) com o filtro casado

correspondente, o qual, para um sinal complexo no domínio temporal, corresponde a [22]:


43

h(t )  s* (t ) (2.28)

onde * significa complexo-conjugado.

Uma vez que ambas as compressões de pulso são realizadas no domínio da frequência,

é necessário fazer a transformada de Fourier do sinal recebido previamente, para que uma

multiplicação de espectros seja efetuada. Pelas propriedades de transformada de Fourier, é

possível escrever, no domínio da frequência [22]:

s(t )  h(t )  S ( f ) H ( f ) (2.29)

onde S ( f ) e H ( f ) correspondem ao espectro dos sinais s(t ) e h(t ) , respectivamente, e o

operando  representa a operação de convolução entre dois sinais.

Pela geometria de aquisição de dados, ao considerar o movimento do SAR iluminando

um alvo fixo, tem-se a distância do alvo ao SAR variando na forma de uma hipérbole, que

pode ser aproximada por uma parábola [22], como demonstra a Figura 2.9 e a Figura 2.10.

Range
Hipérbole
r'
r '  r 2   a ' a 
2

Aproximação
parabólica

 a ' a 
2

r' r
2r
r
Azimute
a a'
Figura 2.9 - Função que descreve a distância de um alvo estático ao SAR.
44

a
v

a

Alvo Pontual

Figura 2.10 - Representação da migração da célula de resolução

Devido a este comportamento, há um acoplamento azimute-range que faz com que o

espalhamento do alvo em azimute se estenda por diferentes distâncias. Esse espalhamento

recebe o nome de migração da célula de resolução ou RCM (Range Cell Migration) [12].

No domínio espacial, uma vez que esse espalhamento é dependente da distância do

alvo à trajetória do radar e da sua posição em azimute, quando há outros alvos pontuais na

cena, o sinal amostrado pelo radar é uma combinação linear do sinal eco refletido por cada um

deles, o que torna impossível remover corretamente a migração de células para todos os alvos

ao mesmo tempo.

No processador Range-Doppler a correção da RCM é feita no domínio Range-

Doppler, fato que nomeou o algoritmo, através de deslocamentos das amostras em alcance,

para cada uma das frequências azimutais. Para se ter mais precisão nos deslocamentos, a

imagem é interpolada no domínio Range/Doppler ao longo do alcance para todas as

frequências espaciais amostradas. Apesar da não dependência da posição azimutal dos alvos,

a curvatura do centro de fase do alvo mantém uma dependência, em geral pequena, da posição

do alvo. Na correção da RCM do processador Range-Doppler, as curvaturas são iguais para


45

todos os alvos que possuem o mesmo r0 , permitindo realizar a mesma correção para todas as

curvaturas.

Como não se tem mais a dependência da posição azimutal do alvo, mas apenas do

parâmetro r0 , todos os alvos equidistantes da trajetória de coleta de dados têm seus espectros

superpostos, permitindo que a correção da RCM possa ser realizada de uma só vez para todos

esses alvos [4].

A estrutura básica do processador Range-Doppler é formada pela aproximação

polinomial em  da fase  ( , ; r ) da função de transferência G( ,; r ) expressa nas

Equações (2.7) e (2.8). Essa aproximação pode ser calculada por [12]:

 ( , ; r )  2 ( , ; r )
 ( , ; r )  ( , 0; r )   2
  0
2 2
 0

c0Tp
 0 ( ; r )  1 ( ; r )  [ 2 ( ; r )  ] 2 (2.30)
8 '
Compressão Correçãoda Correção
azimutal Migração da Secundária Compressão
Célula de da Migração em range
Resolução da Célula de
(RCM) Resolução

Para suprimir lóbulos secundários, por exemplo, pode-se usar um filtro no domínio

espectral para o sinal em azimute e em range. Um destes filtros é o Filtro de Hamming [22].

No caso discreto, o Filtro de Hamming é dado por [24]:

 2 i 
W (i)    (1   ) cos  , i  0,1,..., K  1 (2.31)
 K 1 

onde K é o número total de amostras na região onde o filtro será empregado e  é o

coeficiente, que segue a restrição 0.54    1 . Como prejuízo no uso deste filtro, tem-se o

alargamento do lóbulo principal, o que causa deterioração na resolução [22].


46

Como parâmetro para avaliar os efeitos da filtragem, pode-se usar a razão pico-lóbulo

secundário (PSLR - Peak Sidelobe Ratio) e o fator de alargamento do lóbulo principal [22].

Ao utilizar o Filtro de Hamming com   0.54 , tem-se PSLR de -42 dB e perda de

resolução num fator de 1.30 [24].

A Figura 2.11 apresenta o diagrama de blocos do processador Range-Doppler.

DADOS BRUTOS
 a ', r ' 

Compressão do
FFT radial

chirp radial
 a ',  
rect  /  2  exp  j 2 2c0TP / 8 

FFT-1 radial
 a ', r ' 

Correção Compressão do
da RCM chirp azimutal
FFT azimutal
 , r '  
Correção da RCM


rect  /  2   exp j 2     2 /   r  r
 
  2 /     2 
2

FFT-1 azimutal
 a ', r ' 
IMAGEM SAR

Figura 2.11 - Algoritmo Range-Doppler


47

Considerando um sistema com os parâmetros da Tabela 2.2, tendo como entrada do

processador Range-Doppler uma cena apenas um alvo pontual, o resultado de cada etapa do

processamento é apresentado na Figura 2.12, Figura 2.13, Figura 2.14, Figura 2.15 e

Figura 2.16.

Tabela 2.2 - Parâmetros do radar e de um cenário com alvo pontual para exemplificar as etapas do

algoritmo Range-Doppler.

Radar
 0,03 m Comprimento de onda
T0 625 s Período de repetição de pulso
Tp 667,13 ns Duração do pulso
fs 300 MHz Frequência de amostragem
 0,0 ° Squint angle
R 449,3 THz/s Chirp rate
La 0,25 m Comprimento efetivo da antena
M 512 pixels Dimensão da imagem em range
N 8192 pixels Dimensão da imagem em azimute
R 4m Resolução em range
A 4m Resolução em azimute
Plataforma
h 4 km Altitude
vp 200 m/s Velocidade em azimute
a 6,88° Abertura azimutal
Cenário
Azimute [500; 1524] m Faixa imageada em azimute
Range [6000; 6256] m Faixa imageada em range
Alvos
Alvo [1012; 6128] m Posição (azimute; range) do alvo
48

Figura 2.12 Componente real da imagem complexa do dado bruto de um alvo pontual na cena.

Figura 2.13 - Imagem módulo após compressão em range de uma cena contendo um alvo pontual.

Figura 2.14 - Imagem módulo após correção da RCM de uma cena contendo um alvo pontual.
49

Figura 2.15 - Imagem módulo após compressão em azimute de uma cena contendo um alvo pontual.

Figura 2.16 - Imagem módulo após compressão em azimute de uma cena contendo um alvo pontual com

as cores invertidas e um círculo no alvo para destacá-lo.

Os dados brutos que entram no processador Range-Doppler são apresentados pela sua

parte real, mostrado na Figura 2.12. Esta imagem corresponde a uma cena contendo somente

um alvo pontual. A Figura 2.13 apresenta a imagem módulo dos dados no processador Range-

Doppler após a compressão em range. Já a Figura 2.14 apresenta a imagem módulo dos dados

no processador Range-Doppler após a correção da RCM. A Figura 2.15 apresenta a saída do

processador Range-Doppler, que é a imagem módulo focalizada. Como a cena é um alvo

pontual, espera-se ver uma imagem escura com um ponto branco ao centro. Por fim, a
50

Figura 2.16 apresenta a mesma informação que a Figura 2.15, porém com as cores da imagem

invertidas e um círculo em volta do alvo para destacá-lo na figura.

Para se avaliar a qualidade do algoritmo de processamento da imagem, pode-se

verificar se o espalhamento da energia do alvo na imagem focalizada correspondeu ao

esperado (no caso desde exemplo, 4 m - resolução da imagem em cada direção). A

Figura 2.17 e a Figura 2.18 trazem este espalhamento.

0.7

≈5m

Figura 2.17 - Espalhamento da energia do alvo na direção range após processamento da imagem.

0.7

≈5m

Figura 2.18 - Espalhamento da energia do alvo na direção azimutal após processamento da imagem.
51

O eixo vertical na Figura 2.17 e na Figura 2.18 representa a amplitude normalizada do

pixel na imagem e o eixo horizontal representa a medida em metros do espalhamento. Por

estas figuras, através das linhas tracejadas no centro dos gráficos, é possível extrair que, para

3 dB (aproximadamente 70,7%) da amplitude do pixel, o espalhamento ficou

aproximadamente 5 m para as duas direções. Isto representa uma focalização satisfatória, uma

vez que é a resolução da imagem configurada nos parâmetros de entrada do sistema, conforme

apresentado na Tabela 2.1, é de 4 m e, considerando um espalhamento de 30 % causado pelo

filtro de Hamming na resolução especificada, essa resolução passa para 5,2 m.

O sistema utilizado para gerar estas figuras empregou um software matemático

denominado IDL [25].

2.3 Limites de tempo do processamento

Na implementação do algoritmo Range-Doppler, pode-se realizar a execução do

processamento dos dados em range paralelamente ao processamento dos dados em azimute. O

processamento em range não exige a acumulação de blocos de dados, bastando apenas a

recepção dos dados referentes a um intervalo de repetição de pulsos para que se realize este

processamento nestes dados. Com isto, o tempo de processamento em range deve ser menor

que o período de repetição de pulsos ( T0 ) para que não haja acúmulos de dados não

processados na entrada do processador. Já para o processamento azimutal e a correção da

RCM, um conjunto de dados deve ser formado para que se realize o processamento. O tempo

para que este processamento seja realizado deve ser menor ou igual ao tempo que se levou

para acumular estes dados.

Para calcular os limites de tempo para processamento dos dados em tempo real, pode-

se utilizar como base a Figura 2.19:


52

N  Nd 2( N  Nd ) 3( N  Nd )
Amostra A Amostra B Amostra C

T0 M

Nd Azimute
N  Nd N  Nd

TCrítico  Tproc

TRange TAzimutal  TRCM  Tproc Tproc  TCrítico

TVisual  TCrítico

TCrítico

Taq  ( N  Nd )T0 T0 ( N  Nd )  TCrítico Tempo

Figura 2.19 - Representação da temporização no processamento.

TRange é o tempo do processamento em range, que deve ser menor ou igual a T0 .

TRange  T0 (2.32)

Tproc é o tempo gasto para se corrigir a RCM e realizar a compressão em azimute e é

dado por:
53

Tproc  TAzimutal  TRCM  TCrítico


(2.33)

onde TCrítico é o tempo gasto para se acumular os dados a serem processados em azimute, dado

por:

TCrítico  ( N  N d )T0
(2.34)

TRCM é o tempo gasto para realizar a correção da RCM e TAzimutal é o tempo gasto para realizar

a compressão em azimute.

O tempo disponível para visualização do frame processado, TVisual , é dado por:

TVisual  TCrítico (2.35)


54

3 Sistema para processamento em tempo real

Neste capítulo é apresentado o sistema utilizado para avaliação do processador Range-

Doppler. A partir do diagrama de blocos do sistema, os diferentes elementos são analisados e

suas operações internas discutidas. Dois cenários de imagem são considerados para avaliação

dos limites de operação sistema, um com alvos pontuais simulados e outro com dados

provenientes de um SAR orbital.

3.1 Sistema

Sendo o algoritmo Range-Doppler um dos mais empregados para geração de imagens

SAR [6], ele foi codificado em linguagem C para uso em computador de uso geral, com a

finalidade de analisar seu desempenho em aplicações com requisitos de tempo real. As

análises feitas consideram um SAR aeroembarcado em modo stripmap. Como compilador de

linguagem C foi usado o gcc (GNU Compiler Collection). O notebook usado possui sistema

operacional Windows e um pacote de aplicativos com funcionalidades similares ao Linux

para ser utilizado em Windows (cygwin) [26].

Um esboço do sistema de teste é apresentado na Figura 3.1. Ele é formado pelos

seguintes blocos: Parâmetros do Sistema, Gerador de cenário, Cenário, SimSAR, ProcSAR e

Visualizador, detalhados mais adiante.

Como primeira proposta para implementação do sistema de teste utilizado neste

trabalho, foi concebida uma arquitetura onde o Gerador de Cenário e o SimSAR estariam em

um PC, o ProcSAR em outro e o Visualizador em um terceiro PC. Nesta arquitetura, a

interface de comunicação entre os blocos SimSAR e ProcSAR e os blocos ProcSAR e

Visualizador seriam realizados via ethernet, utilizando-se a placa de rede dos computadores.
55

Parâmetros do sistema
Leitura de Leitura de
Arquivo Arquivo
SimSAR ProcSAR
Leitura de

Leitura de
Arquivo

Arquivo
Ethernet
Recepção

Range-Doppler
Proc. Range
Arquivo ou
Proc. Azimute
memória
Range
Gerador

Ethernet
Azimute

de
Memória ou
cenário Arquivo Visualizador
Cenário

Figura 3.1 - Representação do sistema de teste utilizando três computadores.

Após alguns testes, percebeu-se que seria possível implementar o bloco Visualizador

no mesmo PC do ProcSAR. Com isto, a arquitetura do sistema final adquiriu a forma

apresentada na Figura 3.2. Nesta implementação, o ProcSAR e o Visualizador trocam

informações diretamente pela memória do PC.


56

Parâmetros do sistema
Leitura de Leitura de
Arquivo Arquivo
SimSAR ProcSAR
Leitura de
Arquivo

Ethernet
Recepção

Range-Doppler
Proc. Range
Arquivo ou
Proc. Azimute
memória
Range
Gerador
Azimute

de Visualizador
Memória ou
cenário Arquivo
Cenário
Figura 3.2 - Representação do sistema de teste implementado.

3.2 Parâmetros do Sistema

O bloco Parâmetros do Sistema consiste em um arquivo texto, comum a todas as

etapas do sistema, que contém os parâmetros do sistema SAR, como tamanho da antena ( La ),

velocidade da plataforma ( v p ), o número de amostras de um bloco de dados em range e em

azimute ( M e N , respectivamente), localização dos alvos simulados na cena, etc. Ele

contém, ainda, parâmetros para configuração do sistema de teste, como tamanho da janela a se

exibir a imagem SAR focalizada, configuração informando se o cenário de teste deve ser

gerado ou lido de um arquivo, etc. Utilizou-se uma biblioteca de software em linguagem C

para leitura deste arquivo, biblioteca esta chamada "libxml2" [27]. O arquivo de parâmetros

possui o formato apresentado na Figura 3.3.


57

<?xml version="1.0"?>
<SAR:Parametros xmlns:SAR="CarregarParametros">
<SAR:Parametro>
<SAR:ParametrosPlataforma>
<SAR:alt valor="780000"/> <!-- m altitude -->
<SAR:vel valor="7120.7327"/> <!-- m/s velocidade da plataforma -->
</SAR:ParametrosPlataforma>
</SAR:Parametro>

</SAR:Parametros>

Figura 3.3 - Exemplo do formato do arquivo de parâmetros utilizado no sistema de teste.

3.3 Gerador de Cenário

O bloco Gerador de Cenário foi implementado para gerar um cenário simulado a partir

dos parâmetros fornecidos pelo bloco Parâmetros do Sistema.

Os cenários criados pelo Gerador de Cenário são cenas contendo alvos pontuais,

criados utilizando-se a Equação (2.5).

Um método utilizado para testar a qualidade do processamento SAR é observar o

espalhamento da energia de um alvo pontual após o processamento da imagem. Devido a este

fato, escolheu-se simular um cenário com alvos pontuais para testar a qualidade da

focalização do processador implementado. Foram utilizados, também, dados de uma aplicação

real para evitar algum vício de programação.

O bloco Gerador de Cenário é utilizado pelo SimSAR para gerar um cenário simulado,

caso esta configuração seja habilitada nos parâmetros, ou ele pode ser executado antes da

inicialização do sistema de teste para criar um cenário e exportá-lo para arquivo. Esta

exportação permite que o SimSAR, ao carregar um cenário para memória do PC, tenha seu

tempo de inicialização reduzido, caso o tempo de leitura do arquivo com o cenário seja menor

que o tempo de criação do cenário a ser utilizado.


58

3.4 Cenário

Um cenário consiste em dados brutos de uma cena imageada através de um SAR.

Quando contido em arquivo, utilizam-se dois arquivos para representação do cenário: um dos

arquivos possui a parte real da imagem bruta e o outro arquivo possui a parte imaginária da

imagem bruta. Cada valor, em cada um dos arquivos, representa uma amostra do sinal eco e

deve estar em uma linha no arquivo. Como o cenário representa uma cena em duas

dimensões, considerou-se que a primeira dimensão do cenário corresponde aos dados de uma

aquisição na direção range e a segunda dimensão do cenário representa os dados da direção

azimute, conforme ilustra a Figura 3.4.

Range
Azimute

Figura 3.4 - Representação do cenário em arquivo.

Cada valor do arquivo é lido como um número de ponto flutuante pelo SimSAR.

Durante a implementação do sistema de teste, uma particularidade do ambiente

computacional foi notada: a quantidade de bits para se representar um número de ponto

flutuante nas operações matemáticas impacta na qualidade das imagens processadas.

Programando-se em linguagem C e utilizando-se as funções disponibilizadas na

biblioteca "libm", é possível realizar a função seno, por exemplo, utilizando-se a função
59

"double sin (double x)" ou a função "float sinf (float x)". A principal diferença entre as

funções é o tipo de representação que é utilizado para números de ponto flutuante: na função

"sinf" é utilizado o tipo "float", que possui representação de 32 bits para número de ponto

flutuante; na função "sin" o tipo utilizado é "double", que possui 64 bits para representar o

número de ponto flutuante. Ao testar as funções para o tipo "float", obteve-se uma focalização

de baixa qualidade, ao passo que ao se utilizar as funções para o tipo "double" a imagem teve

uma focalização visual boa. Ainda, com estes testes, percebeu-se que, empregando-se

números com representação de 32 bits e funções para números com 64 bits, a qualidade da

focalização se manteve boa. Como, durante os testes, o tempo demandado pelas operações

não alterava (32 ou 64 bits), decidiu-se adotar, como formato numérico para leitura dos dados

brutos, número de ponto flutuante com 64 bits. Isto significa que cada amostra do sinal eco,

lida do arquivo de cenário ou criada na geração de um cenário simulado, terá sua amplitude e

sua fase carregada na memória do PC como um número de ponto flutuante com 64 bits.

Como teste, foi usado um cenário simulado similar aos utilizados nas literaturas [6],

[12], [19], [20] e [22], conforme apresentado na Seção 3.4.1. Os dados são relativos a um dos

modos de operação definidos pelo projeto FINEP AEROSAR em desenvolvimento no ITA

(Instituto Tecnológico de Aeronáutica).

Foi, também, empregado um cenário real com dados obtidos do SAR ERS-1,

conforme apresentado na Seção 3.4.2. O ERS-1 é um SAR embarcado em um satélite. Apesar

de este trabalho visar o uso do sistema implementado em aplicações com requisitos de tempo

real para SAR embarcado em aeronaves, o emprego do cenário ERS-1 justifica-se devido à

dificuldade na obtenção destes dados de aplicações com SAR em aeronaves de domínio

público.
60

3.4.1 Cenário simulado

A Figura 3.5 apresenta a imagem dos dados brutos simulados e utilizados para ensaio

do sistema. Este cenário foi gerado pelo Gerador de Cenário e corresponde a três alvos

pontuais refletores em um ambiente não refletivo. A Tabela 3.1 apresenta os parâmetros

utilizados para construção do cenário simulado.

Figura 3.5 - Parte real da imagem bruta simulada.


61

Tabela 3.1 - Parâmetros do radar e do cenário de teste com dados simulados.

Radar
 0,03 m Comprimento de onda
T0 625 s Período de repetição de pulso
Tp 667,13 ns Duração do pulso
fs 300 MHz Frequência de amostragem
 1,0 ° Squint angle
R 449,3 THz/s Chirp rate
La 0,25 m Comprimento efetivo da antena
M 2048 pixels Número de amostras em range
N 8192 pixels Números de amostras em azimute
R 3m Resolução em range
A 3m Resolução em azimute
Plataforma
h 4 km Altitude
vp 200 m/s Velocidade em azimute
a 6,88 ° Abertura azimutal
Cenário
Azimute [500; 2,500] m Faixa imageada em azimute
Range [6000; 7,200] m Faixa imageada em range
Alvos
Alvo1 [1000; 6300] m Posição (azimute; range) do alvo 1
Alvo2 [1050; 6500] m Posição (azimute; range) do alvo 2
Alvo3 [1100; 6700] m Posição (azimute; range) do alvo 3

3.4.2 Cenário ERS-1

O outro teste proposto é um cenário com dados do SAR ERS-1. Este cenário

corresponde a uma cena obtida com o ERS-1 de uma região na Áustria mostrando em preto

um lago e as regiões claras referentes à vilas/cidades.

Esta cena é apresentada na Figura 3.6 a), e a visualização dos dados brutos

correspondentes a ela é apresentada na Figura 3.6 b). Os dados deste cenário encontram-se na

Tabela 3.2. A cena possui 16,2 km de extensão em range (eixo vertical da imagem) e 8,68 km

em azimute.
62

Figura 3.6 - Cena obtida utilizando-se o ERS-1. a) Imagem focalizada; b) Imagem composta pela parte

real dos dados brutos do ERS-1

Tabela 3.2 - Parâmetros do Radar e do cenário de teste com dados do ERS-1

Radar
 0,056666 m Comprimento de onda
T0 595 s Período de repetição de pulso
Tp 37,12 s Duração do pulso
fs 18,962468 MHz Frequência de amostragem
 0,112 ° Squint angle
R 23,2464 THz/s Chirp rate
La 12 m Comprimento efetivo da antena
M 2048 pixels Número de amostras em range
N 2048 pixels Número de amostras em azimute
R 10 m Resolução em range
A 10 m Resolução em azimute
Plataforma
h 780 km Altitude
vp 7120,7327 m/s Velocidade em azimute
a 0,271 ° Abertura azimutal
Cenário
Azimute 8,68 km Faixa imageada em azimute
Range [850,9; 867,1] km Faixa imageada em range
63

3.5 SimSAR

O bloco SimSAR, através dos parâmetros recebidos do bloco Parâmetros do Sistema,

pode realizar duas operações: gerar um cenário simulado utilizando-se do bloco Gerador de

Cenário e mantê-lo na memória do PC, ou ler um cenário dos arquivos indicados pelos

parâmetros recebidos do bloco Parâmetros do Sistema e manter o cenário na memória do PC.

Após a carga do cenário na memória, o bloco SimSAR envia para o bloco ProcSAR

dados do cenário, simulando um sistema SAR. A cadência com que estes dados são enviados

ao ProcSAR pode ser configurada. Na primeira opção de configuração, 2  M dados da

imagem ( M valores da parte real da imagem bruta e M valores da parte imaginária da

imagem bruta) podem ser transmitidos respeitando-se T0 , assim como acontece em um

sistema SAR real. Na segunda opção, a transmissão ignora T0 , enviando dados sempre que o

ProcSAR esteja disponível para recebimento. Esta configuração é útil, pois permite perceber

se o processamento da imagem SAR está no limite da capacidade do hardware ou se ainda há

margem para o processamento de uma imagem mais demandante. Esta percepção é possível,

pois o sistema fornece imagens para visualização num intervalo de tempo inferior a

( N  N d )T0 , o que significa que, para aquele cenário de teste com aquela configuração do

sistema SAR, a demanda de processamento é menor que a disponível no hardware.

Para medir o tempo de execução das tarefas foi utilizada a função omp_get_wtime(),

disponível em uma biblioteca de software para desenvolvimento de programas em C/C++

com processamento paralelo chamada OpenMP [28]. A abordagem para realizar esta medida

de tempo é apresentada na Figura 3.7.


64

Tempo_inicio_trecho = omp_get_wtime( );

Trecho de código a se medir o

tempo de execução

Tempo_trecho = omp_get_wtime( ) - Tempo_inicio_trecho;

Figura 3.7 - Método utilizado para medida de tempo de execução

O SimSAR trata os dados brutos como dois vetores de dados: um contendo dados com

a parte real desta imagem e outro contendo dados com a parte imaginária desta imagem.

Considerando uma linha inteira da imagem bruta ( M amostras na direção range), os dados

são transmitidos intercalados, ou seja, é transmitida a parte real e a parte imaginária da

primeira amostra e, na sequência, a parte real e a parte imaginária de próxima amostra. Após

transmitir M amostras da parte real e M amostras da parte imaginária da imagem bruta, o

SimSAR envia outra linha até atingir o limite informado nos parâmetros recebidos do bloco

Parâmetros do Sistema.

Para testar o sistema desenvolvido como numa aplicação real, necessita-se que o

SimSAR envie dados constantemente para o ProcSAR. Uma vez que os dados utilizados

como cenário são finitos, o SimSAR envia os dados do cenário circularmente, ou seja, quando

todo o cenário é enviado, o SimSAR envia novamente o mesmo cenário como se fosse a

continuação da imagem até atingir o limite informado nos parâmetros.

O SimSAR e o ProcSAR trocam informações através de uma porta de comunicação

(socket). Este socket permite que o SimSAR seja executado em um PC diferente do utilizado

para se executar o ProcSAR ou no mesmo PC que o ProcSAR, bastando alterar o arquivo de

parâmetros para informar esta configuração.


65

Para comunicação entre os aplicativos, serão usadas as funções da Tabela 3.3 e da

Tabela 3.4. Preferiu-se usar protocolo com garantia de entrega do pacote (TCP) para diminuir

a possibilidade de erro na imagem devido à comunicação.

Tabela 3.3 - Funções utilizadas na comunicação dos processos - envio de dados.

ENVIO
socket(...)
bind(...)
listen(...)
accept(...)
send(...)
close(...)

Tabela 3.4 - Funções utilizadas na comunicação dos processos - recepção de dados.

RECEPÇÃO
socket(...)
connect(...)
recv(...)
close(...)

3.6 ProcSAR

O bloco ProcSAR implementa o algoritmo Range-Doppler e a visualização da imagem

SAR processada. Ele tem como entradas os parâmetros fornecidos pelo bloco Parâmetros do

Sistema e os dados enviados pelo SimSAR. Ele realiza o processamento da imagem SAR e

exibe a imagem processada, veja Figura 3.2.

A codificação do algoritmo Range-Doppler foi implementada conforme o diagrama

ilustrado na Figura 2.11.


66

3.6.1 Biblioteca de FFT

O núcleo do algoritmo são as FFTs. Na codificação do algoritmo Range-Doppler, foi

utilizada a biblioteca FFTW versão 3.3 [29]. Esta biblioteca exige que uma inicialização seja

realizada antes de sua utilização. Nesta inicialização, a biblioteca realiza testes na plataforma

de hardware em que está executando para determinar qual algoritmo de FFT empregar. Estes

testes são configurados pelo usuário, através de alguns sinalizadores disponibilizados pela

biblioteca, para definir qual o nível de desempenho, considerando-se o tempo de execução

que se espera do algoritmo de FFT. Conforme o nível escolhido, a escolha do algoritmo pode

ser rápida ou mais demorada, retornando um algoritmo com execução mais lenta ou mais

rápida, respectivamente.

Junto à biblioteca FFTW, um programa para teste de desempenho (chamado "bench")

dos algoritmos de FFT da biblioteca no hardware utilizado é disponibilizado. Este programa

possui configurações que permitem testar a velocidade do processamento dos algoritmos de

FFT para diferentes tamanhos de vetores de dados de entrada, além de parâmetros de

configuração da biblioteca. Entre estes parâmetros, estão os parâmetros para escolha do nível

de desempenho, considerando-se tempo de execução, para o algoritmo de FFT, que são

"-opatient", "-oexhaustive" e "-oestimate", parâmetros para escolher se a execução do

algoritmo de FFT preservará ou corromperá o vetor com os dados de entrada ("i" preserva,

"o" corrompe), e parâmetros para escolher se a operação de FFT será inversa (parâmetro "b")

ou direta (parâmetro "f"). Estes parâmetros são passados quando se lança o aplicativo para

execução através de uma janela de comandos.

Com o intuito de se avaliar a viabilidade do computador usado para os testes do

sistema implementado, o aplicativo "bench" foi utilizado para se verificar as configurações da


67

biblioteca FFTW e os tempos de execução dos algoritmos de FFT. A Tabela 3.5, a Tabela 3.6,

a Tabela 3.7, a Tabela 3.8, a Tabela 3.9 e a Tabela 3.10 trazem os resultados destes testes.

Tabela 3.5 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-opatient" (escolhe o algoritmo de FFT com melhor desempenho em um grupo restrito de algoritmos

definido pela biblioteca), "i" (preservar vetor com os dados de entrada) e "b" (FFT inversa).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 16690 225,57 3,52
128 51850 535,53 4,18
256 11620 947,35 3,70
512 248080 2540 4,96
1024 497190 5770 5,63
2048 1080000 10550 5,15
4096 2190000 23320 5,69
8192 5140000 55230 6,74
16384 11800000 144300 8,81

Tabela 3.6 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-oexhaustive" (escolhe o algoritmo de FFT com melhor desempenho em um grupo que abrange mais

algoritmos do que o grupo utilizado com "-opatient"), "i" (preservar vetor com os dados de entrada) e

"b" (FFT inversa).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 519340 242,12 3,78
128 1180000 508,00 3,97
256 2220000 948,69 3,71
512 4050000 2140 4,18
1024 7180000 5300 5,18
2048 12880000 10480 5,12
4096 22480000 23090 5,64
8192 43870000 51340 6,27
16384 88860000 148270 9,05
68

Tabela 3.7 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-oestimate" (utiliza uma heurística simples para escolher um algoritmo de FFT com desempenho

razoável), "i" (preservar vetor com os dados de entrada) e "b" (FFT inversa).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 39,51 448,87 7,01
128 40,03 574,31 4,49
256 43,62 1630 6,37
512 48,75 2890 5,64
1024 50,80 6550 6,40
2048 52,85 15820 7,72
4096 61,07 35960 8,78
8192 95,96 79806 9,74
16384 154,97 280850 17,14

Tabela 3.8 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-oestimate" (utiliza uma heurística simples para escolher um algoritmo de FFT com desempenho

razoável), "o" (corromper vetor com os dados de entrada) e "b" (FFT inversa).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 14,37 158,25 2,47
128 16,42 331,43 2,59
256 16,93 773,14 3,02
512 20,01 1650 3,22
1024 23,09 4150 4,05
2048 24,63 10900 5,32
4096 33,36 28310 6,91
8192 66,20 66180 8,08
16384 109,81 145370 8,87
69

Tabela 3.9 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-oestimate" (utiliza uma heurística simples para escolher um algoritmo de FFT com desempenho

razoável), "i" (preservar vetor com os dados de entrada) e "f" (FFT direta).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 17,96 259,99 4,06
128 40,54 539,38 4,21
256 21,55 1050 4,10
512 24,12 2460 4,80
1024 24,12 5060 4,94
2048 28,74 12560 6,13
4096 36,43 12498 3,05
8192 95,95 78620 9,60
16384 155,49 287120 17,52

Tabela 3.10 - Tempos de execução da FFT utilizando-se como parâmetros do aplicativo "bench"

"-oestimate" (utiliza uma heurística simples para escolher um algoritmo de FFT com desempenho

razoável), "o" (corromper vetor com os dados de entrada) e "f" (FFT direta).

Tempo de Tempo de execução do


Dimensão Tempo para escolha do
execução do algoritmo/ dimensão
do vetor algoritmo (s)
algoritmo (ns) (ns)
64 14,37 168,02 2,63
128 16,42 312,53 2,44
256 16,42 716,39 2,80
512 20,53 1610 3,14
1024 20,01 3900 3,81
2048 26,17 10450 5,10
4096 34,89 28380 6,93
8192 65,68 65440 7,99
16384 108,28 146120 8,92

Nas tabelas, a primeira coluna indica o tamanho do vetor que será entrada do

algoritmo de FFT. A segunda coluna indica o tempo que o aplicativo levou para escolher o

algoritmo de FFT a ser utilizado. A terceira coluna indica o tempo de execução da FFT para

um vetor com a dimensão dada pela primeira coluna. Por fim, a quarta coluna indica o tempo

de execução da FFT (terceira coluna) dividido pelo tamanho do vetor de entrada (primeira

coluna). Como se observa pelos valores da quarta coluna, vetores grandes despendem mais
70

tempo para execução. Contudo, blocos pequenos implicam em mais dados reprocessados

devido ao efeito de borda da convolução. O estudo da relação do tempo de processamento

com o tamanho do bloco de dados para dimensão da imagem é realizado por [6] e [12].

Pelas tabelas é possível perceber, através dos tempos apresentados na quarta coluna,

que há um tamanho de vetor para cada configuração no qual o desempenho do algoritmo de

FFT é melhor. Entre a Tabela 3.5, a Tabela 3.6 e a Tabela 3.7, variou-se o nível de

desempenho desejado para o algoritmo de FFT, manteve-se o parâmetro para FFT inversa e

preservação dos dados de entrada. Pode-se observar que o ganho de tempo de execução nas

configurações "-opatient" e "-oexhaustive" (Tabela 3.5 e Tabela 3.6, respectivamente) é

similar. Por exemplo, para a dimensão de vetor 8192 tem-se que o tempo de execução do

algoritmo com "-opatient" foi de 55230 ns, enquanto que com o parâmetro "-oexhaustive" o

tempo de execução foi de 51340 ns. Contudo, o tempo de escolha do algoritmo aumenta

bastante se for utilizado o parâmetro "-oexhaustive", passando de 5,14 s para 43,87 s.

Com o parâmetro "-oestimate" (Tabela 3.7), o tempo de escolha do algoritmo é

reduzido. Por exemplo: o tempo de escolha do algoritmo para vetor de entrada de dimensão

8192 diminui de 5,14 s (Tabela 3.5), para 95,96 us (Tabela 3.7). Porém, o desempenho do

algoritmo escolhido, quando comparado ao dos parâmetros "-opatient" e "-oexhautive", dobra

para alguns tamanhos de vetor de entrada. Para um vetor de dimensão 8192, o tempo passa de

51340 ns (Tabela 3.6) para 79806 ns (Tabela 3.7).

Na Tabela 3.7 e na Tabela 3.8 foram analisadas as operações com FFT inversas ("b) e

na Tabela 3.9 e na Tabela 3.10 as operações com FFT diretas ("f"). Entre a Tabela 3.7 e a

Tabela 3.8, e, entre a Tabela 3.9 e a Tabela 3.10, trocou-se o parâmetro "i" (dados de entrada

preservados) para o parâmetro "o" (dados de entrada corrompidos). O parâmetro que define o

nível de desempenho do algoritmo a ser escolhido ("-oestimate") foi mantido para todos os

testes. Nestes testes, percebe-se um ganho relativo no desempenho do algoritmo de FFT e no


71

tempo de escolha do algoritmo utilizando-se o parâmetro para corromper o dado de entrada.

Por exemplo: utilizando-se vetor de entrada de dimensão 8192, o tempo de execução do

algoritmo passou de 79806 ns (Tabela 3.7) para 66180 ns (Tabela 3.8), e passou de 78620 ns

(Tabela 3.9) para 65440 ns (Tabela 3.10).

Para realizar a compressão em range, pode-se dividir o conjunto de dados na direção

range em blocos menores, conforme apresentado em [6], desde que se respeite a Equação

(2.24). Além disto, a compressão em azimute também pode ter seu conjunto de dados

divididos em blocos menores, desde que se respeite a Equação (2.23). Devido a este fato,

testou-se o aplicativo "bench" com vetores de entrada de tamanhos entre 64 e 16384. Os

tamanhos destes vetores devem ser potência de dois para um melhor desempenho do

algoritmo de FFT.

Decidiu-se, devido ao resultado destes testes, utilizar o parâmetro "-oestimate", pela

inicialização mais rápida, e o parâmetro "o", pelo ganho no desempenho. Além disto, o

tamanho do vetor em range adotado foi igual ao tamanho da dimensão em range da imagem

(2048 para os dois cenários) e o tamanho do vetor em azimute foi igual ao tamanho da

dimensão azimutal da imagem (8192 para o cenário simulado e 2048 para o cenário ERS-1).

Estes valores são informados pelo usuário e dependem do sistema SAR. Com estes

parâmetros definidos, as linhas em negrito da Tabela 3.8 e da Tabela 3.10 correspondem aos

tempos das FFTs com as dimensões utilizadas para se processar os cenários de teste. Uma

análise preliminar da viabilidade do computador empregado será realizada no item 3.8.


72

3.6.2 Estrutura do ProcSAR

A estrutura do algoritmo Range-Doppler permite paralelizar a compressão em range

com a correção da migração da célula de resolução e a compressão em azimute. Além disto, a

exibição da imagem também pode ser realizada em conjunto com as demais tarefas do

processador, uma vez que é necessário acumular dados para executar a compressão em

azimute. Para distribuir o processamento de forma eficiente nos núcleos do computador,

dividiu-se o aplicativo em quatro subprocessos (threads de processamento): um subprocesso

que trata da recepção dos dados brutos vindos do aplicativo SimSAR; outro subprocesso que

trata da compressão em range; um terceiro subprocesso que cuida da correção da migração da

célula de resolução e compressão em azimute; e um último subprocesso que trata da exibição

da imagem. Esta divisão em subprocessos é ilustrada pela Figura 3.8.


73

Ethernet
SimSAR

Dados brutos

ProcSAR SP1 Recepção

Dados brutos

Buffer 1.1
Memória
Buffer 1.2
Dados brutos

SP2 Compressão em Range

Imagem comprimida em Range

Buffer 2.1

Memória Buffer 2.2

Buffer 2.3

Imagem comprimida em Range

SP3 Correção da RCM e


Processamento em Azimute

Imagem processada

Buffer 3.1
Memória
Buffer 3.2

Imagem processada

Buffer 4.1
SP4 Visualizador Tela PC
Buffer 4.2

Figura 3.8 - Subprocessos.


74

Por se dividir o processamento em subprocessos, uma estrutura para troca de dados

entre os subprocessos foi implementada. Esta estrutura está representada pelos blocos

"Buffers" na Figura 3.8.

O primeiro subprocesso (SP1) utiliza um espaço de memória (buffer), compartilhado

com o segundo subprocesso, de tamanho 2  64  M  ( N  Nd ) . Neste buffer são armazenados

os dados recebidos do SimSAR. O fator 2 é devido à parte real e imaginária do dado, 64 é a

quantidade de bits utilizados para representar um número de ponto flutuante e M e N  N d

são devidos ao tamanho da imagem a ser processada.

Este buffer possui tamanho equivalente a uma imagem e não a duas, pois, para dividir

o processamento de forma eficiente, escolheu-se, ao invés de realizar a compressão em range

para cada M dados recepcionados, realizar a compressão em range de uma imagem

M  ( N  Nd ) em duas etapas: a primeira etapa quando se recebe M  N / 2 dados e a

segunda etapa quando chegar mais M   N / 2   N d  dados.

Assim, como a compressão em range é realizada em duas etapas, o buffer é dividido

em dois: enquanto o primeiro subprocesso utiliza uma metade do buffer para armazenar os

dados vindos do SimSAR, a outra metade é utilizada pelo segundo subprocesso (SP2) para

realizar a compressão em range. Como se assume que o processamento em range deve ser

menor que o período de repetição de pulsos, quando se acumula metade dos dados de um

subbloco, a parte do buffer utilizado pelo segundo subprocesso já deve estar disponível para

ser usada pelo primeiro subprocesso e a parte do buffer que recebeu novos dados passa a ser

utilizada pelo segundo subprocesso. Esta lógica é apresentada na Figura 3.9.


75

Azimute Demodulação e amostragem


Dados brutos
Range

N  Nd 2  N  Nd  3  N  Nd  4  N  Nd 
Amostra A Amostra B Amostra C Amostra D

T0 M
Azimute

Nd 5Nd Nd N  2 Nd Nd N  2 Nd Nd 3N d Nd
2 N  N 2
2 2

SimSAR
M
Tempo

SP1 – Recepção dos dados brutos


Buffer1.1 Buffer1.1 Buffer1.1 Buffer1.1

M M M M

N 2 N 2 N 2 N 2
Buffer1.2 Buffer1.2 Buffer1.2 Buffer1.2

M M M M

N 2  Nd N 2  Nd N 2  Nd N 2  Nd Tempo

Figura 3.9 - Estrutura para troca de dados utilizada pelo primeiro subprocesso.
76

Considerando-se a aplicação em tempo real do processador SAR, uma vez que há a

necessidade de acumular uma quantidade de dados para se realizar o processamento da

imagem, os subblocos da imagem SAR final (aquela formada considerando-se todo o período

de aquisição do sistema SAR) devem ser processados para se permitir o acompanhamento do

imageamento em tempo de aquisição, formando, assim, frames. Estes subblocos podem ser

derivados tanto da divisão dos dados na dimensão que representa a direção range, quanto na

dimensão que representa a direção azimutal. Devido ao efeito de borda causado pela

convolução dos dados, ao se processar um frame, parte dos dados deste frame deve ser

descartada para que seja possível "emendar" este frame com o próximo frame processado,

obtendo, assim, uma imagem contínua.

Escolheu-se não dividir o bloco de dados na dimensão da direção range com o intuito

de simplificar a implementação do sistema, dispensando a necessidade de descarte de dados e

emenda de frames nesta dimensão. Já para a direção azimutal, o descarte de dados ocorre, o

que implica no descarte de M  N d dados em cada frame processado. Uma vez que estes

dados trazem informação útil para formar a imagem da cena, eles devem fazer parte do bloco

de dados seguinte, significando que eles são processados duas vezes. Reutilizando-se M  N d

dados do frame anterior para se processar o frame atual, com mais M  ( N  Nd ) dados novos

que são adquiridos, obtém-se um bloco de dados para processamento de tamanho M  N .

A Figura 3.10 apresenta o fluxo de dados e a temporização do processamento para

ajudar a ilustrar o descarte de dados.


77

Demodulação e amostragem
Azimute Dados brutos
Range

0 N  Nd 2  N  Nd  3  N  Nd 
Amostra A Amostra B Amostra C

T0 M
Azimute

5Nd N N N  2 Nd N  2 Nd
Nd N d d Nd Nd Nd Nd
2 2 2 2 2 2 2 2
Frame 1

Nd Descarte
Parte útil do frame
Descarte

Frame 2
Vazio

Descarte Descarte
Parte útil do frame
Frame 3

Descarte Descarte
Parte útil do frame
Imagem processada

M
Nd Nd
2 2
Vazio Azimute

Figura 3.10 - Fluxo de aquisição de dados na entrada do processamento


78

A Figura 3.10 ilustra a formação do bloco de dados da imagem bruta. Cada coluna

nova dentro do retângulo, que representa a imagem bruta após o fim do imageamento,

simboliza a amostragem do sinal eco na direção range em cada período T0 .

Ao se processar um subbloco de dado para formação de um frame, uma quantidade

N d /2 de dados deve ser descartada na direção azimutal no início do frame e mais N d /2 dados

devem ser descartados no final do frame.

Como N d /2 dados são descartados no final do frame processado e N d /2 dados são

descartados no início do próximo frame a ser processado, a junção destes frames apresentará

uma descontinuidade de N d na imagem caso este descarte não seja devidamente tratado. Esta

descontinuidade é apresentada na Figura 3.11.

Para evitar esta descontinuidade, os últimos N d dados do frame a ser processado

devem ser reutilizados no frame seguinte. Com isto, como apresentado na Figura 3.10,

descartando-se N d /2 dados do final do frame já processado e N d /2 do início do próximo

frame a ser processado, a junção destes frames ocorre sem perda de dados.

Uma vez que o processamento em range independe da dimensão em azimute, ao invés

de realizar a cópia dos dados a serem descartados na entrada do ProcSAR, ou seja, atuando

nos dados no primeiro subprocesso (SP1 na Figura 3.8), realizou-se a cópia dos dados já

comprimidos em range, ou seja, no final do segundo subprocesso.

O segundo subprocesso (SP2 na Figura 3.8), que realiza a compressão em range, faz

uso do mesmo buffer utilizado pelo primeiro subprocesso e possui mais três buffers de

tamanho 2  64  M  N cada um, os quais são compartilhados com o terceiro subprocesso.

Nestes três buffers, são armazenados os dados resultantes da compressão em range.

Neste ponto, se faz uma duplicação dos dados que são descartados em um frame para permitir

"emendar" dois frames sem descontinuidade, como apresentado na Figura 3.12.


79

Demodulação e amostragem

Azimute Dados brutos

Range

N 2 N  Nd
Amostra A Amostra B

T0
M
Azimute

Nd N  Nd N N  2 Nd Nd
d
2 2 2
Frame 1

Descarte Descarte
Parte útil
do frame
Frame 2

Imagem processada

Descontinuidade Azimute

Figura 3.11 - Descontinuidade na junção de frames devido ao descarte de dados sem a devida

compensação dos dados descartados.


80

N  Nd 2  N  Nd  3  N  Nd  4  N  Nd 
Amostra A Amostra B Amostra C Amostra D

T0 M
Azimute

Nd 5Nd Nd N  2 Nd Nd N  2 Nd Nd 3N d Nd
2 N 2 N
2 2

SP1 – Recepção dos dados brutos


Buffer1.1 1 Buffer1.1 Buffer1.1

M M M M

N 2 N 2 N 2 N 2
Buffer1.2 Buffer1.2 Buffer1.2 Buffer1.2

M M M M

N 2  Nd N 2  Nd N 2  Nd N 2  Nd Tempo

SP2 – Compressão em range


vazio
Buffer2.1 Buffer2.1

M M

Nd N  Nd Nd N  Nd
Buffer2.2

Nd N  Nd Buffer2.3

Nd N  Nd Tempo

Figura 3.12 - Estrutura para troca de dados utilizada pelo segundo subprocesso.
81

Após comprimir os dados em range, o segundo subprocesso verifica quais daqueles

dados processados serão descartados e faz a cópia desses dados para o próximo buffer a ser

preenchido com os dados enviados pelo primeiro processo.

Enquanto dois buffers estão sendo utilizados no segundo subprocesso para armazenar

os dados da compressão em range, o terceiro buffer é utilizado pelo terceiro subprocesso para

realizar a correção da RCM e a compressão em azimute. Quando um buffer com um conjunto

novo de dados é completado (dados da compressão em range), este buffer passa a ser usado

pelo terceiro subprocesso e os outros dois buffers passam a ser utilizados pelo segundo

subprocesso, como demonstrado na Figura 3.13.

Buffer2.1 Buffer2.2 Buffer2.3 Buffer2.1

M M M M

Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd
SP2
Buffer2.2 Buffer2.3 Buffer2.1 Buffer2.2

M M M M

Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd

Buffer2.3 Buffer2.1 Buffer2.2 Buffer2.3

SP3 M M M M

Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd Nd N  2 Nd Nd
Tempo

( N  Nd )T0 2( N  Nd )T0 3( N  Nd )T0 4( N  Nd )T0

Figura 3.13 - Uso do buffer 2.1, buffer 2.2 e buffer 2.3 entre SP2 e SP3.
82

Conforme comentado, o terceiro subprocesso (SP3 na Figura 3.8) realiza a correção da

RCM e a compressão em azimute. Para isto, compartilha dos três buffers do segundo

subprocesso e utiliza mais dois buffers, de tamanho 2  64  M  ( N  Nd ) cada um, para

armazenar o resultado do processamento azimutal. Estes dois buffers são compartilhados com

o quarto subprocesso (SP4 na Figura 3.8). Dado o tamanho dos buffers,

2  64  M  ( N  Nd ) , verifica-se que neles são armazenados frames processados já

descartando os dados das bordas, uma vez que, ao invés de se usar N , foi empregado

( N  N d ) como tamanho do buffer.

A estrutura para troca de dados entre o terceiro subprocesso e o segundo subprocesso é

ilustrada na Figura 3.14.

O subprocesso quatro, o qual recebe o frame processado e trata da visualização deste

frame para usuário, realiza a função do bloco Visualizador (Figura 3.2) descrita na Seção 3.7.
83

N  Nd 2  N  Nd  3  N  Nd  4  N  Nd 
Amostra A Amostra B Amostra C Amostra D

T0 M
Azimute

Nd 5Nd Nd N  2 Nd Nd N  2 Nd Nd 3N d Nd
2 N 2 N
2 2

SP2 – Compressão em range


vazio
Buffer2.1 Buffer2.1

M M

Nd N  Nd Nd N  Nd
Buffer2.2

Nd N  Nd Buffer2.3

Nd N  Nd Tempo

SP3 – Correção da RCM e Compressão em azimute


Buffer3.1 Buffer3.1

M M

Nd 3N d N  Nd
2 N
2 Buffer3.2 Buffer3.2

M M

N  Nd N  Nd Tempo

Figura 3.14 - Estrutura para troca de dados utilizada pelo terceiro subprocesso.
84

3.7 Visualizador

O bloco Visualizador recebe o frame processado do bloco ProcSAR e faz a sua

exibição para o usuário. Na implementação do Visualizador, foi utilizada a biblioteca

OpenGL [30].

Através dos parâmetros fornecidos pelo bloco Parâmetros do Sistema, vide Figura 3.2,

é possível escolher se será exibida a imagem amplitude, a imagem fase ou a imagem módulo.

O bloco Visualizador é realizado no quarto subprocesso (SP4 na Figura 3.8) do

sistema. Ele compartilha com o terceiro subprocesso os dois buffers que contém o frame

processado. Além disto, faz uso de mais dois buffers: um representando o frame processado já

redimensionado para janela de exibição e o outro representando a imagem que será

visualizada pelo usuário. A Figura 3.15 ilustra esta implementação.

No processador implementado, o processamento de uma imagem exige o acúmulo de

dados. Como visto no Capítulo 2, uma imagem bruta de tamanho DA  DR , com N  M

pontos, demora Taq para ser adquirida. Utilizando-se os parâmetros do cenário simulado,

obtém-se uma imagem de 8192  2048 pontos equivalente a uma faixa imageada com extensão

DA  DR = 1024  1024 m 2 em Taq = 5,12 s. Assim, ao se processar esta imagem, obtém-se

um frame processado pronto para visualização a cada 5,12 s.

Caso este frame seja apresentado ao usuário inteiramente em apenas uma atualização

na tela, o usuário verá um frame novo a cada 5,12 s. O resultado seria equivalente a uma

visualização de cenas diferentes a cada 5,12 s, sem a impressão de movimento do cenário.

Para evitar este efeito, decidiu-se dividir o frame proporcionalmente ao decorrer do tempo de

aquisição de um próximo frame, atualizando a imagem exibida ao usuário com uma fração do

frame processado. O buffer 4.2, na Figura 3.15, é utilizado para este fim, e assim uma noção

de imageamento contínuo é dada ao usuário. A Figura 3.16 ilustra esta solução.


85

N  Nd 2  N  Nd  3  N  Nd  4  N  Nd 
Amostra A Amostra B Amostra C Amostra D

T0 M

Azimute
Nd 5Nd Nd N  2 Nd Nd N  2 Nd Nd 3N Nd
2 N 2 N d
2 2

SP3 – Correção da RCM e Compressão em azimute


Buffer3.1 Buffer3.1

M M

Nd 3N d N  Nd
2 N
2 Buffer3.2 Buffer3.2

M M

N  Nd N  Nd
Tempo

SP4 – Visualizador

Buffer4.1 Buffer4.1 Buffer4.1 Buffer4.1


Tam. vertical
(range)
Tam. horiz.(azimute)
Buffer4.2 Buffer4.2 Buffer4.2 Buffer4.2 Buffer4.2 Buffer4.2
Tam. vertical
(range) Buffer4.2 Buffer4.2
Buffer4.2 Buffer4.2 Buffer4.2 Buffer4.2
Tam. horiz.(azimute)
Tempo

Figura 3.15 - Estrutura para troca de dados utilizada pelo visualizador.


86

Buffer 4.1
Tam.
Novo vertical
Frame
(range)

Tam. horizontal (azimute)

Tempo para o
próximo frame
TCrítico
Parcela do novo
frame na imagem  TCrítico  TCrítico   Tam. horizontal  0
visualizada  
Instante 1  TCrítico 
Tam.
Imagem visualizada vertical
( range)

Tam. horizontal (azimute)

Tempo para o
próximo frame
T1
Parcela do novo
frame na imagem  TCrítico  T1 
Instante 2 visualizada    Tam. horizontal
 TCrítico 

Imagem visualizada

Tempo para o
próximo frame
T2

Parcela do novo
frame na imagem  TCrítico  T2 
Instante 3 visualizada    Tam. horizontal
 TCrítico 

Imagem visualizada

Tempo para o
próximo frame

Parcela do novo
frame na imagem  TCrítico 
visualizada   Tam. horizontal Tam. horizontal
Instante 4  Crítico 
T

Imagem visualizada

Figura 3.16 - Lógica implementada para dar noção de imageamento contínuo ao processador SAR.
87

Na Figura 3.16, têm-se quatro instantes de tempo. No instante 1, um novo frame

processado é disponibilizado para visualização. Neste instante, a imagem para o usuário não

possui nenhum dado deste novo frame. No instante 2, passado o tempo TCrítico  T1 , uma fração

equivalente a TCrítico  T1  TCrítico do novo frame está sendo visualizado pelo usuário. No

instante 3, passado o tempo TCrítico  T2 , uma fração equivalente a TCrítico  T2  TCrítico do novo

frame está sendo visualizado pelo usuário. Por fim, no instante 4, passado o tempo TCrítico ,

todo o novo frame que foi disponibilizado no instante 1 está sendo visualizado pelo usuário.

Neste momento, chega um novo frame e o processo de repete.

3.8 Consistência do sistema idealizado com os cenários de teste propostos

Nesta seção, uma análise do sistema implementado, utilizando-se os cenários

propostos, é feita para se avaliar, previamente, a viabilidade do sistema na plataforma de

hardware adotada.

3.8.1 Consistência do cenário simulado

Considerando as resoluções da imagem para o cenário simulado apresentadas na

Tabela 3.1 (3 m para resolução em range e 3 m para resolução em azimute), o número de

amostras a serem descartadas, conforme as Equações (2.21) e (2.22), é relacionado na Tabela

3.11.

Tabela 3.11 - Número de amostras descartadas no cenário simulado.

Nd 323 amostras
Md 33 amostras
88

Uma vez que N  2 N d e M  2M d , tem-se que a imagem utilizada para simulação,

com 2048 amostras em range ( M ) por 8192 amostras em azimute ( N ), é consistente para o

processador SAR.

Trabalhando com uma placa de rede com transmissão de 1 Gbps, considerando que os

dados transmitidos entre o SimSAR e o ProcSAR têm 128 bits (64 bits para a parte real e 64

bits para a parte imaginária) e que a cada 625µs ( T0 ) 2048 amostras do sinal eco na direção

range ( M ) devem ser enviadas, têm-se 2048  128 = 262144 bits transmitidos a cada T0

período. A transmissão destes dados de um aplicativo para outro levará: 262144 bits/ 1 Gbps

= 262,1 µs, desconsiderando o tempo gasto com os cabeçalhos e outros fatores. Como este

tempo é menor que T0 , esta escolha se mostra apropriada.

Vale observar que, com uma placa de rede de 100 Mbps não é possível transferir os

dados em tempo hábil para simular um sistema SAR com T0 = 625 us, pois 262144 bits / 100

Mbps = 2,621 ms, que é maior que T0 .

Ainda, estes M dados serão comprimidos em range. Para realizar esta compressão,

será utilizada uma FFT direta com vetor de entrada de dimensão 2048 ( M ) e uma FFT

inversa com vetor de entrada de dimensão 2048. Pela Tabela 3.8 (tempo da FFT inversa) e

pela Tabela 3.10 (tempo da FFT direta), é necessário 10,90 µs para realizar a FFT inversa de

um vetor de dimensão 2048 e mais 10,45 µs para se realizar a FFT direta de um vetor de

dimensão 2048. Considerando-se que o tempo de processamento em range deve ser menor

que T0 , o tempo empregado para realizar as FFTs em range é, praticamente, desprezível

quando comparado a T0 , indicando que pelo menos o processamento em range pode ser

realizado em tempo real utilizando-se um PC.

Avaliando o tempo limite para correção da RCM e compressão em azimute, o que

corresponde ao tempo TCrítico da Equação (2.34), o tamanho da imagem nesta dimensão


89

correspondente a direção azimutal de 8192 amostras ( N ). Destas 8192 amostras, 323 ( N d )

serão descartadas (Tabela 3.11). Uma vez que estas 323 amostras serão aproveitadas no

próximo frame, é necessário adquirir ( N  Nd ) novos dados para formar um bloco com N

amostras para processamento. Assim, conforme a Equação (2.34), para este cenário, tem-se:

TCrítico  ( N  Nd )  T0 = 4,92 s.

Recorrendo novamente à Tabela 3.8 (tempo da FFT inversa) e à Tabela 3.10 (tempo da

FFT direta), desta vez com um vetor de entrada de dimensão 8192 ( N ), tem-se 66,20 µs para

execução da FFT inversa e 65,44 µs para execução da FFT direta. Serão executadas M FFTs

inversas e M FFTs diretas, portanto, (66,20 µs + 65,44 µs)  2048  0,270 s. Este tempo

está bem abaixo do tempo limite para processamento em azimute, que é o TCrítico (4,92 s). Esta

análise indica, também, ser possível realizar o processamento em azimute em tempo real no

PC utilizado.

3.8.2 Consistência do cenário ERS-1

Considerando as resoluções da imagem para o cenário simulado, apresentadas na

Tabela 3.2 (10 m para resolução em range e 10 m para resolução em azimute), o número de

amostras a serem descartadas, conforme (2.21) e (2.22), é relacionado na Tabela 3.12.

Tabela 3.12 - Número de amostras descartadas no cenário ERS-1.

Nd 780 amostras
Md 681 amostras

O período de repetição de pulso ( T0 ) dos dados do ERS-1 é de 595 s (Tabela 3.2),

sendo este o tempo máximo para compressão em range de uma linha com 2048 pixels. A
90

transmissão de cada linha, como no cenário simulado, leva 262,1 s, indicando ser possível o

processamento.

A mesma análise feita para o cenário simulado vale para este cenário em se tratando da

compressão em range. Como o valor de M para este cenário é o mesmo que o valor de M

no cenário simulado, 10,90 µs são gastos para realizar a FFT inversa de um vetor de dimensão

2048 e mais 10,45 µs são gastos para se realizar a FFT direta de um vetor de dimensão 2048.

Assim, pode-se assumir que os tempos gastos com as FFTs para se realizar a compressão em

range da imagem são desprezíveis quando comparados com o T0 (595 s), indicando ser

possível o processamento em range deste cenário em tempo real.

Para o cálculo do TCrítico , tem-se TCrítico  ( N  Nd )  T0 = 0,754 s. Para o cálculo do

tempo gasto com as FFTs no processamento em azimute, uma vez que a dimensão do vetor de

entrada é 2048 ( N ), os valores são os mesmos que os valores gastos na compressão em

range, sendo 10,90 µs para a FFT inversa e 10,45 µs para a FFT direta. Serão executadas M

FFTs diretas e M FFTs inversas no processamento em azimute, portanto:

(10,90 µs + 10,45 µs)  2048  0,044 s. Este tempo está abaixo do tempo limite para

processamento em azimute, que é o TCrítico (0,754 s). Novamente, os cálculos indicam ser

possível realizar o processamento em azimute em tempo real no PC utilizado.


91

4 Experimento em tempo real

Este capítulo apresenta os tempos de processamento do sistema, as imagens obtidas

bem como uma discussão destes resultados. Os experimentos foram executados com os dados

brutos das duas imagens discutidas no capítulo 3: o cenário simulado gerado a partir do

Gerador de Cenário e dados reais do satélite ERS-1.

4.1 Configuração do experimento

Foram realizados testes com o sistema implementado utilizando-se um notebook com

um processador Intel Core i7 – 2630M e 6GB de RAM (Random Access Memory), HDD

(Hard Disk Drive), Windows 7 64 bits e cygwin 64 bits versão 2.831 com gcc 64 bits versão

4.8.2 e placa de rede de 1 Gbps, o qual será referenciado no texto como plataforma 1, e outro

notebook, com processador Intel Core i3 - 350M com 3 GB de RAM, HDD, Ubuntu 10.10 32

bits e gcc 3.4.6 32 bits e placa de rede de 100 Mbps, o qual será referenciado como plataforma

2.

Os parâmetros passados para o compilador, a fim de se compilar as bibliotecas e os

aplicativos, são apresentados na Figura 4.1 e na Figura 4.2.

./configure --enable-threads --enable-mpi --enable-avx --enable-openmp --with-our-malloc

Figura 4.1 - Parâmetros para compilação da biblioteca FFTW.


92

CFLAGS = -O3 -std=c99 -pedantic -pedantic-errors -g3 -Wall -Werror -ffast-math -


march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param l1-cache-
line-size=64 --param l2-cache-size=256 -mtune=core2 -fomit-frame-pointer -malign-double -
fstrict-aliasing -mfpmath=sse -mconsole

LDFLAGS = -lm -lopengl32 -lglu32 -lgdi32 -lxml2 -fopenmp -lpthread -O3 -g3 -Wall -Werror -
ffast-math -march=core2 -mcx16 -msahf -mpopcnt -msse4.2 --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=256 -mtune=core2 -fomit-frame-pointer -malign-
double -fstrict-aliasing -mfpmath=sse -mconsole

Figura 4.2 - Parâmetros para compilação do SimSAR e do ProcSAR.

Com o objetivo de melhor avaliar o sistema, foram realizados os seguintes testes:

 SimSAR e o ProcSAR, executados na plataforma 1;

 SimSAR na plataforma 2 e o ProcSAR na plataforma 1;

 uma versão do ProcSAR com os dados do cenário já em memória, sem a

necessidade da transmissão pelo SimSAR;

 uma outra versão do ProcSAR com os dados do cenário já em memória e sem a

visualização da imagem.

Vale ressaltar que, como a plataforma 2 apresenta uma placa de rede de 100 Mbps,

não se esperava transmitir os dados de ambos os cenários de teste respeitando-se o período de

repetição de pulsos de cada cenário. Ou seja, era ciente que a execução dos aplicativos

apresentaria um atraso proveniente da transmissão dos dados. Contudo, este teste verifica que

o uso de SimSAR em outro computador é possível, permitindo, em trabalhos futuros,

substituir o SimSAR por um sistema SAR real.

Também realizaram-se testes para verificar a influência do uso de representação de

ponto flutuante com 32 bits de precisão e 64 bits de precisão na qualidade da imagem

processada, assim como no uso de funções para números de ponto flutuante com 32 e 64 bits

de precisão.
93

Representações do sistema para cada teste são apresentadas na Figura 4.3, na Figura

4.4, na Figura 4.5 e na Figura 4.6.

Plataforma 1
Parâmetros do sistema
Leitura de Leitura de
Arquivo Arquivo
SimSAR ProcSAR
Leitura de
Arquivo

Socket
Recepção

Range-Doppler
Proc. Range
Arquivo ou
Proc. Azimute
memória
Range
Gerador
Azimute

de Visualizador
Memória ou
cenário Arquivo
Cenário

Figura 4.3 - Configuração do sistema para o SimSAR e ProcSAR operando no mesmo PC.

Plataforma 2 Plataforma 1
Parâmetros do sistema Parâmetros do sistema
Leitura de Leitura de
Arquivo Arquivo
SimSAR ProcSAR
Leitura de
Arquivo

Placa de Socket Placa de


Recepção
rede rede
100 Mbps 1 Gbps Range-Doppler
Proc. Range
Arquivo ou
Proc. Azimute
memória
Range
Gerador
Azimute

de Visualizador
Memória ou
cenário Arquivo
Cenário

Figura 4.4 - Configuração do sistema para o SimSAR e ProcSAR operando em dois PCs diferentes.
94

Plataforma 1
Parâmetros do sistema
Leitura de
Leitura de Arquivo
Arquivo
Range Arquivo ou ProcSAR

Azimute
Gerador memória
Recepção
de
Memória ou Range-Doppler
cenário
Arquivo Cenário Proc. Range
Proc. Azimute

Visualizador

Figura 4.5 - Configuração do sistema sem o SimSAR.

Plataforma 1
Parâmetros do sistema
Leitura de
Leitura de Arquivo
Arquivo
Range Arquivo ou ProcSAR
Azimute

Gerador memória
Recepção
de
Memória ou Range-Doppler
cenário
Arquivo Cenário Proc. Range
Proc. Azimute

Figura 4.6 - Configuração do sistema sem o SimSAR e sem a visualização da imagem processada.
95

4.1.1 Experimento com o cenário simulado.

Os tempos obtidos no processamento do cenário simulado, conforme proposto na

Seção 3.4.1, são apresentados na Tabela 4.1.

Tabela 4.1 - Tempos de execução do cenário simulado.

Tempo de processamento
Tempo
TMC+ TOC+ ST+CV+ ST+SV+ ST+CV+ ST+SV+
Limite
CV+32 CV+32 32 32 64 64
Processamento
47,7 s 42,2 s 47,8 s 45,2 s 47,4 s 44,9 s 625 s
em range
Processamento
2,54 s 2,58 s 2,57 s 2,46 s 2,55 s 2,47 s 4,92 s
em azimute
Tempo total
27,2 s 108,1 s 27,1 s 25,1 s 27,0 s 24,8 s 49,2 s
para 10 frames

Na Tabela 4.1, a sigla TMC significa Transmissão no Mesmo Computador (Figura

4.3), a sigla TOC significa Transmissão em Outro Computador (Figura 4.4), a sigla ST

significa Sem Transmissão, a sigla CV significa Com Visualizador (Figura 4.5) e SV significa

Sem Visualizador (Figura 4.6). Por fim, 32 significa que a representação do número de ponto

flutuante é de 32 bits e 64 que a representação do número de ponto flutuante é de 64 bits.

Todos os testes de tempo foram realizados com funções que fazem uso de representação de

ponto flutuante de 64 bits.

Conforme se pode observar, com exceção do teste com o SimSAR executando na

plataforma 2 (como esperado, devido à placa de rede de 100 Mbps), todos os testes resultaram

em processamento com tempo de execução inferior ao limite. Conforme analisado na seção

3.8.1: T0 = 625 s, TCrítico = 4,92 s e, para 10 frames, 10 TCrítico = 4,92 s.

O resultado do processamento da imagem do cenário simulado para números com

representação de ponto flutuante com 64 bits é apresentado na Figura 4.7 e o resultado para o
96

processamento com 32 bits é apresentado na Figura 4.8. Em ambos os casos foram

empregadas funções para aritméticas de ponto flutuante com 64 bits.

Figura 4.7 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos simulados com 64 bits

de representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.

Figura 4.8 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos simulados com 32 bits

de representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.
97

Uma vez que o cenário consiste em uma cena escura com três alvos pontuais

refletores, o processamento foi realizado com sucesso. Verificando-se o espalhamento da

energia do alvo após a focalização com 64 bits de representação para ponto flutuante, pode-se

avaliar a qualidade do processamento. O gráfico da Figura 4.9 apresenta a amplitude do sinal

eco dos alvos pela distância.

Pela Figura 4.9 e pela Figura 4.10, percebe-se que, no limiar de 70,7% da amplitude

do sinal eco dos alvos pontuais, tanto para azimute quanto para range, a energia do sinal está

espalhada em 4 m, que é a resolução obtida. Pode-se considerar, então, que houve uma boa

focalização pelo processador, uma vez que era esperado 3 m x 1,3 = 3,9m de resolução em

cada direção (vide Tabela 3.1).

O espalhamento da energia do alvo pontual, após processamento com 32 bits de

representação de ponto flutuante, resultou nos gráficos da Figura 4.11 e da Figura 4.12.

0.7

≈4m ≈4m

≈4m

Figura 4.9 - Espalhamento da energia dos alvos pontuais em range após processamento com 64 bits de

representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.
98

0.7

≈4m ≈4m

≈4m

Figura 4.10 - Espalhamento da energia dos alvos pontuais em azimute após processamento com 64 bits de

representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.

0.7

≈4m ≈4m
≈4m

Figura 4.11 - Espalhamento da energia dos alvos pontuais em range após processamento com 32 bits de

representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.
99

0.7

≈4m ≈4m ≈4m

Figura 4.12 - Espalhamento da energia dos alvos pontuais em azimute após processamento com 32 bits de

representação de ponto flutuante e funções para aritméticas de ponto flutuante com 64 bits.

Pela Figura 4.11 e pela Figura 4.12, percebe-se que, no limiar de 70,7% da amplitude

do sinal eco dos alvos pontuais, tanto para azimute quanto para range, a energia do sinal está

espalhada em 4 m, que é a resolução obtida. Como no caso do processamento com

representação numérica de ponto flutuante com 64 bits, houve uma boa focalização pelo

processador, uma vez que tanto a resolução em range quanto em azimute é de

3 m x 1,3 = 3,9 m (vide Tabela 3.1).

A Figura 4.13 apresenta o resultado do processamento do cenário simulado com

funções com aritméticas de ponto flutuante de 32 bits. A Figura 4.14 apresenta o

espalhamento de energia destes alvos após o processamento.


100

Figura 4.13 - Módulo da imagem dos três alvos pontuais presentes nos dados brutos simulados com 32 bits

de representação de ponto flutuante e funções para aritmética de ponto flutuante com 32 bits.

0.7

≈4m ≈4m
≈4m

Figura 4.14 - Espalhamento da energia dos alvos pontuais em range após processamento com 32 bits de

representação de ponto flutuante e funções para aritmética de ponto flutuante com 32 bits.
101

0.7

≈4m ≈4m
≈4m

Figura 4.15 - Espalhamento da energia dos alvos pontuais em azimute após processamento com 32 bits de

representação de ponto flutuante e funções para aritmética de ponto flutuante com 32 bits.

Comparando-se a Figura 4.7 com a Figura 4.13, não se observa alteração visual.

Analisando-se a resolução alcançada também não se nota degradação na focalização da

imagem, uma vez que a resolução alcançada foi de 4 m, como para os casos anteriores.

O teste da etapa de visualização é apresentado por três figuras com imagens em

instantes diferentes do processo. Na operação do sistema, ocorre o deslocamento contínuo da

imagem da direita para esquerda na tela do PC. A Figura 4.16 e a Figura 4.17 correspondem

às imagens do sistema instantes após a inicialização, ilustrando a exibição de um cenário

ainda incompleto. Na Figura 4.18, a imagem visualizada contém mais de um frame devido a

presença de 6 alvos pontuais. Esta imagem corresponde ao resultado final observado, com o

conjunto de pontos se deslocando continuamente da direita para a esquerda da tela do PC.


102

Figura 4.16 - Cenário simulado exibido instantes após a inicialização do sistema.

Figura 4.17 - Cenário simulado exibido instantes após a Figura 4.16.

Figura 4.18 - Cenário simulado exibido instantes após a Figura 4.17.


103

4.1.2 Experimento com cenário ERS-1

Os tempos obtidos para processamento do cenário ERS-1 são apresentados na

Tabela 4.2. Neste experimento, excetuando o caso do SimSAR empregando a plataforma 2, os

testes resultaram em um processamento com tempo de execução inferior ao limite. Como no

teste anterior, o SimSAR executado na plataforma 2 viola o tempo limite devido à placa de

rede de 100 Mbps. Conforme analisado na seção 3.8.2, os limites de tempo são: T0 = 595 s,

TCrítico = 0,7542 s e, para 10 frames, 10 TCrítico = 7,54 s

Tabela 4.2 - Tempos de execução do cenário ERS-1

Tempo de processamento
Tempo
TMC+ TOC+ ST+CV+ ST+SV+ ST+CV+ ST+SV+
Limite
CV+32 CV+32 32 32 64 64
Processamento
44,9 s 41,8 s 49,1 s 48,6 s 48,8 s 48,2 s 595 s
em range
Processamento
0,562 s 0,600 s 0,560 s 0,547 s 0,725 s 0,683 s 0,754 s
em azimute
Tempo total
6,06 s 29,9 s 5,97 s 5,62 s 7,53 s 6,99 s 7,54 s
para 10 frames

A Figura 4.19 a) apresenta o resultado do processamento com 64 bits para

representação de número de ponto flutuante para o cenário ERS-1. Já a Figura 4.19 b)

apresenta o resultado do processamento com 32 bits para representação de número de ponto

flutuante.

A Figura 4.19 c) apresenta o resultado do processamento usando-se funções para

aritmética de ponto flutuante de 32 bits.


104

Figura 4.19 - Módulo da imagem ERS-1 focalizada: a) Precisão numérica de 64 bits para ponto flutuante.

Funções para aritmética de ponto flutuante de 64 bits; b) Módulo da imagem ERS-1 focalizada. Precisão

numérica de 32 bits para ponto flutuante. Funções para aritmética de ponto flutuante de 64 bits; c)

Módulo da imagem ERS-1 desfocada. Precisão numérica de 32 bits para ponto flutuante. Funções para

aritmética de ponto flutuante de 32 bits.

Comparando-se a Figura 4.19 a) e a Figura 4.19 b) com a Figura 3.6 a), percebe-se que

houve êxito no processamento do cenário ERS-1. Visualmente não há diferenças perceptíveis

entre as imagens, utilizando-se 32 ou 64 bits para representação numérica de ponto flutuante.

Uma comparação entre a Figura 4.19 c) e a Figura 3.6 a) permite observar que a

imagem resultante está desfocada. O resultado deste ensaio indica que uma representação

numérica em ponto flutuante de 32 bits ou 64 bits não altera a qualidade de focalização da

imagem, porém, o emprego de funções para aritmética de ponto flutuante de 32 bits tem um

impacto negativo na qualidade da imagem.


105

Como no caso do cenário simulado, o teste da etapa de visualização para o cenário

ERS-1 é apresentado por três figuras com imagens em instantes diferentes do processo. A

Figura 4.20 a) e a Figura 4.20 b) correspondem às imagens do sistema instantes após a

inicialização. Novamente, o cenário destas duas imagens ainda está incompleto. Na

Figura 4.20 c) tem-se imagem final observada, devendo-se imaginar um movimento contínuo

da sena, de forma circular, da direita para a esquerda da tela do PC.

Figura 4.20 - Três sequências de imagens do sistema processando o Cenário ERS-1.

4.2 Discussão dos Resultados

Para os cenários propostos, o sistema desenvolvido se mostrou suficiente para realizar

o processamento das imagens SAR em tempo real.


106

Pelos dados apresentados na Tabela 4.1 e na Tabela 4.2, observa-se que, com exceção

do teste do SimSAR rodando numa outra máquina, conseguiu-se obter o processamento em

tempo real para todos os testes. Como era esperado, utilizando-se um computador com placa

de rede de 100 Mbps, não seria possível transferir dados entre o SimSAR e o ProcSAR numa

taxa de transmissão adequada para se atingir os requisitos de processamento SAR em tempo.

Mesmo assim, o teste permitiu validar a interface de comunicação entre o SimSAR e

ProcSAR.

Pelos dados das tabelas, também se pode considerar que não houve influência da

thread de visualização e do SimSAR no tempo de execução do processamento SAR.

Pelos resultados da Tabela 4.1, observa-se que existe ainda uma margem de tempo

para processamento. Dada esta margem de tempo, outras funcionalidades poderiam ser

implementadas no processador, como, por exemplo, a compensação de movimento - uma

operação importante num processador Range-Doppler que utiliza dados adquiridos em

aeronaves.

Pela Figura 4.7, Figura 4.8 e Figura 4.13 não se observam diferenças significativas no

resultado do processamento SAR. Nos testes, foram empregadas representações numéricas de

ponto flutuante de 32 e 64 bits, bem como funções para aritmética de ponto flutuante de 32 e

64 bits. O mesmo resultado poderia ser verificado, de uma forma menos subjetiva, pelo

espalhamento de energia dos alvos apresentados na Figura 4.11, na Figura 4.12, na

Figura 4.14 e Figura 4.15.

Comparando-se a Figura 4.19 a) e a Figura 4.19 b) com a Figura 3.6 a), percebe-se que

o processador SAR foi implementado corretamente, pois, partindo de dados obtidos de uma

plataforma real, conseguiu-se focalizar a imagem SAR corretamente. Comparando-se

visualmente as imagens, percebe-se que a focalização foi boa, pois se manteve os detalhes da

cena original apresentada na Figura 3.6 a).


107

Já na comparação da Figura 4.19 c) com a Figura 3.6 a), percebe-se que a imagem não

foi focalizada corretamente. Esta degradação no processamento ocorreu devido à precisão nos

cálculos realizados. Por se utilizar funções numéricas com 32 bits, percebeu-se que havia um

erro de aproximadamente 108 entre o cálculo realizado, por exemplo, entre a função que

realiza a raiz quadrada de um número utilizando-se 32 bits e 64 bits. Este erro é multiplicado,

para o cenário ERS-1, por um número com ordem de grandeza de 1010 , o que torna o erro do

cálculo relevante. Já para o cenário simulado, a precisão das funções não foi relevante, pois a

ordem de grandeza dos valores é menor. Por exemplo, o número que era da ordem de

grandeza 1010 no cenário ERS-1 passa para uma ordem de grandeza 106 no cenário simulado,

implicando num erro menor.

A exibição da imagem demonstrando noção de movimento se mostrou satisfatória,

dando a impressão de visualização contínua em tempo real, e não como fotografias. Uma vez

que a velocidade do sensor no cenário ERS-1 é alta (7120 m/s - Tabela 3.2), a cena se desloca

muito depressa, porém, mesmo assim, conhecendo-se previamente a cena imageada, é

possível notar o processamento correto da imagem.

Com o cenário simulado, o fluxo de imagem é mais lento, permitindo observar com

mais clareza a imagem. Isto é o que se espera em um cenário real com SAR embarcado em

aeronave, uma vez que a velocidade da plataforma é menor que a da plataforma orbital

ERS-1.
108

5 Conclusões

Dada a capacidade de processamento dos computadores pessoais atuais, é possível

implementar um processador SAR Range-Doppler nestas máquinas para operações em tempo

real sem o uso de coprocessadores adicionais, como GPUs, por exemplo.

Conseguiu-se, utilizando uma estrutura de buffers de dados e threads de

processamento, processar imagens SAR tanto de um cenário simulado quanto de um cenário

real de um SAR embarcado numa plataforma orbital.

A qualidade do processamento SAR pode ser melhorada, averiguando-se a causa da

pequena discrepância entre a resolução obtida e a teórica.

Mesmo com dados capturados de plataforma orbital (cenário ERS-1), foi possível

obter tempos de processamento abaixo dos limites. O uso destes dados demonstrou que o

processador foi implementado corretamente, pois focalizou a imagem do cenário

corretamente.

O uso de um cenário simulado se mostrou interessante por permitir a geração de

condições com diferentes configurações de sistema SAR, sem se realizar um ensaio

envolvendo aeronave, equipe de ensaio, etc. Contudo, a falta de dados obtidos de uma

aplicação real torna o desenvolvimento não conclusivo, podendo mascarar algum problema na

implementação do processador SAR.

Utilizou-se a biblioteca FFTW em sua configuração mais básica. Isto implica que

existe margem para melhora no tempo de processamento Além disto, mais paralelismo pode

ser empregado no algoritmo Range-Doppler, melhorando ainda mais os tempos de

processamento para aplicações mais demandantes.


109

Pode-se considerar factível o uso do sistema proposto para operação em SAR

embarcado em aeronave, uma vez que se encontra na literatura [10] exemplo de aplicações

similares.

A plataforma utilizada para desenvolvimento e operação do processador SAR (PC) se

apresentou bem amigável e com um grande número de recursos para auxiliar o

desenvolvimento. Um exemplo está nas bibliotecas utilizadas neste trabalho (FFTW, libxml2,

etc.).

Foi notada a importância com relação à precisão do cálculo das funções matemáticas

utilizadas para implementar o algoritmo Range-Doppler. Dependendo da grandeza dos valores

utilizados durante o cálculo, a integridade do processamento é comprometida.

5.1 Trabalhos futuros

Devido à margem de tempo obtida no processamento, é possível implementar novas

funções como, por exemplo, compensação de movimento, tracking de alvo e melhoramento

da resolução da imagem.

Testes com dados de SAR embarcados em aeronave obtidos em campo permitiriam

ajustes e melhorias para novas implementações.

Um estudo mais aprofundado sobre a precisão necessária para representação numérica

dos dados e cálculos deste processador pode ser realizado.

Ainda, foram deixadas margens para otimização do sistema, tanto em relação a tempo

de processamento quanto à qualidade do processamento da imagem. Um levantamento das

operações mais demandantes e de pontos favoráveis a paralelismo pode acontecer.

Por fim, um estudo dos limites do sistema implementado com cenários mais

demandantes pode ser feito.


110

Referências

[1] INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. IEEE 686-


2008: standard radar definitions. New York, 2008. Revision of IEEE Std 686-1997.

[2] PEIXOTO, G. G. Assinaturas de sinais de radar de alvos simples e de modelos de


alvos complexos: um estudo na banda x em câmara anecóica. 2006. 210 f. Dissertação
(Mestrado em Engenharia Eletrônica e Computação) – Instituto Tecnológico de
Aeronáutica, São José dos Campos.

[3] FRANCESCHETTI, G; LANARI, R. Synthetic aperture radar processing. New


York: CRC Press, 1999. 307 p. ISBN: 0849378990.

[4] VEIGA, R. Q. Processador SAR com compensação de movimento para o SAR-


SIVAM. 2004. 90 f. Dissertação (Mestrado em Engenharia Eletrônica e Computação) –
Instituto Tecnológico de Aeronáutica, São José dos Campos.

[5] CUMMING, I. G.; WONG, F. H. Digital processing of synthetic aperture radar


data: algorithms and implementations. Norwood: Artech House, 2005. 625 p. ISBN: 1-
58053-058-3.

[6] GUARITA, F. C. Avaliação da arquitetura CUDA para síntese de imagens SAR.


2011. 90 f. Dissertação (Mestrado em Engenharia Aeronáutica) - Instituto Tecnológico
de Aeronáutica, São José dos Campos.

[7] HUANG J.; WU, J.; HUANG S. The hardware implementation of real-time SAR signal
processor. In: IEEE INTERNATIONAL RADAR CONFERENCE, 2000, Alexandria.
Proceedings... Piscataway: IEEE, 2000. p. 205-209.

[8] MURA, J. C. et al. Processador SAR compacto baseado em FPGA para monitoramento
em tempo real. In: SIMPÓSIO BRASILEIRO DE SENSORIAMENTO REMOTO, 15.,
2011, Curitiba. Anais... São José dos Campos: INPE, 2011. p. 7572-7579.

[9] MONTEIRO, M. V. T. Processador SAR com autofocalização para o SAR-SIVAM.


2005. 134 f. Dissertação (Mestrado em Engenharia Eletrônica e Computação) - Instituto
Tecnológico de Aeronáutica, São José dos Campos.
111

[10] MALANOWSKI, M. et al. Real-time high-resolution SAR processor using CUDA


technology. In: INTERNATIONAL RADAR SYMPOSIUM, 2013, Dresden.
Proceedings... Piscataway: IEEE, 2013. v. 2, p. 673-678.

[11] ZHANG, L. et al. A robust motion compensation approach for UAV SAR imagery.
IEEE Transactions on Geoscience and Remote Sensing, v. 50, n. 8, p. 3202–3218,
Aug. 2012.

[12] CHIARATTI, A. Avaliação da complexidade computacional e requisitos de


operação na geração de imagens SAR em tempo real. 2013. 65 f. Dissertação
(Mestrado em Engenharia Aeronáutica) - Instituto Tecnológico de Aeronáutica, São
José dos Campos.

[13] SONG, M. et al. Processing of SAR data based on the heterogeneous architecture of
GPU and CPU. In: IET INTERNATIONAL RADAR CONFERENCE, 2013, Xi'an.
Proceedings... Stevenage: IET, 2013. p. 1-5.

[14] POTIM, P. et al. Sentinel-1 mission operations concept. In: IEEE INTERNATIONAL
GEOSCIENCE AND REMOTE SENSING SYMPOSIUM, 2012, Munich.
Proceedings... Piscataway: IEEE, 2012. p. 1745-1748.

[15] YONG-FENG, S.; TIAN-HE, C.; LING, P. Review on the key technology of real-time
oil spill monitoring system based on marine radar. In: INTERNATIONAL
CONFERENCE ON REMOTE SENSING, ENVIRONMENT AND
TRASPORTATION ENGINEERING, 2., 2012, Nanjing. Proceedings... Piscataway:
IEEE, 2013. p. 1-4.

[16] USMAIL, C. L.; LITTLE, M. O.; ZUBER, R. E. Evolution of embedded processing for
wide area surveillance. IEEE aerospace and electronic systems magazine, v. 29, n. 1,
p. 6-13, Jan. 2014.

[17] NVIDIA CORPORATION. CUDA programming guide. Version6.0. [S.l.], 2014.


Disponível em: <http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf>.
Acesso em: 11 June 2014.

[18] JEVTIĆ, M.; STAMATOVIĆ, M. Radar data processing and visualization on desktop
platforms. In: TELECOMMUNICATIONS FORUM, 17., 2009, Belgrade.
Proceedings... Belgrade Institute Mihajlo Pupin, 2009. p. 1315-1318.
112

[19] CHIARATTI, A.; FERNANDES, D. Avaliação da influência de requisitos operacionais


na geração de imagens SAR em tempo real. In. SIMPÓSIO DE APLICAÇÕES
OPERACIONAIS EM ÁREAS DE DEFESA, 15., 2013, São José dos Campos. Anais...
São José dos Campos, DCTA, 2013.

[20] TROFINO, S. et al. Avaliação do processador SAR Range-Doppler para operação em


tempo real em um computador de uso geral. In: SIMPÓSIO DE APLICAÇÕES
OPERACIONAIS EM ÁREAS DE DEFESA, 14., 2012, São José dos Campos. Anais...
São José dos Campos: DCTA, 2012.

[21] WU, Y.; CHEN, J.; ZHANG, H. A real-time SAR imaging system based on CPUGPU
heterogeneous platform. In: NTERNATIONAL CONFERENCE ON SIGNAL
PROCESSING, 11., 2012, Beijing. Proceedings... Piscataway: IEEE, 2012. v. 1, p.
461-464.

[22] ELARRAT, I. F. Detecção e estimação de velocidade de alvos móveis em imagens


SLAR utilizando multicanais. 2012. 122 f. Dissertação (Mestrado em Engenharia
Eletrônica e Computação) - Instituto Tecnológico de Aeronáutica, São José dos
Campos.

[23] BRUDER, J. A. IEEE Radar standards and the radar systems panel. IEEE Aerospace
and Eletrocnic Systems Magazine, v. 28, n. 7, p. 19-22, July 2013.

[24] HARRIS, F. J. On the use of windows for harmonic analysis with the discrete fourier
transform. Proceedings of the IEEE, v. 66, n. 1, p. 51-83, Jan. 1978.

[25] EXELIS INCORPORATION. IDL. McLean, 2014. Disponível em:


<http://www.exelisvis.com/ProductsServices/IDL.aspx>. Acesso em: 11 June 2014.

[26] REDHAT INCORPORATION. CYGWIN. Raleigh, 2011. Disponível em:


<http://www.redhat.com/services/custom/cygwin/>. Acesso em: 11 June 2014.

[27] VEILLARD, D. The XML C parser and toolkit of Gnome: libxml. [S.l.], [2013?].
Disponível em: <http://xmlsoft.org/>. Acesso em: 11 June 2014.

[28] MATTSON, T. A Hands-on introduction to OpenMP. Santa Clara, [2011?].


Disponível em: <http://openmp.org/mp-documents/Intro_To_OpenMP_Mattson.pdf>.
Acesso em: 11 June 2014.
113

[29] FRIGO, M.; JOHNSON, S. G. The design and implementation of FFTW3. Proceeding
of the IEEE, v. 93, n. 2, p. 216-231, Feb. 2005.

[30] LUTEN, E. OpenGLBook.com. [S.l.], [2014?]. Disponível em:


<http://openglbook.com/the-book.html>. Acesso em: 11 Jun. 2014.
FOLHA DE REGISTRO DO DOCUMENTO
1. 2. 3. 4.
CLASSIFICAÇÃO/TIPO DATA REGISTRO N° N° DE PÁGINAS

DM 08 de agosto de 2014 DCTA/ITA/DM-035/2014 113


5.
TÍTULO E SUBTÍTULO:

Implementação de um processador SAR Range-Doppler em um computador de propósito geral visando


operação em tempo real.
6.
AUTOR(ES):

Sérgio Henrique Trofino


7
INSTITUIÇÃO(ÕES)/ÓRGÃO(S) INTERNO(S)/DIVISÃO(ÕES):

Instituto Tecnológico de Aeronáutica – ITA


8.
PALAVRAS-CHAVE SUGERIDAS PELO AUTOR:

SAR em tempo real; Range-Doppler; SAR em PC.


9
.PALAVRAS-CHAVE RESULTANTES DE INDEXAÇÃO:

Radar Doppler; Radar de abertura sintética; Processamento de imagens; Arquitetura de


multiprocessadores; Operação em tempo real; Computação; Engenharia eletrônica.
10.
APRESENTAÇÃO: X Nacional Internacional
ITA, São José dos Campos. Curso de Mestrado. Programa de Pós-Graduação em Engenharia Eletrônica e
Computação. Área de Dispositivos e Sistemas Eletrônicos. Orientador: Prof. Dr. Roberto D'Amore.
Defesa em 03/07/2014. Publicada em 2014.
11.
RESUMO:

O uso de radares de imageamento, como o radar de abertura sintética - SAR - (do inglês: Synthetic

Aperture Radar), tem sido cada vez mais comum. Eles podem ser encontrados em sistemas de alto custo,

como plataformas orbitais, ou até em veículos aéreos não tripulados. A demanda crescente na obtenção

de informações para tomada de decisões em curto espaço de tempo, e avaliação da imagem em tempo

real, remete ao desafio do processamento de imagens SAR em tempo real. Diversas plataformas de

hardware podem ser empregadas para o processamento de imagens SAR em tempo real: processadores de

sinais digitais, unidade de processamento gráfico ou hardwares programáveis. Neste trabalho, propõe-se o

uso de um computador de propósito geral para realizar a tarefa de processar e exibir a imagem SAR,

focalizada em tempo suficiente de modo que não haja acúmulo de dados sem processamento. Os testes

realizados apresentam resultados que indicam a viabilidade do emprego desta plataforma de baixo custo

em operações com aeronaves.

12.
GRAU DE SIGILO:

(X ) OSTENSIVO ( ) RESERVADO ( ) CONFIDENCIAL ( ) SECRETO

Você também pode gostar