• Nenhum resultado encontrado

5.5 Algoritmo de Detecção de Cicloestacionaridade: sr_search

5.5.5 Pesquisador de Picos: peak_search

Uma vez que as operações matemáticas do Algoritmo de Detecção de Cicloesta- cionaridade tenham chegado ao fim, deve-se determinar a presença, ou não, de um pico de energia na região de interesse, ou seja, próximo aos bins correspondentes à largura de banda do sinal que se espera encontrar. Os sinais à seguir descrevem a interface do pesquisador de picos desenvolvido:

∙ Sinais Padrão

∙ clk (1 bit entrada): responsável por prover o clock para o circuito;

∙ enable (1 bit entrada): quando habilitado (nível alto) indica que o circuito deve executar sua operação;

∙ reset_n (1 bit entrada): quando habilitado (nível baixo) leva todo o circuito para um estado conhecido e inicial. O circuito só é capaz de voltar a operar quando este sinal é desabilitado (nível alto);

∙ clear (1 bit entrada): quando habilitado (nível alto) leva o circuito a seu estado inicial. Diferentemente do reset_n tal comportamento é obtido através de lógicas específicas e não diretamente nos registradores;

∙ Entrada de dados no protocolo Ready-Valid

está pronto para receber dados de entrada;

∙ in_data_valid (1 bit entrada): quando ativado (nível alto) indica que o sinal

in_data possui dados válidos;

∙ in_data_sof (1 bit entrada): quando ativado (nível alto) indica o início de uma recepção de frame, ou seja, a média do dado presente no primeiro bin da FFT;

∙ in_data_eof (1 bit entrada): quando ativado (nível alto) indica o final de uma recepção de frame, ou seja, o dado presente no último bin da FFT;

∙ in_data (largura configurável entrada): representando um valor inteiro, ou não, sem sinal, indica o valor médio de magnitude de cada um dos bins da FFT. O circuito é indiferente à posição do ponto;

∙ Sinais de controle

∙ fs_value_in (18 bit entrada): representando um valor inteiro sem sinal, in- forma a frequência de amostragem, em kHz, utilizada na captura dos sinais de entrada;

∙ target_sr_in (18 bit entrada): indica qual o valor de largura de banda, em kHz, esperada para o sinal que se espera encontrar na faixa a ser processada; ∙ fs_error_in (8 bit entrada): indica qual a variação máxima, em kHz, em

torno do valor de target_sr_in que se permite para determinar que um pico de cicloestacionaridade é válido;

∙ threshold_fix_in (24 bit entrada): representando um valor inteiro sem sinal, determina o tamanho mínimo de um pico de cicloestacionaridade para que ele possa ser considerado válido (minMag);

∙ threshold_mult_in (6 bit entrada): representando um valor inteiro sem sinal, determina o fator de multiplicação mínimo do pico em relação à sua redondeza (multDiff );

∙ Saída de dados

∙ out_data_valid (1 bit saída): quando ativado (nível alto) indica que um pico válido foi encontrado e, portanto, os sinais out_magnitude e out_data possuirão valores correspondentes a tal pico;

∙ out_data_eof (1 bit saída): quando ativado (nível alto) indica o final de uma pesquisa por picos;

∙ out_magnitude (largura configurável saída): representando um valor in- teiro, ou não, sem sinal, correspondente à magnitude do pico de cicloestacionari- dade encontrado;

∙ out_data (17 bit saída): representando um valor inteiro sem sinal, correspon- dente à largura de banda, em kHz, do sinal encontrado.

Uma vez que a largura do sinal de entrada (in_data) e do valor de magnitude de saída (out_magnitude) dependem da largura de dados da FFT empregada, o parâmetro “G_DATA_WIDTH”, utilizado para representar o valor de largura de bits destes sinais, deve coincidir com o parâmetro utilizado para se determinar a largura de bits dos dados da FFT.

