Implementação de Métodos de Sincronismo em FPGA para DSL de

Transcrição

Implementação de Métodos de Sincronismo em FPGA para DSL de
UNIVERSIDADE FEDERAL DO PARÁ
INSTITUTO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
TÍTULO DO TRABALHO
Implementação de Métodos de Sincronismo em
FPGA para DSL de Quarta Geração
NOME DO AUTOR
Ilan Sousa Correa
DM: 04/2015
UFPA / ITEC / PPGEE
Campus Universitário do Guamá
Belém-Pará-Brasil
2015
UNIVERSIDADE FEDERAL DO PARÁ
INSTITUTO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
NOME DO AUTOR
Ilan Sousa Correa
TÍTULO DO TRABALHO
Implementação de Métodos de Sincronismo em
FPGA para DSL de Quarta Geração
DM: 04/2015
UFPA / ITEC / PPGEE
Campus Universitário do Guamá
Belém-Pará-Brasil
2015
UNIVERSIDADE FEDERAL DO PARÁ
INSTITUTO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
NOME DO AUTOR
Ilan Sousa Correa
TÍTULO DO TRABALHO
Implementação de Métodos de Sincronismo em
FPGA para DSL de Quarta Geração
Dissertação submetida à Banca Examinadora do Programa de Pós-graduação
em Engenharia Elétrica da UFPA para
a obtenção do Grau de Mestre em Engenharia Elétrica, ênfase em Telecomunicações.
UFPA / ITEC / PPGEE
Campus Universitário do Guamá
Belém-Pará-Brasil
2015
Dados Internacionais de Catalogação-na-Publicação (CIP)
Sistema de Bibliotecas da UFPA
Correa, Ilan Sousa, 1990Implementação de métodos de sincronismo em fpga para
dsl de quarta geração / Ilan Sousa Correa. - 2015.
Orientador: Aldebaro barreto da Rocha
Klautau Júnior.
Dissertação (Mestrado) - Universidade
Federal do Pará, Instituto de Tecnologia,
Programa de Pós-Graduação em Engenharia
Elétrica, Belém, 2015.
1. Modem. 2. Linhas digitais de assinantes.
3. Arranjos de lógica programável em campo. 4.
Sistemas de comunicação em banda larga. I.
Título.
CDD 22. ed. 621.39814
UNIVERSIDADE FEDERAL DO PARÁ
INSTITUTO DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
Implementação de Métodos de Sincronismo em FPGA para DSL de Quarta
Geração
AUTOR: Ilan Sousa Correa
DISSERTAÇÃO DE MESTRADO SUBMETIDA À AVALIAÇÃO DA BANCA EXAMINADORA
APROVADA PELO COLEGIADO DO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA DA UNIVERSIDADE FEDERAL DO PARÁ E JULGADA ADEQUADA
PARA OBTENÇÃO DO GRAU DE MESTRE EM ENGENHARIA ELÉTRICA NA ÁREA DE
TELECOMUNICAÇÕES.
APROVADA EM 13/02/2015
BANCA EXAMINADORA:
.................................................................................................
Prof. Dr. Aldebaro Barreto da Rocha Klautau Júnior (ORIENTADOR - UFPA)
.................................................................................................
Prof. Dr. Adalbery Rodrigues Castro (MEMBRO - UFPA)
.................................................................................................
Dr.
Diogo Acatauassu Nunes (MEMBRO - UFPA)
.................................................................................................
Prof. Dr. Evaldo Gonçalves Pelaes (MEMBRO - UFPA)
.................................................................................................
Prof. Dr. Francisco Carlos Bentes Frey Muller (MEMBRO - UFPA)
.................................................................................................
Prof. Dr. Marco José de Sousa (MEMBRO - UFPA)
VISTO:
.................................................................................................
Prof. Dr. Evaldo Gonçalves Pelaes
COORDENADOR DO PPGEE/ITEC/UFPA
Agradecimentos
Agradeço a Deus por me dar a sabedoria necessária para eu conseguir chegar até
aqui.
Agradeço aos meus familiares, em especial à minha avó Zenaide, por sempre me darem o suporte necessário para a minha formação profissional e, principalmente, a formação
pessoal e moral, sempre com palavras de carinho e encorajamento; à minha amada Camila, pelo seu carinho e apoio, tornando mais leve minha caminhada até aqui. Agradeço
a todos os meus outros familiares, que apesar da distância e do tempo, nunca me deixam
esquecer da grande famı́lia que faço parte. Aos meus amigos e colegas, os quais foram
fundamentais para chegar até aqui, principalmente os amigos da UFPA, do LAPS e do
LASSE, os quais me ajudaram não somente como pessoa, mas também como engenheiro.
Agradeço à equipe montada para o desenvolvimento do projeto que desencadeou
nessa dissertação: meu orientador Aldebaro Klautau, Igor Almeida, Leonardo Ramalho
e Joary Wanzeler, que trabalharam diretamente comigo no tempo que durou o projeto, e
me cederam alguns resultados de seus trabalhos mostrados nessa dissertação; e também
à todos os outros que também fazem parte da equipe.
Gostaria de agradecer à Ericsson, pelo financiamento da pesquisa e desenvolvimento do protótipo que resultou nessa dissertação.
Ilan Sousa Correa
Resumo
Tecnologias Digital Subscriber Line (DSL) são muito populares devido à relativa facilidade
de implantação, pois utilizam cabos telefônicos, que são encontrados em, virtualmente,
todas as cidades. Há tecnologias consideradas melhores que o DSL, como as fibras óticas,
entretanto, sua implantação é mais cara, o que faz a utilização de DSL para prover acesso
às residências ainda seja mais viável. Devido à existência dessas tecnologias consideradas melhores, o fim do uso dos cabos telefônicos (de cobre) já foi previsto algumas
vezes, entretanto, devido ao seu baixo custo, essa tecnologia ainda é utilizada. Com base
nisso, a tecnologia DSL sofreu várias evoluções ao longo dos anos, sendo que a última de
suas evoluções é considerada como sendo a quarta geração do DSL, e é conhecida como
G.fast. A quarta geração do DSL encontra-se em processo de padronização, sendo que
sua primeira versão foi lançada recentemente. Este trabalho apresenta técnicas de sincronismo e correção de diferenças de clock que podem ser utilizadas em modems DSL
de quarta geração. Essas técnicas foram criadas para lidar com as especificidades desta
última versão, e são avaliadas em um protótipo que utiliza placas de avaliação de DSP
e FPGA para acelerar o processo de implementação. Serão apresentadas as técnicas de
sincronismo criadas, seus desempenhos e utilização de recursos para sua implementação,
e também formas de paralelização no FPGA para facilitar a implementação das técnicas.
PALAVRAS-CHAVES: DSL; Sincronismo; FPGA; DSP; Rádio definido por software;
TDD.
Abstract
Digital Subscriber Line (DSL) technologies are very popular, mainly due its relative ease
deployment, because it uses telephone cables which are found in, virtually, every city.
There are technologies which are considered better than DSL, for instance optical fibers,
however, DSL’s implantation is much cheaper, and thus it is use for providing home access
network is still more suitable. Because of the existence of those better technologies the
ending of the use of telephone cables for access networks has been predicted some time,
but, again, due to its low cost it is still used. Based on this, DSL technology has suffered
some evolutions during the years, and the last one is considered fourth generation and
is known as G.fast. This generation is in process of standardization, and its first version
has been released recently. This work presents synchronism and clock frequency offset
techniques for fourth generation DSL. These techniques have been created for dealing
with particularities of this last generation and have been evaluated in a hardware prototype that uses DSP and FPGA boards, which allow speeding up implementation. It
is presented in details the techniques created, their performance and resources used for
their implementation.
KEYWORDS: DSL; Synchronism; FPGA; DSP; Software-defined radio; TDD.
Sumário
Lista de Figuras
iii
Lista de Tabelas
v
Glossário
vi
1 Introdução
1
1.1
Visão geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Sobre este trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
2 Situando o Trabalho na Área de Telecomunicações
2.1
2.2
2.3
5
Sincronismo em telecomunicações . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.1
Sincronismo de portadora . . . . . . . . . . . . . . . . . . . . . . .
5
2.1.2
Sincronização de sı́mbolo . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1.3
Outros tipos de sincronismos em telecomunicações . . . . . . . . . .
8
Modulações digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2.1
QAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2
DMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Métricas de desempenho de modulações digitais . . . . . . . . . . . . . . . 13
2.3.1
Error Vector Magnitude . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4
Field Programmable Gate Arrays - FPGAs . . . . . . . . . . . . . . . . . . 15
2.5
Técnicas de sincronismo para comunicações digitais . . . . . . . . . . . . . 16
3 Hardware e Software do Protótipo
3.1
18
Software-defined UFPa transceiver (SOUT) . . . . . . . . . . . . . . . . . 18
3.1.1
AFE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
i
3.2
3.1.2
DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.3
FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.4
Conexão fı́sica e lógica entre as placas
. . . . . . . . . . . . . . . . 23
A aplicação modem-prototype . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1
Implementação da duplexação no domı́nio do tempo (TDD) . . . . 25
3.2.2
Comunicação com os conversores . . . . . . . . . . . . . . . . . . . 26
3.2.3
Cadeia de transmissão . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.4
Cadeia de recepção . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5
Detectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.6
3.2.5.1
Detector Schmidl & Cox . . . . . . . . . . . . . . . . . . . 31
3.2.5.2
Detector xCorr . . . . . . . . . . . . . . . . . . . . . . . . 34
Correção de diferenças de clock . . . . . . . . . . . . . . . . . . . . 37
3.2.6.1
Definição de cursor . . . . . . . . . . . . . . . . . . . . . . 38
3.2.6.2
Arquitetura para sincronização e equalização. . . . . . . . 40
3.2.6.3
Estimação de cursor . . . . . . . . . . . . . . . . . . . . . 42
4 Desempenho e Comparação das Técnicas de Sincronismo
44
4.1
Desempenho dos detectores . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2
Consumo de hardware dos detectores . . . . . . . . . . . . . . . . . . . . . 46
4.3
Desempenho da correção de CFO . . . . . . . . . . . . . . . . . . . . . . . 50
4.4
Taxas alcançadas pelo protótipo . . . . . . . . . . . . . . . . . . . . . . . . 53
5 Conclusão
5.1
56
Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Bibliografia
61
ii
Lista de Figuras
2.1
Sinal gerado com PAM, usando pulso retangular (em azul) e pulso de Nyquist (em verde), e os pontos em vermelho são as proximidades do ponto
de decisão dos sı́mbolos para o pulso de Nyquist. . . . . . . . . . . . . . . .
9
2.2
Exemplo de uma constelação 16 QAM e um possı́vel mapeamento de bits. . 10
2.3
Modulação 64 QAM, com pontos originais em vermelho e possibilidade de
ocorrência dos pontos recebidos devido à uma RSR de 25 dB. . . . . . . . 14
2.4
Constelação da Figura 2.3 sofrendo com CFO de 800 ppm . . . . . . . . . 14
2.5
Constelação recebida com os tons pilotos nos pontos mais afastados . . . . 17
3.1
Visão geral da SOUT e suas conexões. . . . . . . . . . . . . . . . . . . . . 20
3.2
As duas SOUTs da UFPa conectadas por um cabo CAT5 de 50 metros. . . 20
3.3
Diagrama de blocos simplificado do AFE. . . . . . . . . . . . . . . . . . . . 21
3.4
Visão geral das conversões de dados. . . . . . . . . . . . . . . . . . . . . . 24
3.5
Um slot TDD usado na SOUT. . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6
Transferência de dados usando DDR. O sinal DCLK(P/N) é o clock o sinal
D[15:0](P/N) é o barramento de dados sendo transferido nas duas bordas
de DCLK. Figura retirada do manual do DAC5681z.
. . . . . . . . . . . . 27
3.7
Esquema usado no FPGA para fazer a conversão de 200 para 100 MHz. . . 28
3.8
Ilustração em diagrama de blocos da cadeia de transmissão. . . . . . . . . 28
3.9
Exemplo da métrica de temporização para o S&C quando a RSR é infinita. 33
3.10 Implementação do detector S&C no FPGA. . . . . . . . . . . . . . . . . . 33
3.11 Implementação do detector xCorr no FPGA. . . . . . . . . . . . . . . . . . 35
3.12 Sinal SINC transmitido para o detector xCorr. . . . . . . . . . . . . . . . . 36
3.13 Sinal SINC recebido pela interface dos conversores com o FPGA. . . . . . . 36
iii
3.14 Ilustração de como as amostras do sinal recebido são repassadas aos xCorrs.
Nesse exemplo, as amostras do sinal ref (i) sempre estão na segunda posição
do grupo de quatro amostras. . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.15 Exemplo de resultados dos xCorrs quando o sinal ref (i) está na segunda
posição do grupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.16 Exemplo onde além da diferença de fase, os clocks possuem frequências
diferentes. Assim, os ∆ sempre mudam. . . . . . . . . . . . . . . . . . . . . 38
3.17 Definição de cursor n0 e ilustração de como ele acontece. . . . . . . . . . . 39
3.18 Estimação de n0 para vários sı́mbolos DMT recebidos em sequência. . . . . 40
3.19 Fases de treinamento do modem-prototype. . . . . . . . . . . . . . . . . . . 41
3.20 Fases de showtime do modem-prototype. . . . . . . . . . . . . . . . . . . . . 42
3.21 Estimação de β e ∆θ a partir dos tons pilotos. . . . . . . . . . . . . . . . . 43
4.1
Resultados da métrica de temporização de duas realizações do mesmo
sı́mbolo S&C, mostrando duas curvas atingindo um limiar de 0.75 em tempos diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2
Resultados da métrica de temporização de duas realizações do mesmo
sı́mbolo S&C, onde a curva em azul não sofre atenuação e a curva em
verde sofre e depois é amplificada. . . . . . . . . . . . . . . . . . . . . . . . 47
4.3
Exemplo de uma constelação de 256 QAM recebida e corrigida, onde é
possı́vel perceber uma pequena rotação nos pontos mais distantes da origem. 52
4.4
Bitloading tı́pico estimado usando o Levin-Campello. . . . . . . . . . . . . 53
4.5
RSR tı́picas calculadas para cabos CAT5 de 50 m (esquerda) e 100 m (direita). 54
iv
Lista de Tabelas
3.1
Comparação entre preços da EVM e do CI para o FPGA e DSP. . . . . . . 19
4.1
Uso de recursos lógicos pelos detectores. . . . . . . . . . . . . . . . . . . . 48
4.2
Uso de recursos do FPGA pelos detectores. . . . . . . . . . . . . . . . . . . 50
4.3
Requerimentos de EVM pela tecnologia LTE (Lont Term Evolution) . . . . 51
v
Glossário
AD Analógico-digital
AFE Analog front-end
AM Amplitude modulation
ASIC Application-specific integrated circuit
ASK Amplitude-shift keying
CI Circuito integrado
CP Cyclic prefix
CFO Clock frequency offset
CPE Customer premise equipment
DA Digital-analógico
DDR Double data rate
DMT Discrete multitone
DSL Digital subscriber line
DSLAM DSL access multiplexer
DSP Digital signal processor
DTU Data transfer unit
EVM Evaluation module
vi
EVM Error Vector Magnitude
FEQ Frequency equalization
FFT Fast Fourier transform
FFTC FFT coprocessor
FPGA Field programmable gate array
IDFT Inverse Discrete Fourier Transform
IFFT Inverse FFT
IP Intellectual property
IP Internet protocol
ITU International Telecommunication Union
LVDS Low-voltage Differential Signaling
LTE Long Term Evolution
NETCP Network coprocessor
OFDM Orthogonal frequency-division multiplexing
PAM Pulse amplitude modulation
PCI Placa de circuito impresso
PLL Phase locked loop
ppm Parte por milhão
QAM Quadrature amplitude modulation
QPSK Quadrature phase-shift keying
RAM Random access memory
RDS Rádio definido por software
vii
SPI Serial peripheral interface
SRIO Serial RapidIO
RISC Reduced instruction set computing
RS Reed-Solomon
RSR Relação sinal-ruı́do
RTOS Real-time operating system
SDR Single data rate
SoC System-on-chip
SOUT Software-defined UFPa transceiver
S&C Schmidl and Cox
TDD Time-domain duplex
TDM Time-division multiplexing
viii
Capı́tulo 1
Introdução
1.1 Visão geral
A tecnologia de redes de acesso via cabos trançados telefônicos é muito utilizada,
pois possui infraestrutura com alto potencial de penetração, ou seja, a operadora consegue
prover conectividade ao usuário com mais facilidade do que outras tecnologias, como as
fibras. Isso é possı́vel, pois as redes telefônicas são empregadas a mais de cem anos, o
que faz com que haja muita infraestrutura instalada, além da instalação de novos cabos
telefônicos ser barato em relação à fibra. O conjunto de tecnologias que provê acesso
via cabos telefônicos são denominados de DSL (Digital subscriber line, em inglês) e vêm
evoluindo gradativamente ao longo dos anos [1], conseguindo prover maiores taxas de
dados aos usuários.
Tem-se verificado que a cada dez anos há uma evolução significativa nas tecnologias de redes de acesso via cabos telefônicos, ou pares trançados, sendo que desde o
inı́cio de sua utilização já ocorreram quatro dessas mudanças. As mudanças no DSL que
proporcionaram tal melhoria nas taxas foram, entre outros fatores, devido à diminuição
do comprimento dos cabos, ou das distâncias entre os usuários e os pontos de distribuição.
Isso ocorre devido à utilização de redes hı́bridas de fibra e cobre, assim, uma rede de fibra
de alta velocidade é instalada até as proximidades do usuário (ponto de distribuição), e
então o usuário é conectado a essa rede através de cabos de cobre, que são mais baratos.
Por exemplo, no DSL de segunda geração o usuário está a uma distância do ponto de distribuição na ordem de quilômetros, na terceira essa distância é menor que um quilômetro
e na quarta de 50 a 250 metros.
O atual estágio de desenvolvimento dessas tecnologias é denominado de DSL de
1
2
quarta geração [2]. A versão do DSL que é classificada como sendo de quarta geração teve
sua primeira versão criada recentemente pela União Internacional de Telecomunicações
(ITU - International Telecommunication Union, em inglês) seção T, ou ITU-T, é referenciada pela norma G.9701 [3] e conhecida como tecnologia G.fast. As caracterı́sticas
dessa tecnologia são alta largura de banda na ordem de 200 MHz, sendo chamada de ultra
banda larga em alguns casos [1], e deve prover taxas de dados na ordem de 1 Gigabit por
segundo.
Tal largura de banda requer alta capacidade de processamento, pois segundo o
teorema da amostragem de Nyquist-Shannon, as taxas de amostragem do G.fast devem ser
maiores que 400 MHz, e isso gera uma alta taxa de dados, que devem ser processados em
tempo real. Diferentemente das gerações anteriores, o G.fast foi padronizado para utilizar
duplexação
1
no domı́nio do tempo no lugar da duplexação no domı́nio da frequência das
versões anteriores [4] [5]. Essa mudança faz com que boa parte das implementações das
gerações anteriores não possam ser reaproveitas na quarta geração.
A mudança para o TDD e devido ser um padrão lançado recentemente e a continuar um desenvolvimento, não há muitos produtos no mercado que obedeçam ao padrão
G.fast. Assim, universidades ou institutos de pesquisas que não estão associados às empresas que participam do processo de padronização, dificilmente têm oportunidade de
contribuir na padronização, ou têm mais impedimentos para realizar pesquisas práticas
na área de G.fast. A forma com que essas instituições podem participar é comprar circuitos integrados (CI) que implementem o G.fast como [6]. Entretanto, tais produtos, por
serem comerciais, normalmente não proporcionam configurabilidade para fazer pesquisa
o usando, e também, eles normalmente são vendidos somente em milhares e em parceria
com fabricantes, o que inviabiliza o seu uso para pesquisa.
Outra dificuldade das instituições de pesquisa é o acesso aos algoritmos implementados, por exemplo, o G.fast especifica que tipos de sı́mbolos serão transmitidos para
sincronização. Entretanto, mesmo especificando os sı́mbolos, as técnicas a serem utilizadas são deixadas a cargo do fabricante, que por sua vez escolhe a que obteve melhores
resultados em seus hardwares e protótipos, e elas são mantidas em segredo.
1
Duplexação é o processo no qual dois dispositivos em uma comunicação ponto-a-ponto transmitem
informação sem haver colisão. Há dois modos, no domı́nio do tempo, onde cada dispositivo tem seu
tempo de transmitir; e no domı́nio da frequência onde cada um tem sua banda de frequência especı́fica.
3
1.2 Sobre este trabalho
Com o objetivo de permitir pesquisa na área de G.fast, o Laboratório de Processamento de Sinais na UFPa iniciou a criação de um protótipo de modem G.fast. A
implementação do protótipo corresponde a uma infraestrutura de comunicação completa
e culminou nos algoritmos e resultados mostrado nessa dissertação e em outros trabalhos,
como [7].
Mais especificamente, essa dissertação trata sobre a questão do sincronismo implementado para esse protótipo. O sincronismo usado nessa tecnologia possui muitas
peculiaridades, que são usadas para obter sincronismo, em [8] é dada uma visão geral
das formas de sincronismo que podem ser utilizam em DSL e em sistemas que utilizam
modulações DMT (Discrete multitone, em inglês) e OFDM (Orthogonal frequency division
multiplexing, em inglês). Partindo das técnicas mostradas nesses trabalhos relacionados,
nessa dissertação é proposta a utilização do algoritmo Schmidl & Cox [9] para sincronização da duplexação TDD que utiliza poucos recursos de hardware. É também criado
outro algoritmo para prover sincronismo mais preciso do que o primeiro, que é baseado em
uma correlação cruzada modificada e é denominado xCorr. O xCorr, entretanto, utiliza
mais recursos de hardware, como é mostrado nesse trabalho.
A plataforma de hardware utilizada consiste de três módulos separados, desses,
o módulo de interface analógica não provê recursos para que seja feita sincronização de
clocks exatamente como definido no padrão. Assim, não é possı́vel implementar exatamente como especificado, e foi necessário a criação de outro algoritmo para correção, em
domı́nio digital, das diferenças de clock. Dessa forma, foi iniciada pesquisa para avaliar
algoritmos de correção de diferenças de clock, entretanto verificou-se que os algoritmos
disponı́veis, como [10] e [11], não atendem aos requerimentos da aplicação. Logo, foi
criado um algoritmo para correção, que tomou como base essas referências, e que utiliza
regressão linear para obter melhores resultados na aplicação do protótipo. Assim, este
trabalho também apresenta a implementação e resultados desse algoritmo que é aplicado
no domı́nio da frequência, juntamente com os algoritmos de equalização.
O conteúdo desse trabalho é apresentado da seguinte forma. No Capı́tulo 2, são
mostrados os conceitos básicos utilizados, com o objetivo de situar melhor o conteúdo desenvolvido dentro da área de telecomunicações. No Capı́tulo 3 são mostrados o hardware
utilizado, como os algoritmos foram implementados e a divisão de processamento entre as
unidades de que compõem a plataforma utilizada. No Capı́tulo 4 são mostrados os resultados obtidos e feitas comparações dos algoritmos utilizados. E, por fim, no Capı́tulo 5 é
4
feita a conclusão do trabalho e mostradas propostas de trabalhos futuros.
Capı́tulo 2
Situando o Trabalho na Área de
Telecomunicações
Este capı́tulo tem como objetivo apresentar os conceitos básicos necessários para o
bom entendimento das técnicas apresentadas no Capı́tulo 3 e dos resultados apresentados
no Capı́tulo 4, e também situar o conteúdo apresentado dentro da área de telecomunicações. São também apresentados métodos de classificação das técnicas utilizadas.
2.1 Sincronismo em telecomunicações
O objetivo desta seção é introduzir os conceitos de sincronização para sistemas
de telecomunicações, entretanto, como “telecomunicações” e “sincronismo” são termos
bem gerais, nesta seção também é dado um direcionamento para que tipos de “telecomunicações” e “sincronismo” são tratados nesse trabalho.
Em telecomunicações, o termo sincronismo pode ser tratado em várias áreas diferentes, onde, para simplificar, uma visão em camadas pode ser usada para classificação
os tipos de sincronismos [12].
2.1.1
Sincronismo de portadora
Esse é o tipo de sincronização requerida em sistemas de modulação (digitais e
analógicos), onde os sinais de clock ou senoidais de um sistema composto por um transmissor e um receptor, necessitam possuir a mesma frequência e, em alguns casos, a mesma
5
6
fase para que o receptor do sistema possa recuperar com sucesso a informação transmitida. O processo de recuperação da portadora do transmissor é largamente discutido na
literatura [12] [13], e no receptor, a recuperação da portadora para fazer a demodulação
é chamada de demodulação sı́ncrona ou coerente.
Um exemplo, de um sistema que necessita de recuperação de portadora, é o sistema de rádio AM (Amplitude modulation, em inglês) sı́ncrono, onde a informação s(t) é
transmitida na amplitude da portadora cos(2πf0 t), de acordo com a Equação (2.1).
xt (t) = s(t) cos(2πf0 t)
(2.1)
Nesses sistemas a informação é transladada para uma frequência mais alta (f0 ),
por um processo chamado de upconversion, assim, a informação é transmitida na chamada banda passante (banda de frequência diferente de sua banda original). No receptor
a informação que está em sendo carregada por uma alta frequência deve sofrer o processamento inverso e filtragem para ser recuperada (downconversion). Dessa forma, é
possı́vel perceber que, caso a frequência do receptor seja diferente (f1 ), haverá distorção
da informação, como mostrado nas Equações (2.2) e (2.3).
xr (t) = xt (t) cos(2πf1 t)
(2.2)
1
xr (t) = [cos(2πt(f0 − f1 ))s(t) + cos(2πt(f0 + f1 ))s(t)]
2
(2.3)
Nesses sistemas, o sinal recebido também é proporcional à diferença de fase dos
dois sinais, pois caso tenham a mesma frequência e fases distintas (θ1 e θ2 ) o sinal recebido
se torna como mostrado na Equação (2.4) (alguns termos foram omitidos).
xr (t) = cos(θ1 − θ2 )s(t)
(2.4)
Por exemplo, de acordo com a Equação (2.4), caso θ1 − θ2 = π/2, a informação
não poderá ser recuperada, pois cos(π/2) = 0.
Esse tipo de sistema, e outros que recuperam a portadora do transmissor de alguma
forma para realizar a recuperação do sinal, são chamados de sistemas de demodulação
coerente ou sı́ncrona.
O sistema de rádio AM é analógico, logo não precisa ser amostrado, toda a transmissão e recepção podem ser feitas em domı́nio analógico. No caso de sistemas de modulação digital, há o processo de conversão digital-analógico (DA) no transmissor e con-
7
versão analógico-digital (AD) no receptor, sendo que alguns tipos de modulações que
transmitem informação na fase da portadora requerem que os clocks usados nos processos de conversão também estejam sincronizados em fase e em frequência, caso contrário
pode haver efeitos deletérios tal como a rotação do sinal no domı́nio da frequência. Dessa
forma, sistemas digitais que transmitem informação em banda passante devem lidar com
problemas de sincronização de portadora e sincronização de clock de amostragem. Exemplos de sistemas digitais que utilizam banda passante podem ser os que usam modulação
quadrature amplitude modulation (QAM) e OFDM [14]. Esses dois tipo de modulação são
muito usados em tecnologias como Wifi e tecnologias de comunicações móveis.
Diferentemente de sistemas em banda passante, há os sistemas em banda base, onde
a informação ou sinal gerado pelo processo de modulação é transmitido na mesma banda
de frequência em que foi gerado. Dessa forma, um sistema digital que é transmitido em
banda base, somente precisará lidar com sincronização de clock de amostragem. Exemplo
desse tipo de sistemas são os que usam DMT, que é o equivalente do OFDM em banda
base. O DMT é usado nos sistemas DSL, que utilizam a infraestrutura telefônica para
prover conectividade aos usuários. Maiores informações os conceitos apresentados nesta
seção podem ser vistas em [15].
O conteúdo principal deste trabalho apresenta uma implementação de um sistema
baseado em G.fast [3], que é o novo padrão de tecnologias DSL que está sendo desenvolvido
pelo ITU-T, que ambiciona atingir 1 Gbps em um par trançado telefônico em distâncias de
50 m e taxas menores à medida que o comprimento do cabo aumenta, até um máximo de
250 m. A modulação utilizada nesse trabalho é o DMT, que pode ser classificado como um
sistema de transmissão em banda base que utiliza demodulação coerente, pois ele precisa
recuperar o clock de amostragem do transmissor. Dessa forma, não há a necessidade
de sincronização de portadora. Mais detalhes sobre essas implementações são dados no
Capı́tulo 3 e no Capı́tulo 4.
2.1.2
Sincronização de sı́mbolo
“Sincronização de sı́mbolo” é o processo realizado no receptor, onde o sinal
analógico será “selecionado” de forma que somente a parte do sinal analógico que contém
informação seja processada. Esse tipo de sincronismo é mais comum em sistemas digitais,
onde o transmissor envia informações somente em determinados perı́odos. Os sistemas
analógicos normalmente transmitem informação continuamente e, dessa forma, não há
distinção de sı́mbolos no sinal analógico.
8
Em alguns tipos de modulação, a informação transmitida deve ser extraı́da de uma
única amostra, obtida na saı́da de um filtro casado, por exemplo. O receptor deve selecionar a amostra correta, ou amostrar periodicamente de forma que sejam capturadas
as partes do sinal analógico que contém informação. Devido à sincronização de sı́mbolo
também estar relacionada com a amostragem do sinal, ela é também chamada de sincronização de clock de amostragem [16], o que pode gerar confusão com a seção anterior.
Entretanto, nesse trabalho, somente será tratado como sincronização de sı́mbolo, pois o
sinal pode ser amostrado em uma taxa maior que do que a taxa de sı́mbolo, e a amostra
que contém o sı́mbolo pode ser selecionada no domı́nio digital.
Um exemplo desse tipo de sistema, são os que usam pulse amplitude modulation
(PAM), onde a informação é transmitida em pulsos, e cada nı́vel de tensão desse pulso no
instante de tempo correto representa um conjunto de bits, ou um único bit, se houverem
dois nı́veis. Para maiores informações sobre essa técnica de modulação, o leitor pode
utilizar o capı́tulo 6 de [14]. A Figura 2.1 mostra um exemplo de um sinal PAM gerado
usando dois tipos de pulsos, o pulso retangular em azul e o pulso de Nyquist em verde, onde
os pontos em vermelho são os pontos exatos onde os sı́mbolos no sinal gerado com Nyquist
pode ser recuperados. No sinal gerado com o pulso retangular o sı́mbolo transmitido pode
ser recuperado em uma janela de tempo bem maior do que o sinal gerado com pulso de
Nyquist, enquanto que o sinal que usa o pulso de Nyquist fica mais restrito às proximidades
do ponto em vermelho, entretanto há considerações sobre o uso dos dois pulsos, que não
são tratadas nesse trabalho.
O exemplo anterior mostra um sistema de modulação que transmite a informação
em uma única amostra (ou em um intervalo de tempo bem determinado) do sinal. Entretanto há sistemas como o DMT e OFDM que utilizam várias amostras para representar um
sı́mbolo (ou um intervalo de tempo maior). Nesse tipo de sistema o processo sincronização
de sı́mbolo no receptor consiste em capturar esses intervalos para que a demodulação possa
ser feita. O sistema apresentado nesse trabalho utiliza sı́mbolos DMT, dessa forma, um
sı́mbolo consiste de várias amostras, que são recebidas e processadas pelo receptor.
2.1.3
Outros tipos de sincronismos em telecomunicações
Os dois tipos de sincronização mostrados conseguem classificar as implementações
mostradas neste trabalho, entretanto, é importante mencionar que existem outros tipos,
sendo que os dois anteriores que serão tratados nessa dissertação dizem respeito à camada fı́sica de sistemas de comunicação. Existem outros conceitos de sincronização em
telecomunicações que são tratados em camadas superiores, com por exemplo:
9
2
Pulso retangular
Pulso de Nyquist
Símbolo
Sinal analógico (Volts)
1.5
1
0.5
0
−0.5
−1
−1.5
−2
0
20
40
60
80
100
Segundos
Figura 2.1: Sinal gerado com PAM, usando pulso retangular (em azul) e pulso de Nyquist
(em verde), e os pontos em vermelho são as proximidades do ponto de decisão dos sı́mbolos
para o pulso de Nyquist.
• Sincronização de quadro: este tipo de sincronismo é realizado quando os bits são
recuperados do sinal analógico, onde, então, e feito o processo de agrupa-los em
palavras, ou palavras-código ou ainda outro tipo de nomenclatura, dependendo do
sistema utilizado. No caso de um sistema Time-division multiplexing (TDM), é
nesse estágio que os bits são direcionados para o usuário destino.
• Sincronização pacote: nesse tipo de sincronismo a informação, na sua fonte, é divida
em pacote, e esses pacotes são recebidos no destino, onde serão reagrupados em
sequência para que a informação seja recuperada.
• Sincronização de mı́dia: esse conceito de sincronização trata informações diferentes
que possuem alta relação temporal, como o caso do áudio e do vı́deo.
2.2 Modulações digitais
Esta dissertação trata de um sistema de comunicações que foi implementado usando
uma plataforma desenvolvida na UFPa, onde são implementadas técnicas de modulação
digital para transmitir as informações do usuário. Nesta seção são apresentados e explicados com mais detalhes as técnicas de modulação que são utilizadas neste trabalho.
10
2.2.1
QAM
QAM é uma técnica de modulação que pode ser vista como um mapeamento da
informação a ser transmitida em um conjunto finito de pontos. Esses pontos na técnica
QAM formam um conjunto bidimensional que serão multiplicados por um função base
para formar o sinal analógico. Para mapear a informação recebida, os seus bits são usados
de acordo com o tamanho do conjunto de pontos, normalmente, seguindo potências de 2.
Assim, n bits da informação são mapeados para um dos 2n pontos. A Figura 2.2 mostra
um possı́vel mapeamento de quatro bits da informação.
3
0000
0100
1000
1100
0001
0101
1001
1101
0010
0110
1010
1110
0011
0111
1011
1111
Quadratura (q)
2
1
0
−1
−2
−3
−3
−2
−1
0
1
2
3
Fase (i)
Figura 2.2: Exemplo de uma constelação 16 QAM e um possı́vel mapeamento de bits.
Uma forma de representar o sinal resultante do mapeamento, que é a forma usada
neste trabalho, é através de números complexos. Por exemplo, a sequência binária 1001
da Figura 2.2 pode ser representada por 1 + j. Assim, uma vez que o mapeamento é feito
os pontos resultantes podem ser convoluı́dos com um pulso para transmissão pelo canal.
O resultado da convolução dos pontos complexos com o pulso é complexo, e como
não existe um canal que possa transmitir informação complexa (a menos que as partes real
e imaginária sejam transmitidas em canais separados), os sinais QAM são transmitidos
usando banda passante através da relação da Equação 2.5.
T Xqam (t) = xi (t) cos(2πfc t) + xq (t)sen(2πfc t)
(2.5)
Na Equação 2.5, xi (t) é a parte real e xq (t) é a parte imaginária do resultado da
convolução, e fc é a frequência da portadora. Esse processo translada o sinal QAM para a
11
frequência fc , e gera um resultado real, que pode ser transmitido pelo canal. Na recepção
é feito o processo de downconversion, assim o sinal volta a ter partes real e imaginária,
e então é amostrado e pode ser processado. Como o processo de demodulação utiliza
downconversion e amostragem, os sistemas QAM podem ser classificados como coerentes,
e devem utilizar os conceitos de sincronização de portadora e de amostragem discutidos
nas seções anteriores.
O sinal QAM ocupa uma largura de banda que é proporcional à taxa de sı́mbolos
transmitidos por segundo, assim, quanto maior a taxa de transmissão de dados requerida,
maior é a largura de banda do sinal gerado.
2.2.2
DMT
Diferentemente dos sistemas que utilizam uma única portadora, como o PAM e
QAM mostrados anteriormente, a técnica de modulação DMT divide a banda disponı́vel
do canal em várias subbandas, onde várias subportadoras carregam informação utilizando
técnicas de modulação que podem ser diferentes para cada subbanda. A idéia do DMT é
utilizar as várias subportadoras transmitindo em uma taxa menor, mas a taxa resultante
do uso de todas, tende a ser maior do que um sistema que utiliza uma única portadora. Há
muita discussão sobre as vantagens e desvantagens de sistemas multiportadora em relação
aos outros, mas uma das maiores vantagens é o fato da equalização ser mais simples, pois
os subcanais possuem um largura de banda pequena em relação a banda total do canal,
logo o subcanal pode ser visto como um canal “flat”, o que acarreta em uma equalização
(no receptor) sendo aplicada como um ganho.
Outra caracterı́stica dos sistemas DMT é que o espaçamento das subportadoras é
pequeno, o que favorece a melhor utilização do canal. As subportadoras são separadas
em frequência por um valor preciso que faz com que as subportadoras sejam ortogonais,
assim, não há interferência entre elas. O modo de geração do sinal DMT para que as
subportadoras sejam ortogonais, utiliza a transformada discreta inversa de Fourier (IDFT
- Inverse Discrete Fourier Transform, em inglês), ou sua versão otimizada a transformada
rápida de Fourier inversa (IFFT - Inverse Fast Fourier Transform em inglês). A IFFT
considera que o sinal de entrada está no domı́nio da frequência e o sinal é um vetor de
números complexos e cada posição do vetor corresponde a uma subportadora. Dessa
forma, cada subportadora pode receber um tipo de modulação diferente (que pode ser
QAM, PAM, QPSK1 , ASK2 , etc), e a notação de constelação apresentada para a técnica
1
2
Quadrature phase-shift keying
Amplitude-shift keying
12
QAM também pode ser usada. Na aplicação mostrada nessa dissertação, as subportadoras
do sinal DMT utilizam QAM.
O sinal DMT, após passar pela IFFT, é transformado para o domı́nio do tempo,
que corresponde a soma de todas as subportadoras, como mostrado na Equação (2.6).
Onde Ak e θk são obtidos a partir da amplitude e fase do ponto da constelação para o
tom k.
T x[n] =
X
Ak cos(2πkf0 n + θk )
(2.6)
Como o sinal DMT é transmitido em banda base, a sua versão no domı́nio do
tempo tem a restrição de ser real. Para isso, é usada uma propriedade da IFFT, onde o
sinal no domı́nio da frequência apresenta a simetria mostrada na Equação 2.7, onde k é o
ı́ndice da subportadora, e N é a matade do tamanho da IFFT realizada.
ak = a∗N −k+1
(2.7)
A Equação (2.7) impõe que o valor das frequências positivas sejam o complexo
conjugado das frequências negativas, exceto as frequências referentes ao DC e Nyquist,
que não são usadas. A técnica DMT é muito similar ao OFDM, que é muito utilizado em
tecnologias de wireless. A diferença é que o OFDM não possui restrição de ser real no
domı́nio do tempo, dessa forma, no domı́nio da frequência, o OFDM não está restrito à
Equação 2.7 e, portanto, pode utilizar o dobro de portadoras em relação ao DMT. Além
do mais, o DMT é transmitido em banda base, enquanto que o OFDM é transmitido
usando o processo de upconversion descrito para a modulação QAM.
Tanto OFDM quanto DMT utilizam o chamado prefixo cı́clico (CP - cyclic prefix
em inglês) para tornar o sı́mbolo mais robusto à interferência intersimbólica causada pelo
canal. O CP consiste em repetir a últimas amostras do sinal domı́nio do tempo no inı́cio
do sı́mbolo. Isso é possı́vel, pois a IFFT considera que o sinal de saı́da corresponde a um
perı́odo de um sinal periódico, assim a repetição faz com que seja usado parte do perı́odo
anterior do mesmo sinal. O uso do CP protege o sı́mbolo, sofrendo a interferência do
sı́mbolo anterior, para isso o tamanho do CP deve ser maior do que a dispersão do canal
(resposta ao impulso do canal).
O CP além de proteger contra interferência intersimbólica, ainda oferece uma janela
maior para o receptor capturar o sı́mbolo, pois como se trata de uma repetição do sı́mbolo,
caso o receptor capture parte do CP, os tons apenas sofrem rotação, que é mais fácil de
ser corrigido que outros tipos de distorção. Essa caracterı́stica é usada pelos detectores
13
implementados nessa dissertação, e são mostrados nos Capı́tulo 3 e 4.
Uma última caracterı́stica dos sistemas multiportadora, como o OFDM e o DMT,
é a possibilidade de se estimar a relação sinal-ruı́do (RSR) para cada subbanda e usar uma
modulação que atinja um desempenho especı́fico em cada tom, ou o mesmo desempenho
para todos os tons. Apesar de ser possı́vel usar diferentes tipos de modulação, nesse
trabalho são usadas modulações QAM em vários nı́veis, ou 2n QAM (onde n são números
pares de 2 a 12), de acordo com a RSR da subbanda. O processo de calcular a melhor
constelação QAM a ser usada em cada tom é chamado de bitloading, e nesse trabalho, é
utilizado o algoritmo Levin-Campello [17].
2.3 Métricas de desempenho de modulações digitais
Idealmente a informação recebida deve ser recuperada, e deve ser exatamente igual
a que foi transmitida, entretanto, devido às não idealidades do canal de comunicação, a
informação recebida é uma versão distorcida da original. Algumas vezes, devido à alta
distorção, não é possı́vel recuperar a informação. No caso de modulações digitais e que
usam constelações para representar os sinais transmitidos e recebidos, o grau de distorção
pode ser medido usando a distância em que o sinal recebido encontra-se do ponto original.
Dependendo do tipo de modulação digital, a medida deve ser feita de uma forma
especı́fica. No caso da modulação QAM, o receptor pode definir regiões usando retas
entre os pontos da constelação para indicar um erro. A Figura 2.3 mostra um exemplo de
constelação de 64 QAM, onde os pontos em vermelho são os pontos originais transmitidos,
e os cı́rculos em azul são os possı́veis pontos onde o sinal recebido pode aparecer, devido
à uma RSR de 25 dB. Nessa figura, não há erro, pois a região possı́vel onde o sinal pode
ser recebido não ultrapassa as regiões de decisão, que são mostradas na figura como linhas
pretas tracejadas.
No exemplo da Figura 2.3, somente o ruı́do influencia no sinal recebido, entretanto
em sistema de comunicações digitais ainda há o problema de diferenças de clock, ou clock
frequency offset (CFO) em inglês. O CFO faz a constelação toda rotacionar, aumentando
a probabilidade de erro e, consequentemente, diminuindo as métricas de desempenho no
receptor. A Figura 2.4 mostra o exemplo da Figura 2.3 sofrendo distorção de CFO. A
intensidade do CFO é medido em parte por milhão (ppm) e esse exemplo utiliza 800 ppm,
o que significa que se o transmissor usa um clock de 400 MHz, o receptor possui uma
diferença de frequência de 2 Hz em relação ao transmissor, o que causa o desvio mostrado
na figura, e que dessa vez faz com que ocorra erro na detecção em alguns casos, como é
14
8
6
Quadratura (Q)
4
2
0
−2
−4
−6
−8
−8
−6
−4
−2
0
2
4
6
8
Fase (I)
Figura 2.3: Modulação 64 QAM, com pontos originais em vermelho e possibilidade de
ocorrência dos pontos recebidos devido à uma RSR de 25 dB.
possı́vel perceber pelos cı́rculos que ultrapassam a região de decisão.
8
6
Quadratura (Q)
4
2
0
−2
−4
−6
−8
−8
−6
−4
−2
0
2
4
6
8
Fase (I)
Figura 2.4: Constelação da Figura 2.3 sofrendo com CFO de 800 ppm
Dessa forma, há a necessidade de corrigir o CFO antes de ser feita a demodulação,
o Capı́tulo 3 mostra o algoritmo criado para correção do CFO. Uma vez que os sinal
recebido está corrigido, somente o ruı́do pode causar erros na demodulação, nesse estágio
é possı́vel calcular a sua intensidade e classificar o canal de acordo com ela. A técnica
Error Vector Magnitude (EVM) pode ser usada para quantificar a qualidade do sinal
tanto no receptor quanto no transmissor.
15
2.3.1
Error Vector Magnitude
O EVM é uma medida da diferença entre os pontos da constelação ideais e os
sı́mbolos medidos depois da equalização. A EVM é definida como a raiz quadrada da
razão entre a potência do vector de erro e a potência do sinal original [18]. Esse valor é
dado em porcentagem ou em dB, como mostrado nas Equações 2.8 e 2.9, respectivamente.
Nas equações, Perro e Pref erencia são as potências da diferença entre o sinal recebido e o
ponto original e a potência do ponto original. Como os pontos da constelação do sinal
original podem possuir amplitudes diferentes, pode-se usar o ponto mais distante para o
cálculo de Pref erencia .
s
EV M (%) =
Perro
Pref erencia
EV M (dB) = 10 log10
∗ 100%
Perro
Pref erencia
(2.8)
(2.9)
2.4 Field Programmable Gate Arrays - FPGAs
Esta dissertação utiliza CIs FPGAs para implementar parte do sincronismo mostrado nesse trabalho. Quando comparados com CIs de DSPs (Digital signal processor, em
inglês) ou processadores convencionais, os FPGAs têm a vantagem de poder implementar
qualquer algoritmo diretamente em lógica digital. Assim, pode-se implementar algoritmos em FPGA fazendo um caminho de dados, onde em cada estágio os dados sofrem um
ou mais processamentos, enquanto os próximos estágios e anteriores estão também trabalhando paralelamente. As duas técnicas de detecção implementadas nessa dissertação
utilizam caminhos de dados para processar as amostras de entrada, e esse caminho é chamado de datapath. E ainda é possı́vel utilizar vários datapaths em paralelo para melhorar
o desempenho.
Além das vantagens já citadas, os FPGAs são indicados para interfaceamento com
dispositivos de alta velocidade como ADs e DAs [19] [20]. Nessa dissertação, o FPGA
Virtex 6 é utilizado, onde os dados do conversor AD é empacotado e enviado para o DSP
via RapidIO, e vice-versa para enviar dados ao conversor DA.
Os FPGAs podem ser utilizados para realizar funções de hardware especı́ficas, por
isso ele são normalmente comparados com um tipo de CI chamado de circuito integrado
de aplicação especı́fica, ou application-specific integrated circuit (ASIC) em inglês. Am-
16
bos implementam funções especı́ficas em hardware customizado, entretanto o FPGA é
um dispositivo reprogramável enquanto que o ASIC possui funcionalidade fixa. A reprogramabilidade também influencia em outros dois fatores, o desempenho e a o custo.
Como o FPGA é reprogramável, ele atinge frequências de operação muito menores do
que os ASICs, por exemplo, enquanto o FPGA trabalha em frequências na faixa de 100
a 200 MHz, o ASIC trabalha na faixa de 1 a 2 GHz. Entretanto, os ASICs possuem ciclo
de projeto muito mais caro que os FPGAs, pois envolve fabricação de um CI customizado
e leva mais tempo, enquanto os FPGAs são CIs comerciais e podem ser programados em
segundos.
Os FPGAs além da componentes que implementam qualquer função lógica ainda
possuem vários outros elementos embarcados no mesmo CI, como, por exemplo, memórias
RAM (Random access memory), PLLs (Phase locked loops), clocks, controladores Ethernet, e vários outros.
Dentre esses componentes, foram usados nessa dissertação as
memórias RAM internas, para criação de filas e armazenamento temporário das informações, os PLLs para gerenciamento de clocks e própria lógica programável para a
implementação dos algoritmos e controle.
2.5 Técnicas de sincronismo para comunicações digitais
Esta seção trata do sincronismo na camada fı́sica que é um dos requerimentos
necessários para a recuperação com sucesso da informação transmitida. Basicamente
existem dois tipos de sincronismo, e chamado data-aided e o non data-aided. O primeiro
significa que sinal de sincronismo é transmitido junto com a informação para que o receptor
possa recuperar a temporização e a informação transmitida, no segundo não é transmitido
sinal auxiliar, somente a informação, de onde o receptor recupera a temporização e os
dados transmitidos.
Para o caso do DMT, várias formas de sincronismo podem ser utilizadas. No caso
de um sincronismo non data-aided, é possı́vel utilizar a informação redundante contida
nos prefixos cı́clicos para realizar a detecção do sı́mbolo transmitido, para isso o receptor
pode realizar um correlação cruzada nos prefixos cı́clicos para detectar. Esse tipo de
sincronismo não foi utilizado nesse trabalho, pois apresentou pouca robustez na detecção.
Nesse trabalho, é utilizada a sincronização data-aided, ou seja, sinais de sincronismo
são transmitidos junto com a informação para auxiliar o receptor. Como nesse trabalho
é usada a modulação DMT, alguns dos tons transmitem sinais de sincronismo ao invés
de bits, esses tons são chamados de tons pilotos. A Figura 2.5 mostra um exemplo
17
de constelação recebida, onde os pilotos são os pontos com maior amplitude (os pontos
afastados). Além de utilizar os tons pilotos, nesse trabalho ainda é utilizado um sı́mbolo
DMT especial para realizar a primeira parte do sincronismo, que corresponde ao TDD.
A segunda parte do sincronismo utiliza a fase dos tons pilotos no domı́nio da frequência
para estimar a diferença de clock entre o transmissor e o receptor, que, então, é usada
para gera um vetor que é multiplicado pelo sı́mbolo recebido. As implementações feitas
são mostradas no Capı́tulo 3 e resultados das técnicas são mostrados no Capı́tulo 4.
Pontos das constelações de 50 símbolos recebidos
30
Quadratura (Q)
20
10
0
−10
−20
−30
−30
−20
−10
0
10
20
30
Fase (I)
Figura 2.5: Constelação recebida com os tons pilotos nos pontos mais afastados
Capı́tulo 3
Hardware e Software do Protótipo
Esse capı́tulo tem como objetivo apresentar o hardware e os algoritmos implementados que correspondem ao processo de sincronismo. Na Seção 3.1 são apresentados em
detalhes os componentes da plataforma criada na UFPa para aplicações em RDS que é
denominada Software-defined UFPa transceiver (SOUT). São também mostrados os componentes (placas) e a forma de comunicação entre elas. Na Seção 3.2 são apresentados
detalhes de uma aplicação desenvolvida para a SOUT chamada modem-prototype, que
tem como objetivo implementar o padrão G.fast para comunicação sobre par trançado telefônico. Essa seção tem como foco principal as técnicas de sincronismo, mas também são
apresentados detalhes da implementação de outros algoritmos usados no modem-prototype,
com o objetivo de mostrar a aplicação como um todo.
3.1 Software-defined UFPa transceiver (SOUT)
O hardware utilizado nesse trabalho é composto de três diferentes placas, onde
uma placa foi desenvolvida na UFPa, em conjunto com a Ericsson Research em Kista na
Suécia, e é chamada de Analog front-end (AFE). As outras duas placas são as chamadas
placas de avaliação, placas de desenvolvimento ou ainda módulos de avaliação (EVM Evaluation Module em inglês), esse tipo de placa é produzida por fabricantes de CIs para
servir como referência para projetistas que utilizarão os CI e também para mostrar suas
funcionalidades. As EVMs são comercializadas por preços muito baixos, quando comparado ao custo de se comprar o CI e os componentes para produzir uma placa contendo
aquele CI, dessa forma, elas são muito usadas em projetos, principalmente para prototipagem. As EVMs utilizadas nesse trabalho são uma EVM do DSP TMS320C6670 [21]
18
19
Tabela 3.1: Comparação entre preços da EVM e do CI para o FPGA e DSP.
CI (US$)
EVM (US$)
TMDXEVM6670
270
400
ML605
1600
1800
da Texas Instruments que realiza a maior parte do processamento de sinais, a outra é a
ML605 [22] que é uma EVM para o FPGA Virtex 6 da Xilinx, que provê ao DSP uma
conexão com o AFE, uma vez que o DSP não pode ser conectado diretamente ao AFE,
pois os conversores do AFE utilizam o padrão Low-Voltage differential signaling (LVDS),
que não é suportado pelo DSP. Assim, o FPGA foi incluı́do na plataforma para converter
de LVDS para pacotes RapidIO e vice-versa.
As duas EVMs usadas nesse trabalho são bons exemplos da vantagem de utilizá-las
para prototipagem, pois os CIs principais (DSP e FPGA) possuem praticamente o mesmo
preço da EVM, que, para o caso da EVM do FPGA, são aproximadamente US$ 1800 e
US$ 1600 para a EVM e para o CI, respectivamente. O mesmo acontece com a EVM do
DSP, dessa forma, em aplicações onde não há restrições de consumo de energia e tamanho,
as EVMs podem ser facilmente usadas. A Tabela 3.1 mostra os preços médio do CI e da
EVM para o DSP e para o FPGA, onde TMDXEVM6670 e ML605 são os modelos das
EVMs do DSP e do FPGA, respectivamente.
Juntos, o AFE e as duas EVMs, formam uma plataforma de desenvolvimento
e pesquisa criada na UFPa, que é chamada de SOUT, que foi desenvolvida em colaboração com a Ericsson research, com o objetivo de ser um plataforma de desenvolvimento de protótipos e pesquisa em telecomunicações. Mais especificamente, a SOUT é
um rádio definido por software (RDS), pois seus componentes digitais (DSP e FGPA)
podem ser programados para realizar várias aplicações em telecomunicações dentro da
faixa de frequência que o AFE permite. A SOUT está sendo programada para ser um
modem de tecnologia DSL, baseado no seu último padrão que está em desenvolvimento,
sendo que sua primeira versão foi finalizada. O padrão ambiciona alcançar taxas maiores
que 1 Gbps usando um único par trançado de linha telefônica [3], os resultados mostrados
nesse trabalho são frutos das implementações feitas para esse modem.
A aplicação para fazer a SOUT ser um modem G.fast consiste em software e
firmware correspondendo à aproximadamente 35000 linhas de código para DSP e 25000
linhas de código para FPGA. A Figura 3.1 mostra o diagrama de blocos dos dois modems
feitos com duas SOUT comunicando-se através de um cabo de categoria 5, ou CAT5,
onde a função dos modems é prover conexão entre duas redes distintas, e na Figura 3.2
20
é mostrado o protótipo montado para testes com um cabo de 50 m usando o modem.
As EVMs do DSP e do FPGA usadas na SOUT não podem ser conectadas diretamente
devido à incompatibilidades dos conectores em empregados, dessa forma, foi desenvolvida
uma pequena placa chamada Breadboard, que faz a simples conversão de conectores para
que os pinos de comunicação do DSP e do FPGA possam ser conectados. Na Figura 3.1,
a Breadboard é mostrada como o block “BB”.
Figura 3.1: Visão geral da SOUT e suas conexões.
Figura 3.2: As duas SOUTs da UFPa conectadas por um cabo CAT5 de 50 metros.
3.1.1
AFE
O AFE é responsável por prover interface entre as outras duas placas, que são
digitais, com o canal analógico, que nesse caso é um cabo de cobre que pode ter de 50 a
250 metros. O AFE possui um conversor AD que é utilizado na recepção e um conversor
DA que é utilizado na transmissão, bem como toda a circuitaria analógica necessária
21
(amplificadores, filtros analógicos, hı́brida, e clocks para os conversores) para condicionar
o sinal recebido e transmitido. Na Figura 3.3 é mostrado o diagrama de blocos do AFE
da SOUT, que possui duas cadeias de componentes: a cadeia de transmissão e a cadeia
de recepção. Nessa figura, são mostradas as conexões dos componentes do AFE com o
FPGA, onde o FPGA envia e recebe dados dos conversores, controla o gerador de clock
de referência do AFE, e envia e monitora sinais para outros componentes não mostrados
nesse diagrama (como fontes de alimentação).
A cadeia de transmissão é iniciada no DA (DAC5681z [20]), passando por um filtro
anti-imagem para eliminar as imagens do sinal digital geradas no processo de conversão,
o sinal então é amplificado (OPA2695 [23]) e, por último, o sinal é injetado na linha
através da hı́brida. A cadeia de recepção inicia na hı́brida, passa por um amplificador
de baixo ruı́do de ganho fixo (THS4509 [24]), um filtro anti-aliasing, um amplificador de
ganho programável (PGA870 [25]) e, finalmente, termina no conversor analógico digital
(ADS5474 [19]).
Figura 3.3: Diagrama de blocos simplificado do AFE.
A hı́brida [14] na Figura 3.3 é responsável por atenuar o máximo possı́vel o sinal
que é passado da cadeia de transmissão para a de recepção de um mesmo AFE, e fazendo
com que o sinal que chega pela linha telefônica seja entregue o mais fielmente possı́vel para
a cadeia de recepção. A hı́brida é necessária, pois há um único meio de transmissão, que
nesse caso é a linha telefônica, e há dois sinais trafegando por esse meio, assim a hı́brida
direciona o sinal para a saı́da adequada e atenua ao máximo possı́vel o sinal na outra
saı́da. Ela foi projetada para apresentar à linha telefônica uma impedância de 130 Ω, pois
de acordo com as especificações do padrão G.fast, os valores de impedância esperados da
linha telefônica devem estar na faixa de 90 a 180 Ω, assim a hı́brida foi projetada para
apresentar impedância no centro da faixa de valores esperados, para diminuir a perda por
22
descasamento de impedâncias.
O G.fast especifica uma largura de banda de 200 MHz, dessa forma, os conversores
devem trabalhar com frequências de amostragem adequadas para tal largura de banda.
Na SOUT, devido à limitação do conversor DA, do filtro anti-imagem do AFE e do conversor AD (frequência de amostragem máxima de 400 MHz), a banda útil é de 160 MHz.
Essa taxa de amostragem gera um fluxo de dados de 6400 Mbps do FPGA para o AFE
(conversor DA) e de 5600 Mbps do AFE para o FPGA (conversor AD), caso os conversores estivessem trabalhando em todo momento. Mas como o FPGA implementa uma
arbitragem TDD, enquanto um conversor trabalha o outro fica em espera. Para diminuir
os requerimentos de processamento no DSP e também de taxa de dados no RapidIO, o
FPGA faz o processamento de classificação de amostras recebidas, de modo a somente
enviar ao DSP amostras que contém informação.
3.1.2
DSP
A EVM do DSP é composta pelo sistema em um chip (SoC - System-on-chip em
inglês) TMS320C6670 da Texas Instruments. Esse SoC possui quatro núcleos de processamento, periféricos e coprocessadores usados para auxiliar os processadores principais
em tarefas que exigem alto poder computacional, onde periféricos são componentes dentro do chip que se conectam com o mundo exterior, como periféricos de comunicação
serial e Serial peripheral interface (SPI). Os coprocessadores auxiliam os processadores
executando rotinas em hardware, no lugar do processador, onde são exemplos os coprocessadores de FFT, e o network coprocessor (NETCP), que acelera o processamento de
pacotes recebidos pelo periférico de comunicação ethernet.
Um sistema operacional de tempo real (RTOS - Real-time operating system em
inglês) é usado em um dos processadores, e é configurado para tratar rotinas de tratamento
de interrupção, e tarefas de menor prioridade como submeter e receber comandos e dados
dos periféricos e coprocessadores.
3.1.3
FPGA
A EVM do FPGA é a ML605 da Xilinx, que possui um CI de FPGA XC6VLX240T.
A principal função do FPGA na SOUT é conectar o DSP com os conversores do AFE,
entretanto devido a sua capacidade computacional, alguns algoritmos foram passados do
DSP para o FPGA. Dessa forma, a divisão de processamento entre o DSP e o FPGA ficou
23
de modo que o DSP faz o processamento no domı́nio da frequência e o FPGA faz o processamento no domı́nio do tempo. O código do FPGA é composto de código desenvolvido
exclusivamente para a SOUT e de propriedades intelectuais (IP - Intellectual property em
inglês) da Xilinx, que são distribuı́das junto com as ferramentas de desenvolvimento para
os FPGAs.
Os códigos para FPGA desenvolvidos na UFPa realizam duplexação no domı́nio do
tempo (TDD - Time-domain duplex, em inglês), que será explicado mais detalhadamente
na Seção 3.2.1, e sincronização de sı́mbolos, que é o tema deste trabalho. Os IPs da Xilinx
usados, correspondem a memórias internas ao CI FPGA e o IP de RapidIO [26] que é usado
na comunicação entre DSP e FPGA. Outro IP da Xilinx utilizado é o Microblaze [27],
que é uma implementação de um processador RISC (Reduced instruction set computing)
dentro do FPGA, e é programado para prover ao usuário da aplicação do protótipo do
modem uma interface de comando para que as configurações do FPGA e do AFE sejam
feitas.
Além do mais, a EVM do FPGA ainda possui vários periféricos que são externos ao
FPGA, dentre os quais, são usados nesse trabalho a memória DDR3 SODIMM, o conetor
FMC HPC, o conector PCIe 8x, a porta USB JTAG e a porta USB UART. Dentre os
periféricos da ML605 usados, o conector FMC HPC é usado para conectar a ML605 ao
AFE, e o conector PCIe é usado para conectar a ML605 ao DSP.
3.1.4
Conexão fı́sica e lógica entre as placas
A SOUT foi desenvolvida para ser uma plataforma de RDS e a aplicação modem-
prototype é uma implementação de um modem G.fast construı́da sobre a SOUT. Dessa
forma, a principal função da aplicação modem-prototype é prover uma conexão entre
duas redes distintas, como mostrado na Figura 3.1, em outras palavras a SOUT recebe
pacotes IP através da interface ethernet do DSP, e este é processado na cadeia composta
pela SOUT e transmitido através de um cabo telefônico para outra SOUT, que faz o
processamento contrário para recuperar a informação transmitida e repassá-la para a
outra rede.
Ainda na Figura 3.1 é possı́vel perceber que o AFE conecta-se ao FPGA, e este ao
DSP. O AFE foi projetado de forma a conectar-se ao FPGA, que recebe amostras dos conversores, e controla os componentes do AFE através de sinais de controle e duas interfaces
SPI. A conexão entre o DSP e o FPGA é feita utilizando o protocolo RapidIO [28] [26],
que é capaz de atingir taxas de até 20 Gbps, suficiente para o transporte de controle do
24
DSP para o FPGA e vice-versa, e principalmente as amostras dos conversores.
Do ponto de vista lógico o FPGA age como um conversor de protocolos, ou um
conversor de padrões de tensão. O protocolo escolhido para a interface entre o FPGA e
DSP foi o RapidIO, pois é o protocolo suportado por ambos que possui a maior taxas de
dados. Dessa forma, na cadeia de recepção, as amostras recebidas do AD são encapsuladas
em um pacote RapidIO e enviadas ao DSP. Enquanto que na cadeia de transmissão as
amostras são geradas pelo DSP a partir de pacotes IP que chegam pela interface de rede,
então as amostras geradas são encapsuladas em pacotes RapidIO, e enviadas ao FPGA,
que as envia ao DA. Para gerar as amostras a partir de pacotes IP, o DSP usa a técnica
DMT, que é discutida em mais detalhes nas seções seguintes.
Figura 3.4: Visão geral das conversões de dados.
3.2 A aplicação modem-prototype
Esta seção trata mais detalhes sobre os códigos desenvolvidos para programar o
DSP e o FPGA. Entretanto, como se trata de uma implementação completa de um modem,
há muitos algoritmos usados para que o modem seja robusto às dificuldades imposta pelo
canal, como codificação de canal e bitloading para o DMT. Dessa forma, esta seção detalha
os blocos que compõem a implementação do modem, mas para que seja mantido o foco do
trabalho, somente os algoritmos que estão diretamente relacionados à parte de sincronismo
serão detalhados a fundo nas próximas seções.
A aplicação modem-prototype é composta de duas cadeias, a cadeia de transmissão
e a cadeia de recepção, e isso implica que a mesma divisão do AFE é também feita no
software e firmware do DSP e FPGA. As próximas seções dão uma descrição detalhada
das duas cadeias, sem dividir o que está no DSP e no FPGA.
25
3.2.1
Implementação da duplexação no domı́nio do tempo
(TDD)
Antes de falar sobre as cadeias com compõem a aplicação, é importante enten-
der como é feita a duplexação entre dois modems, pois do ponto do vista do código que
programa o DSP e o FPGA, as duas cadeias são separadas, e a arbitragem TDD implementada no FPGA é onde as cadeias se unificam, pois é o código TDD que gerencia
quando cada cadeia está ativa ou não.
O padrão G.fast define TDD como o modo de duplexação entre dois modems,
dessa forma, a implementação do modem-prototype também implementa esse mesmo tipo
de duplexação, entretanto, devido à limitações no AFE e no FPGA não foi possı́vel seguir
completamente as recomendações do G.fast. Os impedimentos em seguir o G.fast são
limitações fı́sicas, como por exemplo, o AFE não possui mecanismo de sincronizar os
clocks dos dois modems, assim não foi possı́vel implementar a duplexação exata descrita.
Assim, foi feita uma implementação de TDD o mais próxima possı́vel da recomendação.
Na recomendação é definido o chamado quadro TDD, que é composto pelos slots
de upstream e downstream. No slot de upstream o modem que faz o papel do equipamento
do usuário (CPE - customer premise equipment) transmite um conjunto de sı́mbolos para
o DSLAM (DSL access multiplexer ), depois o CPE deve esperar que o DSLAM transmita
na oportunidade de downstream. A Figura 3.5 mostra a organização do quadro TDD
descrita.
Na Figura 3.5 os slots de downstream e upstream possuem o tamanho de 6.5
sı́mbolos no domı́nio do tempo com CP. Onde, 4 sı́mbolos podem transportar informação
(INFO), 1 é usado para sincronização (SINC), 1 é usado para estimação de canal (ESTIM), 0.5 sı́mbolo é usado como tempo de guarda entre os dois slots e caso não haja
sı́mbolos para transmitir até 5 sı́mbolos podem ser usados como IDLE. Os sı́mbolos IDLE
são necessários, pois, para que a implementação TDD mantenha o sincronismo, todos os
sı́mbolos do slot devem estar presentes, o sı́mbolo IDLE será detectado e descartado pelo
FPGA.
Toda a arbitragem do TDD e organização dos sı́mbolos nos quadros são feitas no
FPGA. Assim, na cadeia de transmissão, o FPGA recebe sı́mbolos do DSP, que ficam armazenados no FPGA até a oportunidade de transmissão. Antes de transmitir os sı́mbolos
INFO, o FPGA transmite um sı́mbolo SINC para sinalizar o inı́cio da transmissão, que
ativará o receptor do outro modem. O segundo sı́mbolo enviado é o ESTIM, que é usado
no DSP para fazer a estimação do canal e corrigir os sı́mbolos INFO na recepção. Os
26
Figura 3.5: Um slot TDD usado na SOUT.
sı́mbolos de números 3, 4, 5 e 6 podem ser INFO ou IDLE, sendo que o segundo só é
transmitido caso não haja sı́mbolos INFO, com o objetivo de manter o sincronismo. No
receptor, o IDLE será detectado e descartado. Se não houver nenhum sı́mbolo INFO
para transmitir, então somente sı́mbolos IDLE são transmitidos, quando isso acontece o
slot fica composto de um SINC seguido de cinco IDLEs, e o receptor descartará todos os
sı́mbolos daquele slot.
Após transmitir o quadro, o modem entra no estado de detecção, onde ele espera
pelo sı́mbolo SINC do outro modem. Após SINC ser detectado, o modem verifica se o
sı́mbolo atual é IDLE, que é descartado, caso contrário o sı́mbolo é salvo e enviado ao
DSP. Os sı́mbolos IDLE e SINC são o mesmo sı́mbolo, sendo diferenciados pela posição
em que ocorrem no quadro, se ocorrer na primeira posição é chamado de SINC, senão, é
chamado de IDLE. Usar o mesmo sı́mbolo permite usar o mesmo detector para detectar
os dois sı́mbolos, assim simplifica a implementação do receptor.
Os detectores são descritos em detalhes na Seção 3.2.5.1 e na Seção 3.2.5.2
3.2.2
Comunicação com os conversores
Na SOUT os conversores presentes no AFE operam em altas velocidades, ou, mais
especificamente, 400 MHz. Assim, para simplificar a interface com esses conversores,
eles foram projetados para operar usando a técnica Double data rate (DDR) [19] [20].
Normalmente os sistemas digitais operam sı́ncronos com borda de subida ou a borda de
descida do sinal de clock, nos sistemas que usam DDR, os dados são transferidos em ambas
as bordas. Assim, usando DDR, é possı́vel diminuir pela metade a frequência de operação
do clock, e isso simplifica e a parte do projeto da placa de circuito impresso (PCI), pois
as frequências são diminuı́das pela metade. Dessa forma, os conversores do AFE, que
operam a 400 MHz, transferem dados nas duas bordas de um sinal de clock de 200 MHz.
A Figura 3.6, mostra a transferência de dados usando DDR, onde o sinal DCLK é o clock
e D é o barramento de dados sendo transferido nas duas bordas de DCLK.
27
Figura 3.6: Transferência de dados usando DDR. O sinal DCLK(P/N) é o clock o sinal
D[15:0](P/N) é o barramento de dados sendo transferido nas duas bordas de DCLK.
Figura retirada do manual do DAC5681z.
O FPGA, como a maioria dos sistema digitais, trabalha em Single data rate (SDR),
que é a técnica complementar à DDR, onde o dispositivo opera somente em uma borda do
sinal de clock. Entretanto, o FPGA possui circuitos especiais dedicados para interfacear
com dispositivos DDR [29], onde os dados transmitidos em DDR são lidos por esses
circuitos e entregue à lógica interna do FPGA de forma que os dados da subida e da
descida do clock são entregues juntos, em um único barramento com o dobro do tamanho
original. Assim, a aplicação modem-prototype deve trabalhar com duas amostras por vez
para interfacear com os conversores, logo o FPGA deve operar (na parte de interface com
os conversores) a 200 MHz. Mas para diminuir a frequência de clock interna do FPGA, um
esquema é usado para que o FPGA converta para um barramento de 4 amostras, e assim
consiga usar 100 MHz de frequência interna, isso faz com que diminua os requerimentos
do FPGA e facilita a implementação. A Figura 3.7 mostra esse esquema, onde ODDR e
IDDR são os circuitos especiais do FPGA que fazem a interface com os dispositivos DDR.
Na recepção, a saı́da do IDDR é injetada na entrada de dois registradores em
cadeia operando no clock de 200 MHz, a saı́da desses dois registradores é paralelizada e
injetada em um registrador com o dobro do tamanho operando no clock de 100 MHz, que
então repassa à lógica do interna do FPGA. Na transmissão, as quatro amostras vindas
da lógica do FPGA são divididas em dois barramentos contendo duas amostras cada, e
o clock de 200 MHz é usado para chavear entre os dois barramentos. Um registrador de
duas amostras é usado para sincronização, então o circuito do FPGA ODDR gera o sinal
DDR e envia ao DA.
É importante explicitar que diminuir o clock para 100 MHz e trabalhar com quatro amostras, foi uma decisão de projeto da aplicação modem-prototype, assim o esquema
apresentado na Figura 3.7 é especı́fico dessa aplicação, e é explicado para melhor entendimento dos algoritmos que são executados pelo FPGA. Outras aplicações que usem
a SOUT não precisam fazer essa conversão, entretanto, toda aplicação usando a SOUT
deve usar o ODDR e IDDR para interfacear com os conversores. Os circuitos ODDR e
28
Figura 3.7: Esquema usado no FPGA para fazer a conversão de 200 para 100 MHz.
IDDR são especı́ficos dos FPGAs da famı́lia Virtex da Xilinx, logo, para FPGAs de outras
famı́lias ou famı́lias mais avançadas esses nomes podem mudar.
3.2.3
Cadeia de transmissão
A Figura 3.8 mostra a sequência de algoritmos aplicados aos pacotes recebidos
da rede IP para que estes gerem sı́mbolos DMT que serão transmitidos pela linha. Os
próximos parágrafos descrevem com mais detalhes as funções dos blocos da Figura 3.8.
Figura 3.8: Ilustração em diagrama de blocos da cadeia de transmissão.
Descrição dos blocos da cadeia de transmissão:
• Codificador Reed-Solomon (RS) [30]: este bloco adiciona bytes de paridade
à informação para permiter a detecção e correção de erros no receptor. A implementação atual adiciona 16 bytes de paridade e agrupa os pacotes IP em palavrascódigo com tamanhos de 170 a 255 bytes, dependendo do número de bytes que um
sı́mbolo DMT pode carregar.
29
• Slicer de quadros: o padrão G.fast define um Data frame como um conjunto de
Data transfer units (DTU) que serão modulados em um sı́mbolo DMT. O Slicer de
quadros é capaz de retirar os bytes de um Data frame para gerar o sı́mbolo QAM
que é transmitido em cada tom.
• Mapeamento: esse bloco vai gerar os sı́mbolos QAM a partir dos bits gerados pelo
Slicer de quadros.
• IFFT: até este ponto o sı́mbolo DMT é tratado no domı́nio da frequência, este
bloco realiza o algoritmo IFFT, para converter os sı́mbolos DMT para o domı́nio do
tempo. Neste ponto os sı́mbolos DMT são enviados para o FPGA.
• Adição de prefixo cı́clico: o CP é adicionado ao sı́mbolo DMT para deixá-lo mais
robusto à interferência intersı́mbolica, e como isso é feito simplesmente repetindo as
amostras do final do sı́mbolo no inı́cio, essa operação é feita no FPGA para evitar
o uso da interface RapidIO entre o DSP e o FPGA para transmitir informação
redundante. Dessa forma, ao receber um sı́mbolo do DPS, o FPGA o direciona
para o DA, mas primeiro as amostras do final do sı́mbolo são transmitidas e então
o sı́mbolo.
3.2.4
Cadeia de recepção
Neste trabalho o foco é dado à cadeia de recepção, pois é onde os algoritmos de
sincronismo são aplicados para que, em conjunto com outros algoritmos como equalização
de canal, o sı́mbolo recebido esteja o mais próximo possı́vel do sı́mbolo transmitido. Esta
seção mostra e explica o diagrama de blocos da cadeia de recepção, entretanto, os algoritmos de sincronismo são tratados com mais detalhes na Seção 3.2.1, na Seção 3.2.5.1 e
na Seção 3.2.5.2.
A Figura 3.8 mostra os algoritmos que compõem a cadeia de recepção na sequência
em que eles são aplicados ao sinal recebido, onde o primeiro é o Slot detection e continua
da direita para a esquerda.
É importante notar que os blocos RS, Deslicer de quadros, Desmapeamento, IFFT
e Remoção de prefixo cı́clico fazem exatamente a operação contraria dos blocos com nomes
similares na Figura 3.8, dessa forma não serão explicados aqui.
Os blocos restantes são tratados em mais detalhes nos próximos parágrafos, e os
que realizam os algoritmos que são focos desse trabalho, são descritos na Seção 3.2.1, na
Seção 3.2.5.1 e na Seção 3.2.5.2 com nı́vel de detalhes aprofundado.
30
• Detecção de slot: esse bloco encontra-se no FPGA, e é responsável por detectar o
sı́mbolo SINC, uma vez que este é detectado, esse bloco procura por sı́mbolos IDLE
usando o mesmo detector. Caso o sı́mbolo que acabou de chegar não seja detectado
como IDLE, este sı́mbolo é salvo na memória do FPGA e, posteriormente, enviado
ao DSP. Este bloco é em parte da responsável pela implementação do TDD, e
ele corresponde ao tempo do TDD em que o modem recebe dados da linha. Um
exemplo, em um modem que faz papel de CPE, a Detecção de slot está esperando
pela oportunidade de transmissão de downstream.
• FEQ: é o bloco responsável pela equalização dos sı́mbolos recebidos, essa operação
é chamada de equalização [14] [16] em frequência (FEQ - frequency equalization
em inglês), cada slot recebido que contém pelo menos um sı́mbolo INFO também
possui um sı́mbolo de estimação de canal (ESTIM), ou seja, de um slot no mı́nimo
são repassados ao DSP dois sı́mbolos. O sı́mbolo ESTIM é usado pelo DSP para
atualizar a estimação do canal para que o sı́mbolos INFO recebidos possam ser
corrigidos.
• RSR est: faz a estimação de RSR na chamada fase de treinamento do modem,
nessa fase nenhuma informação é transmitida, somente sı́mbolos ESTIM, e é feita a
estimação de RSR que seja feito o cálculo de bitloading dos tons.
3.2.5
Detectores
Como descrito na Seção 3.2.1, o FPGA é responsável pela detecção de sı́mbolos
que chegam pela linha. Esta seção provê mais detalhes sobre o processamento de sinal
realizado para fazer a detecção. Os detectores usados na SOUT são o Schmidl & Cox
(S&C) e o xCorr, e foram adaptados para trabalhar com quatro amostras por ciclo de
clock, devido aos requerimentos do FPGA descritos na Seção 3.2.2.
Quando comparadas as implementações dos dois detectores no FPGA, é possı́vel
perceber que o detector S&C usa menos recursos do FPGA que o xCorr, assim ele é mais
facilmente incorporado no FPGA com o restante do código. Mas em relação à detecção
de sinais o xCorr é bem mais robusto e consegue detectar sinais numa faixa de potência
muito maior, sem falsos positivos ou negativos. Mais detalhes são dados nas próximas
seções.
31
3.2.5.1
Detector Schmidl & Cox
Este detector, publicado pela primeira vez em [9], é baseado em uma correlação
cruzada modificada, onde o algoritmo consegue detectar um sı́mbolo DMT com tamanho
especı́fico, que nesse caso é o tamanho do sı́mbolo DMT usado no modem-prototype,
sendo que esse sı́mbolo deve ser composto de duas metades iguais no domı́nio do tempo.
A geração desse sı́mbolo pode ser feita simplesmente gerando uma sequência aleatória
com metade do tamanho do sı́mbolo DMT e transmitindo duas vezes essa sequência no
lugar de um sı́mbolo DMT (como explicado na Seção 3.2.1).
Também é possı́vel gerar esse sı́mbolo de uma maneira mais formal, usando a cadeia
DMT onde o sı́mbolo é criado usando somente os tons pares ou ı́mpares do sı́mbolo DMT.
Caso sejam usados os tons pares, o sı́mbolo é gerado no domı́nio do tempo com duas
metades exatamente iguais, e no caso de se usar os tons ı́mpares, o sı́mbolo é gerado com
duas metades iguais mas com sinais opostos. Do ponto de vista do detector, as duas
formas de gerar são equivalente, pois o algoritmo eleva ao quadrado o sinal de entrada.
As Equações (3.1) e (3.2), obtidas a partir da equação da transformada discreta inversa de
Fourier, mostram como gerar sı́mbolos no domı́nio do tempo simétricos e anti-simétricos,
respectivamente, onde Xk pode ser qualquer número complexo mas é possı́vel utilizar
o modulador QAM para gerar-los de forma a reaproveitar a estrutura de modulação já
existente [9].
N/2−1
1 X
Xk ej2π(2k)n/N
xn =
N k=0
(3.1)
N/2
1 X
xn =
Xk ej2π(2k−1)n/N
N k=1
(3.2)
O detector S&C consegue detectar o sinal aplicando uma sequência de operações no
sinal recebido, para então obter uma métrica de temporização. Quando a métrica de temporização atinge ou passa de um limiar, o detector acusa a detecção. As Equações (3.3)
e (3.4), retiradas de [9], mostram a sequência de operações realizadas no sinal de entrada r, para então obter a métrica de temporização descrita pela Equação (3.5). As
Equações (3.3), (3.4) e (3.5) foram ligeiramente modificadas de sua versão original, pois
em [9] elas são descritas para sı́mbolos OFDM que podem ser complexos no domı́nio do
tempo, e nesse trabalho os sı́mbolos são DMT, que sempre são reais no domı́nio do tempo.
Nas Equações (3.3), (3.4) e (3.5) a variável L é igual a metade do tamanho do sı́mbolo
DMT, e os ı́ndices d, d+L e d+2L, representam a amostra que sai do detector, a amostrada
32
do meio do sı́mbolo e a amostra que entra no detector. Assim, as equações comparam a
primeira metade do sı́mbolo com a segunda metade através da divisão da Equação (3.5),
e quando o detector estiver processando o sı́mbolo definido nas Equações (3.1) e (3.2), P
e R serão iguais, logo, o valor de M será igual a 1.
P (d + 1) = P (d) + (rd+L rd+2L ) − (rd rd+L )
(3.3)
2
2
− rd+L
R(d + 1) = R(d) + rd+2L
(3.4)
M (d) =
P 2 (d)
R2 (d)
(3.5)
A Figura 3.9 mostra curvas tı́picas da métrica de temporização quando o S&C é
usado, nessa figura o sı́mbolo processado além de ter as duas metades iguais no domı́nio
do tempo, ainda possui seu final repetido no inı́cio a criação prefixo cı́clico, e isso cria o
platô mostrado na figura em torno da abscissa zero. Isso significa que as Equações (3.3)
e (3.4) estão processando o prefixo cı́clico do sı́mbolo. Outra interpretação para o platô,
ou para o valor máximo de M (d), é referente à RSR do sinal, pois esse valor máximo pode
ser usado para encontrar o nı́vel de ruı́do que o sı́mbolo sofreu até chegar no receptor.
Dessa forma, também foi definido em [9] uma forma de calcular a RSR a partir desse
valor máximo, que também pode ser usada para definir o limiar para acusar a detecção
do sı́mbolo. É importante destacar que, uma vez que ruı́do é adicionado ao sinal, o valor
máximo de M (d) passa a sofrer variação. Um valor máximo tı́pico de M (d) é 0.8 quando
a RSR é 10 dB.
No modem-prototype, como foi explicado na Seção 3.2.2, o FPGA deve trabalhar
com quatro amostras por ciclo de clock, logo as Equações (3.3) e (3.4) foram modificados
para atualizar os valores de P e R com quatro amostras por vez. Dessa forma, a restrição
de trabalhar com quatro amostras resultou nas Equações (3.3) e (3.4) ficando modificados, onde os termos +(rd+L rd+2L ) e −(rd rd+L ) foram atualizados para incluir as quatro
amostras. Outras modificação feita na implementação do FPGA ao algoritmo original,
foi eliminar os quadrados na obtenção de M (d) na Equação (3.5), essa decisão foi feita
para economizar recursos do FPGA, assim, a Equação (3.6) que resulta da modificação,
somente utiliza módulos ao invés de multiplicações. Essa modificação altera o cálculo de
M (d), logo não é mais possı́vel usar o método descrito em [9] para estimar a RSR através
do valor máximo dessa função. Dessa forma, no modem-prototype o limiar foi definido
através de simulações.
33
RSR infinita
RSR=10dB
1
M(d)
0.8
0.6
0.4
0.2
0
−1.5
−1
−0.5
0
0.5
1
1.5
Símbolo
Figura 3.9: Exemplo da métrica de temporização para o S&C quando a RSR é infinita.
M (d) =
|P (d)|
|R(d)|
(3.6)
A Figura 3.10 mostra a implementação do algoritmo no FPGA, onde toda a estrutura é quadruplicada devido à restrição de ter que processar quatro amostras. Além dos
blocos incluı́dos na figura, ainda há outro que não aparece na mesma, que faz a comparação
do valor de M (d) com o limiar e acusa a detecção. A memória mostrada na Figura 3.10
armazena exatamente um sı́mbolo DMT, e os endereços END D e END DL possuem diferença de 2048 (metade do tamanho do sı́mbolo DMT usado no modem-prototype), dessa
forma é possı́vel, junto com o registrador, armazenar as amostras e usá-las de acordo com
as Equações (3.3) e (3.4).
Figura 3.10: Implementação do detector S&C no FPGA.
34
3.2.5.2
Detector xCorr
Este detector foi projetado como uma alternativa ao S&C, principalmente devido
à alguns problemas apresentados por ele. No xCorr a correlação cruzada é implementada
diretamente, entretanto, o valor máximo da correlação também varia de acordo com a
energia do sinal recebido. Assim, a correlação é normalizada de forma que o resultado
da correlação fica entre 0 e 1. O fato de usar correlação cruzada e o limiar ser sempre
próximo de um (e não variar), faz com que o xCorr apresente desempenho muito melhor
do que o S&C, mesmo para sinais atenuados e distorcidos pelo ruı́do, e também não há
necessidade de definir limiar. Entretanto, o xCorr usa muito mais recursos do FPGA,
como explicado no Capı́tulo 4.
O xCorr, diferentemente do S&C, precisa de um sinal de referência, ou seja, o
receptor precisa armazenar o sinal transmitido para comparação. A Equação (3.7) mostra
as operações realizadas para obter a métrica de temporização M no algoritmo xCorr,
onde x(i) é o sinal recebido e ref (i) é o sinal de referência que fica salvo no receptor.
O numerador da Equação (3.7) corresponde ao cálculo de uma correlação cruzada, que é
elevada ao quadrado. O denominador corresponde ao cálculo das energias dos sinais x(i)
e ref (i) [31].
2
x(i)ref (i)
M = PN
PN
2
2
i=1 ref (i)
i=1 x (i)
P
N
i=1
(3.7)
Como o sinal ref (i) é um sinal conhecido, é possı́vel pré-calcular sua energia e a
Equação (3.7) pode ser simplificada resultando na Equação (3.8), que foi implementada
no FPGA. Na Equação (3.8), o operador >> corresponde a um deslocamento de bits para
a direita, onde o numero que aparece a direita desse operador indica o número de bits
que devem ser deslocados. A simplificação consiste em gerar o sinal ref (i), que é salvo
P
2
32
no transmissor e no receptor, de modo que N
i=1 ref (i) = 2 .
P
M=
N
i=1
2
x(i)ref (i) >> 32
PN 2
i=1 x (i)
(3.8)
Como a correlação cruzada é uma operação custosa tanto em hardware quanto
em software, no modem-prototype, ao invés do xCorr ser aplicado em um sı́mbolo DMT
inteiro, somente uma sequência de 64 amostras é usada. Essa sequência é suficiente para
gerar uma boa diferença entre o pico da correlação e o ruı́do, e foi obtida através de
simulações feitas com o algoritmo antes de ser implementada no FPGA. Assim, o sı́mbolo
35
transmitido consiste em uma sequência de 64 amostras seguida de zeros para completar
o sı́mbolo DMT.
O xCorr também precisa trabalhar com quatro amostras por vez, devido ao que
foi descrito na Seção 3.2.2, assim 4 implementações de xCorr de 64 amostras foram incorporadas no FPGA. A Figura 3.11, mostra a implementação do xCorr no FPGA. Na
Figura 3.11 há uma bloco chamado delay, que é necessário, pois o cálculo da energia do
sinal é feito em menos ciclos de clock do que o cálculo da correlação cruzada, assim eles
precisam ser alinhados para que a divisão produza resultados corretos.
Figura 3.11: Implementação do detector xCorr no FPGA.
Como foi explicado na Seção 3.2.2 a interface com o AD entrega à lógica do FPGA
um bloco de quatro amostras por ciclo de clock, que serão processadas pelos detectores, e
cada amostra vai para um xCorr. Um problema que ocorreu durante o projeto do xCorr,
foi que a primeira amostra da sequência ref (i) pode estar em qualquer uma das quatro
posições do bloco, assim, se a primeira amostra não for direcionada para algum xCorr o
detector falhará. Para solucionar esse problema, os quatro xCorrs são implementados no
FPGA para detectar o mesmo sinal ref (i), sendo que esse sinal é composto das amostras
múltiplas de quatro de um sinal de tamanho igual a 256. A Figura 3.12 mostra o sinal
transmitido e quais amostras dele são usadas para compor o sinal ref (i).
Como o FPGA faz a conversão para trabalhar com quatro amostras por vez, a
amostra A1 do sinal da Figura 3.12 pode ser colocada em qualquer uma das quatro
posições do grupo de quatro amostras, como mostrado da Figura 3.13, onde é mostrado
um exemplo que as amostras do sinal ref (i) estão sempre na segunda posição do grupo.
Assim, como há no FPGA quatro implementações do xCorr, cada uma recebe uma posição
do grupo de amostras, e, dessa forma, quando todas as amostras do sinal ref (i) passarem
36
Figura 3.12: Sinal SINC transmitido para o detector xCorr.
pelo detector, somente um xCorr irá acusar a detecção. Uma vez que um xCorr detecta,
é possı́vel encontrar a primeira amostra do sı́mbolo DMT a partir de qual detector fez a
detecção.
Figura 3.13: Sinal SINC recebido pela interface dos conversores com o FPGA.
A Figura 3.14 ilustra como as amostras recebidas dos conversores são repassadas
aos xCorrs. Nesse exemplo, as amostras do sinal ref (i) estão sempre na segunda posição
do grupo de quatro amostras, dessa forma, o único detector que irá detectar o sinal é o
segundo. A Figura 3.15 mostra um conjunto de curvas tı́pico que é entregue pelos xCorrs,
para o caso da Figura 3.13.
Figura 3.14: Ilustração de como as amostras do sinal recebido são repassadas aos xCorrs.
Nesse exemplo, as amostras do sinal ref (i) sempre estão na segunda posição do grupo de
quatro amostras.
37
xCorr 1
xCorr 2
xCorr 3
xCorr 4
1
0.8
0.6
0.4
0.2
0
−0.2
−30
−20
−10
0
10
20
30
Figura 3.15: Exemplo de resultados dos xCorrs quando o sinal ref (i) está na segunda
posição do grupo.
3.2.6
Correção de diferenças de clock
Um problema pertinente em qualquer sistema de comunicação é a questão da di-
ferença dos clocks do transmissor e do receptor, conhecido como Clock frequency offset
(CFO), que basicamente é causado pela diferença dos clocks do transmissor e do receptor,
assim, esquemas de modulação que utilizam temporização precisa (e.g. QAM) podem ter
seu desempenho diminuı́do, ou mesmo a recuperação do sinal impossibilitada. Temporização apropriada é um fator chave para a demodulação com sucesso do sı́mbolo recebido,
para o caso de um esquema de modulação coerente. Na aplicação modem-prototype é usada
a modulação DMT, sendo que seu processo de demodulação é coerente, o que significa
que a portadora do sinal transmitido precisa ser recuperada tanto em frequência quanto
em fase.
A modulação DMT é normalmente transmitida em banda base, o que significa
que não há necessidade de recuperação ou sincronização da portadora, somente sendo
necessária a recuperação do clock de amostragem. No modem-prototype o sincronismo
é feito em duas etapas, a primeira corresponde à detecção dos sı́mbolos, descrita na
Seção 3.2.5, onde os sı́mbolos contendo informação são salvos e enviados ao DSP. A
segunda etapa corresponde a estimar a diferença dos clocks a partir de tons piloto no
próprio sı́mbolo recebido, e essa estimação é usada para corrigir os sı́mbolos recebidos.
Mesmo sem a necessidade de manter o sincronismo das portadoras, manter o clocks
de amostragem do transmissor e do receptor não é uma tarefa simples. Os osciladores
38
que geram os clocks de amostragem são configurados para os mesmo valores nominais1 ,
entretanto, devido às imperfeições nos circuitos, componentes e variações no processo de
fabricação e da temperatura os clocks são ligeiramente diferentes. A precisão dos osciladores são especificados em parte por milhão (ppm), mas mesmo quando os dispositivos são
muito precisos ainda há necessidade se manter, através de processamento, os dispositivos
alinhados.
A Figura 3.16 mostra que, devido a pequena diferença nas frequências dos clocks, a
diferença de fase deles é incrementada periodicamente, e essa fase variável é prejudicial à
demodulação dos sı́mbolos. No modem-prototype a correção é feita toda em domı́nio digital, e é iniciada no processo de detecção. No processo de detecção o sı́mbolo é amostrado
e somente os sı́mbolos contendo informação são salvos, acontece que os dois detectores
usados nesse trabalho erram, ou seja, em cada ocorrência de um novo slot os sı́mbolos
possuem um número diferentes de amostras do prefixo cı́clico, mais detalhes sobre o desempenho dos detectores são dados no Capı́tulo 4 e na próxima seção.
Figura 3.16: Exemplo onde além da diferença de fase, os clocks possuem frequências
diferentes. Assim, os ∆ sempre mudam.
3.2.6.1
Definição de cursor
No modem-prototype são usados detectores para receber os sı́mbolos transmitidos,
onde os sı́mbolos possuem CP, que tem como principal objetivo aumentar a robustez
do sı́mbolo às distorções causadas pelo canal [14]. A Figura 3.17 mostra o sı́mbolo DMT
composto de N = 4096 amostras e o CP, que corresponde à repetição de algumas amostras
do final do sı́mbolo no seu inı́cio, no modem-prototype o tamanho do prefixo cı́clico é de
128 amostras. O CP torna o sı́mbolo robusto às distorções do canal, pois ele é adicionado
na parte do sı́mbolo que sofre mais distorção causada por interferência intersimbólica,
dessa forma, ele é distorcido no lugar do sı́mbolo. Para que o CP surta efeito, ele precisa
1
E normalmente usam o mesmo modelo de dispositivo.
39
ter pelo menos a mesma duração da dispersão do canal, e esse valor pode ser obtido a
partir da estimação do canal, no modem-prototype esse valor é fixo e grande o suficiente
para os canais usados (cabos de 50 m e 100 m).
Figura 3.17: Definição de cursor n0 e ilustração de como ele acontece.
Os detectores podem errar, e é esperado que todo slot possua um número diferente
de amostras do CP em relação ao anterior, ou seja, como há variação, no modem-prototype
é assumido o pior caso. O número de amostras do CP é chamado de cursor do sı́mbolo
ou n0 , e como o processamento do DMT considera que os sı́mbolos são periódicos é como
se fosse salvo parte de um perı́odo anterior e parte do perı́odo atual do sı́mbolo DMT.
No modem-prototype convencionou-se que um n0 positivo e menor que o tamanho do CP
corresponde salvar o sı́mbolo e parte do seu CP, isso não distorce o sı́mbolo, somente
rotaciona a constelação. Enquanto que n0 negativo corresponde a salvar o sı́mbolo e
parte do CP do próximo sı́mbolo, quando isso acontece os sı́mbolos salvos são distorcidos
e podem ficar irrecuperáveis. A recuperação de um sı́mbolo DMT que sofre n0 negativo
não é simples, mas é possı́vel com algumas técnicas como [32].
Como se sabe que os detectores erram, no FPGA o n0 é forçado a ser ligeiramente
maior que a média desses erros, dessa forma, é garantido que o sı́mbolo sempre será salvo
com seu próprio CP e não o do próximo sı́mbolo. No detector S&C isso é feito aumentando
ou diminuindo o limiar, enquanto que no xCorr uma cadeia de atraso é colocada na sua
saı́da.
Quando n0 > 0, o sı́mbolo QAM no tom k do sı́mbolo DMT (de N pontos) são
rotacionados por uma fase definida por −∆θ[k], onde
∆θ[k] =
2πn0 k
= βk
N
(3.9)
com
β=
como discutido em [8] [11].
2πn0
N
(3.10)
40
Entretanto, devido ao CFO, o n0 não é um número inteiro, ele possui também
uma parte fracionária que é incrementada a cada ciclo de clock. Diferentemente da parte
inteira, que é a mesma para um slot inteiro a parte fracionária é incrementada. Para
simplificar no modem-prototype é assumido que cada sı́mbolo do slot possui um n0 fixo, e
o próximo sı́mbolo possui um n0 incrementado pelo total da fase acumulada do sı́mbolo
anterior inteiro. A Figura 3.18 mostra o incremento tı́pico que acontece em um sı́mbolo
em relação ao sı́mbolo anterior, onde a parte inteira é o número de amostras do CP e a
parte fracionária corresponde ao CFO. É possı́vel ainda perceber que há um incremento
médio de 5% de amostra de um sı́mbolo para outro.
20.72
n0
20.7
20.68
20.66
n0
20.64
20.62
20.6
20.58
20.56
20.54
0
5
10
15
20
Símbolo DMT
25
30
Figura 3.18: Estimação de n0 para vários sı́mbolos DMT recebidos em sequência.
3.2.6.2
Arquitetura para sincronização e equalização.
O modem-prototype tem duas fases que são mostradas nas Figuras 3.19 e 3.20, denominadas fases de treinamento e de showtime. Na fase de treinamento somente sı́mbolos
ESTIM são transmitido e o receptor os usa para fazer a estimação mais precisa possı́vel
do canal, fazendo a média de várias realizações sı́mbolos ESTIM de diferentes slots.
A fase de treinamento consiste em processar o sı́mbolo ESTIM recebido de modo que
seja feita a estimação de canal para aquela realização do ESTIM através da operação
SF EQ1 = T X/RX. O mesmo sı́mbolo também é processado para que a informação
41
da fase do sı́mbolo seja estimada (F EQ2 da Figura 3.20), dessa forma, com essas duas
informações é possı́vel gerar o vetor F EQ1, que corresponde a um vetor para correção de
sı́mbolos não rotacionados (i.e. com n0 = 0) não rotacionado, e este, então, é incluı́do na
média histórica de todas as realizações de F EQ1.
Na fase de showtime a sincronização e equalização são feitas na seguinte ordem.
• Detecção de slot: como é explicado em outras seções, são usados algoritmos baseados
em correlação cruzada para estimar o inı́cio dos slots, e então salvar os sı́mbolos
INFO. Nas Figuras 3.19 e 3.20 é mostrado como Recebe 1 sı́mbolo DMT.
• Equalização: é usada para mitigar os efeitos do canal e também do cursor
• Estimação e correção de cursor.
Figura 3.19: Fases de treinamento do modem-prototype.
Na fase de showtime caso o sı́mbolo sendo processado seja o ESTIM, então ele é
usado para atualizar a estimação de F EQ1 feita na fase de treinamento. Essa atualização
não altera a estimação feita durante a fase de treinamento, somente a atualiza para aquele
slot. O sı́mbolo ESTIM é processado primeiramente sendo equalizado por F EQ1, e então
é calculado o n0 de ESTIM (i.e. aproximadamente o mesmo para o slot inteiro), e essa fase
é usada para atualizar F EQ1 que gerará o vetor F EQ que equalizará os outros sı́mbolos
42
Figura 3.20: Fases de showtime do modem-prototype.
do slot. Os sı́mbolos INFO recebidos são multiplicados por F EQ no domı́nio da frequência
e equalizados. Após a multiplicação por F EQ, os sı́mbolos equalizados são repassados à
cadeia de processamento DMT mostrada na Figura 3.8 e descrita na Seção 3.2.4.
3.2.6.3
Estimação de cursor
Para corrigir o n0 dos sı́mbolos QAM, um bloco de correção de cursor é responsável por multiplicar os sı́mbolos recebidos RX[k] por F EQ2[K], onde RX[k] é a
representação de um sı́mbolo DMT recebido no domı́nio da frequência e F EQ2[k] é dado
pela Equação (3.11). F EQ2 somente altera a fase do sı́mbolo recebido, e isso inclui
correção de distorções causadas por n0 6= 0 e de CFO.
F EQ2 = ej(∆θ[k]) = e
j2πn0 k
N
= ejβk
(3.11)
A Equação (3.10) mostra a relação entre n0 e β, dessa forma, encontrar β é equivalente a estimar n0 . Assim, assumindo o lado direito da Equação (3.9), é possı́vel usar tons
pilotos2 para estimar β através de regressão linear, como explicado a seguir. Dado K tons
pilotos, β pode ser calculado a partir da regressão linear da Equação (3.12). A parte a
direita da Equação (3.12) foi arrumada de forma a ser computacionalmente eficiente, pois
2
Tons pilotos são tons do sı́mbolo DMT que não carregam informação, eles possuem amplitude e fase
conhecidas pela receptor, e esse informação é usada para estimar n0 .
43
somente as partes
P
k∆θ[k] e
P
∆θ[k] precisam ser calculados, enquanto que as outras
podem ser pré-calculadas e armazenadas na memória.
β=
k∆θ − k ∆θ
k2 − k
2
P
P
k∆θ − k ∆θ
= P 2
P
k −k k
(3.12)
A Figura 3.21 mostra um exemplo de estimação de ∆θ[k] usando 17 tons piloto
entre os tons 100 a 900. Uma vez que β é encontrado, F EQ2[k] pode ser calculado com a
Equação (3.11). Nessa figura, o termo unwrapped indica que para obter reta reconstruı́da
(cruzes em azul) é necessário realizar uma operação nas fases estimadas dos tons pilotos
(cı́rculos verdes) [33], isso é necessário, pois sua fase varia de 0 a 2π, assim, um tom que
rotacionou mais que uma volta completa apresentará fase diferente do que originalmente
sofre, e a operação unwrap elimina a ambiguidade.
Estimação de β a partir dos tons piloto
30
Fase (∆Θ) em rad
25
∠(TX/RX) unwrapped
βk
∠(TX/RX)
20
15
10
5
0
0
200
400
600
Tom (k)
800
1000
Figura 3.21: Estimação de β e ∆θ a partir dos tons pilotos.
Capı́tulo 4
Desempenho e Comparação das
Técnicas de Sincronismo
Como é mostrado no Capı́tulo 3 o processo de recuperação da temporização do
sı́mbolo é feito em duas etapas, onde inicialmente o sı́mbolo é salvo do sinal analógico
usando os detectores (etapa no FPGA). Posteriormente, devido à imprecisões que os
detectores apresentam, e também do CFO descrito no Capı́tulo 2, é necessária mais uma
fase de correções, que é feita no DSP. O objetivo deste capı́tulo é discutir o desempenho
dos algoritmos descritos no Capı́tulo 3, onde são mostrados o desempenho dos detectores e
explicado o porque da ocorrência do cursor n0 . É também feita uma estimativa do uso de
recursos do FPGA pelos detectores. E também são discutidos os resultados dos algoritmos
de correção de CFO, e mostrados testes realizados para tentar evitar a ocorrência do n0
a partir do FPGA.
4.1 Desempenho dos detectores
Os detectores discutidos no Capitulo 3 apresentam variação no n0 dos sı́mbolos
de diferentes slots, onde o detector S&C varia em uma faixa máxima de vinte amostras,
e o xCorr varia uma amostra, esses valores foram obtidos a partir de médias realizadas
no DSP e simulações. Do ponto de vista do demodulador, os dois detectores erram de
maneira equivalente, pois o n0 no sı́mbolo DMT causa rotação nas constelações do sı́mbolo
e impede a demodulação direta.
O fato do detector S&C rotacionar em torno de vinte amostras, resulta em uma
precisão de 20Ts , onde Ts é o perı́odo da amostra, que no caso na SOUT é de 2.5 ns.
44
45
Ou seja, pode-se dizer que a precisão do S&C é de aproximadamente 50 ns. O mesmo
raciocı́nio pode ser usado para estimar a precisão do detector xCorr, o que resulta em um
resultado de aproximadamente 2.5 ns. Outra visão do desempenho dos detectores é em
relação ao tamanho total do sı́mbolo, onde um sı́mbolo completo com prefixo cı́clico possui
10.56 µs, dessa forma, comparando com o tempo total do sı́mbolo é possı́vel concluir que
o S&C erra 0.47% e o xCorr erra 0.0236% de um sı́mbolo.
A explicação para esse erro dos detectores é distinta para cada um. Primeiramente,
o S&C, como explicado no Capı́tulo 3 faz a detecção baseada em um limiar, assim, a
diferença de n0 para slots diferentes pode ser explicada pelo fato que o sı́mbolo SINC de
um slot consegue alcançar o limiar mais rapidamente que outro. O ruı́do adicionado ao
sı́mbolo pelo canal é a causa dessa variação, pois através de simulações percebeu-se que
a métrica de temporização varia mesmo com a RSR mantida constante. A Figura 4.1
mostra o exemplo de métrica de temporização mostrado anteriormente, agora com duas
realizações do sı́mbolo SINC contaminado com ruı́do, sendo que a mesma RSR é usada
nas duas realizações. Na Figura 4.1 é possı́vel perceber que a realização em vermelho é
ligeiramente mais ingreme do que a realização em verde, assim, a detecção para a primeira
possui um n0 maior do que a segunda.
RSR infinita
RSR=10dB
RSR=10dB
1
M(d)
0.8
0.6
0.4
0.2
0
−1.5
−1
−0.5
0
0.5
1
1.5
Símbolo
Figura 4.1: Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo
S&C, mostrando duas curvas atingindo um limiar de 0.75 em tempos diferentes.
O processo de detecção do S&C pode ser visto como uma comparação das duas
metades do sı́mbolo SINC, assim, caso o ruı́do corrompa as “amostras irmãs” de um
sı́mbolo da mesma forma, a métrica de temporização possuirá uma taxa de subida maior.
A curva em azul da Figura 4.1 é mesma mostrada no Capı́tulo 3 e foi mantida para
referência, nessa curva a métrica sempre possui o mesmo formato, diferentemente dos
resultados com ruı́do.
46
No caso do xCorr não há uma subida, pois quando há a detecção a métrica de temporização possui um único pico, que é tı́pico de funções de correlação. Logo, o xCorr não
deveria errar, entretanto o CFO faz com que haja uma incerteza no processo de detecção.
Essa incerteza acontece, pois a versão recebida do sı́mbolo SINC pode estar defasada em
relação á referência, e essa defasagem é visualizada através da parte fracionária de n0 .
Quando a parte fracionária de n0 é menor que 0.5 o detector xCorr faz a detecção na
amostra atual caso contrário a detecção é feita na próxima amostra e isso causa variação
no n0 do sı́mbolo recebido.
Testes foram realizados para avaliar a robustez dos algoritmos S&C e xCorr, principalmente com a potência recebida sendo variada, o que representa uma mudança nas
caracterı́sticas do canal como, por exemplo, uma mudança de cabo. Entretanto, outros fatore além da atenuação também influenciam no desempenho dos detectores, como
bridge-taps e crosstalk. O S&C faz sua detecção baseada em limiar que é configurado
manualmente, dessa forma, uma mudança brusca das caracterı́sticas do canal faz com que
o detector passe a não funcionar adequadamente, podendo ocorrer falsos positivos e até
mesmo perda total de sincronia.
Uma solução estudada para este problema foi o uso de um controle automático de
ganho, para que o sinal recebido sempre esteja com a mesma potência. No entanto, um
sinal mais atenuado sofre mais com o ruı́do, logo ao ser amplificado o ruı́do também é, e
dessa forma a curva da métrica de temporização pode não atingir o limiar de detecção. A
Figura 4.2 mostra um resultado obtido através de simulações onde o sı́mbolo que gerou
a curva em verde foi atenuado e corrompido pelo ruı́do e em seguida amplificado, nessa
figura é possı́vel perceber que métrica de temporização é completamente comprometida.
Nesse exemplo, os sinais que geraram as curvas em verde e em azul foram corrompidos
com ruı́dos de mesma potência. Esse problema não acontece com detector xCorr, pois a
normalização feita no algoritmo faz com que a métrica de temporização sempre possua os
mesmos valores, que nesse caso está entre zero e um (mais próximo de um). Os mesmo
testes foram realizados com o detector xCorr, que apresentou detecção correta de slots
mesmo em condições severas de atenuação.
4.2 Consumo de hardware dos detectores
As Figuras 3.10 e 3.11 mostram as implementações em diagramas de blocos dos
detectores S&C e xCorr, respectivamente. Basicamente, essas implementações correspondem à um caminho de dados (ou datapath) por onde as amostras obtidas pelo conversor
47
1
M(d)
0.8
0.6
0.4
0.2
0
−1.5
−1
−0.5
0
0.5
1
1.5
Símbolo
Figura 4.2: Resultados da métrica de temporização de duas realizações do mesmo sı́mbolo
S&C, onde a curva em azul não sofre atenuação e a curva em verde sofre e depois é
amplificada.
AD passam. No detector S&C as amostras de entrada são direcionadas para a memória
MEM e para o registrador REG da Figura 3.10. MEM é uma memória de duas portas
(uma entrada e duas saı́das) que está presente em FPGAs da Xilinx [34], e é endereçada
pelos sinais END D e END DL, que possuem valores com uma diferença de 2048 (metade
do sı́mbolo DMT), as amostras de entrada são salvas no endereço END D e o endereço
END DL é somente lido. As saı́das da memória e do registrador são usadas para realizar
o processamento.
Na Figura 3.10 é possı́vel contar as estruturas digitais usadas e inferir os recursos
usados por esse detector. Os registradores, apesar de haver somente um bloco nomeado
diretamente como registrador (REG), estão presentes nos blocos CNT (um para cada
endereço), REG, no AC (um para cada) e nas operações de aritméticas, assim, há treze
registradores. O bloco MEM é uma memória de 8192 bytes, e há ainda quatro multiplicadores e dois somadores, e mais dois somadores no bloco CNT para incrementar os
endereços e mais dois nos blocos AC, logo há 6 somadores no total. Como toda a estrutura
é quadruplicada para trabalhar com quatro amostras, então os número são quadruplicados, exceto os somadores de endereço e a memória. A Tabela 4.1 mostra o resultado do
raciocı́nio apresentado.
Da mesma forma que foi feito para o S&C, também é possı́vel inferir o uso
de recursos lógicos do detector xCorr, usando a Figura 3.11 que mostra uma implementação de tamanho genérico do xCorr, que também implementa um datapath, similar
ao S&C. O modem-prototype implementa quatro xCorrs de tamanho 64, como explicado
48
Tabela 4.1: Uso de recursos lógicos pelos detectores.
Detector Registradores
Multiplicadores
Somadores
Memória
xCorr
1072
268
256
0
S&C
52
16
10
1 (8192 bytes)
na Seção 3.2.5.2, assim, é possı́vel inferir o uso de recursos para uma única estrutura e
então obter o uso de recursos total. A partir da Figura 3.11 é possı́vel contar os recursos,
este raciocı́nio é apresentado na listagem abaixo para melhor entendimento do leitor, é
importante salientar que cada operação aritmética utiliza também um registrador. A estimação de uso dos recursos utilizados pelo xCorr ainda é multiplicada por quatro para
obter o uso total de recursos, que é apresentado na Tabela 4.1.
• Há uma cadeia de atrasos nas amostras de entrada, representada por Z −1 , que é
implementada com 64 registradores;
• As amostras do sinal de referência são armazenadas em registradores ao invés de
uma memória para melhor desempenho, o que usa 64 registradores;
• Cada elemento da cadeia de atraso é multiplicado em paralelo com seu correspondente do sinal de referência, usando 64 multiplicadores de duas entradas, que
também usam mais 64 registradores
• Todas as multiplicações da cadeia de atraso deve ser somadas para formar um único
valor (i.e. produto interno), essas operações utilizam 63 somadores de duas entradas e mais 63 registradores
• Há três operações de elevar ao quadrado, que são implementados com multiplicadores de duas entradas. Logo utilizam 3 multiplicadores e 3 registradores.
• Há um acumulador, que utiliza 1 somador e 1 registrador.
• E, por fim, há o atraso para alinhar os resultados das partes de cima de baixo
da figura. O atraso tem tamanho de Log2 (tamanho) + 1 = 9, e isso usa mais 9
registradores.
Dessa contagem de elementos lógicos dos detectores foi omitido o uso de recursos
pelos divisores, pois ambos usam a mesma implementação de divisão em hardware, que é
baseada no algoritmo non-restoring division [35]. Esse algoritmo realiza divisões inteiras,
e possui como saı́da o quociente e o resto. Para realizar a divisão com parte fracionária
49
utilizada nos dois detectores, as amostras (de 32 bits) que entram no bloco de divisão são
expandidas com 16 zeros a direita, logo a partir da esquerda para a direita há 32 bits
de parte inteira seguidos de 16 bits de parte fracionária. Dessa forma, o bloco divisor
foi implementado como um bloco que trabalha com números inteiros de 48 bits, assim
o resultado possui também 48 bits, mas somente a parte fracionária e o primeiro bit da
parte inteira são usados pelos detectores, pois devido ao ruı́do observou-se nas simulações
resultados ligeiramente maiores do que 1. Assim os detectores visualizam o resultado
como um número inteiro de 17 bits. Detalhes sobre a estrutura interna do divisor não
serão tratados neste trabalho, para fins de manter o foco em detecção.
É importante salientar que a variação apresentada pelo detector xCorr é um problema pendente a ser resolvido, uma vez que for corrigido, a mudança do S&C para o
xCorr representará a relação custo-benefı́cio entre ter uma detecção que erra (S&C) para
uma detecção fixa. A correção do xCorr para não errar envolve incluir mais inteligência
na sua detecção e assim também detectar o n0 e manter sempre a mesma amostra, uma
vez que isso aconteça, não serão necessários alguns passos de correções no DSP, o que
implica em mais sı́mbolos sendo processados por segundo e, consequentemente, em uma
maior taxa de dados global. Como o detector xCorr apresenta erro, que precisa ser corrigido da mesma forma no DSP, e também um custo alto, o detector usado atualmente
no modem-prototype é o S&C, entretanto, pretende-se melhorar o xCorr para obter os
benefı́cios mencionados.
A partir dos resultados da Tabela 4.1 é possı́vel perceber a grande diferença de uso
de recursos entre os dois detectores. Essa diferença representa o custo a ser pago para
uma maior precisão no sistema sincronização de um sistema de comunicação. Quando
os códigos do xCorr e do S&C são compilados para programar um FPGA, os recursos
utilizados serão todos mapeados para a lógica programável do FPGA. Por exemplo, da
Tabela 4.1, os multiplicadores e somadores, quando compilados, utilizarão a lógica programável do FPGA. No caso de FPGAs Virtex 6 da Xilinx, os recursos utilizados do
FPGA serão os chamados Slices [36], assim, todos os multiplicadores e somadores são
inicialmente implementados usando Slices, no entanto, após uma fase de otimização no
processo de compilação, alguns deles podem ser mapeados para estruturas especializadas para processamento de sinais digitais e operações matemáticas dentro do FPGA [37],
chamadas DSP48E1, com o objetivo de aproveitar melhor o recursos do FPGA.
Após o processo de compilação, a ferramenta usada gera vários relatórios indicando, entre outras coisas, o uso desses recursos. Há muitos recursos dentro do FPGA,
mas nesse trabalho, para fins de comparação das técnicas, somente serão mostrados o
uso dos recursos Slices, DSP48E1 e RAM36E1, que são a lógica programável, estrutu-
50
Tabela 4.2: Uso de recursos do FPGA pelos detectores.
xCorr
S&C
Slices
25%
3%
DSP48E1
36%
1%
RAM36E1
0%
1%
ras de processamento matemático e memórias, respectivamente. A Tabela 4.2 mostra o
uso desses recursos, que foram obtidos após o processo de compilação, que incluiu em
ambos os divisores, que não foram considerados anteriormente. A partir da tabela, é
possı́vel perceber a grande diferença de uso de recursos pelo detector xCorr. O detector
foi codificado de forma não otimizada, ou seja, ele não utiliza diretamente os DSP48E1
do FPGA, entretanto, a ferramenta mapeou algumas operações matemáticas para esses
recursos, com o provável objetivo de economizar os Slices. Como era esperado, o processo
de compilação utilizou um recurso de memória para o S&C, enquanto que para o xCorr
não. Da Tabela 4.1, a diferença no número de registradores é refletida na utilização dos
Slices da Tabela 4.2.
4.3 Desempenho da correção de CFO
Como é mostrado no Capı́tulo 3 a correção de CFO está diretamente ligada aos
algoritmos de equalização, dessa forma, esta seção tratará dos resultados tanto de equalização quanto de correção de CFO juntos. Como é mostrado na Figura 3.20, a fase de
showtime da operação do modem-prototype somente atualiza a estimação do FEQ feita na
fase de treinamento. Essa atualização consiste em compensar a fase do slot atual a partir
do sı́mbolo ESTIM do slot, que é reconhecido pelo DSP a partir de uma marcação feita
no FPGA, na primeira amostra do sı́mbolo. O algoritmo da Figura 3.20 reconhece essa
marcação e atualiza o FEQ, caso contrário, o sı́mbolo é simplesmente corrigido a partir
do FEQ atual.
No modem-prototype foi mostrado que o sı́mbolo ESTIM é um sı́mbolo especial
que não carrega nenhuma informação, por isso, no FPGA é possı́vel desabilitar o envio
desse sı́mbolo e enviar sı́mbolo INFO no lugar, logo, o slot passa a ter suporte para até
cinco sı́mbolos INFO. Quando o modem-prototype está configurado para não transmitir
ESTIM na segunda posição do slot, os sı́mbolos do DSP devem ser transmitido com alguns
tons pilotos que não carregam informação, que são usado para sincronização. A fase de
51
showtime da Figura 3.20 está preparada para os dois tipos de sı́mbolos, mas é necessário
que o DSP seja configurado para usar os tons piloto ao invés do sı́mbolo ESTIM, para
isso, o DSP precisa ser reprogramado. Do ponto de vista do FPGA o slot passa a ter
mais um sı́mbolo para transmitir informação, porém do DSP não há nenhuma alteração
(somente a informação contida nos tons pilotos usados). Quando essa configuração é
usada, o DSP deve processar o primeiro sı́mbolo INFO do slot para atualizar o FEQ, e
depois esse mesmo sı́mbolo é processado para recuperar a informação. Essa configuração
descrita foi implementada tanto no DSP quanto no FPGA, mas não é utilizada, pois foram
realizados testes para verificar se o DSP consegue transmitir sı́mbolos a tempo suficiente
para ocupar todas a posições INFO do slot, e percebeu-se que o DSP não processa a
tempo, como descrito em [7].
Como foi explicado, o primeiro sı́mbolo é usado para atualizar o FEQ para compensar a rotação do slot atual, e também foi mostrado na Figura 3.18 que sı́mbolos consecutivos de um mesmo slot também sofrem rotação de aproximadamente 5% de amostra
em relação ao sı́mbolo anterior. Para simplificar o processamento, o algoritmo no DSP
considera que não há rotação dentro de um mesmo slot, dessa forma é feita somente uma
atualização de FEQ, como já foi explicado. Na realidade há uma pequena rotação que
causa um desvio nos pontos da constelação recebida, que pode ser avaliada aplicando
métricas como EVM. A Figura 4.3 mostra vários sı́mbolos recebidos que carregam constelações de 256 QAM em todos os seus tons. Para quantificar a qualidade da constelação
recebida pode-se usar a técnica EVM, onde a constelação apresenta um valor de 1.28%.
Para fins de comparação, A Tabela 4.3 apresenta os requerimentos de EVM pela tecnologia
LTE, onde é possı́vel perceber que a constelação recebida possui desempenho comparável
aos nı́veis dessa tecnologia. A valor de EVM dessa constelação ainda está corrompido
por alguns pontos que não transmitem informação, os pontos em zero na constelação da
Figura 4.3, o que significa que serão tratados como erros pelo algoritmo.
Tabela 4.3: Requerimentos de EVM pela tecnologia LTE (Lont Term Evolution)
Esquema de modulação EVM requerida
QPSK
17.5 %
16 QAM
12.5 %
64 QAM
8%
É possı́vel obter melhor desempenho modificando a estrutura da Figura 3.20 de
modo que a estimação de n0 seja feita para todos os sı́mbolos do slot, assim, é possı́vel
atingir maiores bitloading, pois a rotação mostrada será minimizada. Entretanto, isso
52
Pontos das constelações de 50 símbolos recebidos
15
Quadratura (Q)
10
5
0
−5
−10
−15
−15
−10
−5
0
5
10
15
Fase (I)
Figura 4.3: Exemplo de uma constelação de 256 QAM recebida e corrigida, onde é possı́vel
perceber uma pequena rotação nos pontos mais distantes da origem.
representa uma maior carga de processamento no DSP, o que pode acabar por diminuir
a capacidade de geração de sı́mbolos do DSP, o que diminui a taxa global de sı́mbolos. O
projetista de um sistema como esse deve escolher a melhor relação custo-benefı́cio, pois,
ao fazer correção em todos os sı́mbolos, por um lado os sı́mbolos conseguem carregar
mais informação, mas por outro, menos sı́mbolos são produzidos por segundo, gerando
um relação custo-benefı́cio que deve ser analisada. No caso implementado no modemprototype, não foi feita essa análise, simplesmente foi escolhido fazer uma única estimação
por slot e assim produzir mais sı́mbolos por segundo, mesmo que eles carreguem menos
informação, essa escolha é baseado na pequena variação que há do primeiro para o quinto
sı́mbolo.
Como foi explicado no Capı́tulo 3, a aplicação modem-prototype foi criada para
seguir as especificações do G.fast [3] e por algumas limitações da plataforma SOUT,
algumas especificações não puderam ser seguidas a risca. Mas pretende-se melhorar a
implementação de modo a corrigir essas limitações e fazer o modem-prototype ficar mais
próximo do G.fast. Uma mudança que deve ser feita é alterar a configuração de slots
para que eles possuam 36 sı́mbolos como especificado no G.fast, quando isso for feito,
uma única estimação de n0 por slot pode não ser suficiente. Assim, deve-se analisar até
quantos sı́mbolos consecutivos podem ser corrigidos por uma mesma estimação. Como
alternativa, a estimação e atualização de n0 pode ser feita a cada cinco sı́mbolos (ou dez),
essas questões devem ser melhor analisadas.
O exemplo discutido anteriormente e mostrado na Figura 4.3 utiliza um bitloading
53
estático, onde todos os tons carregam 8 bits (i.e. constelações de 256 QAM). Ao se
aplicar um algoritmo como o Levin-Campello [17], que calcula o bitloading para cada tom
separadamente, é possı́vel alcançar constelações que podem ser demoduladas com sucesso
de até 1024 QAM, mesmo com a rotação que está sendo “ignorada” pelo algoritmo. A
Figura 4.4 mostra o número bits tı́picos que podem ser transportados em cada tom, que
foi obtido usando o Levin-Campello, onde há tons que podem carregar até 10 bits.
Sobre o algoritmo de bitloading é importante salientar que ele não se encontra
implementado no DSP, assim, ou o DSP usa bitloading estático como o da Figura 4.3, ou
durante a fase de treinamento o vetor de RSR é extraı́do do DSP e o bitloading é calculado
offline, e depois o vetor de bitloading é atualizado manualmente. A extração e atualização
de informações da memória do DSP são feitas usando os recursos de depuração do DSP.
10
8
bits
6
4
2
00
50
100
f (Mhz)
150
200
Figura 4.4: Bitloading tı́pico estimado usando o Levin-Campello.
Com fins de complementar as informações de cálculo de bitloading apresentadas,
a Figura 4.5 mostra RSRs calculadas na fase de treinamento, que são usadas pelo LevinCampello. O bitloading da Figura 4.4 foi calculado para a estimação de RSR para o cabo
de 50 m da Figura 4.5.
4.4 Taxas alcançadas pelo protótipo
Apesar de não ser o foco desse trabalho, como foi apresentada a plataforma SOUT
como um todo em outros capı́tulos, esta seção apresenta alguns resultados obtidos em
relação à aplicação principal da SOUT, que é prover conectividade entre duas redes. O
50
50
40
40
30
30
SNR (dB)
SNR (dB)
54
20
10
0
0
20
10
50
100
f (Mhz)
150
0
0
200
(a)
(b)
b
b
50
100
f (Mhz)
150
200
Figura 4.5: RSR tı́picas calculadas para cabos CAT5 de 50 m (esquerda) e 100 m (direita).
resultados e explicações detalhadas são mostrados em [7]. Na SOUT, uma métrica de
desempenho é o fluxo de sı́mbolos no DSP, ou a taxa em que sı́mbolos são criados e
transmitidos, ou a taxa em que são recebidos e processados. Os sı́mbolos produzidos pelo
DSP são enviados ao FPGA, e são chamados de SINC, e são transmitidos em posições
especı́ficas dos slots. Quando não há SINC para transmitir, o FPGA envia IDLE. Dessa
forma, as medições de fluxo podem também serem vistas como o número de sı́mbolos
diferente de IDLE que são transmitidos pela linha.
Medições foram realizadas na SOUT, o que mostrou resultado de aproximadamente
28000 sı́mbolos por segundo. E essa medição remete à um taxa de dados de 365 Mbps,
quando um bitloading fixo de 8 bits em 1937 portadoras é usado em um cabo de 50 m. A
configuração do experimento para medir a taxa de dados que o modem consegue alcançar
consistiu de uma transmissão unidirecional, sendo que o modem receptor somente contabilizou nessa taxa os sı́mbolos recebidos sem erro ou com erros recuperáveis pelo RS. O
teste foi unidirecional, pois há um problema de concorrência por recursos no DSP entre as
cadeias de transmissão e recepção que impossibilita a realização do teste bidirecional, esse
problema está sendo resolvido, como descrito em [7], e espera-se dobrar a taxa de dados
quando o problema de concorrência for solucionado. O bitloading utiliza 8 bits em 1900
portadores e é o mesmo mostrado na Figura 4.3. Outra métrica extraı́da do DSP, mais
especificamente do algoritmo RS, é a taxa de erro de bit, que ficou em torno de 10−7 ,
entretanto, como discutido em [7] essa medição pode estar comprometida pelo que foi
chamado de erros de rajada, que acontecem devido a um problema de perda de sı́mbolo
no meio da cadeia de processamento. Esse problema está com solução pendente.
É importante salientar que as medidas de fluxo mostradas referem-se à produção
55
e consumo do DSP, sendo que o DSP está em fase de otimização de código. O que acontece é que, atualmente, o DSP não é capaz de produzir sı́mbolos ESTIM para preencher
todas as oportunidades de transmissão do slot, o que resulta na atual taxa. Caso o DSP
consiga preencher todas as oportunidades de transmissão dos slots, um fluxo de sı́mbolos
de aproximadamente 72k seria obtido, o que resulta em uma taxa agregada de 1.1 Gbps.
Capı́tulo 5
Conclusão
Nesta dissertação foi abordado o projeto e implementação de algoritmos de sincronização para a plataforma Software-defined UFPa transceiver (SOUT), que foi desenvolvida na UFPa em parceria com pesquisadores da Ericsson Research em Kista, na Suécia.
Os algoritmos mostrados nesse trabalho fazem parte de uma aplicação que implementa o
padrão G.fast [3], e como a aplicação desenvolvida é um modem completo, outros algoritmos são empregados para solução de problemas distintos de sincronização. Dessa forma,
esse trabalho apresenta em detalhes somente os algoritmos relacionados diretamente com
a sincronização, sendo que alguns outros são tratados para melhor entendimento do sincronismo.
Os algoritmos apresentados correspondem à principal forma de se manter o sincronismo da implementação TDD e ao algoritmo de correção do problema de CFO, que
existem em sistemas de comunicações. Na implementação TDD foram implementados
dois algoritmos, o primeiro, e principal a ser utilizado, foi o algoritmo S&C, descrito
em [9] e adaptado para as especificidades desse trabalho. O segundo algoritmo empregado para o TDD, chamado de xCorr, foi criado para preencher uma lacuna apresentada
pelo S&C. Ambos os algoritmos são baseados em correlação cruzada, mas o S&C utiliza
uma forma de realizar menos operações matemáticas para fazer a detecção, o que faz com
que ele perca precisão. Já o xCorr, realiza correlação cruzada diretamente, e para evitar
a variação no valor de pico, o sinal de entrada é normalizado, produzindo resultados entre
zero e um, o que elimina a necessidade de definição de limiar que há no S&C e o faz apresentar melhor precisão. No entanto, ao realizar correlação cruzada diretamente, o xCorr
utiliza muitos recursos, que, no caso desse trabalho, são recursos do FPGA. É mostrado
no trabalho que S&C e xCorr possuem erro de 0.47% e 0.0236% de sı́mbolo, ou seja, o
xCorr possui precisão na faixa de uma ordem de magnitude melhor do que o outro. Essa
56
57
melhor precisão representa o custo benefı́cio entre o maior consumo de recursos e uma
detecção mais precisa.
O algoritmo de correção de CFO empregado nesse trabalho, também foi criado
para esse trabalho, pois testes com outros não apresentaram desempenho satisfatório.
Assim, esse algoritmo, foi criado como uma alternativa aos disponı́veis. Esse algoritmo
utiliza vários tons pilotos, e faz uma regressão linear para obter uma estimação de CFO
mais precisa, pois outros métodos não apresentaram desempenho suficiente (i.e. a média
dos valores dos vários pilotos). Uma das principais contribuições desse algoritmo, além
dele próprio, é a integração do mesmo com o processamento de equalização de canal, que,
nesse trabalho é proposto e mostrado seu resultado com implementação em hardware,
sendo realizado em duas fases, as fases de treinamento e showtime. Após a aplicação dos
algoritmos de correção, é mostrado no trabalho, que a constelação resultante apresenta
desempenho comparável à tecnologias comerciais como LTE.
Ainda é apresentada nesse trabalho a forma como os algoritmos de detecção foram
paralelizados para a implementação no FPGA. O objetivo dessa paralelização é diminuir
a frequência de operação do FPGA e, assim, facilitar a codificação. A paralelização é
iniciada nas interfaces com os conversores, que trabalham em DDR (i.e. duas amostras
por ciclo de clock ), além dessa paralelização, no FPGA ainda é feita outra, assim, o nı́vel
de paralelização final é de quatro, logo, a frequência de operação também é escalonada
pelo mesmo valor. Nesse trabalho é mostrada a segunda paralelização feita no FPGA, e
a adaptação dos algoritmos de detecção para ela, realizados no FPGA .
Os resultados deste trabalho contribuem como material para referência e estudo
nas áreas de telecomunicações, processamento de sinais, projeto de hardware analógico
e digital. Além de servir como referência, este trabalho compartilha e documenta a experiência obtida durante o processo de desenvolvimento. São apresentadas e explicadas
questões relacionadas a questões que normalmente engenheiros enfrentam ao participar
de um projeto de qualquer tamanho, como a avaliação de custo-benefı́cio, onde o trabalho
busca não posicionar-se a favor de um algoritmo ou técnica, este trabalho buscou apresentar as vantagens, desvantagens e custo das técnicas apresentadas. Um exemplo para
ilustração, é a questão do desempenho dos detectores, onde o S&C apresentou consumo
de recursos do FPGA em torno de 15 vezes menor do que o xCorr, em contrapartida, o
xCorr apresenta precisão melhor em uma ordem de magnitude, em relação ao S&C.
58
5.1 Trabalhos futuros
Este trabalho é uma implementação do padrão G.fast na plataforma SOUT, sendo
que muitas das especificações ainda não puderam ser seguidas, devido a limitações do
hardware, de tempo ou mesmo da falta mão-de-obra. O objetivo desta seção é expor
algumas das questões que ainda continuam abertas no projeto da SOUT, que são listadas
a seguir para melhor organização.
• Espaçamento dos tons igual ao do G.fast: Quando o AFE foi projetado, não
havia definição no padrão G.fast sobre a amostragem a ser usada. Dessa forma,
o AFE foi projetado com clocks de referência de 100 MHz, e algum tempo depois
foi especificado no padrão. Assim uma alteração a ser feita no é alterar esse clock
de referência de modo que possa ser gerado o clock do G.fast, assim os conversores
operarão na frequência de amostragem correta e os sı́mbolos DMT no domı́nio da
frequência estarão espaçados de acordo com o G.fast.
• Implentação de TDD e slots: Foi discutido no Capı́tulo 3 que a implementação
de TDD do FPGA não segue o padrão G.fast, devido a limitações. Um sugestão
de trabalho futuro é melhorar essa implementação de TDD para que siga o padrão.
Para isso a questão levantada no Capı́tulo 4 sobre a correção de CFO deve ser
considerada.
• Mover toda a parte de sincronização para o FPGA: A eliminação desse processamento do DSP liberaria tempo de processamento para processar mais sı́mbolos,
e aumentar a taxa global. Para isso o FPGA deve entregar sı́mbolos sempre com o
mesmo n0 , e isso pode ser feito usando um PLL. Ou poderia ser usada uma correção
através de filtragem digital no FPGA, esse filtro seria atualizado com o n0 do sı́mbolo
atual para corrigir o próximo sı́mbolo, por exemplo.
Referências Bibliográficas
[1] J. Maes and C.J. Nuzman, “The past, present, and future of copper access,” Bell
Labs Technical Journal, vol. 20, pp. 1–10, 2015.
[2] P. Odling, T. Magesacher, S. Host, P.O. Borjesson, M. Berg, and E. Areizaga, “The
fourth generation broadband concept,” Communications Magazine, IEEE, vol. 47,
no. 1, pp. 62–69, January 2009.
[3] ITU-T, “Recommendation G.9701 - Fast Access to Subscriber Terminals (G.fast),”
2014.
[4] ITU-T, “Recommendation G.992.1 - SERIES G: TRANSMISSION SYSTEMS AND
MEDIA, DIGITAL SYSTEMS AND NETWORK,” 2004.
[5] ITU-T, “Recommendation G.993.2 : Very high speed digital subscriber line transceivers 2 (VDSL2),” 2006.
[6] Skipio, “CP1000 G.FAST CPE CHIPSET - The Perfect G.fast CPE Chipset,” 2015,
http://www.sckipio.com/cp1000-g-fast-cpe-chipset/.
[7] Joary Paulo Wanzeler Fortuna, “Transceptor Definido por Software para Pesquisas
em Transmissão via Cabos de Cobre,” 2015, TCC; FCT - Universidade Federal do
Para.
[8] Thierry Pollet and M. Peeters, “Synchronization with DMT modulation,” Communications Magazine, IEEE, vol. 37, no. 4, pp. 80–86, Apr 1999.
[9] T.M. Schmidl and D.C. Cox, “Robust frequency and timing synchronization for
ofdm,” Communications, IEEE Transactions on, vol. 45, no. 12, pp. 1613–1621, Dec
1997.
[10] M. Sliskovic and B. Jeren, “Clock frequency synchronisation in ofdm system for power
line communications,” in Image and Signal Processing and Analysis, 2000. IWISPA
2000. Proceedings of the First International Workshop on, 2000, pp. 241–246.
59
60
[11] M. Sliskovic, “Sampling frequency offset estimation and correction in OFDM systems,” in Electronics, Circuits and Systems, 2001. ICECS 2001. The 8th IEEE
International Conference on, 2001, vol. 1, pp. 437–440 vol.1.
[12] Stefano Bregni, Synchronization of Digital Telecommunications Networks, John
Willey and Sons, LTD, 1 edition, 2002.
[13] M. Luise and R. Reggiannini, “Carrier frequency recovery in all-digital modems for
burst-mode transmissions,” Communications, IEEE Transactions on, vol. 43, no.
2/3/4, pp. 1169–1178, Feb 1995.
[14] Philip Golden, Herve Dedieu, and Krista Jacobsen, Fundamentals of DSL technology,
Boca Raton, FL Auerbach Publications, 1 edition, 2006.
[15] Umberto Mengali and Aldo N. D’Andrea, Synchronization techniques for digital
receivers, Plenum Press, 1 edition, 1997.
[16] John Proakis and Masoud Salehi, Digital Communications, MacGraw-Hill, 5 edition,
2008.
[17] Jorge Campello, “Practical bit loading for dmt,” IEEE ICC’99 Proceedings, pp.
801–805, 1999.
[18] ITU-T, “ETSI TS 136 104 V12.6.0 (2015-02) - LTE; Evolved Universal Terrestrial
Radio Access (E-UTRA); Base Station (BS) radio transmission and reception (3GPP
TS 36.104 version 12.6.0 Release 12) ,” 2015.
[19] Texas Instruments, “ADS5474: 14-bit, 400 MSPS Analog-to-Digital Converter with
Buffered Input,” 2014.
[20] Texas instruments, “DAC5681Z: 16-Bit, 1.0 GSPS 2x-4x Interpolating Digital-ToAnalog Converter (DAC),” 2014.
[21] Texas Intruments, “TMX320C6670 Evaluation Module,” 2015.
[22] Xilinx, “ML605 Hardware User Guide,” 2012.
[23] Texas Instruments,
“OPA2695: Ultra-Wideband, Current-Feedback Operational
Amplifier with Disable,” 2014.
[24] Texas Instruments,
“THS4509: Wideband, Low-Noise, Low-Distortion, Fully-
Differential Amplifier,” 2014.
61
[25] Texas Instruments, “PGA870: High-Speed Fully Differential Programmable Gain
Amplifier,” 2014.
[26] Xilinx, “Serial RapidIO Gen2 Endpoit v1.6 - LogiCORE IP Product Guide,” 2014.
[27] Xilinx, “Microblaze Soft Processor Core,” 2015.
[28] RapidIO Trade Associations, “RapidIO Specification Revision 2.2, Complete Specification Stack,” 2011.
[29] Xilinx, “Virtex-6 FPGA SelectIO Resources - User Guide,” 2014.
[30] Irving Reed and Golomb Solomon, “Polynomial codes over certain finite fields,”
Journal of the Society of Industrial and Applied Mathematics, vol. 8, no. 2, pp.
300–304, 06/1960 1960.
[31] Alan V. Oppenheim, Alan Willsky, S. Hamid, Signals and Systems, Pearson, 2
edition, 1996.
[32] I. Freire, Chenguang Lu, P.-E. Eriksson, and A. Klautau, “Low complexity precoder
and equalizer for dmt systems with insufficient cyclic prefix,” in Global Communications Conference (GLOBECOM), 2014 IEEE, Dec 2014, pp. 3243–3248.
[33] MathWorks, “unwrap - Corret phase angles to produce smoother phase plots,” 2015,
http://www.mathworks.com/help/matlab/ref/unwrap.html?refresh=true.
[34] Xilinx, “Virtex-6 FPGA Memory Resources - User Guide,” 2014.
[35] Behrooz Parhami, Computer Arithmetic Algorithms and Hardware Designs, Oxford
Press, 1 edition, 2000.
[36] Xilinx, “Virtex-6 FPGA Configurable Logic Block - User Guide,” 2012.
[37] Xilinx, “Virtex-6 FPGA DSP48E1 Slice - User Guide,” 2011.

Documentos relacionados