estudo e implementac˘ao de modelos de canal~ para...
TRANSCRIPT
ESTUDO E IMPLEMENTACAO DE MODELOS DE CANAL
PARA COMUNICACOES ENTRE VEICULOS
Lucas de Andrade Cerqueira
Projeto de Graduacao apresentado ao Curso
de Engenharia Eletronica e de Computacao
da Escola Politecnica, Universidade Federal
do Rio de Janeiro, como parte dos requisitos
necessarios a obtencao do tıtulo de Enge-
nheiro.
Orientador: Paulo Sergio Ramirez Diniz
Rio de Janeiro
Marco de 2019
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Escola Politecnica - Departamento de Eletronica e de Computacao
Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria
Rio de Janeiro - RJ CEP 21949-900
Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que
podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar
qualquer forma de arquivamento.
E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-
otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja
ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que
sem finalidade comercial e que seja feita a referencia bibliografica completa.
Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es).
iv
DEDICATORIA
A minha famılia.
v
AGRADECIMENTOS
Agradeco a minha mae e meu pai por todo o apoio e amor incondicional, por
sempre me incentivarem a estudar e pela dedicacao incansavel para minha formacao
pessoal e academica. Agradeco tambem a minha irma pelo companheirismo e pelas
brincadeiras. Agradeco as minha avos pelos ensinamentos, pelas boas risadas e
por tudo que fizeram para criar seus filhos e netos. Agradeco tambem as minhas
madrinhas, padrinhos e a toda minha famılia por sempre me apoiarem e por estarem
presentes sempre que precisei.
Agradeco a minha namorada, Fabiana, por estar sempre ao meu lado, nos
momentos bons e ruins, e por tornar a jornada da graduacao muito menos cansa-
tiva. Obrigado pela proatividade e por sempre estar disposta a ajudar nao so os
alunos do curso de Engenharia Eletronica e Computacao, mas tambem qualquer um
que precise. Agradeco tambem pela ajuda com as ilustracoes deste projeto e pela
incansaveis revisoes.
Agradeco a meu orientador Paulo Diniz por ter me orientado neste trabalho,
por estar sempre disponıvel e pelos ensinamentos e dicas que me ajudaram muito
no desenvolvimento deste projeto.
Agradeco aos meus companheiros de turma Bruno Granato, Diogo Nocera,
Felipe Claudio, Vinicius Mesquita, Renata Baptista e a todos os outros que sempre
ajudaram a tornar a graduacao um ambiente mais descontraıdo e com quem sempre
pude contar. Agradeco tambem a Alyssa Takazume, Joao Felipe, Matheus Lima,
Victor Cossetti e outros que, mesmo nao sendo da minha turma, sempre ajudaram
de alguma forma durante minha formacao.
Agradeco tambem aos meus amigos Felippe Pinheiro, Patrick van Oorschot,
Renan van Oorschot e Renan Passos pelo companheirismo e pelos momentos de
descontracao que sempre rendem boas risadas.
Agradeco a todos os professores do Departamento de Engenharia Eletronica
e de Computacao (DEL) pelos ensinamentos teoricos e praticos necessarios para
minha formacao. Agradeco tambem a coordenacao e a secretaria do DEL por sempre
ajudarem quando precisei.
Agradeco tambem aos professores Brendan Jackman, Patrick Felicia, Patrick
vi
McInerney e P. J. Cregg pelo acolhimento e por todo o conhecimento que adquiri
durante intercambio para o Waterford Institute of Technology, Irlanda. Agradeco a
todos que ajudaram a tornar essa experiencia possıvel.
Agradeco tambem ao CNPq e a Universidade Federal do Rio de Janeiro pelas
bolsas de iniciacao cientıfica e de monitoria.
vii
RESUMO
Este projeto apresenta o estudo de modelos de canal criados especialmente
para comunicacoes entre veıculos (V2V) e propoe a inclusao deles no simulador ns-3.
Conhecido por ser um simulador de redes gratuito desenvolvido por pesquisadores
de diversas instituicoes (University of Washington, Georgia Institute of Technology,
International Institute of Computer Science, na California, e Institut National de
Recherche en Informatique et en Automatique, na Franca), o ns-3 possui codigo
aberto e e muito utilizado para fins de pesquisa e ensino. Tambem sao discutidos
os padroes vigentes relacionados a comunicacao V2V: a emenda IEEE 802.11p e a
famılia de padroes IEEE 1609. As informacoes contidas neles foram consolidadas de
forma a propiciar um entendimento amplo dessas normas. Os modelos foram im-
plementados utilizando a linguagem C++ e foram validados com base nos resultados
apresentados em suas respectivas referencias. Por fim, sao exibidos os resultados de
simulacoes utilizando os novos modelos no simulador ns-3.
Palavras-Chave: V2V, V2I, V2X, modelo de canal, two-ray, dual-slope, log-distancia,
IEEE 802.11p, IEEE 1609, OFDM, VANET, WAVE, WSMP, simulador, ns-3.
viii
ABSTRACT
This work presents a study of channel models that were developed speci-
fically for vehicle-to-vehicle communication (V2V) and proposes their addition to
the ns-3 network simulator. As a free and open source simulator developed by re-
searchers from several institutions (University of Washington, Georgia Institute of
Technology, International Institute of Computer Science, in California, and Insti-
tut National de Recherche en Informatique et en Automatique, in France), ns-3 is
mainly used for academic and educational purposes. The active standards related
to V2V communication are also discussed: the amendment IEEE 802.11p and the
family of IEEE 1609 standards. Their content is summarised in this work to provide
a wide understanding of these standards. The channel models were implemented in
C++ and they were validated against the results presented in their sources. Finally,
simulation results using the new models in the ns-3 simulator are presented.
Key-words: V2V, V2I, V2X, channel model, two-ray, dual-slope, log-distance, IEEE
802.11p, IEEE 1609, OFDM, VANET, WAVE, WSMP, simulator, ns-3.
ix
Sumario
Lista de Figuras xiii
Lista de Tabelas xv
Lista de Siglas xvii
Lista de Sımbolos xxi
1 Introducao 1
1.1 Tema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Delimitacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.6 Descricao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Emenda IEEE 802.11p 5
2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Vehicular Ad-Hoc Network (VANET) . . . . . . . . . . . . . . . . . . 5
2.3 Caracterizacao do canal . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Camada fısica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5.1 Especificacoes tecnicas . . . . . . . . . . . . . . . . . . . . . . 14
2.5.2 Transmissor e receptor OFDM . . . . . . . . . . . . . . . . . . 17
2.6 Fluxo de dados entre a camada fısica e a camada MAC . . . . . . . . 28
2.6.1 Transmissao de dados . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2 Recepcao de dados . . . . . . . . . . . . . . . . . . . . . . . . 30
x
3 Famılia de padroes IEEE 1609 31
3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Padrao IEEE 1609.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 WAVE Short Message Protocol (WSMP) . . . . . . . . . . . . 32
3.2.2 WAVE Service Advertisement (WSA) . . . . . . . . . . . . . . 34
3.3 Padrao IEEE 1609.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Coordenacao de canal e modos de acesso . . . . . . . . . . . . 36
3.3.2 Priorizacao de mensagens . . . . . . . . . . . . . . . . . . . . 38
3.3.3 Sincronizacao de multiplos canais . . . . . . . . . . . . . . . . 41
4 Modelos de canal 45
4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Modelo dual-slope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3 Modelo two-ray ground . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 Modelo VirtualSource11p . . . . . . . . . . . . . . . . . . . . . . . . . 51
5 Implementacao e Resultados 54
5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.2 Simulador ns-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3 Implementacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.1 Modelo dual-slope . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.3.2 Modelo two-ray ground . . . . . . . . . . . . . . . . . . . . . . 58
5.3.3 Modelo VirtualSource11p . . . . . . . . . . . . . . . . . . . . 60
5.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.4.1 Cenarios de simulacao . . . . . . . . . . . . . . . . . . . . . . 63
5.4.2 Modelos dual-slope e two-ray ground . . . . . . . . . . . . . . 65
5.4.3 Modelo VirtualSource11p . . . . . . . . . . . . . . . . . . . . 67
5.4.4 Analise de latencia . . . . . . . . . . . . . . . . . . . . . . . . 69
6 Conclusoes 71
Bibliografia 73
A Codigo-fonte do modelo dual-slope 78
A.1 dual-log-propagation-loss-model.h . . . . . . . . . . . . . . . . . . . . 78
xi
A.2 dual-log-propagation-loss-model.cc . . . . . . . . . . . . . . . . . . . . 80
B Codigo-fonte do modelo two-ray ground 84
B.1 kunisch-tworay-propagation-loss-model.h . . . . . . . . . . . . . . . . 84
B.2 kunisch-tworay-propagation-loss-model.cc . . . . . . . . . . . . . . . . 87
C Codigo-fonte do modelo VirtualSource11p 93
C.1 intersection-propagation-loss-model.h . . . . . . . . . . . . . . . . . . 93
C.2 intersection-propagation-loss-model.cc . . . . . . . . . . . . . . . . . . 96
xii
Lista de Figuras
2.1 Rede sem fio em modo infraestrutura. . . . . . . . . . . . . . . . . . . . 6
2.2 Rede sem fio em modo ad-hoc. . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Ilustracao de comunicacoes V2V e V2I. . . . . . . . . . . . . . . . . . . 7
2.4 Arquitetura do modelo de referencia do padrao IEEE 802.11. Fonte: IEEE
802.11 [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Estrutura do frame da camada fısica (PPDU). Fonte: IEEE 802.11 [1]. . . 14
2.6 Codificacao de um sımbolo OFDM. . . . . . . . . . . . . . . . . . . . . 17
2.7 Decodificacao de um sımbolo OFDM. . . . . . . . . . . . . . . . . . . . 17
2.8 Diagrama de blocos de um LFSR. . . . . . . . . . . . . . . . . . . . . . 19
2.9 Scrambler da camada PHY (baseado em figura do padrao IEEE 802.11 [1]). 19
2.10 Diagrama de blocos do codificador convolucional (baseado em figura do
padrao IEEE 802.11 [1]). . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1 Ilustracao simplificada da arquitetura do sistema WAVE. Fonte: IEEE
1609.0 [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Estrutura de uma Wave Short Message. Fonte: IEEE 1609.3 [3] . . . . . . 33
3.3 Estrutura do bloco WaveServiceAdvertisement. Fonte: IEEE 1609.3 [3] . . 35
3.4 Ilustracao dos modos de acesso aos canais. (a) Modo contınuo (b) Modo
alternado (c) Modo imediato. Fonte: IEEE 1609.4 [4] . . . . . . . . . . . 37
3.5 Exemplo de coordenacao dos canais no modo de acesso alternado. Fonte:
IEEE 1609.4 [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.6 Alocacao dos canais de servico e de controle utilizados pelo sistema WAVE
nos Estados Unidos. Fonte: FCC [5] . . . . . . . . . . . . . . . . . . . . 38
3.7 Fluxograma simplificado do procedimento de backoff no algortimo EDCA. 42
3.8 Estrutura do elemento Timing Advertisement. Fonte: IEEE 802.11 [1] . . 43
xiii
4.1 Ilustracao do caminho de visada direta (dLOS) e do caminho com reflexao
no solo (dr) entre um transmissor e um receptor. . . . . . . . . . . . . . 49
5.1 Atenuacao do canal em funcao da distancia para validacao do modelo dual-
slope adicionado ao simulador ns-3. . . . . . . . . . . . . . . . . . . . . 58
5.2 Comparacao entre o modelo proposto por Kunisch e Pamp [6] e o imple-
mentado pela classe KunischTwoRayPropagationLossModel. . . . . . . . 60
5.3 Comparacao entre o modelo proposto por Mangel et al. [7] e o implemen-
tado pela classe IntersectionPropagationLossModel. . . . . . . . . . . 64
5.4 Comparacao da potencia de recepcao utilizando valores de xt decimais e
truncados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.5 Packet delivery ratio (PDR) em funcao da distancia utilizando o modelo
dual-slope em cenario de rodovia e urbano. . . . . . . . . . . . . . . . . 66
5.6 Packet delivery ratio (PDR) em funcao da distancia utilizando o modelo
log-distance no ambiente urbano e o modelo two-ray ground em cenario de
rodovia e rural. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.7 Packet delivery ratio (PDR) em funcao da distancia do receptor ao cru-
zamento utilizando o modelo de Mangel et al. [7] e variando a posicao do
transmissor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.8 Latencia maxima observada em um ambiente de rodovia ao variar a quan-
tidade de veıculos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
xiv
Lista de Tabelas
2.1 Caracterizacao do canal quanto a sua seletividade em frequencia e ao seu
desvanecimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Parametros dos padroes IEEE 802.11a e IEEE 802.11p. Fonte: IEEE
802.11p [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Taxas de transmissao para diferentes modulacoes e taxas de codificacao. . 16
2.4 Valores do fator de normalizacao KMOD de acordo com a modulacao.
Fonte: IEEE 802.11 [1]. . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Mapeamento QPSK. Fonte: IEEE 802.11 [1]. . . . . . . . . . . . . . . . 24
2.6 Mapeamento 16-QAM. Fonte: IEEE 802.11 [1]. . . . . . . . . . . . . . . 25
2.7 Mapeamento 64-QAM. Fonte: IEEE 802.11 [1]. . . . . . . . . . . . . . . 25
3.1 Mapeamento entre UP, AC e ACI no padrao IEEE 802.11 [1]. . . . . . . . 39
3.2 Valores dos parametros do algoritmo EDCA definidos pela camada fısica
OFDM. Fonte: IEEE 802.11 [1] . . . . . . . . . . . . . . . . . . . . . . 40
3.3 Valores padrao dos parametros do algoritmo EDCA para comunicacao em
modo OCB. Fonte: IEEE 802.11 [1] . . . . . . . . . . . . . . . . . . . . 40
3.4 Valores padrao dos parametros do algoritmo EDCA para comunicacao em
modo OCB e camada fısica OFDM. Fonte: IEEE 1609.4 [4] . . . . . . . . 41
4.1 Expoente n da perda de propagacao em funcao da distancia para diferentes
cenarios. Fonte: [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Parametros do modelo de canal dual-slope para rodovia e ambiente urbano.
Fonte: [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Parametros do modelos two-ray ground e log-distancia para diferentes am-
bientes. Fonte: [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Atributos da classe DualLogPropagationLossModel. . . . . . . . . . . . 57
xv
5.2 Parametros utilizados na validacao do modelo dual-slope no simulador ns-3. 57
5.3 Atributos da classe KunischTwoRayPropagationLossModel. . . . . . . . . 59
5.4 Atributos da classe IntersectionPropagationLossModel. . . . . . . . . 61
xvi
Lista de Siglas
AGC Automatic Gain Control .
AIFS Arbitration Inter-Frame Space.
AP Access Point .
AWGN Additive White Gaussian Noise.
BPSK Binary Phase-Shift Keying .
BSM Basic Safety Message.
BSS Basic Service Set .
BSSID Basic Service Set Identifier .
CCH Control Channel .
CP Cyclic Prefix .
CSMA/CA Carrier Sense Multiple Access/Collision Avoidance.
CW Contention Window .
DLL Data Link Layer .
DSRC Dedicated Short Range Communications .
EDCA Enhanced Distributed Channel Access .
EIRP Effective Isotropic Radiated Power .
FCC Federal Communications Commission.
xvii
FEC Forward Error Correction.
FFT Fast Fourier Transform.
IBSS Independent Basic Service Set .
ICI Intercarrier Interference.
IFFT Inverse Fast Fourier Transform.
IoT Internet of Things .
ISI Intersymbol Interference.
ITS Intelligent Transportation System.
LFSR Linear Feedback Shift Register .
LLC Logical Link Control .
LME Layer Management Entity .
LOS Line of Sight .
MAC Media Access Control .
MANET Mobile Ad-Hoc Network .
MLME MAC Layer Management Entity .
MLMEX MAC Layer Management Entity Extension.
MPDU MAC Protocol Data Unit .
NLOS Non-Line of Sight .
OCB Outside Context of Basic Service Set .
OLOS Obstructed Line of Sight .
OSI Open Systems Interconnection.
PAPR Peak-to-Average Power Ratio.
xviii
PDR Packet Delivery Ratio.
PHY Camada fısica.
PLCP Physical Layer Convergence Procedure.
PLME Physical Layer Management Entity .
PMD Physical Medium Dependent .
PPDU Physical Layer Protocol Data Unit .
PSID Provider Service Identifier .
QPSK Quadriphase-Shift Keying .
RSU Roadside Unit .
SAP Service Access Point .
SCH Service Channel .
SIFS Short Inter-Frame Space.
SME Station Management Entity .
STA Station.
TA Time Advertisement .
TSF Timing Synchronization Function.
UFRJ Universidade Federal do Rio de Janeiro.
UTC Coordinated Universal Time.
V2I Vehicle-to-Infrastructure.
V2V Vehicle-to-Vehicle.
V2X Vehicle-to-Everything .
VANET Vehicular Ad-Hoc Network .
xix
WAVE Wireless Access in Vehicular Environments .
WME WAVE Management Entity .
WSA WAVE Service Advertisement .
WSM WAVE Short Message.
WSMP WAVE Short Message Protocol .
xx
Lista de Sımbolos
BS Largura de banda do sinal.
BC Banda de coerencia do canal.
NBPSC Numero de bits codificados por subportadora.
NCBPS Numero de bits codificados por sımbolo OFDM.
NDBPS Numero de bits de dados por sımbolo OFDM.
Tm Maximum delay spread .
TC Tempo de coerencia do canal.
TFFT Perıodo da FFT.
TRMS RMS delay spread .
∆fD Desvio Doppler.
∆fm Desvio Doppler maximo.
xxi
Capıtulo 1
Introducao
1.1 Tema
A comunicacao entre veıculos (V2V, do ingles Vehicle-to-Vehicle) e entre
eles e a infraestrutura a seu redor (V2I, do ingles Vehicle-to-Infrastructure) vem se
tornando um assunto com cada vez mais destaque no contexto de Internet of Things
(IoT) e da pesquisa acerca de veıculos autonomos. Contudo, assim como outros
sistemas de comunicacao, e necessaria uma padronizacao das especificacoes com o
objetivo de garantir o funcionamento do sistema e de nao permitir a interferencia
com solucoes ja existentes, como 3G e 4G para comunicacoes moveis, por exemplo.
A emenda IEEE 802.11p, de 2010, e a famılia de padroes IEEE 1609 foram criadas
para especificar o sistema de comunicacao V2V e V2I.
Com o objetivo de tentar prever os efeitos sofridos por um sinal que e trans-
mitido atraves de um canal de comunicacao, diversos modelos de canal foram desen-
volvidos ao longo de decadas. Eles sao de fundamental importancia para simular os
sistemas de comunicacao e avaliar seu desempenho e viabilidade. Da mesma forma,
modelos de canal especıficos para ambientes veiculares vem sendo desenvolvidos e
estao presentes na literatura de V2V e V2I [7, 9, 6, 10, 11, 12].
Devido ao fato de que aplicacoes utilizando veıculos envolvem a vida e a segu-
ranca de pessoas, a utilizacao de simuladores para testar as solucoes de comunicacao
torna-se crucial. Dentre os simuladores gratuitos e voltados para fins educacionais e
de pesquisa, destacam-se o ns-2 [13] e, seu sucessor, ns-3 [14]. Alem disso, por serem
de codigo aberto, usuarios podem contribuir com novas funcionalidades para esses
1
simuladores. Contudo, ha uma quantidade limitada de modelos de canal disponıveis
para a simulacao de comunicacoes V2V e V2I.
Nesse contexto, o trabalho apresenta a norma IEEE 802.11p e a famılia de
padroes IEEE 1609, que definem especificacoes para os sistemas de comunicacao
em ambientes veiculares, e discorre sobre a inclusao de tres modelos de canal para
comunicacoes V2V no simulador ns-3 [14].
1.2 Delimitacao
Por serem modelos de canal empıricos, sua aplicacao e restrita a ambientes
sob condicoes similares as do momento em que as medicoes foram realizadas, como
anteparos existentes e a velocidade dos veıculos. Alem disso, devido ao fato de que
os padroes para comunicacoes veiculares sao recentes, eles estao sujeitos a revisoes
e podem diferir das descricoes apresentadas neste projeto em alguns pontos. O
trabalho foi desenvolvido no Laboratorio de Sinais, Multimıdia e Telecomunicacoes
(SMT) da Escola Politecnica da Universidade Federal do Rio de Janeiro (UFRJ).
1.3 Justificativa
De acordo com o relatorio da Organizacao Mundial da Saude (OMS) de 2018
sobre acidentes de transito [15], cerca de 1,35 milhao de pessoas morrem por ano
devido a acidentes de transito e mais de 20 milhoes ficam feridas, muitas com sequelas
permanentes. Do numero de mortes, mais da metade das vıtimas eram pedestres,
ciclistas ou motociclistas. Alem disso, acidentes de transito se tornaram a causa de
morte mais comum entre criancas e jovens nos ultimos anos.
Dado esse panorama de acidentes, aplicacoes com o objetivo de aumentar a
seguranca no transito estao sob alta demanda, como localizar obstaculos, identificar
condicoes da via e prever e evitar acidentes. Em aplicacoes como essas, transmis-
sores e receptores podem ser utilizados na comunicacao V2V e V2I com o objetivo
de compartilhar informacoes e alertas. Essa comunicacao pode servir tanto para
aplicacoes mais simples, como um veıculo de emergencia enviando mensagens para
os veıculos proximos e alertando os condutores para abrir caminho, como tambem
2
aplicacoes complexas, onde o trafego de carros autonomos pode ser redirecionado a
partir do aviso de um acidente repassado entre eles.
Contudo, aplicacoes de comunicacao precisam de uma etapa de simulacao
exaustiva, a fim de atestar sua confiabilidade, desempenho e viabilidade. Por esse
motivo, a utilizacao de simuladores para pesquisa e desenvolvimento e impres-
cindıvel. Por ser gratuito, possuir codigo aberto e por ser voltado para fins de
pesquisa e educacionais, o simulador ns-3 [14] foi escolhido para ser utilizado neste
projeto.
De forma analoga, experimentos com medicoes em campo para o desenvol-
vimento de modelos de canal tambem sao de extrema importancia para entender
a dinamica de propagacao do sinal em ambientes veiculares, onde os dispositivos
se movem com velocidades altas e ha uma quantidade grande de anteparos, como
construcoes, vegetacao e outros veıculos. Porem, o simulador ns-3 possui poucos
modelos de canal que possam ser aplicados para comunicacao V2V e V2I.
Assim, neste trabalho, tres modelos de canal para comunicacao V2V criados
a partir de medicoes em campo sao adicionados ao simulador ns-3. Alem disso,
por serem padroes relativamente recentes, o trabalho apresenta as principais carac-
terısticas e arquitetura especificadas pela emenda IEEE 802.11p e pela famılia de
padroes IEEE 1609.
1.4 Objetivos
Os objetivos deste trabalho sao expandir as capacidades do simulador ns-3
no que diz respeito a modelos de canal para ambientes veiculares e propiciar um
entendimento amplo sobre a emenda IEEE 802.11p e sobre a famılia de padroes
IEEE 1609.
1.5 Metodologia
Em um primeiro momento, foi feita uma pesquisa bibliografica para iden-
tificar trabalhos relacionados a modelos de canal para comunicacoes V2V e seus
resultados. Alem disso, a emenda IEEE 802.11p [1] e a famılia de padroes IEEE
1609 [2, 3, 4, 16] foram estudadas.
3
A partir da pesquisa, foram encontrados tres modelos de canal [7, 9, 6] pre-
sentes na literatura de comunicacao V2V para serem adicionados ao simulador ns-3.
Esse simulador e escrito em C++ e os modelos foram implementados com novas
classes, que se integram as ja existentes.
Por fim, os resultados obtidos nas referencias de cada modelo de canal fo-
ram utilizados para validar suas implementacoes. Simulacoes foram realizadas para
exemplificar a total integracao dos novos modelos com o simulador ns-3 e para analise
de desempenho da transmissao em diferentes cenarios.
1.6 Descricao
No capıtulo 2 sera apresentada a emenda IEEE 802.11p, que introduz mu-
dancas ao padrao IEEE 802.11 para possibilitar a comunicacao em ambientes vei-
culares.
No capıtulo 3, e apresentada a famılia de padroes IEEE 1609, com enfoque
aos padroes IEEE 1609.3 e IEEE 1609.4 e a arquitetura do sistema Wireless Access
in Vehicular Environments (WAVE).
O capıtulo 4 contem a descricao de tres modelos de canal encontrados na lite-
ratura de comunicacao Vehicle-to-Vehicle (V2V) e que nao tinham implementacao
no simulador ns-3.
No capıtulo 5, ha uma breve descricao do simulador ns-3 e e detalhada a
implementacao de cada modelo de canal descrito no capıtulo 4. Foram criadas classes
em C++, uma para cada modelo, de forma que possam ser integradas ao simulador.
Alem disso, sao exibidos os resultados de simulacoes realizadas em diferentes cenarios
utilizando os modelos implementados.
Por fim, o capıtulo 6 expoes as conclusoes e sugestoes de trabalhos futuros.
4
Capıtulo 2
Emenda IEEE 802.11p
2.1 Introducao
A norma IEEE 802.11p [17] e uma emenda aprovada e adicionada em 2010
ao IEEE 802.11 [1], padrao responsavel por definir especificacoes da camada fısica
(PHY) e da camada Media Access Control (MAC) para o funcionamento de redes
sem fio nas frequencias de 2,4, 3,6, 5 e 60 GHz. Essa norma tem por objetivo
viabilizar a implementacao de comunicacao entre veıculos (V2V) e entre veıculo
e a infraestrutura ao redor dele (V2I), como sensores, postes e pedagios [18], por
exemplo.
O principal desafio para a comunicacao em ambientes veiculares e a dinamica
de propagacao do canal, que pode variar muito ao longo do tempo. Por esse motivo,
as mudancas presentes na emenda IEEE 802.11p servem para mitigar os efeitos
causados por essas variacoes.
2.2 Vehicular Ad-Hoc Network (VANET)
O ambiente de comunicacao sem fio proposto pelo padrao IEEE 802.11 e
composto por estacoes (STA, do ingles station) e tambem pode contar com pontos
de acesso (AP, do ingles access point). Uma STA e definida como uma entidade que
possui um endereco unico para sua camada MAC (endereco MAC) e uma interface
com o meio de propagacao atraves de uma camada PHY. Ja um AP, e composto
por uma STA e disponibiliza servicos de distribuicao para as STAs associadas a ele.
5
Figura 2.1: Rede sem fio em modo infraes-
trutura.
Figura 2.2: Rede sem fio em modo ad-hoc.
Essa associacao ocorre, por exemplo, quando um celular se conecta a uma rede sem
fio provida por um roteador, onde o celular e uma STA e o roteador um AP.
Antes da emenda IEEE 802.11p, o padrao IEEE 802.11 previa dois modos de
funcionamento possıveis para redes sem fio: infraestrutura ou ad-hoc. No primeiro
modo, as STAs se comunicam entre si atraves de um AP ao qual elas estejam sin-
cronizadas e o conjunto desses dispositivos forma um Basic Service Set (BSS). Ja
no modo ad hoc (do latim, significa “para esta finalidade”), a rede nao possui APs
e nao depende de uma infraestrutura pre-existente para que ela funcione. Nessa
configuracao, as STAs se comunicam diretamente entre si, sao responsaveis pelo
roteamento das mensagens e sao capazes de criar ou de se associar a redes sob de-
manda. O conjunto de STAs capazes de se comunicarem entre si em uma rede ad hoc
e denominado Independent Basic Service Set (IBSS), pois as estacoes independem
de um AP para gerir o trafego entre elas. Um BSS ou IBSS e identificado por um
codigo unico chamado de Basic Service Set Identifier (BSSID).
Uma rede ad-hoc composta por dispositivos moveis e que se configura auto-
maticamente e conhecida como Mobile Ad-Hoc Network (MANET). Para o caso es-
pecial que as STAs sao veıculos, a rede e conhecida como Vehicular Ad-Hoc Network
(VANET). Apesar do nome sugerir que seja composta por veıculos, uma VANET
pode possuir outros dispositivos que irao se comunicar com os carros e vice-versa.
Eles sao conhecidos como Roadside Units (RSUs), ou unidades de lateral de pista em
uma traducao livre, e podem ser usados para monitoramento de trafego, deteccao
de infracoes, sistemas para evitar colisoes e para estabelecer limites de velocidade
variaveis de acordo com as condicoes de trafego, por exemplo.
Em uma VANET, a comunicacao entre os dispositivos ocorre, principalmente,
por meio de broadcast, ou seja, a mensagem e enviada para todos os nos da rede den-
6
Figura 2.3: Ilustracao de comunicacao V2V e V2I.
tro do raio de alcance; A comunicacao entre veıculos e a infraestrutura ao seu redor
e conhecida por Vehicle-to-Infrastructure (V2I). A figura 2.3 ilustra comunicacoes
entre veıculos (V2V) e entre um veıculo e uma RSU. O termo cunhado para englobar
as comunicacoes V2V e V2I e Vehicle-to-Everything (V2X).
Contudo, os processos de associacao e autenticacao existentes nos modos in-
fraestrutura e ad-hoc demandam um intervalo de tempo que e crucial para aplicacoes
onde a latencia e uma das maiores prioridades, como e caso da comunicacao entre
veıculos. Por esse motivo, a emenda IEEE 802.11p adicionou um novo modo de
operacao chamado de Outside Context of Basic Service Set (OCB). Caso o dispo-
sitivo esteja configurado para operar nesse modo, as funcoes de associacao, auten-
ticacao e seguranca entre os nos sao desativadas na camada MAC, acarretando em
uma latencia menor na comunicacao entre dois nos. Para diferenciar de uma co-
municacao dentro do contexto de um BSS, e utilizado um BSSID fixo composto
somente por bits 1.
2.3 Caracterizacao do canal
O canal de comunicacoes V2X pode ser caracterizado por um ambiente ex-
tramente dinamico onde as STAs e os anteparos podem se mover em velocidades
bastante elevadas. Dentre os obstaculos, os mais comuns sao outros veıculos, sendo
esses de diferentes tamanhos e formatos (carros, caminhoes, motocicletas, onibus,
etc.), edificacoes e vegetacao.
Ao se transmitir um sinal atraves de um canal de comunicacao sem fio, ele
sofre dois tipos de atenuacao (fading): de larga escala (large-scale fading) e de pe-
quena escala (small-scale fading). A atenuacao de larga escala se refere as perdas de
7
propagacao ao longo de grandes distancias, da ordem de centenas de comprimentos
de onda. Essa atenuacao ocorre quando o sinal se propaga pelo ar gerando flutuacoes
na potencia recebida devido a reflexoes, difracoes e espalhamento (scattering) resul-
tantes da interacao da onda com os anteparos quando nao ha visada direta entre
transmissor e receptor, fenomeno conhecido como sombreamento (shadowing). Ja
a atenuacao em pequena escala modela as flutuacoes rapidas de potencia em um
curto intervalo de tempo ou ao percorrer pequenas distancias. Essas flutuacoes sao
resultado de interferencias construtivas e destrutivas do sinal quando ocorrem os
fenomenos de multicaminho e espalhamento Doppler.
Ao interagir com os anteparos presentes no ambiente, parte da energia do sinal
que esta sendo transmitido e absorvida e a outra e refletida de volta para o meio
de propagacao. Por percorrer uma distancia maior ate alcancar o receptor, o sinal
refletido chega atrasado em relacao ao sinal recebido atraves do caminho de visada
direta (LOS, do ingles line of sight) entre o transmissor e receptor. Esse fenomeno em
que multiplas copias de um sinal chegam ao receptor atraves de diferentes caminhos
e com diferentes atrasos de tempo e conhecido como multicaminho.
A resposta ao impulso no domınio do tempo de um canal com N caminhos
de propagacao entre o transmissor e receptor e dada por:
h(t) =N∑n=1
αn(t)ejφn(t)δ(t− τn(t)) (2.1)
onde αn(t) e φn(t) representa a magnitude e a fase, respectivamente, e τn(t) de-
nota o atraso de propagacao (do ingles, propagation delay) da n-esima copia. Esses
parametros variam com o tempo por conta da mobilidade inerente ao canal, alte-
rando suas condicoes de propagacao.
Aplicando a transformada de Fourier na equacao 2.1, obtem-se a resposta ao
impulso do canal no domınio da frequencia:
H(f) = F(h(t)) =
∫ +∞
−∞h(t)e−2πftdt =
N∑n=1
αn(t)ejφn(t)e−2πfτn(t) (2.2)
Normalmente, para determinar o ultimo impulso recebido, e definido um
limiar mınimo de potencia de recepcao, onde os impulsos que estiverem abaixo dele
sao descartados. O intervalo de tempo entre o primeiro e o ultimo impulso e chamado
de maximum delay spread e e calculado por:
Tm = τN − τ1 (2.3)
8
O RMS (root mean squared) delay spread e dado por: [8]
TRMS =√τ 2 − τ 2 (2.4)
onde
τ 2 =
∑Nn=1 α
2nτ
2n∑N
n=1 α2n
(2.5)
e
τ =
∑Nn=1 α
2nτn∑N
n=1 α2n
(2.6)
Desses parametros que determinam o espalhamento temporal de um canal
com multiplos caminhos, pode-se calcular a banda de coerencia (BC), que e o inter-
valo de frequencias em que a resposta em frequencia do canal pode ser considerada
constante. Outra interpretacao e que banda de coerencia e o intervalo de frequencias
em que a correlacao em amplitude de duas componentes e maior do que um limiar
definido. Caso esse limiar seja igual a 0,5, a banda de coerencia pode ser aproximada
por: [19]
BC ≈1
5TRMS
(2.7)
Caso a banda de coerencia seja o intervalo em que a funcao de correlacao
entre as frequencias for maior do que 0,9, BC pode ser aproximada por: [19]
BC ≈1
50TRMS
(2.8)
Esse conceito de banda de coerencia serve para classificar o canal como sele-
tivo em frequencia ou plano. Considere um sinal cuja largura de banda e igual a BS
que sera transmitido por um canal com banda de coerencia BC . Caso BS BC ,
isso significa que todas as componentes em frequencia do sinal sofrerao uma mesma
atenuacao com ganho aproximadamente constante e fase linear, caracterizando um
canal com resposta plana; caso contrario, BS BC , o canal apresenta ganho em am-
plitude e resposta em fase variando nao-linearmente com a frequencia, distorcendo o
sinal recebido e criando picos e vales em seu espectro em frequencia devido a inter-
ferencias construtivas e destrutivas entre as copias do sinal que chegam ao receptor.
Esse problema pode ser mitigado utilizando-se um equalizador no receptor para des-
fazer o efeito do canal sobre o sinal ou, como e utilizado no OFDM, distribuindo
a informacao a ser transmitida em multiplas subportadoras para que, caso alguma
9
componente em frequencia seja muito atenuada por conta de uma interferencia des-
trutiva, o codigo corretor de erro consiga reconstituı-la. De forma analoga, o canal
pode ser classificado utilizando o domınio do tempo: se a duracao do sımbolo a ser
transmitido TSYM for muito maior do que TRMS, ocorre interferencia intersimbolica
(ISI) e o canal e seletivo em frequencia; caso contrario, se TSYM TRMS, o canal
tem resposta plana.
Outro fenomeno muito presente em canais com alta mobilidade e o efeito
Doppler, onde a velocidade relativa entre transmissor e receptor e o angulo de che-
gada do sinal acarretam em um desvio de frequencia ∆fD, que pode ser calculado
por:
∆fD =v
λcos θ (2.9)
onde v e a velocidade relativa entre o receptor e o transmissor, λ e o comprimento
de onda do sinal sendo transmitido e θ e o angulo de chegada do sinal em relacao a
direcao de movimentacao do receptor. O desvio de frequencia e positivo caso trans-
missor e receptor estejam se aproximando e negativo na situacao em que estejam se
afastando. O desvio maximo ∆fm e dado por:
∆fm =v
λ=v
cfc (2.10)
sendo c a velocidade da luz no meio e fc a frequencia da portadora do sinal transmi-
tido. Em uma situacao de comunicacao entre dois veıculos com velocidade relativa
de 200 km/h (aproximadamente 55,56 m/s) e frequencia da portadora em 5,9 GHz,
o desvio maximo ∆fm e da ordem de 1 kHz.
O efeito Doppler aliado ao multicaminho resulta em multiplas copias do sinal
chegando ao receptor com desvios de frequencia diferentes que variam com o tempo.
Isso resulta em um espalhamento das componentes de frequencia do sinal recebido
em torno da frequencia da portadora, sendo este fenomeno conhecido como espa-
lhamento Doppler (do ingles, Doppler spread). Da mesma forma que o delay spread
e a banda de coerencia sao parametros que refletem o espalhamento no domınio
do tempo e a variacao da resposta do canal em relacao a frequencia, o desvio de
frequencia do efeito Doppler e o conceito de tempo de coerencia caracterizam o es-
palhamento das componentes frequenciais do sinal e a natureza variante no tempo
do canal. O tempo de coerencia pode ser entendido como o intervalo de tempo em
10
que a resposta ao impulso do canal e praticamente invariante ou, de forma analoga a
interpretacao da banda de coerencia, como o intervalo em que a correlacao temporal
em amplitude entre dois sinais recebidos e maior do que um certo limiar. O tempo
de coerencia TC pode ser aproximado como o inverso do desvio maximo de Doppler
∆fm:
TC ≈1
∆fm(2.11)
Caso seja utilizada a interpretacao utilizando a correlacao temporal e o limiar
seja definido em 0,5, TC pode ser aproximado por [20]:
TC ≈9
16π∆fm(2.12)
Na pratica, como uma regra empırica, TC e definido como a media geometrica
entre as equacoes 2.11 e 2.12: [8]
TC =
√9
16π∆fm2 ≈
0.423
∆fm(2.13)
O tempo de coerencia e utilizado para classificar o desvanecimento do canal
como rapido ou lento. Se o perıodo de um sımbolo TSYM e menor do que o tempo de
coerencia TC do canal, isso significa que a resposta ao impulso do canal no domınio
do tempo varia pouco enquanto o sımbolo esta sendo transmitido, caracterizando
um desvanecimento com variacoes lentas. Caso contrario, TSYM TC , a resposta
ao impulso do canal varia rapidamente no intervalo de duracao de um sımbolo,
causando dispersao na frequencia devido ao espalhamento Doppler e distorcendo o
sinal.
A tabela 2.1 apresenta um resumo das classificacoes do canal quanto a sua
seletividade em frequencia e ao seu desvanecimento em relacao a duracao do sımbolo,
a largura de banda do sinal, ao tempo de coerencia do canal e a banda de coerencia.
2.4 Arquitetura
A arquitetura da famılia de protocolos 802.11 e basicamente a mesma para
todas as suas normas. Isso ocorre porque a arquitetura e baseada no modelo de
referencia definido na norma Open Systems Interconnection (OSI)(ISO/IEC 7498-
1:1994) e e pautada em duas partes principais: a camada PHY e a camada de
11
Tabela 2.1: Caracterizacao do canal quanto a sua seletividade em frequencia e ao seu
desvanecimento.
TSY M TC TSY M TC
BS BCdesvanecimento lento
Plano em frequencia e
desvanecimento rapido
Plano em frequencia e
BS BCdesvanecimento lento
Seletivo em frequencia e
desvanecimento rapido
Seletivo em frequencia e
enlace de dados (Data Link Layer, DLL), que e composta pela subcamada MAC
e pela subcamada de controle de enlace logico (Logical Link Control, LLC). A ca-
mada fısica e a interface do dispositivo com o meio externo, sendo responsavel pela
transmissao e recepcao de dados atraves do canal. A camada MAC e responsavel
pelo enderecamento dos dados, protecao contra erros ao checar a integridade da
mensagem e controle de acesso ao meio para evitar transmissoes quando o canal
estiver ocupado. A camada MAC e projetada de forma que ela seja independente
da camada PHY presente no dispositivo. A figura 2.4 contem uma ilustracao do
modelo de referencia adotado pelos padroes IEEE 802.11. No capıtulo 3, a camada
MAC e definida com mais detalhes.
Os Service Access Points (SAPs) servem para prover os servicos de uma
camada para outra atraves de primitivas. Atraves do SAP entre as camadas PHY e
MAC, por exemplo, a MAC pode requerer servicos como transferir para a camada
PHY dados a serem transmitidos, solicitar o inıcio de uma transmissao e enviar
parametros de configuracao para a camada PHY, assim como a camada fısica pode
notificar a camada MAC do inıcio e fim de uma recepcao. A lista detalhada das
primitivas disponıveis em cada SAP incluindo suas funcionalidades e parametros
necessarios pode ser encontrada em [1].
A Station Management Entity (SME) pode ser entendida como uma entidade
independente responsavel pelo gerenciamento da STA e que interage com as Layer
Management Entitys (LMEs) das camadas MAC e PHY. Cada LME tem o papel
de gerenciar parametros e funcoes da sua respectiva camada. Existem SAPs para
que as LMEs interajam entre si e com a SME. A Physical Layer Management Entity
12
Figura 2.4: Arquitetura do modelo de referencia do padrao IEEE 802.11. Fonte: IEEE
802.11 [1].
(PLME), por exemplo, armazena e disponibiliza atraves de primitivas uma serie
de caracterısticas da camada fısica como duracao e comprimento de preambulo,
comprimento do sımbolo, duracao maxima de um bloco de dados a ser transmitido,
dentre outras. Ja a MAC Layer Management Entity (MLME) gerencia funcoes para
solicitacoes de troca de canal, gerenciamento de energia, sincronizacao e busca por
pontos de acesso, por exemplo.
Blocos de informacao (frames) sao definidos para as camadas MAC e fısica
com formatos especıficos. Eles possuem informacoes estruturadas em campos (fields)
pre-estabelecidos no padrao IEEE 802.11 de forma que possam ser utilizados para
enviar dados entre as camadas e, no caso da camada fısica, transmitir o frame atraves
do ar para que seja recebido e decodificado no receptor. O frame da camada MAC
tambem e chamado de MAC Protocol Data Unit (MPDU) e o da camada PHY e
chamado de Physical Layer Protocol Data Unit (PPDU). Enfoque maior sera dado
ao frame da camada fısica, cuja estrutura pode ser vista na figura 2.5.
13
Figura 2.5: Estrutura do frame da camada fısica (PPDU). Fonte: IEEE 802.11 [1].
2.5 Camada fısica
2.5.1 Especificacoes tecnicas
A camada fısica da emenda IEEE 802.11p baseia-se nas especificacoes da
norma IEEE 802.11a [21], que foi umas das primeiras emendas ao padrao IEEE
802.11. Essa norma estabelecia a comunicacao na banda de 5 GHz para ambientes
com baixa mobilidade relativa entre os nos e a utilizacao de multiplexacao OFDM
(Orthogonal Frequency-Division Multiplexing) [22].
A principal diferenca para a norma IEEE 802.11a e a largura de banda do
canal. Na emenda IEEE 802.11p, define-se a banda como 10 MHz, metade do que
e utilizado pela norma IEEE 802.11a. Essa reducao propicia uma maior robustez
contra a atenuacao do canal, ja que a transmissao pode ser feita em canais com
banda de coerencia menor, ou seja, com maior mobilidade, e permite a utilizacao
de um prefixo cıclico (CP) mais longo, tornando o sistema mais robusto quanto ao
delay spread do canal e reduzindo, assim, a interferencia intersimbolica (ISI). O CP
tambem serve para mitigar a interferencia entre subportadoras (ICI), que se torna
mais acentuada na norma IEEE 802.11p, ja que o espacamento entre as subpor-
tadoras no domınio da frequencia e metade do definido no padrao IEEE 802.11a,
fazendo com que o receptor seja mais sensıvel a desvios em torno da frequencia da
portadora causados pelo efeito Doppler. Alem dessa diferenca, a frequencia cen-
tral de operacao e 5,9 GHz nos Estados Unidos e 5,8 GHz na Europa e no Japao.
A tabela 2.2 compara alguns parametros entre as normas IEEE 802.11a e IEEE
802.11p.
14
Tabela 2.2: Parametros dos padroes IEEE 802.11a e IEEE 802.11p. Fonte: IEEE
802.11p [1]
Parametro IEEE 802.11a IEEE 802.11p
Total de subportadoras utilizadas (NST ) 52 52
Total de subportadoras de dados (NSD) 48 48
Total de subportadoras piloto (NSP ) 4 4
subportadoras (∆F )
Espacamento entre0,3125 MHz 0,15625 MHz
Largura de banda 20 MHz 10 MHz
Perıodo da FFT (TFFT ) 3,2 µs 6,4 µs
(1/4× TFFT )
Duracao do prefixo cıclico (TCP )0,8 µs 1,6 µs
(TCP +TFFT )
Perıodo do sımbolo OFDM4 µs 8 µs
(Mb/s)
Taxa de bits
24, 36, 48, 54
6, 9, 12, 18
12, 18, 24, 27
3, 4,5, 6, 9
A reducao da largura da banda tambem impacta na taxa de transmissao de
bits, que depende da tecnica de modulacao e da taxa de codificacao de bits que
serao utilizadas. As modulacoes disponıveis sao BPSK(Binary phase-shift keying),
QPSK(Quadriphase-shift keying) e 16- ou 64-QAM(Quadrature amplitude modula-
tion). O esquema de codificacao dos bits utiliza Forward Error Correction (FEC)
com um codificador convolucional que pode operar com taxas de 1/2, 2/3 ou 3/4.
Essa codificacao serve para adicionar bits de redundancia ao sımbolo OFDM para
aumentar a probabilidade de uma decodificacao bem-sucedida no receptor. Sao es-
pecificadas 8 combinacoes de tecnicas de modulacao e taxas de codificacao no padrao
IEEE 802.11, acarretando em diferentes taxas de transmissao, como pode ser visto
na tabela 2.3. O suporte as taxas de transmissao de dados de 3, 6 e 12 Mb/s e obri-
gatorio, sendo as demais opcionais. Por exemplo, a modulacao QPSK utiliza 2 bits
para representar o sımbolo de uma subportadora, originando um sımbolo OFDM
com 96 bits. Desse total, se for utilizada uma taxa de codificacao de 3/4, 72 bits
15
sao para dados e 24 bits para redundancia. Como a duracao do sımbolo OFDM e
de 8 µs, a taxa de transmissao de dados e de 9 Mb/s nesse caso.
Tabela 2.3: Taxas de transmissao para diferentes modulacoes e taxas de codificacao.
Modulacao
(R)
codificacao
Taxa de
(NBPSC)
subportadora
Bits por
(NCBPS)
OFDM
sımbolo
codificados por
Bits
(NDBPS)
OFDM
sımbolo
por
Bits de dados
[Mb/s]
de dados
Taxa
BPSK 1/2 1 48 24 3
BPSK 3/4 1 48 36 4,5
QPSK 1/2 2 96 48 6
QPSK 3/4 2 96 72 9
16-QAM 1/2 4 192 96 12
16-QAM 3/4 4 192 144 18
64-QAM 2/3 8 288 192 24
64-QAM 3/4 8 288 216 27
A definicao da potencia maxima de transmissao permitida fica a cargo dos
orgaos reguladores de cada paıs e e, geralmente, especificada como a potencia efe-
tiva irradiada por uma antena isotropica ideal (EIRP, do ingles Effective Isotropic
Radiated Power), onde essa antena teorica irradia sua potencia em todas as direcoes
uniformemente. Nos Estados Unidos, por exemplo, a Federal Communications Com-
mission (FCC) define EIRP maximo de 23 dBm ou 33 dBm dependendo do canal de
operacao para comunicacao V2X. Para calcular a EIRP em dBm, leva-se em conta
a potencia de saıda da antena (PT ) em dBm, perdas no cabo (LC) em dB e o ganho
da antena (GA) em dBi. A unidade dBm e uma unidade logarıtmica de potencia
em relacao a 1 mW. Ja a unidade dBi serve para indicar que o ganho em questao
foi comparado ao de uma antena isotropica ideal.
EIRP = PT − LC +GA (2.14)
PdBm = 10 log10
P
1 mW(2.15)
16
Scramblerconvolucional
Codificador
Modulacao
Interleaver+IFFT...
de CP
Adicao
OFDM
Sımbolo...
Figura 2.6: Codificacao de um sımbolo OFDM.
de CP
RemocaoFFT...
Demodulacao
Deinterleaver+...
Viterbi
Decod.Descrambler Dados
Figura 2.7: Decodificacao de um sımbolo OFDM.
2.5.2 Transmissor e receptor OFDM
A geracao de um sımbolo OFDM a partir de dados binarios e composta
por uma serie de operacoes, como ilustrado no diagrama de blocos da figura 2.6.
Primeiro, os dados sao embaralhados por um scrambler e, em seguida, codificados
utilizando-se um codificador convolucional (convolutional encoder). Apos codifica-
dos, os dados sao distribuıdos nas subportadoras pelo interleaver, modulados com
alguma das tecnicas disponıveis e divididos em grupos com tamanho igual a quan-
tidade de subportadoras, onde cada grupo dara origem a um sımbolo OFDM. E
calculada a transformacao rapida de Fourier inversa (IFFT, do ingles Inverse Fast
Fourier Transform) de cada grupo, levando a modulacao em constelacoes para o
domınio do tempo. O resultado e agrupado de volta como dados seriais e o prefixo
cıclico (CP) e adicionado entre os sımbolos, formando uma sequencia de sımbolos
OFDM. Para ser transmitido, esse sinal e modulado na frequencia da portadora e
amplificado.
Ja na recepcao de um sımbolo OFDM, apos aplicar o ganho do receptor,
demodular o sinal para banda base e fazer a recuperacao de relogio, os prefixos
cıclicos sao removidos. Em seguida, e aplicada a Fast Fourier Transform (FFT) nos
dados complexos que estao nas subportadoras. O resultado da FFT e demodulado
a partir da constelacao utilizada e passa pelo deinterleaver. Para decodificar o
codigo corretor de erro convolucional, o padrao sugere a utilizacao do algoritmo
de Viterbi [23]. Por fim, apos decodificados, os dados sao desembaralhados pelo
descrambler. A figura 2.7 ilustra o processo de decodificacao de um sımbolo OFDM.
17
2.5.2.1 Scrambler/Descrambler
Como o transmissor nao tem controle sobre como os dados estao sendo gera-
dos, pode acontecer dos dados binarios possuırem longas sequencias de 0 ou 1. Se
essas sequencias fossem moduladas dessa forma, haveria uma concentracao maior
de energia em algumas subportadoras do que em outras e dificultaria a acao de
algoritmos de recuperacao de relogio (clock recovery) ou de controle automatico de
ganho (AGC), ja que haveria poucas transicoes no sinal. Alem disso, caso um con-
junto de bits consecutivos (burst) de uma mesma sequencia seja perdido, torna-se
praticamente impossıvel recupera-lo.
Por esses motivos, e utilizado o scrambler, ou embaralhador, que transforma
uma sequencia de dados binarios em outra descorrelacionada de mesmo comprimento
com bits uniformemente distribuıdos. Esse processo permite um clock recovery mais
preciso e distribui a energia de forma mais uniforme entre as subportadoras, redu-
zindo a Peak-to-Average Power Ratio (PAPR), que e a razao entre a potencia de
pico e a potencia media do sinal. Para reverter o embaralhamento no receptor, e
utilizado um descrambler, ou desembaralhador, que aplica a funcao inversa da que
foi utilizada no scrambler.
No caso do padrao IEEE 802.11, o scrambler e o descrambler sao o mesmo
circuito, ja que e utilizado um scrambler aditivo. Ele tambem e chamado de sıncrono,
ja que o scrambler e o descrambler precisam utilizar um mesmo estado inicial. Uma
sequencia de bits pseudoaleatoria e gerada pela camada PHY ao transmitir cada
frame e e utilizada como estado inicial do scrambler.
Um scrambler aditivo de comprimento L e formado por L registradores de
deslocamento com realimentacao linear (LFSR, do ingles Linear Feedback Shift Re-
gister), onde o estado atual de cada registrador e representado por X i, sendo
i = 1, 2, 3, ..., L o numero correspondente ao deslocamento associado ao registra-
dor. Dado o comprimento L do scrambler, ele pode gerar uma sequencia de no
maximo 2L − 1 bits a partir de um dado estado inicial do LFSR diferente de 0. A
funcao polinomial P (X) associada ao LFSR e dada por:
P (X) = 1 +L∑i=1
ciXi (2.16)
onde ci e o coeficiente do polinomio associado ao registrador de estado atual X i e
18
X1X2...XL
c1c2cL
+
mod2
...
Figura 2.8: Diagrama de blocos de um LFSR.
Figura 2.9: Scrambler da camada PHY (baseado em figura do padrao IEEE 802.11 [1]).
o somador utilizado e modulo 2. A figura 2.8 ilustra o diagrama de blocos de um
LFSR.
O padrao IEEE 802.11 define a utilizacao de um scrambler de comprimento
L = 7, como ilustrado na figura 2.9, gerando uma sequencia que se repete a cada
127 bits. A funcao polinomial e definida como P (X) = 1 + X4 + X7 e a saıda do
scrambler e a soma modulo 2 do dado de entrada com a saıda do LFSR.
2.5.2.2 Codificador convolucional
A tecnica FEC utiliza codigos corretores de erro para codificar uma mensagem
adicionando redundancia com o objetivo de mitigar erros na propagacao atraves de
canais ruidosos. Essa redundancia reduz a quantidade de informacao perdida e
torna o receptor capaz de corrigir possıveis erros sem que os dados precisem ser
retransmitidos.
Um dos codigos corretores de erro existentes e o codigo convolucional. O
codificador convolucional definido no padrao IEEE 802.11 baseia-se na combinacao
de bits presentes em uma janela movel de tamanho k bits, que se move um bit a
19
cada iteracao. A partir de uma janela, sao gerados NP bits de paridade e a taxa R
do codificador e dada pelo inverso de NP .
R =1
NP
(2.17)
As combinacoes dos bits da janela sao definidas por NP equacoes de pari-
dade, que utilizam adicoes modulo 2. Um exemplo de equacoes de paridade de um
codificador convolucional com taxa R = 1/2 e janela de tamanho k = 3 pode ser
visto abaixo:
p0[n] = x[n]⊕ x[n− 1]⊕ x[n− 2]
p1[n] = x[n]⊕ x[n− 2]
onde x[n] e o bit mais recente da janela movel no instante n e o sımbolo ⊕ denota
uma soma modulo 2.
Uma equacao de paridade pi pode ser associada a um gerador polinomial gi
cujo coeficiente gi[j] refere-se ao coeficiente do termo com atraso j da equacao pi.
No caso do exemplo anterior, os geradores polinomiais sao:
g0 = (1, 1, 1)
g1 = (1, 0, 1)
Utilizando essa notacao, uma equacao de paridade pi pode ser escrita como:
pi =
(k−1∑j=0
gi[j]x[n− j])
mod 2 (2.18)
O padrao IEEE 802.11 [1] define a utilizacao do codificador convolucional
ilustrado na figura 2.10. Sua taxa e 1/2, o tamanho da janela movel e de 7 bits e
seus polinomios geradores g0 = (1, 0, 1, 1, 0, 1, 1) e g1 = (1, 1, 1, 1, 0, 0, 1). Observe
tambem na figura 2.10 que, para implementar uma janela movel de tamanho k,
utilizam-se k − 1 registradores de deslocamento. As equacoes de paridade desse
codificador sao dadas por:
p0 = x[n] + x[n− 2] + x[n− 3] + x[n− 5] + x[n− 6] (2.19)
p1 = x[n] + x[n− 1] + x[n− 2] + x[n− 3] + x[n− 6] (2.20)
Para se obter as outras taxas de codificacao especificadas no padrao (2/3 e
3/4), e realizado o processo de puncturing nos dados codificados com a taxa 1/2,
20
x[n] z−1 z−2 z−3 z−4 z−5 z−6 x[n− 6]
+
+
p0[n]
p1[n]
Figura 2.10: Diagrama de blocos do codificador convolucional (baseado em figura do
padrao IEEE 802.11 [1]).
no qual bits sao removidos de forma a obter a razao desejada entre numero de bits
codificados e a quantidade de bits de entrada. No caso da taxa de 2/3, a cada
dois bits que sao codificados, quatro sao gerados com a taxa 1/2 e um e removido,
obtendo-se a taxa de 2/3. Ja para a taxa de 3/4, a cada tres bits de entrada, o
codificador gera seis bits e dois sao removidos, totalizando quatro bits na saıda.
2.5.2.3 Interleaver/Deinterleaver
Devido a interferencias destrutivas e a seletividade em frequencia do canal,
como visto na secao 2.3 sobre caracterısticas do canal, algumas subportadoras podem
ser muito atenuadas. Caso os dados fossem modulados da forma como eles sao
gerados, sequencialmente, e transmitidos e se houvesse a perda de uma subportadora
devido a atenuacao do canal, uma parte consideravel da informacao transmitida nao
poderia ser decodificada. Por esse motivo, o interleaver e utilizado para intercalar
bits de uma sequencia de dados binarios de forma que a informacao fique distribuıda
em diferentes subportadoras. Ao fazer isso, mesmo que algumas portadoras sejam
atenuadas pelo canal, o receptor e capaz de recuperar a informacao utilizando o
codigo corretor de erro.
A intercalacao dos bits e feita atraves de sequencias de permutacoes. O
padrao IEEE 802.11 define duas etapas de permutacao. A primeira faz com que bits
adjacentes sejam mapeados em subportadoras nao adjacentes e e definida pela regra
21
abaixo:
i = (NCBPS/16)× (k mod 16) + bk/16c, k = 0, 1, . . . , NCBPS − 1 (2.21)
onde k e o ındice do bit antes da permutacao, i representa o ındice depois da primeira
permutacao e NCBPS e a quantidade de sımbolos codificados por sımbolo OFDM
(conforme a tabela 2.3). O operador b.c trunca o valor do operando para sua parte
inteira e a operacao a mod b e igual ao resto da divisao de a por b. Por exemplo,
o primeiro (k = 0) e o segundo (k = 1) bits de uma sequencia sendo NCBPS = 192
(16-QAM) sao mapeados para os ındices i = 0 e i = 12, respectivamente.
A segunda permutacao serve para mapear alternadamente bits adjacentes
como bits mais e menos significativos da constelacao, sendo sua regra definida como:
j = s×⌊i
s
⌋+
(i+NCBPS −
⌊16× iNCBPS
⌋)mod s, i = 0, 1, . . . , NCBPS − 1 (2.22)
onde i e o ındice depois da primeira permutacao e antes da segunda, j representa o
ındice apos a segunda permutacao e s e dado por:
s = max(NBPSC/2, 1) (2.23)
sendo NBPSC a quantidade bits codificados por subportadora. Esse numero varia de
acordo com a modulacao, como pode ser visto na tabela 2.3. Como sao utilizadas 48
subportadoras de dados na emenda IEEE 802.11p, a relacao entre NCBPS e NBPSC
e dada por:
NCBPS = NBPSC × 48 (2.24)
Seguindo o exemplo anterior, teremosNBPSC = 4, portanto s = 2, e os ındices
i = 0 e i = 12 serao mapeados respectivamente para j = 0, bit mais significativo da
primeira portadora, e j = 13, segundo bit mais significativo da quarta portadora.
Para desfazer essa intercalacao, o receptor utiliza o deinterleaver para apli-
car duas permutacoes, sendo elas as inversas das implementadas no interleaver.
Primeiro, e aplicada a permutacao inversa da segunda permutacao do interleaver
para, em seguida, reverter a primeira permutacao. Invertendo a notacao, os ındices
dos dados recebidos pelo receptor que estao intercalados sao representados por j;
apos a primeira e antes da segunda permutacao do deinterleaver seus ındices sao
dados por i e, por fim, depois de reverter todas as permutacoes, o ındice volta a ser
representado por k.
22
A primeira permutacao do deinterleaver, que e a inversa da equacao 2.22, e
dada por:
i = s×⌊j
s
⌋+
(j +
⌊16× jNCBPS
⌋)mod s, j = 0, 1, . . . , NCBPS − 1 (2.25)
e a segunda permutacao do deinterleaver, que e a inversa da equacao 2.21, e definida
como:
k = 16× i− (NCBPS − 1)×⌊
16× iNCBPS
⌋, i = 0, 1, . . . , NCBPS − 1 (2.26)
Ainda utilizando o exemplo anterior, os bits que foram intercalados para as
posicoes j = 0 e j = 13 apos as duas permutacoes do interleaver, voltam para seus
ındices k = 0 e k = 1 depois de reverte-las com o deinterleaver no receptor.
2.5.2.4 Modulacao
O padrao IEEE 802.11 possui quatro modulacoes disponıveis, como visto na
secao 2.5.1: BPSK, QPSK, 16-QAM e 64-QAM. Essas modulacoes mapeiam valores
binarios em numeros complexos da forma (I + jQ) que representam pontos de uma
constelacao. E definido no padrao IEEE 802.11 a utilizacao um fator de norma-
lizacao multiplicativo KMOD de forma a manter uma potencia media igual entre
diferentes mapeamentos, ja que mais de um deles pode ser utilizado na transmissao
de um mesmo frame. Portanto, o resultado d da modulacao e a multiplicacao do
mapeamento por KMOD. Os valores de KMOD dependendo da constelacao utilizada
estao na tabela 2.4. Alem disso, o mapeamento utiliza codigo Grey, ou seja, pon-
tos da constelacao adjacentes representam numeros binarios que diferem entre si
somente por um dıgito, reduzindo a probabilidade de erro.
d = (I + jQ)×KMOD (2.27)
Antes de ser modulada, a sequencia de bits intercalados pelo interleaver e
dividida em grupos de NBPSC , modulando cada subportadora independentemente.
A quantidade de valores distintos que podem ser representados pela constelacao e
dado por 2NBPSC .
As modulacoes BPSK e QPSK representam valores binarios como numeros
complexos de mesmo modulo e fases diferentes. No caso da constelacao BPSK, caso
23
Tabela 2.4: Valores do fator de normalizacao KMOD de acordo com a modulacao. Fonte:
IEEE 802.11 [1].
Modulacao KMOD
BPSK 1
QPSK 1/√
2
16-QAM 1/√
10
64-QAM 1/√
42
o bit a ser modulado seja 0, ele e mapeado como −1; caso contrario, e mapeado
como 1, ou seja, Q vale sempre 0 na modulacao BPSK. Ja ao utilizar a constelacao
QPSK, dois bits de entrada B0B1, sendo B0 o primeiro bit da sequencia de dados,
podem ser modulados como (1 + j), (1 − j), (−1 + j) e (−1 − j) de forma que o
valor de B0 determina o valor de I e o valor de B1 determina o valor de Q conforme
a tabela 2.5.
Tabela 2.5: Mapeamento QPSK. Fonte: IEEE 802.11 [1].
Bit B0 I
0 -1
1 1
Bit B1 Q
0 1
1 1
Ja nas modulacoes QAM (Quadrature amplitude modulation), os valores
binarios sao utilizados para modular a amplitude e fase de numeros complexos.
No caso da 16-QAM, a partir de uma sequencia de 4 bits B0B1B2B3, I e Q podem
assumir os valores -3, -1, 1, 3 de acordo com a tabela 2.6, onde B0B1 determinam
I e B2B3 definem o valor de Q. Ja para a modulacao 64-QAM, os valores possıveis
para I e Q sao -7, -5, -3, -1, 1, 3, 5, 7, sendo que sua entrada e composta por seis
bits B0B1B2B3B4B5. Os bits B0B1B2 definem o valor de I e o restante e utilizado
para se obter o valor de Q, conforme ilustra a tabela 2.7.
24
Tabela 2.6: Mapeamento 16-QAM. Fonte: IEEE 802.11 [1].
Bits B0B1 I
00 -3
01 -1
11 1
10 3
Bits B2B3 Q
00 -3
01 -1
11 1
10 3
Tabela 2.7: Mapeamento 64-QAM. Fonte: IEEE 802.11 [1].
Bits B0B1B2 I
000 -7
001 -5
011 -3
010 -1
110 1
111 3
101 5
100 7
Bits B3B4B5 Q
000 -7
001 -5
011 -3
010 -1
110 1
111 3
101 5
100 7
2.5.2.5 FFT/IFFT
A transformada de Fourier e uma operacao que decompoe um sinal no domınio
no tempo em uma soma infinita de senoides complexas, que sao interpretadas como
as componentes frequenciais do sinal. A transformada de Fourier inversa realiza o
processo oposto, compondo, atraves de uma representacao no domınio da frequencia,
um sinal no domınio do tempo. Elas sao definidas tanto para sinais contınuos no
tempo quanto para sinais discretos. A transformada de Fourier para sinais discretos
no tempo (DTFT) e sua inversa sao definidas respectivamente como:
DTFT : X(ejΩ) =∞∑
n=−∞
x[n]e−jΩn (2.28)
DTFT−1 : x[n] =1
2π
∫ π
−πX(ejΩ)ejΩndΩ (2.29)
Como nao e possıvel realizar uma soma infinita de termos na pratica, e utili-
25
zada uma amostragem de um numero finito de componentes igualmente espacadas
da DTFT do sinal, que e conhecida como transformada de Fourier discreta (DFT).
Ela e sua inversa sao definidas respectivamente como:
DFT : Xk =N−1∑n=0
xne−j 2πkn
N =N−1∑n=0
xn
[cos
2πkn
N− j sin
2πkn
N
](2.30)
IDFT : xn =1
N
N−1∑k=0
Xkej 2πkn
N =N−1∑k=0
Xk
[cos
2πkn
N+ j sin
2πkn
N
](2.31)
onde Xk sao as componentes senoidais complexas do sinal, as amostras do sinal de
entrada sao dadas por xn e N e o comprimento da DFT.
Uma propriedade muito importante da DFT e que serve como base para o
OFDM e a ortogonalidade entre as componentes Xk. Ao utilizar subportadoras
centradas em frequencias ortogonais entre si, o OFDM remove a interferencia en-
tre subportadoras no caso ideal (sem desvios de frequencia) e permite alocar mais
subportadoras em uma mesma largura de banda do que no caso de nao se uti-
lizarem frequencias ortogonais, aumentando a eficiencia espectral. Alem disso, a
demodulacao se torna muito simples, pois basta multiplicar pelo mesmo conjunto
de componentes senoidais.
Na transmissao, os sımbolos mapeados nas constelacoes sao posicionados nas
subportadoras, formando um espectro em frequencia, e e aplicada a IDFT para
se obter um sinal no domınio do tempo a ser transmitido. No receptor, ocorre o
processo inverso aplicando-se a DFT, onde um sinal temporal recebido precisa ter
suas componentes frequenciais extraıdas com o objetivo de recuperar os sımbolos
complexos que foram alocados nas subportadoras.
Como na emenda IEEE 802.11p e definido o uso de 48 subportadoras de
dados (conforme a tabela 2.2), um sımbolo OFDM corresponde a modulacao de 48
sımbolos complexos nas subportadoras. Caso a sequencia de dados mapeados nas
constelacoes possua mais do que 48 sımbolos, ela e dividida em grupos de 48, dando
origem a mais de um sımbolo OFDM. A partir deste ponto, as equacoes demonstram
a modulacao de um unico sımbolo OFDM de ındice n, que varia de 0 ate NSYM − 1,
onde NSYM e a quantidade total de sımbolos, e basta repetir o processo para cada
sımbolo.
O primeiro passo e definir a frequencia central de cada subportadora, que
depende do ındice k do sımbolo complexo dk,n presente no grupo correspondente ao
26
sımbolo de ındice n. A partir desse ındice k, a funcaoM(k), definida na equacao 2.32,
faz um mapeamento para o ındice da subportadora, que varia de -26 a 26, excluindo-
se os ındices das subportadoras piloto (-21, -7, 7, 21) e o da subportadora DC (0).
Uma vez calculado o ındice da subportadora, basta multiplica-lo pelo espacamento
entre as subportadoras ∆F (conforme a tabela 2.2) para calcular a frequencia da
subportadora fSC(k), definida na equacao 2.33. Essa frequencia representa um des-
locamento em torno da frequencia central da portadora, 5,9 GHz no caso do IEEE
802.11p.
M(k) =
k − 26, 0 ≤ k ≤ 4
k − 25, 5 ≤ k ≤ 17
k − 24, 18 ≤ k ≤ 23
k − 23, 24 ≤ k ≤ 29
k − 22, 30 ≤ k ≤ 42
k − 21, 43 ≤ k ≤ 47
(2.32)
fSC(k) = M(k)∆F (2.33)
Com as frequencias das subportadoras, basta calcular a IDFT da sequencia
de 48 sımbolos complexos para fazer a modulacao OFDM:
rINFO, n(t) =47∑k=0
dk,nej2πfSC(k)(t−TCP ) (2.34)
onde TCP e a duracao do prefixo cıclico (conforme a tabela 2.2), que sera adicionado
em seguida e serve como um intervalo de guarda entre as subportadoras. Alem das
que transportam a informacao, as subportadoras piloto, que servem para tornar o
sistema mais robusto a desvios de frequencia e erros de fase, tambem sao moduladas
de forma muito semelhante, como pode ser visto na equacao 2.35.
rPILOT, n(t) = pn+1
26∑k=−26
Pkej2πk∆F (t−TCP ), Pk =
−1, k = 21
1, k ∈ −21,−7, 7
0, caso contrario
(2.35)
27
onde pn+1 vale 1 ou -1 e serve para alterar a polaridade das portadoras piloto depen-
dendo do ındice n do sımbolo. Para mais detalhes sobre essa sequencia pn, referir-se
a secao 17.3.5.10 do padrao IEEE 802.11 [1].
Para se obter o sinal a ser transmitido referente a um sımbolo OFDM, basta
somar as equacoes 2.34 e 2.35 e multiplicar por uma funcao de janelamento de
duracao TSYM , como na equacao 2.36. Para transmitir varios sımbolos OFDM,
basta soma-los com um deslocamento referente a duracao de um sımbolo (TSYM ,
conforme a tabela 2.2):
rDATA, n(t) = wTSYM (t)[rINFO, n(t) + rPILOT, n(t)] (2.36)
rDATA(t) =
NSYM−1∑n=0
rDATA, n(t− nTSYM) (2.37)
onde NSYM e a quantidade de sımbolos OFDM a ser transmitida.
No receptor, a demodulacao realiza o processo inverso. Primeiro e calculada
a DFT do sinal recebido, as subportadoras de dados sao extraıdas do resultado e os
sımbolos complexos seguem para desfazer o mapeamento em constelacao.
2.6 Fluxo de dados entre a camada fısica e a ca-
mada MAC
2.6.1 Transmissao de dados
Quando a camada MAC faz uma requisicao de inıcio de transmissao para
a camada PHY atraves do PHY SAP, a MAC envia um vetor TXVECTOR com
os campos LENGTH, DATARATE, TXPWR LEVEL INDEX e outros definidos no
padrao IEEE 802.11 [1]. O campo LENGTH deve ser um inteiro de 1 a 4095 re-
presentando o numero de octetos presentes no MPDU que serao transmitidos pela
camada PHY. O campo DATARATE e preenchido com o valor da taxa de da-
dos a ser utilizado dentre os possıveis (conforme a tabela 2.3). Por fim, o campo
TXPWR LEVEL INDEX e um inteiro de 1 a 8 que serve para definir qual potencia
de transmissao sera utilizada dentre 8 valores definidos na implementacao da camada
PHY.
28
Uma vez recebido o TXVECTOR, a taxa de transmissao de dados e a potencia
da camada PHY sao configuradas com os valores dos campos DATARATE e com a
potencia correspondente ao TXPWR LEVEL INDEX. Apos configurada, a camada
fısica da inıcio a transmissao do seu preambulo (preamble) e a preparacao do seu
cabecalho (header). O preambulo dura 32 µs e e composto por sequencias de treina-
mento curtas e longas. No total, sao 10 repeticoes da sequencia curta, que e utilizada
para sincronizacao, estimar desvios de frequencia e na convergencia do controle au-
tomatico de ganho, e duas repeticoes da sequencia longa, que serve, principalmente,
para estimar o efeito do canal sobre o sinal.
Ja o cabecalho tem os campos RATE (4 bits) e LENGTH (12 bits) preenchi-
dos a partir do conteudo do TXVECTOR, possui 1 bit de paridade par, 6 bits de
preenchimento com zero (zero padding) para garantir a deteccao dos campos RATE
e LENGTH, 1 bit reservado para uso futuro que deve ser configurado como zero e
o campo SERVICE, composto por 16 bits, onde os 7 primeiros devem ser zero e os
outros 9 bits restantes tambem sao reservados para uso futuro. Esses sete primeiros
bits do campo SERVICE que sao configurados como 0 servem para que o receptor
estime qual foi o estado inicial do scrambler. Apos transmitir o preambulo, todos
os campos do header, com excecao do SERVICE, sao codificados com taxa R = 1/2
e constelacao BPSK e forma um sımbolo OFDM passando pelas etapas descritas
na figura 2.6. Esse sımbolo OFDM compoe o campo SIGNAL do frame da camada
PHY (PPDU).
Apos transmitir o preambulo e o header, a camada PHY faz uma serie de
requisicoes para a camada MAC para receber em octetos a informacao a ser trans-
mitida. Uma vez que todos os bits foram recebidos na camada PHY, eles sao em-
baralhados junto do campo SERVICE do header pelo scrambler, em seguida sao
adicionados seis bits 0 ao fim da sequencia embaralhada (tail bits), que servem para
voltar o codificador convolucional do receptor para o estado zero, e, caso necessario,
pode ser feito um zero padding para tornar a quantidade de bits um multiplo de
NCBPS (conforme a tabela 2.3). O conjunto desses bits forma o campo SIGNAL
do PPDU, que passa pelas mesmas etapas de codificacao da figura 2.6 para formar
sımbolos OFDM. Uma vez formados, os sinais sao modulados na frequencia central
da portadora, amplificados e transmitidos.
29
2.6.2 Recepcao de dados
Ao detectar a recepcao de um preambulo, a camada PHY notifica a camanda
MAC de que foi detectado um preambulo. Dele, sao extraıdas as sequencias de
treinamento curtas e longas, que sao utilizadas para estimativa do canal e de desvios
na frequencia e para sincronizacao.
Apos receber o preambulo, o campo SIGNAL do PPDU e recebido e decodi-
ficado atraves das etapas descritas na figura 2.7. Sua paridade e checada e, se tiver
sido recebido com sucesso, seu campo LENGTH e utilizado para determinar a quan-
tidade de dados esperada na recepcao e o campo RATE serve para configurar a taxa
do codificador convolucional e a constelacao que foram utilizadas pelo transmissor
na codificacao do sımbolo. A camada PHY utiliza uma primitiva para notificar a
camada MAC de que houve uma recepcao de header bem sucedida e envia as in-
formacoes contidas nele atraves de um vetor chamado RXVECTOR. Nesse vetor,
sao enviadas a quantidade de octetos que sera recebida, a taxa de dados, a potencia
de recepcao (received signal strength indication, RSSI) medida durante a recepcao
do preambulo e outras informacoes adicionais.
Apos configurar a camada fısica a partir do campo RATE, os dados recebidos
sao decodificados e desembaralhados tambem seguindo o diagrama da figura 2.7. Em
seguida, os dados ja decodificados sao divididos em octetos e enviados para a camada
MAC atraves de uma serie de primitivas. Ao fim da recepcao, a camada PHY indica
o termino e se houve algum erro na recepcao (portadora foi perdida, formato invalido
do frame ou taxa de dados nao suportada) para a camada MAC atraves tambem de
uma primitiva pelo PHY SAP.
30
Capıtulo 3
Famılia de padroes IEEE 1609
3.1 Introducao
Com o objetivo de estender a norma IEEE 802.11p no contexto de V2X,
foram criados os padroes da famılia IEEE 1609. Eles sao responsaveis por definir a
camada de rede, camada de transporte, extensao a camada MAC do padrao IEEE
802.11, servicos de seguranca, dentre outros aspectos do sistema WAVE. Esse sistema
tem como meta prover aplicacoes e servicos voltados para solucoes de transporte e
mobilidade com base nos padroes criados. Um dispositivo conectado a esse sistema,
seja ele um veıculo ou parte da infraestrutura, sera chamado de dispositivo WAVE.
A figura 3.1 ilustra a arquitetura do sistema WAVE. Utiliza-se a camada
fısica definida pela emenda IEEE 802.11p com o modo OCB ativado e sua camada
MAC e estendida pelo padrao IEEE 1609.4, permitindo a operacao em multiplos
canais. Tambem e definida uma extensao para a MLME, chamada de MAC Layer
Management Entity Extension (MLMEX), adicionando novas primitivas. O padrao
IEEE 1609.3 especifica algumas modificacoes a subcamada LLC e define a camada
de rede e de transporte. Esse padrao permite comunicacao tanto via IPv6 quanto
atraves do WAVE Short Message Protocol (WSMP), definido no mesmo padrao. A
definicao da WAVE Management Entity (WME) e feita em conjunto pelos padroes
1609.3 e 1609.4. Ja o padrao IEEE 1609.2 implementa servicos de seguranca, uma
vez que o modo OCB desabilita funcoes da camada MAC de associacao e auten-
ticacao. Existem outros padroes na famılia IEEE 1609, mas sera dado um enfoque
maior aos padroes 1609.3 e 1609.4.
31
PHY
WAVE MAC
IPv6
TCP/UDPWSMP
PLME
MLMEX
MLME
LLC
WMEServiços
de
segurança
(1609.2)
802.11
1609.4
1609.3
Figura 3.1: Ilustracao simplificada da arquitetura do sistema WAVE. Fonte: IEEE
1609.0 [2]
Nos Estados Unidos, por exemplo, o sistema WAVE esta relacionado ao sis-
tema de comunicacao dedicada de curta distancia (DSRC, Dedicated Short Range
Communications). Nessa aplicacao, mensagens com formatos especıficos definidos
no dicionario SAE J2735 [24] sao utilizadas na comunicacao V2X. Um exemplo de
mensagem e a Basic Safety Message (BSM), que contem informacoes basicas do
veıculo, como suas dimensoes, velocidade, posicao, aceleracao, angulo do volante,
informacoes sobre os freios e direcao de deslocamento. As BSMs sao enviadas fre-
quentemente na forma de broadcast para todos os dispositivos proximos. Essas
informacoes podem ser utilizadas por outros veıculos para prever possıveis colisoes
ou por uma RSU para identificar as condicoes de trafego em uma via, por exemplo.
3.2 Padrao IEEE 1609.3
3.2.1 WAVE Short Message Protocol (WSMP)
O WSMP define e gerencia a transmissao e recepcao de WAVE Short Mes-
sages (WSMs). Utilizando-se dessas mensagens curtas, esse protocolo foi criado
com o objetivo de diminuir o overhead na comunicacao. Alem de WSM, o protocolo
WSMP tambem pode ser utilizado para transportar frames de anuncio de servico
(WSA, do ingles WAVE Service Advertisement), definido na subsecao 3.2.2, quando
solicitado pela WME.
Uma WSM e composta pelo seu payload e por um cabecalho, que contem um
32
headerWSMP-N
headerWSMP-T
Payload
Figura 3.2: Estrutura de uma Wave Short Message. Fonte: IEEE 1609.3 [3]
WSMP Network (WSMP-N) header e um WSMP Transport (WSMP-T) header. Seu
payload, ou seja, a informacao a ser transmitida, trata-se de uma string codificada
em bytes de acordo com o valor ASCII de cada caractere. Nao ha um valor maximo
para o tamanho do payload, porem, o tamanho de uma WSM, somando cabecalho e
dados, nao pode ultrapassar o parametro WsmMaxLength definido na WME, cujo
valor padrao e 1400 bytes. A estrutura de uma WSM e ilustrada na figura 3.2.
O cabecalho WSMP-N contem informacoes relativas a caracterısticas supor-
tadas pelo protocolo de rede, como encaminhamento de multiplos saltos e Geo-
Networking [25], que consiste em roteamento de pacotes com base na posicao ge-
ografica dos nos. Alem disso, esse header tambem carrega informacao sobre a versao
do protocolo WSMP que foi utilizada para gerar a mensagem, o identificador do pro-
tocolo de transporte (TPID, Transport Protocol Identifier) e um elemento opcional
com informacoes extras, como numero do canal, potencia e taxa de dados utilizados
para transmissao da WSM.
Ja o cabecalho WSMP-H contem informacoes de enderecamento, um campo
que define o comprimento do payload que sera enviado e um elemento com in-
formacoes adicionais, semelhante ao que pode estar presente no header WSMP-N.
Dependendo do valor do TPID, os enderecos contidos no cabecalho WSMP-H podem
ser Provider Service Identifiers (PSIDs) ou numeros de portas, que sao utilizadas
no Intelligent Transportation System (ITS) [26]. O PSID serve para identificar o
destino da WSM em uma camada acima dos padroes WAVE, como uma aplicacao
que utiliza os servicos de comunicacao descritos nesses padroes.
O padrao IEEE 1609.3 [3] define que um dispositivo WAVE deve suportar
pelo menos um padrao dentre WSMP e IPv6. Uma vantagem do WSMP em relacao
ao IPv6 e que o canal, a potencia de transmissao, a taxa de dados e em qual intervalo
a transmissao ocorrera (intervalos 0 e 1 definidos em 3.3.1) podem ser escolhidos para
cada mensagem pela aplicacao que solicita o envio. No protocolo IPv6, o canal, a
33
potencia e a taxa de dados precisam ser armazenadas em um perfil de transmissor,
que precisa ser previamente registrado, e cada pacote pode utilizar um perfil. Esses
perfis sao criados e deletados atraves de chamadas a primitivas da MLMEX.
Antes de serem enviados a camada MAC para transmissao, os pacotes re-
cebem um campo na camada LLC chamado EtherType, utilizado para diferenciar
se foram gerados pelo protocolo WSMP ou IPv6. Caso seja uma WSM, o campo
EtherType vale 0x88DC; caso seja um pacote IPv6, recebe o valor 0x86DD, onde o
prefiro “0x” e utilizado para indicar que o valor encontra-se na base hexadecimal.
3.2.2 WAVE Service Advertisement (WSA)
O padrao IEEE 1609.3 tambem define frames de anuncio de servicos cha-
mados de WAVE Service Advertisement (WSA) frames. Um WSA e enviado por
um dispositivo WAVE para anunciar servicos oferecido por ele e torna-los acessıveis
para outras STAs .
Um frame WSA e enviado utilizando-se o padrao WSMP, como definido na
subsecao 3.2.1, e fixando o PSID do header WSMP-N em um valor especıfico para
indicar que a WSM enviada trata-se de um WSA. O conteudo da mensagem, payload,
carrega o bloco WaveServiceAdvertisement e informacoes relacionadas a seguranca
definidas no padrao IEEE 1609.2 [16]. Esse bloco e composto por um cabecalho WSA
e pode conter campos opcionais como Service Info Segment, Channel Info Segment
e WAVE Routing Advertisement. A estrutura do bloco WaveServiceAdvertisement
e apresentada na figura 3.3.
O cabecalho WSA carrega a versao do WSA, um identificador unico de cada
frame WSA e um contador que e incrementado cada vez que um WSA de mesmo
identificador e modificado, alem de 4 bits que indicam quais dos segmentos opcionais
mencionados anteriormente estao presentes no WSA. Junto desses campos, o header
WSA tambem pode incluir informacoes extras, como latitude, longitude e elevacao
da antena utilizada para transmitir o frame, uma taxa de repeticao, que indica
quantas vezes o mesmo WSA sera enviado a cada 5 segundos, e um identificador do
dispositivo que transmitiu o frame.
No campo opcional Channel Info Segment, podem estar presentes ate 32
instancias de Channel Info Instance, onde cada uma contem especificacoes relativas
34
headerWSA
(opcional)Segment
Service Info
(opcional)Segment
Channel Info
(opcional)AdvertisementWAVE Routing
Figura 3.3: Estrutura do bloco WaveServiceAdvertisement. Fonte: IEEE 1609.3 [3]
a operacao de um canal para uma dada classe de operacao. Essas classes sao espe-
cificadas no anexo E do padrao IEEE 802.11 [1] e estao relacionadas as informacoes
definidas pelos orgaos reguladores de cada paıs, como frequencia inicial da banda,
numero dos canais e o espacamento entre eles. Dessa forma, uma instancia de Chan-
nel Info Instance contem a potencia de transmissao e taxa de dados que devem ser
utilizadas para um dado canal e classe de operacao, alem de informacoes opcionais,
como parametros utilizados para priorizacao de mensagens (subsecao 3.3.2). Cada
instancia e identificada por um ındice de 0 a 31.
De forma similar ao campo Channel Info Segment, o Service Info Segment
pode conter ate 32 instancias de Service Info Instance, onde cada uma descreve um
servico oferecido pelo dispositivo que transmite o WSA. Uma instancia e composta
por um PSID, utilizado para identificar a aplicacao ou servico anunciado, um ındice
de 0 a 31 referente a uma Channel Info Instance para determinar em qual canal o
servico e oferecido e informacoes opcionais que podem ser necessarias dependendo
da aplicacao oferecida, como enderecamento IPv6, e potencia mınima de recepcao
recomendada, abaixo da qual o receptor deveria descartar o WSA.
Por fim, caso o servico esteja sob uma rede IPv6 que necessita de confi-
guracoes especıficas para que ele possa ser acessado, o campo WAVE Routing Ad-
vertisement e incluıdo no WSA. Ele contem informacoes como gateway, prefixo IP
da subrede e DNS primario e secundario.
3.3 Padrao IEEE 1609.4
O padrao IEEE 1609.4 foi criado com o objetivo de estender as capacidades
da camada MAC definida no padrao IEEE 802.11 para tornar possıvel a comunicacao
em diferentes canais entre dispositivos WAVE. Sendo assim, o padrao adiciona novas
funcionalidades e servicos a camada MAC, passando a suportar coordenacao de
35
canal, priorizacao de usuario, sincronizacao de multiplos canais, reenderecamento,
dentre outros servicos.
3.3.1 Coordenacao de canal e modos de acesso
No sistema WAVE, um canal pode ser classificados em dois tipos: canal de
controle (CCH) ou canal de servico (SCH). O CCH e um canal unico utilizado
para troca de mensagens WSM em aplicacoes de seguranca no transito, anuncio de
servicos com WSA e para o envio de frames de gerenciamento e de sincronizacao. Ja
os canais SCH, como o nome sugere, sao utilizados para disponibilizar servicos com
foco em diferentes aplicacoes, sejam elas de seguranca ou nao, e podem ser definidos
multiplos canais de servico em um dado espectro. Mensagens do tipo WSM ou
baseadas no protocolo IPv6 podem ser enviadas atraves dos canais SCH, porem, o
canal CCH so permite mensagens WSM.
Sao definidos tres modos de acesso aos canais: contınuo, alternado e imediato.
No modo contınuo, o dispositivo tem acesso ininterrupto a um dos canais, seja ele de
controle ou de servico. No modo alternado, como o nome sugere, a STA tem acesso
aos canais CCH e SCH ou a dois canais SCH em intervalos especıficos, intervalo 0
e intervalo 1, de forma alternada. Ja no modo de acesso imediato, e concedido ao
dispositivo acesso a algum canal de servico sem que haja necessidade de aguardar
pelo proximo intervalo 0 ou 1; a duracao desse acesso pode ser fixa ou indeterminada,
sendo configurada ao chamar a primitiva da MLMEX de acesso ao canal. A figura 3.4
ilustra os modos de acesso possıveis aos canais de controle e de servico.
E importante notar que os modos de acesso descritos anteriormente aplicam-
se, principalmente, a dispositivos que utilizam uma unica camada fısica. Porem,
o padrao permite a utilizacao de multiplas camadas fısicas, inclusive operando sob
modos de acesso diferentes, como um radio com acesso contınuo ao canal de controle
para ser utilizado em aplicacoes de seguranca e outro com acesso alternado para
utilizar outros servicos.
Os intervalos 0 e 1 definem um perıodo de tempo no qual o dispositivo WAVE
tem acesso a um canal de controle ou de servico. Normalmente, o intervalo 0 esta
associado ao canal CCH e o intervalo 1 a algum canal SCH. A soma do intervalo
0 (T0) e do intervalo 1 (T1) seguinte e chamada de intervalo de sincronia, que sera
36
Tempo
Intervalo 0 Intervalo 1 Intervalo 0 Intervalo 1
CCH ou SCH
CCH
SCH
CCH
SCH
a)
b)
c)
Figura 3.4: Ilustracao dos modos de acesso aos canais. (a) Modo contınuo (b) Modo
alternado (c) Modo imediato. Fonte: IEEE 1609.4 [4]
denotado por TS. De acordo com o padrao IEEE 1609.4, deve haver uma quantidade
inteira de intervalos de sincronia na duracao de um segundo. Os intervalos sao
sincronizados com base no Coordinated Universal Time (UTC) e o inıcio de um
intervalo de sincronia deve coincidir com o inıcio de um segundo no horario UTC. O
padrao IEEE 1609.4 [4] define a duracao dos intervalos 0 e 1 como 50 ms, portanto,
a duracao total de um intervalo de sincronia e 100 ms.
TS = T0 + T1 (3.1)
Para lidar com erros relacionados a falta de precisao na sincronia temporal
e devido ao tempo necessario para o radio trocar a sintonia para outro canal, e
adicionado um intervalo de guarda ao inıcio de cada intervalo 0 e 1. A figura 3.5
ilustra a coordenacao entre um canal de servico e um canal de controle para o modo
de acesso alternado.
De acordo com o padrao IEEE 802.11 [1], as frequencias centrais dos canais
sao espacadas de 5 MHz a partir de uma frequencia inicial. Sendo assim, a frequencia
central fCH(n) de um canal cujo numero e igual a n e determinada atraves da
equacao 3.2, onde FB e a frequencia inicial da banda.
fCH(n) = FB + n× 5 MHz (3.2)
Nos Estados Unidos, por exemplo, foi reservado um espectro de 75 MHz em
torno da frequencia de 5,9 GHz para alocar sete canais de largura 10 MHz e uma
37
Começo do segundo no horário UTC
Intervalo 0 Intervalo 0Intervalo 1 Intervalo 1
CCH
SCH
Intervalo de guarda
Intervalo de sincronia
Tempo
Figura 3.5: Exemplo de coordenacao dos canais no modo de acesso alternado. Fonte:
IEEE 1609.4 [4]
Figura 3.6: Alocacao dos canais de servico e de controle utilizados pelo sistema WAVE
nos Estados Unidos. Fonte: FCC [5]
banda de guarda de 5 MHz, conforme a figura 3.6, sendo seis canais de servico e um
canal de controle. Interessante notar que a definicao dos canais pelo FCC permite
a utilizacao dos pares de canais 174-176 e 180-182 como canais unicos com o dobro
da largura de banda, ou seja, 20 MHz.
3.3.2 Priorizacao de mensagens
Para realizar a priorizacao dos frames da camada MAC que devem ser envi-
ados a camada fısica para que sejam transmitidos, e utilizado o algortimo Enhanced
Distributed Channel Access (EDCA), definido no padrao IEEE 802.11e [27]. Ele e
estendido de forma a gerenciar a priorizacao para canais de controle e de servico.
Dependendo da arquitetura utilizada para a camada MAC, a priorizacao pode ser
38
feita de forma independente para canais de controle e para canais de servico.
No padrao IEEE 802.11 [1], sao definidos 8 nıveis de prioridade de usuario
(UP), numerados de 0 a 7, onde 0 representa a menor prioridade. Esses nıveis
sao mapeados em quatro categorias de acesso (AC) e, posteriormente, nos ındices
referentes a cada categoria (ACI). Cada categoria de acesso representa uma fila
onde sao inseridos os frames a serem enviados e o acesso ao canal e gerido de forma
independente para cada AC, com parametros do algoritmo EDCA distintos para
cada uma.
Tabela 3.1: Mapeamento entre UP, AC e ACI no padrao IEEE 802.11 [1].
UP AC Descricao
1 AC BK Segundo plano (background)
2 AC BK Segundo plano (background)
0 AC BE Melhor esforco (best effort)
3 AC BE Melhor esforco (best effort)
4 AC VI Vıdeo
5 AC VI Vıdeo
6 AC VO Voz
7 AC VO Voz
O algoritmo EDCA baseia-se no metodo Carrier Sense Multiple Access/Col-
lision Avoidance (CSMA/CA), no qual a STA so inicia uma transmissao ao detectar
que o canal esta livre apos um certo intervalo de tempo. Os parametros principais do
algoritmo sao o Arbitration Inter-Frame Space (AIFS) e os valores mınimo e maximo
da janela de contencao (CW, do ingles contention window), que serao representados
por CWmin e CWmax. Os valores padrao de CWmin e CWmax para cada AC estao
apresentados na tabela 3.3, onde aCWmin e aCWmax sao definidos pela camada
fısica (conforme a tabela 3.2).
O AIFS determina o menor intervalo de tempo entre o canal se tornar dis-
ponıvel e o inıcio de uma transmissao. Seu valor varia de acordo com a categoria de
acesso: quanto maior a prioridade da categoria, menor seu AIFS, dando uma chance
maior de transmissao para os frames que estiverem na fila de uma AC com maior
prioridade. Ele e calculado atraves da equacao 3.3, onde os parametros aSlotT ime
39
e aSIFSTime sao definidos pela camada fısica (tabela 3.2) e representam, respec-
tivamente, um intervalo temporal de referencia e o tempo necessario para que uma
possıvel recepcao seja concluıda. Sendo assim, a duracao do AIFS e a soma de um
intervalo Short Inter-Frame Space (SIFS) com uma quantidade inteira, representada
por AIFSN , de blocos de duracao aSlotT ime. Os valores de AIFSN definidos pelo
padrao IEEE 802.11 para comunicacoes em modo OCB, como e o caso de dispositivos
WAVE, estao apresentados na tabela 3.3.
AIFS[AC] = AIFSN [AC]× aSlotT ime+ aSIFSTime (3.3)
Tabela 3.2: Valores dos parametros do algoritmo EDCA definidos pela camada fısica
OFDM. Fonte: IEEE 802.11 [1]
Parametro Valor
aSlotT ime 13 µs
aSIFSTime 32 µs
aCWmin 15
aCWmax 1023
Tabela 3.3: Valores padrao dos parametros do algoritmo EDCA para comunicacao em
modo OCB. Fonte: IEEE 802.11 [1]
AC CWmin CWmax AIFSN
AC VO aCWmin+14
− 1 aCWmin+12
− 1 2
AC VI aCWmin+12
− 1 aCWmin 3
AC BE aCWmin aCWmax 6
AC BK aCWmin aCWmax 9
Caso o canal permaneca disponıvel para transmissao apos o intervalo AIFS, o
transmissor inicia o contador de backoff. O valor inicial desse contador e um numero
aleatorio que pertence ao intervalo [0, CW ] conhecido como janela de contencao.
Esse contador e decrementado a cada perıodo de aSlotT ime caso o canal permaneca
livre; caso contrario, a contagem e interrompida e, depois do canal ficar disponıvel
40
novamente, ela e retomada apos um novo intervalo AIFS. Quando o contador de
backoff chegar a 0, a transmissao pode ser iniciada.
O valor de CW e limitado entre CWmin e CWmax e pertence a sequencia
2k − 1 para k ∈ N. Ao iniciar o procedimento de backoff para cada categoria em
cada STA, CW e inicializado com o valor de CWmin correspondente a categoria.
Caso o contador de backoff de diferentes categorias ou em diferentes STAs chegue
a zero no mesmo instante, uma colisao e detectada e CW e atualizado com o valor
2(CW + 1) − 1 sem ultrapassar CWmax. Com esse novo valor, o procedimento
de backoff e recomecado. Apos uma transmissao bem sucedida da STA em uma
certa categoria de acesso, seu valor de CW retorna para CWmin. O fluxograma do
procedimento de backoff para uma dada fila e apresentado na figura 3.7
A tabela 3.4 apresenta os valores de CWmin e CWmax e a duracao do intervalo
AIFS para cada categoria de acesso em dispositivos WAVE, ou seja, utilizando modo
OCB e camada fısica OFDM.
Tabela 3.4: Valores padrao dos parametros do algoritmo EDCA para comunicacao em
modo OCB e camada fısica OFDM. Fonte: IEEE 1609.4 [4]
AC CWmin CWmax AIFS
AC VO 3 7 58 µs
AC VI 7 15 71 µs
AC BE 15 1023 110 µs
AC BK 15 1023 149 µs
3.3.3 Sincronizacao de multiplos canais
Devido a forma como a coordenacao dos canais e realizada em dispositivos
WAVE, descrita na subsecao 3.3.1, o sincronismo temporal e fundamental para seu
funcionamento. Para realizar essa sincronizacao, e utilizado o UTC como referencia
comum entre os dispositivos, que pode ser obtido de diversas fontes. A fonte mais
comum em um veıculo seria o receptor de GPS, que disponibiliza um sinal com 1
pulso por segundo (PPS) sincronizado com o horario UTC.
Caso o dispositivo nao possua uma fonte da qual ele possa obter o horario
UTC, essa informacao pode ser extraıda de frames chamados de Time Advertisement
41
Frames na
fila da AC
Escolher obackoff no
intervalo [0, CW ]
Aguardar oAIFS depoisdo canal terficado livre
Canal livre?
backoff = 0?
Aguardar umaSlotT imeCanal livre?
Decrementarbackoff Colisao?
Transmitirframe
Tranmissao
realizada
Aumentar CW(limitado por CWmax)
nao
sim
simnao
nao
sim
sim
nao
Figura 3.7: Fluxograma simplificado do procedimento de backoff no algortimo EDCA.
42
Element ID Length CapabilitiesTiming
(opcional)Time Value
(opcional)Time Error
(opcional)Counter
Time Update
Figura 3.8: Estrutura do elemento Timing Advertisement. Fonte: IEEE 802.11 [1]
(TA) frames enviados por outros dispositivos WAVE. O padrao IEEE 802.11 [1]
define a estrutura de um TA frame, que contem um timestamp, informacoes sobre
possıveis restricoes de potencia dependendo do paıs e um elemento que pode ser
composto por ate seis campos: Element ID, Length, Timing Capabilities, Time
Value, Time Error e Time Update Counter. A figura 3.8 ilustra a estrutura desse
elemento, que carrega as informacoes de Timing Advertisement. Cada STA deve
possuir um cronometro local de modulo 264 que e incrementado a cada microssegundo
e seu valor define o campo timestamp incluıdo no frame de TA.
O campo Element ID e utilizado para identificar o tipo de elemento com base
em seu conteudo, como especificado pelo padrao IEEE 802.11. A tabela 9-77 em [1]
apresenta a lista de completa dos valores de Element ID. O campo Length contem
a quantidade de octetos presentes no frame apos esse campo.
Ja o campo Timing Capabilities pode assumir os valores 0, 1 ou 2, sendo os
valores de 3 a 255 reservados. Caso seja igual a 0, indica que o transmissor nao
possui uma fonte externa de horario, fazendo com que os campos Time Value, Time
Error e Time Update Counter nao sejam incluıdos no elemento. Se seu valor for
igual a 1 ou 2, o campo Time Value e preenchido com uma estimativa do offset
entre a timestamp do frame e o horario UTC; ja o valor do campo Time Error e o
desvio padrao do erro da estimativa presente no campo Time Value. O campo Time
Update Counter so e incluıdo quando o valor de Timing Capabilities e igual a 2 e
contem a quantidade de vezes que a STA atualizou seu horario com relacao ao UTC.
A informacao horaria obtida atraves do GPS, de um TA frame ou de outra
fonte pode ser utilizada pela MLMEX para calcular uma estimativa do horario UTC
e do seu desvio padrao. Em [4], e descrito um exemplo de estimador utilizando o
horario obtido pelo GPS, osciladores a cristal presentes no dispositivo WAVE e um
filtro de Kalman. Para dispositivos WAVE que operam em modo de acesso alternado
aos canais de controle e servico, e obrigatorio possuir uma estimativa do horario UTC
e o desvio padrao do erro dessa estimativa.
43
Para determinar se um dispositivo WAVE esta corretamente sincronizado,
o padrao IEEE 1609.4 [4] define dois parametros: SyncTolerance, utilizado para
verificar a sincronia com o horario UTC, e MaxChSwitchT ime, que define o tempo
maximo para que um dispositivo WAVE troque de canal. O desvio padrao do erro
de estimativa do horario UTC calculado pela MLMEX e comparado com metade
do intervalo SyncTolerance. Caso o triplo do desvio padrao seja menor do que
SyncTolerance/2, o dispositivo esta corretamente sincronizado; caso contrario, a
MLMEX nao permite a utilizacao de modos de acesso que alternam regularmente
entre canais.
A duracao do intervalo de guarda, mencionado na subsecao 3.3.1 sobre coor-
denacao entre os canais, e a soma de SyncTolerance e MaxChSwitchT ime. Ambos
valem 2 ms, como definido no padrao IEEE 1609.4, portanto, a duracao total de um
intervalo de guarda e igual a 4 ms. Esse intervalo e utilizado para garantir que os
dispositivos estao operando no canal correto, de acordo com seu modo de acesso, e
que seus relogios estao sincronizados com o horario UTC.
44
Capıtulo 4
Modelos de canal
4.1 Introducao
Os modelos de canal sao de extrema importancia para conhecer os efeitos
de um canal sem fio sobre o sinal sendo transmitido e para prever como esse sinal
sera detectado pelo receptor. Ao longo dos anos, pesquisas sobre modelos de canal
vem acompanhando o desenvolvimento das diversas tecnologias (GSM, 3G, 4G, 5G,
Wi-Fi, dentre outras) e sao de fundamental importancia para simular os sistemas
de comunicacao e avaliar seu desempenho e viabilidade.
O crescimento da ideia de comunicacoes em ambientes veiculares impulsionou
as pesquisas sobre modelos que descrevessem esses canais com elevada mobilidade
dos dispositivos e uma variedade de anteparos dependendo do ambiente, como rural,
urbano e rodovias. Os fenomenos de multicaminho e espalhamento Doppler tornam-
se mais proeminentes em canais veiculares, como descrito na secao 2.3, e esses novos
modelos que vem sendo pesquisados e desenvolvidos visam contribuir para uma
analise de desempenho da comunicacao V2X mais proxima da realidade.
4.2 Modelo dual-slope
O modelo conhecido como log-distancia, ou log-distance, em ingles, e utili-
zado em diversas aplicacoes de telecomunicacoes com radiofrequencia, tanto em am-
bientes externos como internos. Seja teoricamente ou atraves de medidas empıricas,
sabe-se que a atenuacao do canal aumenta com a distancia atraves de uma relacao lo-
45
garıtmica. Partindo desse princıpio, a perda por propagacao do modelo log-distancia
e dada pela equacao 4.1. [8]
PL(d)[dB] = PL0 + 10n log10
(d
d0
)+Xσ (4.1)
onde PL0 e a atenuacao do canal na distancia de referencia d0, d e a distancia entre
transmissor e receptor e n e o expoente que define a taxa de aumento da atenuacao
com a distancia. Esse expoente e determinado a partir de medicoes empıricas e varia
de acordo com as condicoes do ambiente. Em uma situacao de propagacao em espaco
livre, ou seja, em um ambiente sem anteparos, a atenuacao aumenta com o quadrado
da distancia, sendo utilizado o expoente n = 2. A tabela 4.1 apresenta alguns valores
do expoente n para diferentes cenarios de comunicacoes moveis. A variavel aleatoria
Xσ e utilizada para acrescentar o efeito do fenomeno de sombreamento. Ela e uma
variavel de media zero e desvio padrao σ cuja funcao de densidade de probabilidade
(PDF) e gaussiana. A PDF da variavel Xσ e definida pela equacao 4.2.
f(x) =1√
2πσ2e−
x2
2σ2 (4.2)
Tabela 4.1: Expoente n da perda de propagacao em funcao da distancia para diferentes
cenarios. Fonte: [8]
Cenario Expoente n
Espaco livre 2
Sistema celular em area urbana 2,7 a 3,5
com sombreamento
Sistema celular em area urbana3 a 5
Ambiente interno com visada direta 1,6 a 1,8
Contudo, ha cenarios em que a relacao de aumento da atenuacao com a
distancia pode variar bruscamente em certas faixas de valores da distancia. Nesses
casos, podem ser utilizados modelos log-distancia com mais de uma inclinacao (do
ingles, slope), ou seja, diferentes expoentes dependendo da distancia. A equacao 4.3
apresenta a perda por propagacao em funcao da distancia utilizando o modelo dual-
46
slope, ou dupla inclinacao, em traducao livre. O modelo dual-slope vem sendo muito
utilizado em diversas referencias na literatura de comunicacoes V2V [9, 10, 11].
PL(d)[dB] =
PL0 + 10n0 log10
(dd0
)+Xσ, se d0 ≤ d ≤ d1
PL0 + 10n0 log10
(d1d0
)+ 10n1 log10
(dd1
)+Xσ, se d > d1
(4.3)
sendo n0 e n1 os expoentes correspondentes as faixas do ≤ d ≤ d1 e d > d1, respec-
tivamente, e d1 e a distancia de transicao.
Buscando representar canais de comunicacao V2V que apresentam o fenomeno
de sombreamento em ambientes urbanos e em rodovias, Abbas et al. [9] desenvol-
veram um modelo empırico a partir de medicoes reais em uma rodovia e na area
urbana de duas cidades suecas. Foram utilizados dois carros com 1,47 m de altura
equipados com antenas omnidirecionais no teto. Alem disso, dados de GPS foram
utilizados para monitorar a distancia entre os veıculos e cameras de vıdeo serviram
para identificar quando havia visada direta (LOS) e quando a visada estava obstruıda
por outro veıculo (OLOS, obstructed line of sight). A partir dessa separacao entre
LOS e OLOS, Abbas et al. conseguiram criar modelos distintos para cada situacao,
diferente do que ja havia sido feito em [10] e [11], onde os modelos foram obtidos a
partir de um conjunto de dados contendo medidas com e sem visada direta.
Na rodovia, os veıculos trafegaram na mesma direcao com velocidades entre
80 e 90 km/h. A estrada possuıa 4 faixas, 2 em cada direcao, e era cercada por
um guarda-corpo metalico. As pistas em direcoes opostas eram separadas por uma
mureta de concreto com 50 cm de altura e, ao longo da via, havia vegetacao, placas,
postes e poucas construcoes.
Ja no ambiente urbano, a velocidade maxima atingida pelo carros foi de
50 km/h, variando com o trafego. Os veıculos se moveram na mesma direcao e em
direcoes opostas em ruas de mao unica ou dupla cujas larguras variavam de 12 a 20
metros. Havia construcoes de 2 a 4 andares, arvores, carros estacionados, placas e
postes ao longo da via.
Abbas et al. utilizaram o modelo dual-slope, definido previamente na equacao
4.1. De acordo com o artigo, por possuırem poucas amostras para distancias menores
do que 10 metros entre os veıculos, o modelo so e valido para distancias maiores
47
do que esse valor. Sendo assim, definiram d0 = 10 m. Alem disso, definiram a
distancia de transicao d1 como 104 m. Os valores de n0, n1, PL0 e σ, o desvio
padrao da variavel aleatoria que representa um AWGN, estao descritos na tabela
4.2 para ambiente urbano e em rodovias para situacao de LOS e OLOS.
Tabela 4.2: Parametros do modelo de canal dual-slope para rodovia e
ambiente urbano. Fonte: [9]
Cenario d0 d1 n0 n1 PL0 σ
Rodovia - LOS 10 m 104 m 1,66 2,88 66,1 dB 3,95
Rodovia - OLOS 10 m 104 m 1,66* 3,18 76,1 dB 6,12
Urbano - LOS 10 m 104 m 1,81 2,85 63,9 dB 4,15
Urbano - OLOS 10 m 104 m 1,93 2,74 72,3 dB 6,67
* Expoente nao informado pelos autores em [9]. Sera utilizado
o mesmo expoente do caso LOS.
Importante notar que, nos experimentos descritos em [9], a condicao de visada
direta obstruıda (OLOS) no ambiente de rodovia so ocorreu quando os veıculos
estavam separados por uma distancia maior do que 80 m. Por esse motivo, tornou-
se inviavel determinar o coeficiente n0 para distancias entre 10 e 104 m, ja que havia
poucas amostras. Sendo assim, sera utilizado o coeficiente n0 obtido para a condicao
de LOS, com a ressalva de que isso foi observado empiricamente e ha uma grande
chance de nao se aplicar para outras situacoes.
Pode-se observar que o modelo encontrado por Abbas et al. em [9] preve uma
atenuacao menor do que a propagacao em espaco livre para distancias entre 10 m
e 104 m em todos os cenarios. Isso ocorre pois a potencia do sinal que chega ao
receptor e resultado da soma de multiplas copias do sinal devido ao multicaminho,
podendo, inclusive, gerar um efeito de guia de onda nas vias do ambiente urbano.
Apos a distancia de transicao, os valores dos expoentes assemelham-se aos utilizados
para modelar um sistema celular urbano (tabela 4.1).
Interessante notar tambem que ha uma variacao em torno de 10 dB no
parametro PL0 de um cenario LOS para OLOS. Variacoes semelhantes foram obser-
vadas em [28], onde e estudada a atenuacao causada por um veıculo obstruindo a
visada direta entre transmissor e receptor em um ambiente de rodovia.
48
TxRx
xx′
dLOS
dr = x+ x′
θ θ
d
ht hr
Figura 4.1: Ilustracao do caminho de visada direta (dLOS) e do caminho com reflexao no
solo (dr) entre um transmissor e um receptor.
4.3 Modelo two-ray ground
Na situacao de comunicacoes entre veıculos, onde a distancia entre o trans-
missor e receptor geralmente nao excede 1 km e as antenas estao posicionadas em
alturas pequenas com relacao ao solo, caso o ambiente possua poucos anteparos, a
componente de multicaminho referente ao raio refletido no chao torna-se bastante
proeminente [12]. Por esse motivo, diversas referencias [6, 12, 29] utilizam o modelo
two-ray ground, ou modelo de reflexao no solo. Como o nome sugere, ele e baseado
em dois raios entre o transmissor (Tx) e o receptor (Rx): um deles referente a visada
direta (LOS) e o outro representa o caminho de propagacao percorrido pelo raio que
alcanca o receptor apos refletir no solo.
A figura 4.1 ilustra geometricamente os raios de visada direta e refletido, onde
ht e hr sao as alturas do transmissor e do receptor, respectivamente, em relacao
ao solo, d e a distancia horizontal entre transmissor e receptor; dLOS e dr sao as
distancias percorridas pelo raio de visada direta e pelo raio refletido no solo. Pela
geometria ilustrada na figura, as distancias dLOS e dr podem ser calculadas por:
dLOS =√
(ht − hr)2 + d2 (4.4)
dr =√
(ht + hr)2 + d2 (4.5)
A partir de medicoes em ambientes rurais e em rodovias, Kunisch e Pamp [6]
desenvolveram um modelo de canal two-ray ground que serviu como base, poste-
riormente, para o modelo de Karedal et al. [12]. O transmissor e receptor foram
posicionados no teto de veıculos a uma altura de 1,6 m do solo e, nesses ambientes,
os veıculos deslocaram-se, principalmente, na mesma direcao. Alem disso, os au-
49
tores ressaltam que algumas medidas no ambiente rural foram obtidas durante um
feriado, ou seja, havia pouco trafego e, por consequencia, uma maior probabilidade
de visada direta entre o transmissor e receptor.
O ganho do canal em funcao da distancia proposto por Kunisch e Pamp
para os ambientes rural e em rodovia e dado pela equacao 4.6 do modelo two-ray
ground : [6]
G(d) = G12 + 20 log10
(λ
4π
∣∣∣∣e−jk0dLOSdLOS+ r
e−jk0dr
dr
∣∣∣∣)+Xσ (4.6)
onde d e a distancia horizontal entre o transmissor e o receptor, G12 e o ganho de
referencia, Xσ representa um AWGN de desvio padrao σ e j e a unidade imaginaria.
O comprimento de onda do sinal e representado por λ e k0 e o numero de onda
dado por k0 = 2π/λ. As distancias dLOS e dr dependem de d e sao definidas nas
equacoes 4.4 e 4.5, respectivamente. O parametro complexo r e o coeficiente efetivo
de reflexao do solo. Os valores de todos esses parametros para o ambiente rural e
em rodovia podem ser vistos na tabela 4.3. Nessa tabela, o parametro h representa
a altura do transmissor e receptor, que foram assumidas como iguais por Kunisch e
Pamp.
Ja no ambiente urbano, dados foram obtidos com os veıculos se movendo
na mesma direcao, em direcoes opostas e ambos parados em sinais de transito. As
medicoes realizadas por Kunisch e Pamp nesse ambiente nao eram representadas pelo
modelo two-ray ground e observaram que um modelo log-distancia seria a melhor
opcao. A equacao 4.3 define a atenuacao em funcao da distancia para esse modelo.
No entanto, para manter a mesma notacao utilizada pelos autores com ganho em
funcao da distancia para o modelo two-ray ground, sera utilizada a equacao 4.7 para
representar o modelo log-distancia: [9]
G(d) = G0 + 10n log10
(d
1 m
)+Xs (4.7)
onde d e a distancia entre o transmissor e o receptor, G0 e o ganho de referencia,
n e o coeficiente do modelo tendo a distancia de 1 m como referencia e Xs modela
um AWGN de desvio padrao s. Os valores de G0, n e s que melhor representam
os dados obtidos atraves das medicoes nos tres ambientes tambem se encontram na
tabela 4.3.
50
Tabela 4.3: Parametros do modelos two-ray ground e log-distancia para diferentes ambi-
entes. Fonte: [6]
Ambiente Two-ray Log-distancia
[dB]
G12
[m]
h|r| ∠r
[dB]
σ
[dB]
G0n
[dB]
s
Rural -9,5 1,80 0,264 -158o 2,7 -62,1 -1,79 3,3
Rodovia -9,0 1,81 0,353 -154o 2,3 -59,7 -1,85 3,2
Urbano − − − − − -68,5 -1,61 3,4
Karedal et al. em [12] basearam-se nas equacoes 4.6 e 4.7 e adicionaram um
fator de correcao ζPLc em ambas, que depende da direcao de movimento relativa
entre os veıculos. As equacoes abaixo foram adaptadas de [12] para preservar a
notacao:
G(d) = G12 + 20 log10
(λ
4π
∣∣∣∣e−jk0dLOSdLOS+ r
e−jk0dr
dr
∣∣∣∣)+ ∆G(σ)− ζPLc (4.8)
G(d) = G0 + 10n log10
(d
1 m
)+ ∆G(s)− ζPLc (4.9)
onde PLc e um fator que depende do ambiente em questao e ζ foi definido por
Karedal et al. como:
ζ =
1, veıculos em direcoes opostas e se afastando
−1, veıculos em direcoes opostas e se aproximando
0, veıculos na mesma direcao (comboio)
(4.10)
Observa-se que os modelos de Karedal et al. [12] e os de Kunisch e Pamp [6]
sao equivalentes quando os veıculos estao se movendo na mesma direcao.
4.4 Modelo VirtualSource11p
Uma situacao comum de acidentes no transito e a de colisao em cruzamentos.
Ela poderia ser evitada se houvesse uma comunicacao entre os veıculos que estao se
aproximando da intersecao, seja para alertar os condutores ou para que um carro
autonomo tome uma decisao, por exemplo. Contudo, em uma situacao em que dois
veıculos estao se aproximando de um cruzamento por vias perpendiculares, ha uma
51
grande chance de que nao havera visada direta entre o transmissor e receptor devido
a construcoes ao longo das esquinas, especialmente em ambientes urbanizados.
Para entender como o sinal se propaga em uma situacao como essa e per-
mitir simulacoes mais proximas da realidade, Mangel et al. [7] desenvolveram um
modelo de canal especıfico para cruzamentos. Foram realizadas medicoes em oito
cruzamentos diferentes de uma cidade alema, sendo metade em ambiente urbano e
o restante em areas suburbanas. Os autores escolheram vias com larguras variadas
para determinar a influencia desse parametro na comunicacao. Nas medicoes, o
transmissor foi posicionado a 100 m, 60 m, 30 m e 0 m do centro do cruzamento e
em diferentes faixas da via para variar a distancia entre ele e a parede. Ja o receptor,
posicionado no teto de um veıculo, deslocava-se livremente em ambas as direcoes na
via perpendicular a do transmissor, porem, o artigo nao menciona as velocidades
atingidas pelo receptor.
O transmissor utilizou uma taxa de dados igual a 3 Mbps, ou seja, modulacao
BPSK e taxa do codificador convolucional igual a 1/2, e a potencia de transmissao
era igual a 20 dBm. A frequencia central do canal era 5,9 GHz e foram transmitidos
pacotes com payload de 200 bytes a uma taxa de 100 Hz, simulando o envio de
BSMs. Tanto o receptor quanto o transmissor estavam a, aproximadamente, 1,5 m
de altura em relacao ao solo.
Mangel et al. utilizaram como base o modelo de canal celular proposto em [30]
chamado VirtualSource e fizeram modificacoes com base nas medicoes realizadas
em campo, criando um modelo que ficou conhecido como VirtualSource11p. A
equacao 4.11, proposta pelos autores, determina a perda de propagacao em cruza-
mentos de areas urbanas e suburbanas. Os parametros dt e dr sao, respectivamente,
as distancias do transmissor e do receptor ate o centro do cruzamento, wr e a largura
da via onde se encontra o receptor, xt e a distancia do transmissor ate a parede, λ e
o comprimento de onda do sinal e is e um parametro que vale 1 quando o ambiente e
suburbano e 0 quando o cruzamento esta em ambiente urbano. O fator de correcao
is2,94 foi adicionado porque foi observada uma atenuacao maior em cruzamentos
situados no suburbio. A equacao 4.11 foi obtida considerando o parametro xt como
metade de wr.
52
PL(dt, dr, wr, xt, is) = 3,75 + is2,94 +
10 log10
(d0,957t
(xtwr)0,814πdrλ
)2,69
, dr ≤ db
10 log10
(d0,957t
(xtwr)0,814πd2rλdb
)2,69
, dr > db
(4.11)
sendo db a distancia de transicao [30] definida na equacao 4.12, onde ht e hr sao as
alturas do transmissor e do receptor, respectivamente, em relacao ao chao.
db =4hthrλ
(4.12)
Os autores do artigo adotaram um criterio de que esse modelo e valido so-
mente para distancias do receptor ate o centro do cruzamento maiores do que 10 m.
Para distancias menores, a equacao 4.11 nao representava os dados medidos.
Observa-se que a perda por propagacao e maior para distancia que ultra-
passam a distancia de transicao. Isso ocorre devido ao fato de que o fenomeno da
difracao se torna mais predominante do que a reflexao, como observado tambem
em [30].
53
Capıtulo 5
Implementacao e Resultados
5.1 Introducao
Os modelos dual-slope, two-ray ground e VirtualSource11p, que foram des-
critos no capıtulo 4, foram implementados em tres classes distintas. Cada uma
possui parametros que podem ser configurados pelo usuario a nıvel de simulacao.
Essas classes foram implementadas de forma que sejam totalmente compatıveis com
o simulador ns-3.
5.2 Simulador ns-3
A primeira versao, ns-1 [31], da serie de simuladores ns (network simulator),
foi criada por pesquisadores no Lawrence Berkeley National Laboratory (LBNL),
California, em 1995. Desenvolvido a partir de um outro simulador criado pelo mesmo
laboratorio chamado REAL [32], o ns-1 tinha seu codigo-fonte em C++ e os scripts
das simulacoes eram escritos com a linguagem Tcl [33], criada em 1988. Essa versao
nao e mais desenvolvida nem mantida. O ns-1 era um simulador de redes discreto
baseado em eventos, ou seja, possuıa um estado interno que era alterado de acordo
com os eventos que ocorriam durante a simulacao. Em um simulador contınuo, a
resposta do sistema e modelada matematicamente com o uso de equacoes diferenciais
a partir de um conjunto de condicoes iniciais.
Em 1997, foi disponibilizada a segunda versao do simulador, ns-2 [13], como
uma evolucao da primeira. Seu codigo-fonte tambem era escrito em C++ e muitas
54
de suas funcionalidade foram herdadas do ns-1. A principal diferenca para a versao
anterior e que a linguagem utilizada para escrever os scripts das simulacoes passou
a ser OTcl, que e uma extensao da Tcl com orientacao a objetos, desenvolvida
no Massachusetts Institute of Technology (MIT). Essa versao foi muito utilizada em
todo o mundo para pesquisas na area de redes e comunicacoes. Seu desenvolvimento
foi encerrado em 2010 e, atualmente, essa versao nao e mais mantida, apesar de ainda
ser utilizada em algumas pesquisas.
A versao atual, ns-3 [14], teve seu desenvolvimento iniciado em 2006, quando
um grupo de pesquisadores de diferentes instituicoes (University of Washington,
Georgia Institute of Technology, International Institute of Computer Science, na
California, e Institut National de Recherche en Informatique et en Automatique, na
Franca) recebeu financiamento do governo dos Estados Unidos para desenvolver um
simulador que iria substituir o ns-2. Apesar das versoes ns-1 e ns-2 serem bastante
similares, o ns-3, lancado em 2008, abandonou a retrocompatibilidade com a segunda
versao e difere dela em diversos aspectos, porem, ainda mantem a caracterıstica de
ser um simulador de redes discreto baseado em eventos.
A primeira diferenca e que, apesar do codigo-fonte do ns-3 tambem ser es-
crito em C++, somente uma pequena porcao foi aproveitada do ns-2. Alem disso, a
linguagem OTcl foi substituıda por Python [34], porem, diferente do ns-1 e ns-2, a
utilizacao dessa segunda linguagem para executar as simulacoes e opcional, podendo
utilizar somente C++. Outra diferenca a ser citada e que algumas funcionalidades,
protocolos e servicos presentes no ns-2 nao estao implementadas no ns-3, e vice-
versa. Contudo, por ser uma versao que esta sendo mantida e com atualizacoes
regulares, a tendencia e de que o ns-3 se torne a versao mais completa.
Por ser gratuito e implementar a camada fısica e MAC de diversos padroes
e tecnologias, como IEEE 802.11, famılia IEEE 1609 (WAVE), famılia IEEE 802.16
(WiMAX) e LTE, alem dos protocolos IPv4, IPv6 e WSMP (sistema WAVE) da
camada de rede e, na camada de transporte, os protocolos TCP e UDP, assim como
protocolos de roteamento, modelos de propagacao, modelos de antenas e, inclusive,
possuir capacidade de emulacao/, o simulador ns-3 tem sido muito utilizado para
diversas pesquisas, inclusive na area de comunicacoes V2V e V2I [35, 36, 37]. Algu-
mas dessas funcionalidades foram adicionadas a partir da contribuicao de usuarios
55
e pesquisadores, ja que o codigo do simulador e aberto.
Sendo assim, este projeto implementa tres modelos de canal novos no ns-3
com o objetivo de contribuir com o desenvolvimento do simulador e permitir que
outros usuarios utilizem esses modelos em suas simulacoes.
5.3 Implementacao
5.3.1 Modelo dual-slope
O simulador ns-3 [14] possui implementacoes dos modelos de log-distancia
com inclinacao unica (equacao 4.1) e inclinacao tripla (equacao 5.1), porem nao
possui o modelo dual-slope, de inclinacao dupla. Uma solucao possıvel e utilizar o
modelo de inclinacao tripla e configurar a segunda distancia de transicao d2 com um
valor muito grande, representando infinito. Porem, a solucao escolhida foi de acres-
centar um modelo dual-slope ao simulador para que o usuario nao precise adaptar
um modelo existente para implementar o de inclinacao dupla e, dessa forma, tornar
os codigos das simulacoes mais compreensıveis.
PL(d) =
PL0 + 10n0 log10
(dd0
), se d0 ≤ d ≤ d1
PL0 + 10n0 log10
(d1d0
)+ 10n1 log10
(dd1
), se d1 ≤ d ≤ d2
PL0 + 10n0 log10
(d1d0
)+ 10n1 log10
(d2d1
)+ 10n2 log10
(dd2
), se d > d2
(5.1)
Para adicionar o modelo dual-slope ao simulador ns-3, foi implementada a
classe DualLogPropagationLossModel, representando um modelo de propagacao
que pode ser atribuıdo ao canal configurado na simulacao. A classe possui cinco atri-
butos que podem ser configurados: Distance0, Distance1, Exponent0, Exponent1
e ReferenceLoss. Eles correspondem, respectivamente, aos parametros d0, d1, n0,
n1 e PL0 da equacao 4.3. O valor padrao e uma breve descricao sobre cada um
dos parametros estao apresentados na tabela 5.1. O codigo-fonte da classe esta
disponıvel no apendice A.
Por ser um modelo relativamente simples, foi feita uma validacao utilizando
valores fictıcios para os parametros, de forma a avaliar se a atenuacao obedecia
56
Tabela 5.1: Atributos da classe DualLogPropagationLossModel.
Atributo Descricaopadrao
Valor
Distance0 Distancia de referencia d0, em metros. 1 m
Distance1 Distancia de transicao d1 em metros. 200 m
Exponent0 Expoente n0 1,9
Exponent1 Expoente n1 3,8
ReferenceLoss Atenuacao na distancia de referencia d0, em dB 47,865 dB
a equacao 4.3. Foram realizadas duas simulacoes de teste utilizando os valores
apresentados na tabela 5.2 variando a distancia de 1 a 1000 m. A distancia de
transicao foi fixada em 100 m para ambos os testes. Os graficos da atenuacao do
canal em funcao da distancia obtidos em cada teste estao apresentados na figura 5.1.
Tabela 5.2: Parametros utilizados na validacao do modelo dual-slope no simulador ns-3.
d0 d1 n0 n1 PL0
Teste 1 1 m 100 m 2,0 3,0 50 dB
Teste 2 10 m 100 m 2,5 4,0 55 dB
Com os parametros do teste 1, era esperado um crescimento da atenuacao de
20 dB por decada para distancias entre 1 e 100 m devido ao coeficiente n0 = 2. De
fato, a atenuacao variou de 50 dB para 90 dB nessas duas decadas. Apos a distancia
de transicao, o coeficiente n1 = 3 faria com que a atenuacao passasse a crescer 30 dB
por decada. Como esperado, a atenuacao variou de 90 dB para 120 dB entre 100 e
1000 m.
Tambem foi obtido o comportamento esperado pelo modelo com os parametros
do segundo teste. A atenuacao cresceu de 55 dB para 80 dB na decada entre 10 e
100 m, referente ao coeficiente n0 = 2,5; entre 100 e 1000 m, a atenuacao variou de
80 dB para 120 dB, ou seja, 40 dB por decada, devido ao coeficiente n1 = 4.
57
100 101 102 103
Distancia Tx-Rx [m]
50
60
70
80
90
100
110
120
Atenuacao
docanal
[dB]
n0 = 2,0; n1 = 3,0; PL0 = 50 dB; d0 = 1 m; d1 = 100 m
n0 = 2,5; n1 = 4,0; PL0 = 55 dB; d0 = 10 m; d1 = 100 m
Figura 5.1: Atenuacao do canal em funcao da distancia para validacao do modelo dual-
slope adicionado ao simulador ns-3.
5.3.2 Modelo two-ray ground
O simulador ns-3 [14] possui uma implementacao do modelo two-ray ground,
porem, e uma aproximacao para distancias entre o transmissor e o receptor muito
maiores do que 4πhthr/λ. Em uma situacao de comunicacao V2V com altura do
transmissor e do receptor em torno de 2 m e frequencia de 5,9 GHz, a distancia
entre os veıculos precisaria ser muito maior do que 988 m para que a aproximacao
implementada no simulador fosse valida.
Por esse motivo, o modelo two ray ground de Kunisch e Pamp foi esco-
lhido para ser adicionado ao simulador ns-3 [14] com o objetivo de permitir si-
mulacoes de comunicacoes V2X mais proximas da realidade. Foi implementada a
classe KunischTwoRayPropagationLossModel, que representa o modelo de perdas
por propagacao a ser adicionado ao canal sem fio. Seu codigo-fonte esta disponibi-
lizado no apendice B.
A classe possui seis atributos que podem ser configurados ao adicionar esse
modelo ao canal. Sao eles a frequencia da portadora em Hz, a distancia mınima
acima da qual o modelo e valido, a magnitude e a fase do coeficiente efetivo de
58
reflexao complexo r (equacao 4.6) e o ganho de referencia G12 (equacao 4.6). O
valor padrao de cada atributo corresponde aos parametros encontrados por Ku-
nisch e Pamp para o modelo two-ray ground em ambientes de rodovia, definidos
na tabela 4.3. As informacoes sobre os atributos da classe foram condensadas na
tabela 5.3.
Tabela 5.3: Atributos da classe KunischTwoRayPropagationLossModel.
Atributo Descricaopadrao
Valor
Frequency Frequencia da portadora, em Hz. 5,9 GHz
MinDistanceo modelo e valido.
Distancia em metros acima da qual32 m
ReflectionCoefficientMagde reflexao r (equacao 4.6).
Modulo do coeficiente efetivo0,353
ReflectionCoefficientPhasede reflexao r (equacao 4.6).
Fase em graus do coeficiente efetivo-154o
BaseGain(equacao 4.6).
Ganho de referencia G12 em dB-9,0 dB
As alturas do transmissor e receptor sao configuradas utilizando a coordenada
z da posicao dos dispositivos no simulador. Ao calcular a distancia entre eles, obtem-
se a distancia de visada direta dLOS. Para calcular a distancia dr do raio refletido
no solo, utiliza-se a relacao expressa na equacao 5.2, que e facilmente obtida a partir
das equacoes 4.4 e 4.5.
dr =√d2LOS + 4hthr (5.2)
Para distancias abaixo da distancia mınima, o ganho do canal e determinado
pelo modelo de Friis, definido na equacao 5.3.
G(d) = G12 + 10 log10
(λ
4πd
)2
(5.3)
onde G12, λ e d sao os mesmo parametros utilizados na equacao 4.6.
Como forma de validacao da implementacao do modelo two-ray ground, a
figura 5.2 mostra os graficos apresentados por Kunisch e Pamp em [6] e, abaixo, as
59
(a)
10 15 20 25Distancia Tx-Rx [dB(m)]
(a) Rural
−75
−80
−85
−90
−95
−100
Ganhodocanal
[dB] Log-distancia
Two-ray
15 20 25Distancia Tx-Rx [dB(m)]
(b) Rodovia
−70
−75
−80
−85
−90
−95
−100Ganhodocanal
[dB] Log-distancia
Two-ray
10 15 20Distancia Tx-Rx [dB(m)]
(c) Urbano
−75
−80
−85
−90
−95
−100
Ganhodocanal
[dB] Log-distancia
(b)
Figura 5.2: (a) Graficos apresentados por Kunisch e Pamp em [6], onde e exibido o
modelo log-distancia (vermelho), o modelo two-ray ground (verde), o modelo de Friis na
frequencia de 5,9 GHz (preto) e as amostras coletadas nas medicoes (azul). (b) Figuras
geradas a partir de simulacoes com o modelo adicionado ao simulador ns-3 utilizando os
parametros definidos na tabela 4.3.
figuras geradas a partir de simulacoes com o modelo que foi adicionado ao simulador
ns-3 utilizando os parametros definidos na tabela 4.3. O modelo log-distancia e
ilustrado nas figuras do ambiente rural e rodovia para facilitar a comparacao com os
graficos de Kunisch e Pamp, mas nao e utilizado no simulador para esses ambientes.
O modelo log-distancia descrito por Kunisch e Pamp ja havia sido implemen-
tado no simulador ns-3, como discutido na subsecao 5.3.1. Os modelos encontrados
por Karedal et al. nao foram incluıdos no simulador por serem facilmente imple-
mentados a partir do modelo de Kunisch e Pamp, que foi adicionado como parte
deste projeto.
5.3.3 Modelo VirtualSource11p
Com o objetivo de incluir um modelo para condicoes sem visada direta em
cruzamentos, o modelo VirtualSource11p foi adicionado ao simulador ns-3 no ambito
60
deste projeto. Foi criada a classe IntersectionPropagationLossModel, que dispoe
de 7 atributos para configurar o ambiente de propagacao: a posicao do cruzamento
(obrigatorio), a frequencia de transmissao, a distancia mınima de validade do mo-
delo, distancia de transicao, largura da via onde esta o receptor, distancia do trans-
missor ate a parede e um valor booleano que indica se o ambiente e suburbano ou
nao. A tabela 5.4 contem a descricao de cada atributo e seus valores padrao. O
codigo-fonte da classe esta disponıvel no apendice C.
Tabela 5.4: Atributos da classe IntersectionPropagationLossModel.
Atributo Tipo Descricaopadrao
Valor
IntersectionCenter Vector2Dnas coordendas (x,y)
Posicao do centro do cruzamento-
Frequency double Frequencia da portadora, em Hz. 5,9 GHz
MinDistance doubleo modelo e valido, em metros.
Distancia acima da qual10 m
BreakDistance doubleem metros.
Distancia de transicao db, 4πhthrλ
RxStreetWidth doublereceptor, em metros.
Largura wr da via do30 m
TxWallDistance doubleate a parede, em metros.
Distancia xt do transmissorwr/2
IsSuburban bool
(parametro is)
False para ambiente urbano.
True para suburbio e
False
O atributo IntersectionCenter e o unico obrigatorio; caso ele nao seja con-
figurado, a simulacao e interrompida e um erro e emitido. No momento, nao e
verificado se a posicao do cruzamento e coerente com as posicoes que foram confi-
guradas para os veıculos, ficando a cargo do usuario o posicionamento correto.
A distancia de transicao db, segundo [30], e dada pela equacao 4.12. Porem,
para dar uma maior flexibilidade ao usuario, a classe implementada possui o parametro
BreakDistance, que pode ser utilizado para configurar uma distancia de transicao
61
especıfica. Caso ele nao seja incluıdo ao instanciar a classe, a distancia de transicao
e calculada com a equacao 4.12 e as alturas do transmissor e receptor sao obtidas a
partir da coordenada z dos dispositivos.
Apesar do parametro xt nao ter sido testado em [7] para gerar a equacao do
modelo VirtualSource11p, foi criado o atributo TxWallDistance para que esse valor
possa ser configurado nas simulacoes. Caso ele nao seja especificado pelo usuario,
utiliza-se metade do parametro RxStreetWidth, assim como foi utilizado no artigo
para obter a equacao desse modelo.
A referencia utilizada para validacao foi a figura 5.3a, extraıda de [7], que
apresenta a potencia de recepcao em funcao da distancia do receptor ao centro do
cruzamento para diversos cruzamentos. Com a potencia de transmissao (PT ) igual a
20 dBm, a perda inerente ao sistema (LS) calculada em [7] como 1,75 dB, e a perda
por propagacao (PL) dada pelo modelo VirtualSource11p (equacao 4.11), obtem-se
a potencia de recepcao (PR) a partir da equacao 5.4.
PR = PT − LS − PL(dt, dr, wr, xt, is) (5.4)
Contudo, ao validar o modelo adicionado como parte deste projeto sem espe-
cificar o parametro TxWallDistance, ou seja, utilizando-o como metade da largura
da via do receptor (como especificado por Mangel et al. na legenda da figura 5.3a),
foi detectada uma discrepancia nos resultados dos cruzamentos 2, 3 e 10. Apos
alguns testes, identificou-se que a causa mais provavel dessa discrepancia seria uma
divisao truncada na implementacao dos autores em [7]. Em diversas linguagens
de programacao, a divisao de dois valores inteiros resulta em uma variavel inteira,
descartando-se a parte decimal em divisoes nao exatas. Por esse motivo, acredita-se
que o valor de xt utilizado por Mangel et al. [7] para gerar os graficos dos cru-
zamentos 2, 3 e 10 (figura 5.3a), onde os valores de wr sao ımpares, foi truncado
para a parte inteira da divisao de wr por 2. A figura 5.4 apresenta testes com os
parametros desses cruzamentos para valores de xt decimais e truncados. Observou-
se que, quando xt e truncado, o resultado ficou como o apresentado por Mangel et
al., visto na figura 5.3a.
Sendo assim, a figura 5.3 apresenta a validacao do modelo implementado pela
classe IntersectionPropagationLossModel, com a ressalva de que os valores de xt
62
utilizados nos cruzamentos 2, 3 e 10 sao resultados de uma divisao truncada de wr
por 2.
5.4 Resultados
5.4.1 Cenarios de simulacao
Com o objetivo de validar a integracao das classes criadas com as funcionali-
dades do simulador ns-3, foram criados alguns cenarios de simulacao para testar os
modelos de canal que foram implementados. Em seguida, foram feitos testes com
um dos modelos variando a quantidade de veıculos na simulacao. O objetivo era
avaliar a relacao da quantidade de dispositivos com a latencia entre a transmissao
e a recepcao de um pacote. Na literatura, e comum considerar uma latencia limite
de 100 ms para aplicacoes voltadas para seguranca no transito [38, 39].
Foram criados quatro cenarios, que serao chamados de cenario rodovia, rural,
urbano e cruzamento. Nos tres primeiros, a simulacao consistia de dois veıculos,
sendo um transmissor e o outro receptor, movendo-se em comboio e com o receptor
se afastando. As velocidades vt e vr do transmissor e do receptor, respectivamente,
para cada cenario sao descritas abaixo. O receptor estava posicionado a 10 metros
de distancia do transmissor no inıcio da simulacao.
• Rodovia: vt = 80 km/h e vr = 90 km/h.
• Rural: vt = 60 km/h e vr = 70 km/h.
• Urbano: vt = 40 km/h e vr = 50 km/h.
No cenario de cruzamento, foram utilizadas os parametros da intersecao 10
descrita em [7], onde a largura da via e de 23 m. O transmissor foi posicionado a
distancias fixas do cruzamento e o receptor deslocava-se livremente na via perpen-
dicular a do transmissor com velocidade de 30 km/h.
Ja para a simulacao de latencia, foi criado um cenario de uma rodovia com
quatro faixas, espacadas de 3 m, sendo duas para cada sentido. Nas faixas mais
proximas do centro da via, os veıculos trafegavam a 90 km/h e, nas outras faixas,
com uma velocidade de 80 km/h. Eles foram distribuıdos igualmente em cada faixa
63
(a)
0 20 40 60 80 100 120 140 160Distancia do receptor ao centro do cruzamento [m]
−60
−65
−70
−75
−80
−85
−90
Potenciaderecepcao[dBm]
Cruzamento 2 e 3 (dt = 30 m, wr = 21 m, xt = 10 m, is = 1)
Cruzamento 2 e 3 (dt = 60 m, wr = 21 m, xt = 10 m, is = 1)
Cruzamento 10 (dt = 30 m, wr = 23 m, xt = 11 m, is = 0)
Cruzamento 10 (dt = 60 m, wr = 23 m, xt = 11 m, is = 0)
Cruzamento 11 (dt = 30 m, wr = 26 m, xt = 13 m, is = 0)
Cruzamento 11 (dt = 60 m, wr = 26 m, xt = 13 m, is = 0)
Cruzamento 11 (dt = 100 m, wr = 26 m, xt = 13 m, is = 0)
Cruzamento 20 (dt = 30 m, wr = 30 m, xt = 15 m, is = 0)
Cruzamento 20 (dt = 60 m, wr = 30 m, xt = 15 m, is = 0)
(b)
Figura 5.3: (a) Grafico apresentado por Mangel et al. em [7], onde cada cor representa um
cruzamento, os diferentes tracos indicam distancias diferentes do receptor ao cruzamento e
os marcadores representam as medicoes obtidas em campo. (b) Figura gerada a partir de
simulacoes com o modelo implementado pela classe IntersectionPropagationLossModel
utilizando os parametros da legenda de (a), porem truncando xt.
64
0 20 40 60 80 100 120 140 160Distancia do receptor ao centro do cruzamento [m]
−60
−65
−70
−75
−80
−85
−90
Potenciaderecepcao[dBm]
Cruzamento 2 e 3 (dt = 30 m, wr = 21 m, xt = 10,5 m)
Cruzamento 2 e 3 (dt = 30 m, wr = 21 m, xt = 10 m)
Cruzamento 2 e 3 (dt = 60 m, wr = 21 m, xt = 10,5 m)
Cruzamento 2 e 3 (dt = 60 m, wr = 21 m, xt = 10 m)
Cruzamento 10 (dt = 30 m, wr = 23 m, xt = 11,5 m)
Cruzamento 10 (dt = 30 m, wr = 23 m, xt = 11 m)
Cruzamento 10 (dt = 60 m, wr = 23 m, xt = 11,5 m)
Cruzamento 10 (dt = 60 m, wr = 23 m, xt = 11 m)
Figura 5.4: Comparacao da potencia de recepcao utilizando a classe
IntersectionPropagationLossModel com valores de xt decimais e truncados.
e posicionados de forma aleatoria ao longo de 1 km no inıcio da simulacao e se
moviam com a velocidade correspondente a sua faixa.
Em todas as simulacoes, eram enviados 10 pacotes por segundo com 400
bytes cada, simulando o envio de BSMs. Foi utilizado o sistema WAVE com acesso
contınuo ao canal de servico 180 (frequencia central em 5,9 GHz) e a potencia de
transmissao era igual a 20 dBm (ou 100 mW). As simulacoes dos cenarios rodovia,
rural, urbano e cruzamento foram executadas 10 vezes e foram calculados a media
e o desvio padrao dos resultados. Ja na analise de latencia, a mesma simulacao
foi executada para cada quantidade de veıculos. O cenario era simulado por 100
segundos e o resultado foi amostrado a cada segundo, calculando-se a media e o
desvio padrao das amostras ao fim da execucao.
5.4.2 Modelos dual-slope e two-ray ground
A figura 5.5 apresenta a Packet Delivery Ratio (PDR), que e a razao entre
a quantidade de pacotes recebida pelo receptor e a quantidade de pacotes transmi-
tidos, em funcao da distancia entre o receptor e o transmissor utilizando o modelo
65
0 250 500 750 1000 1250 1500 1750 2000Distancia entre transmissor e receptor [m]
0,0
0,2
0,4
0,6
0,8
1,0
PDR
LOS Urbano
LOS Rodovia
OLOS Urbano
OLOS Rodovia
Figura 5.5: Packet delivery ratio em funcao da distancia utilizando o modelo dual-slope
em cenario de rodovia e urbano.
dual-slope, descrito na secao 4.2, com os parametros da tabela 4.2, obtidos por Ab-
bas et al. [9]. Como esperado, a PDR para condicao de visada direta e maior do que
quando ha uma obstrucao entre o transmissor e o receptor. Importante ressaltar
que essas simulacoes sao teoricas, ja que a condicao LOS torna-se muito improvavel
com o aumento da distancia entre os dispositivos, especialmente no ambiente ur-
bano. Em [9], por exemplo, foi observado que a chance de ocorrer visada direta e
praticamente nula para distancias maiores do que 600 metros.
Outro ponto interessante, ainda sobre a figura 5.5, e o fato da PDR ser maior
em ambiente urbano. Na descricao sobre o ambiente de medicao em [9], nota-se que
as vias por onde os veıculos trafegaram eram rodeadas por construcoes com 2 a 4
andares, alem de haver arvores e carros estacionados. Essa configuracao de anteparos
provavelmente contribuiu para a formacao de uma guia de onda, concentrando a
potencia do sinal na sentido da via. Alem disso, no ambiente urbano, o alcance
chega proximo de 500 m mesmo com a visada direta obstruıda para uma PDR igual
a 70%.
Para testar a utilizacao do modelo two-ray ground implementado como parte
66
deste projeto, os cenarios rodovia e rural foram simulados com os parametros da
tabela 4.3, descritos por Kunisch e Pump [6]. Tambem foi simulado o modelo log-
distance, descrito na subsecao 4.3, que foi utilizado pelos mesmo autores no ambiente
urbano. A PDR obtida nessas simulacoes em funcao da distancia entre transmissor
e receptor e apresentada na figura 5.6. O desempenho do modelo log-distance no
ambiente urbano assemelha-se ao obtido com o modelo dual-slope OLOS urbano,
apresentado na figura 5.5.
Nota-se que o desempenho em ambiente rural foi bem proximo do cenario de
rodovia. De fato, os arredores de uma rodovia podem se assemelhar bastante a um
ambiente rural, com pouquıssimas construcoes ao longo da via. Contudo, em [6],
nao ha muitas informacoes sobre esses cenarios.
Comparando o desempenho na rodovia ao utilizar os modelos two-ray ground
de Kunisch e Pamp [6] e o dual-slope de Abbas et al. [9], e possıvel observar que, com
o two-ray ground, a PDR ate cerca de 400 m e bastante proxima do modelo LOS
dual-slope para rodovia e, apos essa distancia, decai mais rapidamente, similar ao
modelo OLOS dual-slope para rodovia. Ja que a probabilidade de visada direta entre
os veıculos e inversamente proporcional a distancia e pelo fato desse modelo two-ray
ground ter sido obtido a partir de dados sem diferenciar situacoes com visada direta
e com obstrucao, ele se assemelha a uma composicao dos modelos dual-slope LOS e
OLOS.
Portanto, em situacoes em que e possıvel identificar quando ha obstrucoes
entre o transmissor e receptor, o modelo dual-slope pode ser mais adequado. Porem,
caso essa informacao nao seja conhecida, o modelo two-ray ground consolida de
forma satisfatoria os resultados para LOS e OLOS.
5.4.3 Modelo VirtualSource11p
Para exemplificar uma simulacao envolvendo o modelo para cruzamentos de
Mangel et al., foi utilizado o cenario da intersecao 10 descrito em [7], onde as ruas
possuıam cerca de 23 m de largura em um ambiente urbano. O transmissor foi
fixado a 20, 30, 40, 50 e 60 m do centro do cruzamento. O receptor comecava a
500 m da intersecao e se movia em direcao a ela com uma velocidade constante de
30 km/h. O objetivo era analisar o alcance do sinal do transmissor a medida que ele
67
0 250 500 750 1000 1250 1500 1750 2000Distancia entre transmissor e receptor [m]
0,0
0,2
0,4
0,6
0,8
1,0
PDR
Two-ray Rodovia
Two-ray Rural
Log-distance Urbano
Figura 5.6: Packet delivery ratio (PDR) em funcao da distancia utilizando o modelo
log-distance no ambiente urbano e o modelo two-ray ground em cenario de rodovia e rural.
se aproxima do cruzamento. Os dispositivos estavam a 1,5 m de altura, resultando
em uma distancia de transicao de aproximadamente 180 m (equacao 4.5).
Os resultados estao apresentados na figura 5.7. Uma distancia positiva indica
que o receptor estava se aproximando do cruzamento e o valores negativos indicam
que estava se afastando. Conforme o transmissor se aproxima do cruzamento, o
alcance do sinal na via perpendicular aumenta de forma progressiva, como esperado.
Foi possıvel observar tambem que o alcance obtido nas simulacoes utilizando
o cenario de cruzamento foi menor do que quando os canais dual-slope (figura 5.5)
e two-ray ground (figura 5.6) foram utilizados. Esse resultado condiz com as dife-
rencas entre os cenarios propostos, ja que a propagacao do sinal em uma situacao de
cruzamento sem visada direta envolve reflexoes e difracoes nas construcoes ao longo
das esquinas, resultando em uma maior atenuacao do que em cenarios de rodovia,
por exemplo.
68
−400 −300 −200 −100 0 100 200 300 400Distancia entre receptor e o centro do cruzamento[m]
0,0
0,2
0,4
0,6
0,8
1,0
PDR
Variacao da PDR em funcao da distancia do transmissorno cruzamento 10 (wr = 23 m)
dt = 20 m
dt = 30 m
dt = 40 m
dt = 50 m
dt = 60 m
Figura 5.7: Packet delivery ratio (PDR) em funcao da distancia do receptor ao cruzamento
utilizando o modelo de Mangel et al. [7] e variando a posicao dt do transmissor.
5.4.4 Analise de latencia
Para a analise de latencia, foi utilizado o modelo two-ray ground com os
parametros para rodovia obtidos em [6], apresentados na tabela 4.3. O cenario
utilizado, descrito anteriormente, simula uma rodovia com diferentes concentracoes
de veıculos, variando de 10 a 150 dispositivos.
O resultado e apresentado na figura 5.8. Com o aumento da quantidade
de veıculos e, consequentemente, uma maior congestao do canal, observa-se um
aumento da latencia maxima. Apesar disso, seu valor ainda fica bastante abaixo do
limite considerado de 100 ms.
O tempo total necessario para realizar as simulacoes variando a quantidade
de 10 ate 150 veıculos foi em torno de 2 horas e 30 minutos. Por esse motivo e
para evitar cenarios onde os veıculos estivessem muito proximos, simulando uma
distancia segura de frenagem, a quantidade maxima escolhida foi 150.
69
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150Quantidade de veıculos
5
10
15
20
Latenciamaxim
a[m
s]
Figura 5.8: Latencia maxima observada em um ambiente de rodovia ao variar a quanti-
dade de veıculos. Foi utilizado o modelo two-ray ground com os parametros para rodovia
obtidos em [6], descritos na tabela 4.3.
70
Capıtulo 6
Conclusoes
Este trabalho teve como objetivos expandir as capacidades do simulador ns-
3 no que diz respeito a modelos de canal para ambientes veiculares e propiciar um
conhecimento amplo sobre a norma IEEE 802.11p e sobre a famılia de padroes IEEE
1609.
O capıtulo 1 apresentou uma introducao sobre o tema do projeto, a justifica-
tiva para seu desenvolvimento e objetivos. A metodologia utilizada e a delimitacao
do projeto tambem foram expostas.
No capıtulo 2, informacoes referentes a emenda IEEE 802.11p foram apre-
sentadas. Foram discutidos detalhes sobre VANET, caracterizacao do canal de
propagacao veicular, apresentacao da arquitetura IEEE 802.11, especificacoes da
camada fısica e as mudancas presentes na emenda.
O capıtulo 3 apresentou a arquitetura do sistema WAVE e a famılia de
padroes IEEE 1609, com enfoque aos padroes IEEE 1609.3 e IEEE 1609.4. Este
capıtulo tratou da camada MAC e suas funcoes para permitir operacao em multiplos
canais, como priorizacao de mensagens, coordenacao de canal e controle de acesso.
Foi apresentado, tambem, o protocolo WSMP, desenvolvido especificamente para o
envio de WSMs.
Os modelos de canal encontrados na literatura e escolhidos para serem adici-
onados ao simulador ns-3 foram apresentados no capıtulo 4. Foi feita uma descricao
teorica sobre cada modelo, alem das condicoes sob as quais as medidas em campo
foram obtidas.
No capıtulo 5, as principais caracterısticas do simulador ns-3 foram apresen-
71
tadas e a implementacao de cada modelo no simulador ns-3 foi detalhada e validada
com base nos resultados obtidos pelas referencias que desenvolveram os modelos. Fo-
ram criadas classes em C++, linguagem base do simulador, correspondentes a cada
modelo. Em seguida, foram apresentados resultados de simulacoes realizadas no
simulador ns-3 utilizando os novos modelos. Com elas, foi possıvel confirmar a total
integracao das novas classes com as funcoes do simulador e realizar uma analise de
desempenho dos modelos em diversos cenarios.
A inclusao de metodos para detectar visada direta e obstrucao ao simulador
ns-3, a implementacao de uma interface grafica, com o objetivo de tornar o ns-3 mais
acessıvel, e adicionar algoritmos de ray tracing, que sao utilizados para simular a
trajetoria do sinal e suas reflexoes com base na geometria, sao sugestoes de trabalhos
futuros.
Os codigos-fonte do projeto estao disponıveis em: https://github.com/
Lucas-Cerqueira/Projeto-Final-src.
72
Referencias Bibliograficas
[1] “IEEE Standard for Information technology–Telecommunications and informa-
tion exchange between systems Local and metropolitan area networks–Specific
requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Phy-
sical Layer (PHY) Specifications”, IEEE Std 802.11-2016 (Revision of IEEE
Std 802.11-2012), pp. 1–3534, Dezembro 2016.
[2] “IEEE Guide for Wireless Access in Vehicular Environments (WAVE) - Archi-
tecture”, IEEE Std 1609.0-2013, pp. 1–78, Marco 2014.
[3] “IEEE Standard for Wireless Access in Vehicular Environments (WAVE) –
Networking Services”, IEEE Std 1609.3-2016 (Revision of IEEE Std 1609.3-
2010), pp. 1–160, Abril 2016.
[4] “IEEE Standard for Wireless Access in Vehicular Environments (WAVE) –
Multi-Channel Operation”, IEEE Std 1609.4-2016 (Revision of IEEE Std
1609.4-2010), pp. 1–94, Marco 2016.
[5] Federal Communications Commission, “FCC 99-305”, Outubro 1999.
[6] KUNISCH, J., PAMP, J., “Wideband Car-to-Car Radio Channel Measurements
and Model at 5.9 GHz”. In: 2008 IEEE 68th Vehicular Technology Conference,
pp. 1–5, Setembro 2008.
[7] MANGEL, T., KLEMP, O., HARTENSTEIN, H., “A validated 5.9 GHz Non-
Line-of-Sight path-loss and fading model for inter-vehicle communication”. In:
2011 11th International Conference on ITS Telecommunications, pp. 75–80,
Agosto 2011.
73
[8] RAPPAPORT, T. S., Wireless Communications: Principles and Practice. 2 ed.
Prentice Hall, 2002.
[9] ABBAS, T., SJOBERG, K., KAREDAL, J., et al., “A Measurement Based Sha-
dow Fading Model for Vehicle-to-Vehicle Network Simulations”, International
Journal of Antennas and Propagation, v. 2015, 2015.
[10] CHENG, L., HENTY, B. E., STANCIL, D. D., et al., “Mobile Vehicle-to-
Vehicle Narrow-Band Channel Measurement and Characterization of the 5.9
GHz Dedicated Short Range Communication (DSRC) Frequency Band”, IEEE
Journal on Selected Areas in Communications, v. 25, n. 8, pp. 1501–1516, Ou-
tubro 2007.
[11] CHENG, L., HENTY, B. E., , et al., “Highway and rural propagation channel
modeling for vehicle-to-vehicle communications at 5.9 GHz”. In: 2008 IEEE
Antennas and Propagation Society International Symposium, pp. 1–4, Julho
2008.
[12] KAREDAL, J., CZINK, N., PAIER, A., et al., “Path Loss Modeling for
Vehicle-to-Vehicle Communications”, IEEE Transactions on Vehicular Tech-
nology, v. 60, n. 1, pp. 323–328, Janeiro 2011.
[13] INFORMATION SCIENCES INSTITUTE, U. O. S. C., “The Network Si-
mulator - ns-2”, Disponıvel em: https://www.isi.edu/nsnam/ns/. Acesso em:
27/09/2018.
[14] HENDERSON, T., RILEY, G., S., F., et al., “ns-3 Simulator”, Disponıvel em:
https://www.nsnam.org/. Acesso em: 27/09/2018.
[15] Geneva: World Health Organization, “Global status report on road safety
2018”, 2018. Licence: CC BY-NC-SA 3.0 IGO.
[16] “IEEE Standard for Wireless Access in Vehicular Environments–Security Ser-
vices for Applications and Management Messages”, IEEE Std 1609.2-2016 (Re-
vision of IEEE Std 1609.2-2013), pp. 1–240, Marco 2016.
74
[17] “IEEE Standard for Information technology– Local and metropolitan area
networks– Specific requirements– Part 11: Wireless LAN Medium Access Con-
trol (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wire-
less Access in Vehicular Environments”, IEEE Std 802.11p-2010 (Amendment
to IEEE Std 802.11-2007 as amended by IEEE Std 802.11k-2008, IEEE Std
802.11r-2008, IEEE Std 802.11y-2008, IEEE Std 802.11n-2009, and IEEE Std
802.11w-2009), pp. 1–51, Julho 2010.
[18] LI, M., WU, T., LIN, W., et al., “On the Feasibility of Using 802.11p for Com-
munication of Electronic Toll Collection Systems”. In: 2011 14th International
Conference on Network-Based Information Systems, pp. 68–75, Setembro 2011.
[19] LEE, W. C. Y., Mobile Cellular Telecommunications Systems. McGraw Hill
Publications, 1989.
[20] STEELE, R., Mobile Radio Communications. IEEE Press, 1994.
[21] “IEEE Standard for Telecommunications and Information Exchange Between
Systems - LAN/MAN Specific Requirements - Part 11: Wireless Medium Access
Control (MAC) and physical layer (PHY) specifications: High Speed Physical
Layer in the 5 GHz band”, IEEE Std 802.11a-1999, pp. 1–102, Dezembro 1999.
[22] CHANG, R. W., “Synthesis of band-limited orthogonal signals for multichannel
data transmission”, The Bell System Technical Journal, v. 45, n. 10, pp. 1775–
1796, Dezembro 1966.
[23] VITERBI, A., “Error bounds for convolutional codes and an asymptotically op-
timum decoding algorithm”, IEEE Transactions on Information Theory, v. 13,
n. 2, pp. 260–269, Abril 1967.
[24] Society of Automotive Engineers, “Dedicated Short Range Communications
(DSRC) Message Set Dictionary: SAE-J2735”, Marco 2016.
[25] “Intelligent Transport Systems (ITS);Vehicular Communications; GeoNetwor-
king; Part 4: Geographical addressing and forwarding for point-to-point and
point-to-multipoint communications; Sub-part 1: Media-Independent Functio-
nality”, ETSI EN 302 636-4-1 V1.3.1, pp. 1–97, Agosto 2017.
75
[26] U.S. Department of Transportation, “Intelligent Transportation Systems”, Dis-
ponıvel em: https://www.its.dot.gov/. Acesso em: 26/01/2019.
[27] “IEEE Standard for Information technology–Local and metropolitan area
networks–Specific requirements–Part 11: Wireless LAN Medium Access Con-
trol (MAC) and Physical Layer (PHY) Specifications - Amendment 8: Medium
Access Control (MAC) Quality of Service Enhancements”, IEEE Std 802.11e-
2005 (Amendment to IEEE Std 802.11, 1999 Edition (Reaff 2003), pp. 1–212,
Novembro 2005.
[28] BOBAN, M., VINHOZA, T. T. V., FERREIRA, M., et al., “Impact of Vehicles
as Obstacles in Vehicular Ad Hoc Networks”, IEEE Journal on Selected Areas
in Communications, v. 29, n. 1, pp. 15–28, Janeiro 2011.
[29] BOBAN, M., VIRIYASITAVAT, W., TONGUZ, O. K., “Modeling Vehicle-
to-vehicle Line of Sight Channels and Its Impact on Application-layer Perfor-
mance”. In: Proceeding of the Tenth ACM International Workshop on Vehicu-
lar Inter-networking, Systems, and Applications, VANET ’13, pp. 91–94, New
York, NY, USA, 2013.
[30] EL-SALLABI, H. M., “Fast path loss prediction by using virtual source tech-
nique for urban microcells”. In: VTC2000-Spring. 2000 IEEE 51st Vehicular
Technology Conference Proceedings (Cat. No.00CH37026), v. 3, pp. 2183–2187
vol.3, Maio 2000.
[31] NETWORK RESEARCH GROUP, L. B. N. L., “ns version 1 - LBNL Network
Simulator”, Disponıvel em: https://ee.lbl.gov/ns/. Acesso em: 27/09/2018.
[32] KESHAV, S., REAL: A Network Simulator, Report UCB/CSD-88-472, EECS
Department, University of California, Berkeley, Dezembro 1988.
[33] Tcl Core Team, “Tcl Developer Xchange”, Disponıvel em: https://www.tcl.tk/.
Acesso em: 26/01/2019.
[34] “Python”, Disponıvel em: https://www.python.org/. Acesso em: 28/01/2019.
76
[35] ROSTAMI, A., KRISHNAN, H., GRUTESER, M., “V2V Safety Communi-
cation Scalability Based on the SAE J2945/1 Standard”. In: Proceedings of
Workshop of ITS America, 2018.
[36] ALAMI, A. J., EL-SAYED, K., AL-HORR, A., et al., “Improving the Car GPS
accuracy using V2V and V2I Communications”. In: 2018 IEEE International
Multidisciplinary Conference on Engineering Technology (IMCET), pp. 1–6,
Novembro 2018.
[37] ALMEIDA, T. T., GOMES, L. D. C., ORTIZ, F. M., et al., “IEEE 802.11
p Performance Evaluation: Simulations vs. Real Experiments”. In: 2018 21st
International Conference on Intelligent Transportation Systems (ITSC), pp.
3840–3845, IEEE, 2018.
[38] GRAFLING, S., MAHONEN, P., RIIHIJARVI, J., “Performance evaluation of
IEEE 1609 WAVE and IEEE 802.11p for vehicular communications”. In: 2010
Second International Conference on Ubiquitous and Future Networks (ICUFN),
pp. 344–348, Junho 2010.
[39] KHAIRNAR, V. D., KOTECHA, K., “Performance of Vehicle-to-Vehicle Com-
munication using IEEE 802.11p in Vehicular Ad-hoc Network Environment”,
CoRR, v. abs/1304.3357, 2013.
77
Apendice A
Codigo-fonte do modelo dual-slope
A.1 dual-log-propagation-loss-model.h
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#ifndef DUAL LOG PROPAGATION LOSS MODEL H
#define DUAL LOG PROPAGATION LOSS MODEL H
#include ” s t r i n g . h”
#include ”ns3/ nstime . h”
#include ”ns3/ propagation−l o s s−model . h”
#include <map>
namespace ns3
class DualLogPropagationLossModel : public PropagationLossModel
public :
/∗∗∗ \ b r i e f Get the type ID .
∗ \ re turn the o b j e c t TypeId
∗/
78
stat ic TypeId GetTypeId (void ) ;
DualLogPropagationLossModel ( ) ;
private :
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗/DualLogPropagationLossModel (
const DualLogPropagationLossModel&
) ;
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗ \ r e t u r n s
∗/DualLogPropagationLossModel& operator= (
const DualLogPropagationLossModel&
) ;
virtual double DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const ;
virtual i n t 6 4 t DoAssignStreams ( i n t 6 4 t stream ) ;
double m distance0 ; //!< Beginning o f the near f i e l d
double m distance1 ; //!< Beginning o f the f a r f i e l d .
double m exponent0 ; //!< The exponent f o r the near f i e l d .
double m exponent1 ; //!< The exponent f o r the f a r f i e l d .
double m re fe renceLoss ; //!< Reference l o s s at d i s t a n c e d0 (dB ) .
;
/∗ namespace ns3∗/
#endif /∗ DUAL LOG PROPAGATION LOSS MODEL H ∗/
79
A.2 dual-log-propagation-loss-model.cc
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#include ”ns3/ propagation−l o s s−model . h”
#include ”ns3/ log . h”
#include ”ns3/ mobi l i ty−model . h”
#include ”ns3/ double . h”
#include ”ns3/ s t r i n g . h”
#include ”ns3/ boolean . h”
#include ”ns3/ po in t e r . h”
#include <cmath>
#include <complex>
#include ” s t r i n g . h”
#include ”dual−log−di s tance−propagation−l o s s−model . h”
#include <fstream>
namespace ns3
NS LOG COMPONENT DEFINE ( ” DualLogPropagationLossModel ” ) ;
NS OBJECT ENSURE REGISTERED ( DualLogPropagationLossModel ) ;
TypeId
DualLogPropagationLossModel : : GetTypeId (void )
stat ic TypeId t i d = TypeId ( ”ns3 : : DualLogPropagationLossModel ” )
. SetParent<PropagationLossModel> ( )
. SetGroupName ( ” Propagation ” )
. AddConstructor<DualLogPropagationLossModel> ( )
. AddAttribute ( ” Distance0 ” ,
” Beginning o f the f i r s t ( near ) d i s t anc e f i e l d ” ,
DoubleValue ( 1 . 0 ) ,
80
MakeDoubleAccessor (
&DualLogPropagationLossModel : : m distance0
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” Distance1 ” ,
” Beginning o f the second ( f a r ) d i s t ance f i e l d . ” ,
DoubleValue ( 2 0 0 . 0 ) ,
MakeDoubleAccessor (
&DualLogPropagationLossModel : : m distance1
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ”Exponent0” ,
”The exponent f o r the f i r s t f i e l d . ” ,
DoubleValue ( 1 . 9 ) ,
MakeDoubleAccessor (
&DualLogPropagationLossModel : : m exponent0
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ”Exponent1” ,
”The exponent f o r the second f i e l d . ” ,
DoubleValue ( 3 . 8 ) ,
MakeDoubleAccessor (
&DualLogPropagationLossModel : : m exponent1
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” ReferenceLoss ” ,
”The r e f e r e n c e l o s s at d i s t anc e d0 (dB) . \( Defau l t i s F r i i s at 1m with 5 .9 GHz) ” ,
DoubleValue ( 4 7 . 8 6 5 ) ,
MakeDoubleAccessor (
&DualLogPropagationLossModel : : m re f e renceLoss
) ,
MakeDoubleChecker<double> ( ) )
;
return t i d ;
DualLogPropagationLossModel : : DualLogPropagationLossModel ( )
81
double
DualLogPropagationLossModel : : DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const
double d i s t anc e = a−>GetDistanceFrom (b ) ;
NS ASSERT ( d i s t anc e >= 0 ) ;
double pathLossDb ;
i f ( d i s t anc e < m distance0 )
pathLossDb = 0 ;
else i f ( d i s t anc e < m distance1 )
pathLossDb = m re fe renceLoss
+ 10 ∗ m exponent0 ∗ std : : log10 ( d i s t anc e / m distance0 ) ;
else
pathLossDb = m re fe renceLoss
+ 10 ∗ m exponent0 ∗ std : : log10 ( m distance1 / m distance0 )
+ 10 ∗ m exponent1 ∗ std : : log10 ( d i s t anc e / m distance1 ) ;
NS LOG DEBUG ( ” DualLogDistance d i s t ance=” << d i s t anc e << ”m, ” <<
” at tenuat ion=” << pathLossDb << ”dB” ) ;
return txPowerDbm − pathLossDb ;
i n t 6 4 t
DualLogPropagationLossModel : : DoAssignStreams ( i n t 6 4 t stream )
return 0 ;
82
// namespace ns3
83
Apendice B
Codigo-fonte do modelo two-ray
ground
B.1 kunisch-tworay-propagation-loss-model.h
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#ifndef KUNISCH TWORAY PROPAGATION LOSS MODEL H
#define KUNISCH TWORAY PROPAGATION LOSS MODEL H
#include ” s t r i n g . h”
#include ”ns3/ nstime . h”
#include ”ns3/ propagation−l o s s−model . h”
#include <map>
namespace ns3
class KunischTwoRayPropagationLossModel : public PropagationLossModel
public :
/∗∗∗ \ b r i e f Get the type ID .
84
∗ \ re turn the o b j e c t TypeId
∗/stat ic TypeId GetTypeId (void ) ;
KunischTwoRayPropagationLossModel ( ) ;
/∗∗∗ \param frequency (Hz)
∗∗ Set the c a r r i e r f requency used in the TwoRay model
∗ c a l c u l a t i o n .
∗/void SetFrequency (double f r equency ) ;
/∗∗∗ \ r e t u r n s the curren t f requency (Hz)
∗/double GetFrequency (void ) const ;
/∗∗∗ \param minDistance the minimum d i s t a n c e
∗∗ Below t h i s d i s tance , the txpower i s re turned
∗ unmodif ied as the rxpower .
∗/void SetMinDistance (double minDistance ) ;
/∗∗∗ \ r e t u r n s the minimum d i s t a n c e .
∗/double GetMinDistance (void ) const ;
/∗∗∗ \ r e t u r n s the curren t system l o s s ( dimension− l e s s )
∗/double GetSystemLoss (void ) const ;
/∗∗∗ \param noi seS t d the no i se s tandard d e v i a t i o n
∗∗ Se t s the AWGN standard d e v i a t i o n
85
∗/void SetNoiseStd (double no i seStd ) ;
/∗∗∗ \ r e t u r n s the AWGN standard d e v i a t i o n
∗/double GetNoiseStd (void ) const ;
private :
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗/KunischTwoRayPropagationLossModel (
const KunischTwoRayPropagationLossModel &
) ;
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗ \ r e t u r n s
∗/KunischTwoRayPropagationLossModel & operator = (
const KunischTwoRayPropagationLossModel &
) ;
virtual double DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const ;
virtual i n t 6 4 t DoAssignStreams ( i n t 6 4 t stream ) ;
/∗∗∗ Transforms a Dbm v a l u e to Watt
∗ \param dbm the Dbm v a l u e
∗ \ re turn the Watts
∗/double DbmToW (double dbm) const ;
86
/∗∗∗ Transforms a Watt v a l u e to Dbm
∗ \param w the Watt v a l u e
∗ \ re turn the Dbm
∗/double DbmFromW (double w) const ;
double m lambda ; //!< the c a r r i e r wave leng th
double m frequency ; //!< the c a r r i e r f requency
double m minDistance ; //!< minimum d i s t a n c e f o r the model
double m coe f f i c i entMag ; //!< r e f l e c t i o n c o e f f i c i e n t magnitude
double m c o e f f i c i e n t P h a s e ; //!< r e f l e c t i o n c o e f f i c i e n t phase
double m baseGain ; //!< cons tant base channel gain
;
/∗ namespace ns3∗/
#endif /∗ KUNISCH TWORAY PROPAGATION LOSS MODEL H ∗/
B.2 kunisch-tworay-propagation-loss-model.cc
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#include ”ns3/ propagation−l o s s−model . h”
#include ”ns3/ log . h”
#include ”ns3/ mobi l i ty−model . h”
#include ”ns3/ double . h”
#include ”ns3/ s t r i n g . h”
#include ”ns3/ boolean . h”
#include ”ns3/ po in t e r . h”
#include <cmath>
#include <complex>
#include ” s t r i n g . h”
87
#include ” kunisch−tworay−propagation−l o s s−model . h”
#include <fstream>
namespace ns3
NS LOG COMPONENT DEFINE ( ”KunischTwoRayPropagationLossModel” ) ;
NS OBJECT ENSURE REGISTERED ( KunischTwoRayPropagationLossModel ) ;
TypeId
KunischTwoRayPropagationLossModel : : GetTypeId (void )
stat ic TypeId t i d = TypeId ( ”ns3 : : KunischTwoRayPropagationLossModel” )
. SetParent<PropagationLossModel> ( )
. SetGroupName ( ” Propagation ” )
. AddConstructor<KunischTwoRayPropagationLossModel> ( )
. AddAttribute ( ”Frequency” ,
”The c a r r i e r f requency ( in Hz) at which \propagat ion occurs ( d e f a u l t i s 5 .15 GHz) . ” ,
DoubleValue ( 5 . 9 e9 ) ,
MakeDoubleAccessor (
&KunischTwoRayPropagationLossModel : : SetFrequency ,
&KunischTwoRayPropagationLossModel : : GetFrequency
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” MinDistance ” ,
”The d i s t anc e under which the propagat ion model \uses F r i i s model (m) ” ,
DoubleValue (32 ) ,
MakeDoubleAccessor (
&KunischTwoRayPropagationLossModel : : SetMinDistance ,
&KunischTwoRayPropagationLossModel : : GetMinDistance
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ”BaseGain” ,
”The constant base gain o f the channel in dB\( d e f a u l t i s −9.0 dB) ” ,
DoubleValue (−9.0) ,
88
MakeDoubleAccessor (
&KunischTwoRayPropagationLossModel : : m baseGain
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” Re f l e c t i onCoe f f i c i en tMag ” ,
”The magnitude o f the complex r e f l e c t i o n c o e f f i c i e n t \( d e f a u l t i s 0 . 353 ) ” ,
DoubleValue ( 0 . 3 5 3 ) ,
MakeDoubleAccessor (
&KunischTwoRayPropagationLossModel : : m coe f f i c i entMag
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” R e f l e c t i o n C o e f f i c i e n t P h a s e ” ,
”The phase o f the complex r e f l e c t i o n c o e f f i c i e n t \in degree s ( d e f a u l t i s −154 degree s ) ” ,
DoubleValue (−154.0) ,
MakeDoubleAccessor (
&KunischTwoRayPropagationLossModel : : m c o e f f i c i e n t P h a s e
) ,
MakeDoubleChecker<double> ( ) )
;
return t i d ;
KunischTwoRayPropagationLossModel : : KunischTwoRayPropagationLossModel ( )
void
KunischTwoRayPropagationLossModel : : SetMinDistance (double minDistance )
m minDistance = minDistance ;
double
KunischTwoRayPropagationLossModel : : GetMinDistance (void ) const
return m minDistance ;
89
void
KunischTwoRayPropagationLossModel : : SetFrequency (double f r equency )
m frequency = frequency ;
stat ic const double C = 299792458 .0 ; // speed o f l i g h t in vacuum
m lambda = C / frequency ;
double
KunischTwoRayPropagationLossModel : : GetFrequency (void ) const
return m frequency ;
double
KunischTwoRayPropagationLossModel : :DbmToW (double dbm) const
double mw = std : : pow ( 1 0 . 0 ,dbm / 1 0 . 0 ) ;
return mw / 1 0 0 0 . 0 ;
double
KunischTwoRayPropagationLossModel : :DbmFromW (double w) const
double dbm = std : : log10 (w ∗ 1000 .0 ) ∗ 1 0 . 0 ;
return dbm;
double
KunischTwoRayPropagationLossModel : : DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const
double d i s t anc e = a−>GetDistanceFrom (b ) ;
// Get the h e i g h t o f the Tx and Rx antennas
double txAntHeight = a−>GetPos i t ion ( ) . z ;
90
double rxAntHeight = b−>GetPos i t ion ( ) . z ;
double r e f l e c t e d D i s t a n c e = std : : s q r t (
std : : pow( d i s tance , 2) + 4 ∗ txAntHeight ∗ rxAntHeight
) ;
i f ( d i s t anc e <= m minDistance )
// Use F r i i s model
double numerator = m lambda ∗ m lambda ;
double tmp = M PI ∗ d i s t anc e ;
double denominator = 16 ∗ tmp ∗ tmp ;
double pr = 10 ∗ std : : log10 ( numerator / denominator ) + m baseGain ;
return txPowerDbm + pr ;
double k = ( 2 . 0 ∗ M PI) / m lambda ;
const std : : complex<double> j (0 , 1 ) ;
double phaseInRadians = ( m c o e f f i c i e n t P h a s e ∗ M PI) / 1 8 0 . 0 ;
s td : : complex<double> g roundCoe f f i c i en t = std : : po la r ( m coef f i c i entMag ,
phaseInRadians ) ;
s td : : complex<double>
complexFactor = ( std : : exp((− j ) ∗ k ∗ d i s t anc e ) / d i s t anc e ) +
( g roundCoe f f i c i en t ∗ std : : exp((− j ) ∗ k ∗ r e f l e c t e d D i s t a n c e ) /
r e f l e c t e d D i s t a n c e ) ;
double
channelGain = m baseGain + 20 .0 ∗ (
std : : log10 ( ( m lambda / ( 4 . 0 ∗ M PI ) ) ∗ std : : abs ( complexFactor ) )
) ;
NS LOG DEBUG ( ” d i s t anc e=” << d i s t anc e << ”m, txPower=” << txPowerDbm <<
”dBm, channelGain=” << channelGain << ”dB” ) ;
return txPowerDbm + channelGain ;
91
i n t 6 4 t
KunischTwoRayPropagationLossModel : : DoAssignStreams ( i n t 6 4 t stream )
return 0 ;
// namespace ns3
92
Apendice C
Codigo-fonte do modelo
VirtualSource11p
C.1 intersection-propagation-loss-model.h
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#ifndef INTERSECTION PROPAGATION LOSS MODEL H
#define INTERSECTION PROPAGATION LOSS MODEL H
#include ” s t r i n g . h”
#include ”ns3/ nstime . h”
#include ”ns3/ vec to r . h”
#include ”ns3/ propagation−l o s s−model . h”
#include <map>
namespace ns3
class Inte r sec t ionPropagat ionLossMode l : public PropagationLossModel
public :
/∗∗
93
∗ \ b r i e f Get the type ID .
∗ \ re turn the o b j e c t TypeId
∗/stat ic TypeId GetTypeId (void ) ;
Inte r sec t ionPropagat ionLossMode l ( ) ;
/∗∗∗ \param frequency (Hz)
∗∗ Set the c a r r i e r f requency used in the TwoRay model
∗ c a l c u l a t i o n .
∗/void SetFrequency (double f r equency ) ;
/∗∗∗ \ r e t u r n s the curren t f requency (Hz)
∗/double GetFrequency (void ) const ;
/∗∗∗ \param i n t e r s e c c e n t e r
∗∗ Set the i n t e r s e c t i o n c e n t e r p o s i t i o n .
∗/void S e t I n t e r s e c t i o n ( Vector2D i n t e r s e c c e n t e r ) ;
/∗∗∗ \ r e t u r n s the i n t e r s e c t i o n c e n t e r p o s i t i o n
∗/Vector2D G e t I n t e r s e c t i o n (void ) const ;
private :
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗/Inte r sec t ionPropagat ionLossMode l (
94
const Inte r sec t ionPropagat ionLossMode l&
) ;
/∗∗∗ \ b r i e f Copy c o n s t r u c t o r
∗∗ Defined and unimplemented to avoid misuse
∗ \ r e t u r n s
∗/Inte r sec t ionPropagat ionLossMode l& operator= (
const Inte r sec t ionPropagat ionLossMode l&
) ;
virtual double DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const ;
virtual i n t 6 4 t DoAssignStreams ( i n t 6 4 t stream ) ;
double m lambda ; //!< the c a r r i e r wave leng th
double m frequency ; //!< the c a r r i e r f requency
bool m i n t e r s e c s e t = fa l se ; //!< Whether i n t e r s e c t i o n was s e t
Vector2D m i n t e r s e c c e n t e r ; //!< I n t e r s e c t i o n c e n t e r c o o r d i n a t e s
double m min distance ; //!< Min . d i s t a n c e to the i n t e r s e c t i o n
double m break di s tance ; //!< Break even d i s t a n c e .
double m rx s t r e e t w id th ; //!< Receiver s t r e e t width
double m tx w a l l d i s t an c e ; //!< Distance o f t r a n s m i t t e r to w a l l
bool m is suburban ;
;
/∗ namespace ns3∗/
#endif /∗ INTERSECTION PROPAGATION LOSS MODEL H ∗/
95
C.2 intersection-propagation-loss-model.cc
/∗ −∗− Mode :C++; c−f i l e −s t y l e :” gnu ” ; indent−tabs−mode : n i l ; −∗− ∗//∗∗ Author : Lucas de A. Cerqueira < l u c a s . c e r q u e i r a @ p o l i . u f r j . br>
∗ Univers idade Federa l do Rio de Janeiro (UFRJ)
∗/
#include ”ns3/ propagation−l o s s−model . h”
#include ”ns3/ log . h”
#include ”ns3/ mobi l i ty−model . h”
#include ”ns3/ a t t r i b u t e . h”
#include ”ns3/ vec to r . h”
#include ”ns3/ double . h”
#include ”ns3/ s t r i n g . h”
#include ”ns3/ boolean . h”
#include ”ns3/ po in t e r . h”
#include <cmath>
#include <complex>
#include ” s t r i n g . h”
#include ” i n t e r s e c t i o n−propagation−l o s s−model . h”
#include <fstream>
namespace ns3
NS LOG COMPONENT DEFINE ( ” Inter sec t ionPropagat ionLossMode l ” ) ;
NS OBJECT ENSURE REGISTERED ( Inter sec t ionPropagat ionLossMode l ) ;
TypeId
Inter sec t ionPropagat ionLossMode l : : GetTypeId (void )
stat ic TypeId t i d = TypeId ( ”ns3 : : Inte r sec t ionPropagat ionLossMode l ” )
. SetParent<PropagationLossModel> ( )
. SetGroupName ( ” Propagation ” )
. AddConstructor<Intersect ionPropagat ionLossMode l> ( )
. AddAttribute ( ” I n t e r s e c t i o n C e n t e r ” ,
96
” I n t e r s e c t i o n cente r coo rd ina t e s (x , y ) . ” ,
EmptyAttributeValue ( ) ,
MakeVector2DAccessor (
&Inter sec t ionPropagat ionLossMode l : : S e t I n t e r s e c t i o n ,
&Inter sec t ionPropagat ionLossMode l : : G e t I n t e r s e c t i o n
) ,
MakeVector2DChecker ( ) )
. AddAttribute ( ”Frequency” ,
”The c a r r i e r f requency ( in Hz) at which\propagat ion occurs ( d e f a u l t i s 5 .15 GHz) . ” ,
DoubleValue ( 5 . 9 e9 ) ,
MakeDoubleAccessor (
&Inter sec t ionPropagat ionLossMode l : : SetFrequency ,
&Inter sec t ionPropagat ionLossMode l : : GetFrequency
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” MinDistance ” ,
”The r e c e i v e r minimum d i s t anc e to the i n t e r s e c t i o n \in meters ( d e f a u l t i s 10 m) . ” ,
DoubleValue (10 ) ,
MakeDoubleAccessor (
&Inter sec t ionPropagat ionLossMode l : : m min distance
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” BreakDistance ” ,
”The break event d i s t anc e in meters \( d e f a u l t i s Fre sne l d i s t anc e ) . ” ,
DoubleValue (−1) ,
MakeDoubleAccessor (
&Inter sec t ionPropagat ionLossMode l : : m break di s tance
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ”RxStreetWidth” ,
” Rece iver s t r e e t width in meters ( d e f a u l t i s 30 m) . ” ,
DoubleValue (30 ) ,
MakeDoubleAccessor (
&Inter sec t ionPropagat ionLossMode l : : m rx s t r e e t w id th
) ,
MakeDoubleChecker<double> ( ) )
97
. AddAttribute ( ”TxWallDistance” ,
” Distance o f t r an smi t t e r to wa l l in meters \( d e f a u l t i s 15 m) . ” ,
DoubleValue (−1) ,
MakeDoubleAccessor (
&Inter sec t ionPropagat ionLossMode l : : m t x w a l l d i s t an c e
) ,
MakeDoubleChecker<double> ( ) )
. AddAttribute ( ” IsSuburban ” ,
” Flag to i n d i c a t e whether i t i s a suburban \environment or not ( d e f a u l t i s f a l s e ) . ” ,
BooleanValue ( fa l se ) ,
MakeBooleanAccessor (
&Inter sec t ionPropagat ionLossMode l : : m is suburban
) ,
MakeBooleanChecker ( ) )
;
return t i d ;
void
Inte r sec t ionPropagat ionLossMode l : : SetFrequency (double f r equency )
m frequency = frequency ;
stat ic const double C = 299792458 .0 ; // speed o f l i g h t in vacuum
m lambda = C / frequency ;
double
Inte r sec t ionPropagat ionLossMode l : : GetFrequency (void ) const
return m frequency ;
void
Inte r sec t ionPropagat ionLossMode l : : S e t I n t e r s e c t i o n (
Vector2D i n t e r s e c c e n t e r
)
98
m i n t e r s e c c e n t e r = i n t e r s e c c e n t e r ;
m i n t e r s e c s e t = true ;
Vector2D
Inter sec t ionPropagat ionLossMode l : : G e t I n t e r s e c t i o n (void ) const
return m i n t e r s e c c e n t e r ;
Inte r sec t ionPropagat ionLossMode l : : Inte r sec t ionPropagat ionLossMode l ( )
m i n t e r s e c s e t = fa l se ;
double
Inte r sec t ionPropagat ionLossMode l : : DoCalcRxPower (double txPowerDbm ,
Ptr<MobilityModel> a ,
Ptr<MobilityModel> b) const
NS ASSERT MSG (
m i n t e r s e c s e t == true ,
”The a t t r i b u t e I n t e r s e c t i o n C e n t e r must be s e t . ”
) ;
Vector3D txPos = a−>GetPos i t ion ( ) ;
Vector3D rxPos = b−>GetPos i t ion ( ) ;
double txHeight = txPos . z ;
double rxHeight = rxPos . z ;
double txDistance = Calcu la teDi s tance (
Vector2D ( txPos . x , txPos . y ) ,
m i n t e r s e c c e n t e r
) ;
double rxDistance = Calcu la teDi s tance (
Vector2D ( rxPos . x , rxPos . y ) ,
99
m i n t e r s e c c e n t e r
) ;
double t x w a l l d i s t a n c e ;
double br eak d i s t ance ;
double pathLossDb ;
i f ( m break di s tance == −1) // Break even d i s t a n c e not s e t
// I f i t was not se t , use Fresne l zone d i s t a n c e
br eak d i s t ance = 4 ∗ txHeight ∗ rxHeight / m lambda ;
else
br eak d i s t ance = m break d i s tance ;
i f ( m tx w a l l d i s t an c e == −1) // Tx d i s t a n c e to w a l l not s e t
// I f i t was not se t , use h a l f o f the r e c e i v e r s t r e e t width
t x w a l l d i s t a n c e = m rx s t r e e t w id th / 2 . 0 ;
else
t x w a l l d i s t a n c e = m tx w a l l d i s t an c e ;
i f ( rxDistance < m min distance )
pathLossDb = 0 ;
else
double geometryFactor = std : : pow (
t x w a l l d i s t a n c e ∗ m rx st ree t w idth ,
0 .81
) ;
double d i s tanceFacto r = std : : pow ( txDistance , 0 . 957 ) ∗ rxDistance ;
i f ( rxDistance > br eak d i s t ance )
d i s tanceFacto r ∗= ( rxDistance / b r eak d i s t ance ) ;
100
pathLossDb = 3.75 + 26 .9 ∗ std : : log10 (
d i s tanceFacto r / geometryFactor ∗ 4 .0 ∗ M PI / m lambda
) + 2.94 ∗ ( int ) m is suburban ;
pathLossDb += 1 . 7 5 ; // system l o s s
return txPowerDbm − pathLossDb ;
i n t 6 4 t
Inter sec t ionPropagat ionLossMode l : : DoAssignStreams ( i n t 6 4 t stream )
return 0 ;
// namespace ns3
101