O pico obtido através do Algoritmo de Detecção de Cicloestacionaridade não é glo- bal em relação ao conjunto total de magnitude dos bins da FFT, portanto a determinação deste deve ser encarada como um problema local sendo necessário levar em consideração apenas os valores ao redor do bin em que se procura um pico.

Por razões de desempenho, optou-se por realizar uma avaliação de pico a cada pulso de clock, de forma a tornar possível que tais picos sejam avaliados enquanto a FFT disponibiliza seus dados de saída, sem a necessidade de FIFOs ou retenção do barramento. Por esta razão, o consumo de recursos do circuito utilizado para determinar a presença de um pico local está diretamente relacionado à largura da janela de pesquisa utilizada, a qual foi determinada de forma empírica após uma série de testes com sinais ruidosos.

Seis premissas, a maioria já observada anteriormente, foram adotadas para facilitar a criação dos circuitos e/ou determinar se um pico poderia, efetivamente, ser considerado válido:

1. A janela de pesquisa tem uma quantidade ímpar de amostras sendo que seu tamanho menos 1 é múltiplo de 2. Esta premissa nos permite realizar cálculos simplificados de média, uma vez que uma divisão por múltiplos de 2 é um deslocamento à direita em log2 do dividendo.

2. Um pico só pode ser considerado válido se todos os bins ao redor não forem iguais a zero. Isto se deve ao fato de que quando um sinal é ciclostacionário em um determinado ponto, ele tende a espalhar alguma energia nos bins ao redor de sua banda produzindo, portanto, energia nestas regiões.

3. Nenhum bin ao redor do pico deve possuir magnitude maior que a metade deste. Tal premissa garante que não haja um grande desvio padrão na média dos bins ao redor deste pico.

4. Um pico só é válido se seu valor estiver acima do valor determinado em threshold_fix_in. Tal premissa minimiza as chances de falso positivo produzido por espúrios que, normal- mente, possuem baixa energia.

5. Um pico só é válido se sua magnitude for threshold_mult_in vezes maior que a mé- dia dos sinais a seu redor, ou se houver uma sequência de dois bins com magnitude

threshold_mult_in/2 vezes maior que a média dos sinais a seu redor. Neste caso com o

valor da frequência de cicloestacionaridade sendo a média de ambos os bins.

As razões das premissas acima, além do tamanho da janela adotada, serão eviden- ciadas com mais detalhes na Seção 6. Porém, o valor final adotado pela janela de pesquisa foi de 9 amostras, sendo que uma lacuna de duas amostras foi adotada em cada lado da amostra central, resultando que de um total de 13 amostras a sétima é avaliada como possível centro em relação à média entre a primeira, segunda, terceira, quarta, décima, décima primeira, décima segunda e décima terceira amostras.

A implementação de tal circuito se deu através da criação de um registrador de deslocamentos de 12 posições, primeiro estágio de dados do pipeline criado. Os dados apropriados seguem para o segundo pipeline sendo somados dois a dois, com o central sendo copiado em novos registradores. Os testes das premissas 2 e 3 também são realizados no primeiro pipeline do circuito.

No segundo pipeline de dados, os quatro valores resultantes das somas dois a dois anteriores são novamente somados e o valor central é, novamente, copiado. No terceiro

pipeline de dados, a última soma dois a dois é realizada, a média do valor resultante

é extraída, e a multiplicação por threshold_mult_in é realizada no resultado da média. Novamente o valor central é apenas copiado.

No quarto e último pipeline, caso as primeiras premissas tenham sido validadas com sucesso, os valores resultantes dos cálculos anteriores são comparados e as premissas 4 e 5 testadas, finalmente, validando, ou não, o possível pico em teste.

O valor de frequência do bin correspondente ao pico em avaliação é determinado em um processo de controle separado do pipeline de dados. Este processo determina o

bin inicial e final de teste, dados respectivamente por target_sr _in + fs_error _in/2 e target_sr _in − fs_error _in/2. O final do processamento de pesquisa e acionamento do

sinal out_data_eof se dá à chegada do sinal in_data_eof, indicando que todos os bins da FFT foram lidos.

Caso um pico seja encontrado o sinal out_data_valid se manterá em nível alto, com os dados referentes a tal sinal presentes em out_magnitude e out_data. O sinal

out_data_valid só voltará a descer seu nível após o acionamento do sinal out_data_eof.

Assim como no bloco anterior, a verificação do peak_search também foi realizada diretamente no testbench de verificação do próprio sr_search, não havendo, portanto,

6 Validação dos Modelos/Algoritmos e Re-

sultados

Uma série de fatores envolvidos na transmissão e recepção de sinais por via aérea tende à degradação de tais sinais, como exemplo pode-se citar o descasamento entre os clocks de transmissão e recepção, seus jitters, desvanecimento oriundo de fatores ambien- tais, ruídos térmicos ou de quantização, além de interferências. Em situações mais severas tais degradações podem até mesmo impossibilitar a recepção de um dado sinal.

Todas estas peculiaridades associado às aproximações realizadas no HDL podem levar a diferentes resultados quando compara-se o modelo e sua implementação em cir- cuito. Observe, porém, que tais diferenças também poderiam ser modeladas. Entretanto o uso de dados diretamente coletados em bancada pode ser considerado mais prático e seguro, para inserção no modelo e avaliação destes efeitos. Nesta seção os métodos utili- zados e resultados obtidos nos testes de bancada, bem como simulações nos modelos com sinais capturados diretamente do satélite e algumas das decisões de projetos baseadas nos resultados encontrados, serão apresentados e discutidos.

Com o objetivo de detectar adequadamente sinais entre 200 kHz e 25 MHz, todos os experimentos, tanto no modelo quanto em bancada, foram realizados com 𝐹𝑠 = 62, 5𝑀 𝐻𝑧,

filterBand = 25MHz e size(FFT ) = 8192. A escolha da frequência de amostragem de 62,5

MHz deve-se ao fato de que, em sua primeira aplicação, este circuito foi integrado a um sistema previamente existente e operando a esta frequência. Por razão similar, a frequência de 25 MHz de corte do filtro foi definida, de forma a permitir que sinais de até 25 MHz fossem detectados.

Por outro lado a escolha do tamanho da FFT empregada pode ser explicada pela capacidade de detecção de cicloestacionaridade do algoritmo empregado, a Figura 24 ilustra a diferença entre a detecção de um sinal de 13.1 MHz com size(FFT ) = 1024 e

size(FFT ) = 8192 no modelo.

Algumas importantes observações podem ser realizadas em relação à Figura 24. A primeira é o baixo nível de magnitude do pico obtido com a FFT menor, a segunda é a largura do pico obtido, nitidamente maior na FFT menor e, por fim, o fato de que em 13,1 MHz nenhum nível do mecanismo de zoom proposto poderia ter sido empregado, razão pela qual tal valor de banda foi escolhido para esta análise. Observe, ainda, que tais resultados foram produzidos a partir de um sinal gerado no modelo e sem a adição de ruído ou modelamento de distorções sabidamente presentes no sistema real, o que indica que o uso de uma menor FFT tende mais facilmente a ocultar um pico de cicloestacionaridade.

2 1.5 1 0.5 0 13.8 13.6 13 13.05 13.1 13.15 13.2 13.4 13.2 13 12.8 12.6 12.4 b. FFT = 8192 20 15 10 5 0 35 30 25 0 5 10 15 20 d. FFT = 8192 (21 bins) 20 15 10 5 0 a. FFT = 1024 2 1.5 1 0.5 0 35 30 25 20 15 10 5 0 c. FFT = 1024 (21 bins)

Figura 24 – Sinal de 13.1 MHz processado pelo Algoritmo de Detecção de Cicloestacio- naridade com o uso de FFT de 1024 pontos (a. e c.) e FFT de 8192 pontos (b. e d.). Em c. e d. os 21 bins ao redor de 13.1 MHz são, respectivamente, apresentados.

A escolha por duas etapas de zoom, uma em filterBand/2 e outra em filterBand/4 pode ser similarmente justificada. A Figura 25 mostra um sinal com 200 kHz de banda sendo detectado sem o mecanismo de zoom e com zoom de duas e quatro vezes.

Novamente, tais resultados foram obtidos através de um sinal produzido no modelo, sem qualquer tipo de degradação e, embora trate-se da detecção do mesmo sinal, em 25.a o pico em 200 kHz mal é diferenciado em relação à cicloestacionaridade interna do sinal. Com o zoom em duas vezes, o pico começa a ser notável em relação à sua redondeza, embora ainda de difícil detecção. Por fim com o zoom em quatro vezes o pico de cicloestacionaridade em 200 kHz nitidamente destaca-se de sua redondeza, permitindo assim uma fácil detecção do sinal. Note que, um resultado ainda melhor pode ser esperado com um zoom de oito vezes, entretanto o consumo de memória, como anteriormente demonstrado, se tornaria grande demais.

Em termos de análise de erro o uso de uma FFT com 1024 pontos nos levaria a um erro de estimativa de banda para um sinal imediatamente maior que 12,5 MHz de 4882

ppm, enquanto o uso de uma FFT com 8192 pontos nos levaria a um erro de 610 ppm sob

as mesmas condições. Por outro lado, ainda com o mecanismo de zoom de quatro vezes o erro observado para a detecção de um sinal de 200 MHz de banda seria de 76294 ppm para o uso de uma FFT de 1024 pontos e 9537 ppm para o uso de uma FFT de 8192 pontos.

Magnitude Frequencia (MHz) 20 15 10 5 0 0.4 0.3 0.2 0.1 0 e. Zoom de 2x (21 bins) Magnitude Frequencia (MHz) 20 15 10 5 0 0.24 0.22 0.2 0.18 0.16 0.14 b. Zoom de 2x Magnitude Frequencia (MHz) 20 15 0.17 0.18 0.19 0.2 0.21 0.22 10 5 0 0.4 0.3 0.2 0.1 0

d. Sem zoom (21 bins)

Magnitude Frequencia (MHz) 20 15 10 5 0 5 10 15 20 Frequencia (MHz) Magnitude e. Zoom de 4x (21 bins) 0 0.3 0.25 0.2 0.15 0.1 a. Sem zoom Magnitude Frequencia (MHz) 20 15 10 5 0 0.4 0.3 0.2 0.1 0 c. Zoom de 4x

Figura 25 – Sinal de 200 kHz processado pelo Algoritmo de Detecção de Cicloestaciona- ridade com FFT de tamanho 8192 (a) sem utilização do mecanismo de zoom, (b) com utilização do zoom de duas vezes, (c) com utilização do zoom de 4 vezes.

Como anteriormente mencionado, o circuito implementado é capaz de procurar picos se valendo da média de dois diferentes processamentos do Algoritmo de Detecção de Cicloestacionaridade. Este recurso é especialmente útil quando um sinal com baixa SNR é processado. Porém, seu uso aumenta o tempo de pesquisa de sinais no espectro em pouco mais que o dobro do tempo de pesquisa quando tal recurso não está ativado. Uma vez que não há controle sobre o nível de ruído dos sinais de entrada optou-se por manter a configuração de média do circuito em duas vezes, ou seja, a cada iteração para determinar a presença de um sinal dois ciclos de processamento de pesquisa por cicloestacionaridade são realizados e da média de ambos os resultados o pico de cicloestacionaridade é pesquisado. Note que, como anteriormente abordado, o circuito foi implementado de forma a permitir um máximo de média de 2 resultados por razões de limitações de memória. Portanto, o circuito foi mantido operando fixamente no máximo de média permitida para todos os testes que se seguiram.

Os equipamentos de bancada, softwares e outras referências relevantes utilizadas nos testes encontram-se à seguir:

∙ Analisador de espectro Agilent;

∙ Gerador de sinais DVB-S2 Alitronika AT290USB (DVS, 2011);

GHz, configurado para geração de ruído branco (TECHNOLOGIES, 1998);

∙ Sinais da Banda C do Satélite Embratel Star One C3 (ONE, 2015), posição orbital 75∘W, com frequência de descida entre 3625 MHz a 4200 MHz, EIRP típica de 41,0 dBW e fluxo de saturação típico de -86 dBW/m2;

∙ Antena parabólica de 1,9 m de diâmetro com LNB banda-C Gardiner de dupla polaridade (H/V), frequência de entrada na faixa de 3.7 GHz a 4.2 GHz e frequência de saída na faixa de 950 MHz a 1450 MHz e ganho de conversão típico de 70 dB; ∙ Receptor comercial de sinais de satélite ELSYS ETRS36 (ELSYS, ) com frequência

de entrada entre 950 MHz e 2150 MHz;

∙ Web site Portal BSD (BSD, 2015), com informações sobre os canais de televisão sendo transmitido por diferentes satélites;

∙ Sintonizador banda base MAXIM 2112C (Complete Direct-Conversion Tuner for DVB-S2 Applications) (MAXIM, 2010);

∙ Conversor AD/DA TerASIC (ALTERA, 2008) com dois conversores analógico-digital (A/D) com largura de canal de 150 MSPS e 14 bits e dois conversores digital- analógico (D/A) com largura de canal de 250 MSPS e 14 bits;

∙ Placa de desenvolvimento em FPGA TerASIC Stratix IV GX (ALTERA, 2009), com FPGA Altera Stratix IV GX EP4SGX230KF40C2N;

∙ Software Quartus II versão 13 para compilação dos códigos para FPGA; ∙ GNU Octave (EATON et al., 2009) versão 4.0.1.

A fim de caracterizar o circuito criado, duas etapas foram propostas. Na primeira avaliou-se o desempenho deste de acordo com sua SNR em seguida. Na segunda etapa, avaliou-se tanto a capacidade de detecção de sinais obtidos em condições reais de operação, quanto a capacidade de detecção de múltiplos sinais em uma mesma faixa de frequência. A Figura 26 exibe a montagem realizada para o primeiro teste efetuado. Para este teste, com o gerador de sinais DVB-S2 ajustado em 20 dBm de potência e o gerador de ruído ajustado em 19 dBm, a cada etapa de medições o nível do ruído era abaixado produzindo a SNR desejada para o próximo ponto de medição. Tanto o sinal quanto o ruído após combinados eram inseridos no sintonizador que, então, convertia os sinais para banda base, permitindo assim sua conversão AD pela placa TerASIC e, finalmente, sendo capturado pela FPGA a uma frequência de 62,5 MHz. A cada etapa 20 medições foram realizadas.

FPGA com circuito criado Conversor AD TerASIC Gerador de sinais DVB-S2 Gerador de ruído

+

Analisador de Espectros Sintonizador

Figura 26 – Montagem criada para caracterizar o circuito criado em função de variações de SNR. ∙ unbalance_fix_in = 0; ∙ fs_value_in = 62,5 MHz; ∙ centre_freq_in = 3.99 GHz; ∙ average_num_in = 2; ∙ guard_delta_in = 50 kHz; ∙ step_size_in = 200 kHz; ∙ threshold_fix_in = 15; ∙ threshold_mult_in = 7.

Os sinais foram modulados com uma portadora de 1 GHz, banda de 5 MHz com modulação QPSK e code rate 1/4. Portanto, de acordo com o ajuste do circuito, dois zooms eram realizados para se chegar ao exato valor de banda do sinal. Além disso, tal valor de banda provoca fuga espectral, como abordado na Seção 3, o que leva a uma dificuldade extra para a detecção do sinal. A Figura 27 apresenta os resultados de valor de banda obtidos ao longo de 20 medições para diferentes valores de SNR, acima de cada resultado a quantidade de vezes que o circuito foi capaz de detectar o sinal foi apresentada.

Embora tenha-se gerado um sinal com 5 MHz de banda, os resultados obtidos fica- ram em torno de 5,001 MHz, com alguns resultados em 4.999 MHz para sinais com maior SNR. Isto se deve ao fato de que 5 MHz não é valor exato de nenhum bin da FFT, mesmo com 4 vezes de zoom os bins mais próximos são: 4,999161 MHz (bin 2621) e 5,001068 MHz (bin 2622), portanto, como vimos anteriormente, a energia do sinal recebido será dividida entre tais bins. Em situações de alta SNR, o próprio bin 2621, primeiro a ser analisado,

5.0005 5.0006 5.0007 5.0008 5.0009 5.001 5.0011 −1 0 1 2 3 4 5 Baud rate (MHz) Es/N0 (dB) 10 19 20 20 20 20 20

Figura 27 – Resultados de valores de banda obtidos durante a caracterização do circuito para diferentes valores de SNR em sinal QPSK, code rate 1/4, com 5 MHz de banda.

pode exceder o fator de multiplicação utilizado (threshold_mult_in), sendo, portanto, imediatamente selecionado como o correspondente à banda do sinal. Por outro lado, em situações de baixa SNR, em que ambos os bins (2621 e 2622) excedem o valor mínimo para um pico (threshold_fix_in) e a metade do fator de multiplicação (𝑡ℎ𝑟𝑒𝑠ℎ𝑜𝑙𝑑_𝑚𝑢𝑙𝑡_𝑖𝑛/2), o resultado final será dado pela média entre a banda correspondente a cada um dos bins, ou seja, 5,00115 MHz. Porém, como o circuito retorna seus resultados com precisão de kHz, o resultado final apresentado é 5,001 kHz. Entretanto, é possível observar que os resultados obtidos oscilam em torno de 200 ppm, valor este considerado de fácil correção para o circuito de sincronismo (resampler ) utilizado na etapa seguinte de decodificação dos sinais. Apenas a título de informação, no projeto do qual este circuito faz parte, o circuito de sincronismo (resampler ) é capaz de corrigir erros acima de 1000 ppm.

É possível notar, também, que a taxa de captura do sinal se mantém em 100% a até 1 dB de SNR, caindo para 95% a 0 dB e, finalmente, para 50% a -1 dB de SNR. Evidentemente, com uma janela de observação maior, por exemplo com um zoom de 4 vezes, este resultado tende a aumentar. Entretanto, tal valor já se encontra próximo ao limite estipulado pela norma DVB-S2 (ETSI, 2014b), que determina que um sinal com tais características deve ser capturado com até -1 dB de SNR.

A Figura 28 apresenta os resultados obtidos para estimativa de frequência central do sinal na caracterização descrita anteriormente.

É possível notar que, a acurácia apresentada pelo sistema é maior para maiores SNR, embora com menor precisão, uma vez que a variação em torno de 999 MHz é baixa, porém, o valor correto de posição central do sinal é 1000 MHz. Entretanto, a situação

998.8 999 999.2 999.4 999.6 999.8 1000 1000.2 1000.4 1000.6 −1 0 1 2 3 4 5 Centre Frequency (MHz) Es/N0 (dB) 10 19 20 20 20 20 20

Figura 28 – Estimação de frequência central, obtidos durante a caracterização do circuito para diferentes valores de SNR em sinal QPSK, code rate 1/4, com 5 MHz de banda.

se inverte em função do aumento da SNR, com a acurácia se reduzindo e a precisão aumentando. Tal comportamento se deve ao fato de que para altas SNRs o circuito é capaz de iniciar a detecção do sinal mesmo ainda distante da posição central deste e, consequentemente, acaba por determinar sua frequência central mais distante da posição efetiva do sinal. Observe, porém, que a posição poderá ser determinada em uma frequência maior, ou menor, em função da inversão, ou não, das componentes I e Q do sinal recebido. Recordando a Figura 20, que apresenta o resultado observado no modelo para

Documentos relacionados