DSP - Oversampling, Upsampling e Downsampling

Introdução

 

No artigo Conversor A/D - Trazendo o mundo real para dentro do processador foram mostrados alguns efeitos decorrentes da quantização de um sinal analógico num número finito de valores inteiros, definido pelo número de bits de resolução de um conversor Analógico / Digital. Neste artigo serão apresentados alguns recursos interessantes que o processamento digital de sinais pode oferecer. A sobre-amostragem (oversampling), aumento artificial da taxa de amostragem (upsampling) seguida de uma filtragem de reconstrução, ou interpolação, e a decimação (downsampling), que é a redução artificial da taxa de amostragem. São técnicas de processamento digital de sinais simples, porém muito poderosas. 

 

 

Oversampling

 

Dá-se o nome de Oversampling à ação de realizar uma amostragem do sinal muito acima da frequência mínima de amostragem, determinada pelo critério de Nyquist-Shannon, ou seja, no mínimo 2 vezes a maior frequência do sinal a ser digitalizado. É boa prática amostrar o sinal com taxas de pelo menos 8 a 10 vezes a maior frequência do sinal. Para se fazer um oversampling, pode-se utilizar taxas maiores que 32 vezes a frequência mínima.

 

Por que fazer um oversampling?

 

Existem dois motivos principais para se utilizar desse recurso. O primeiro motivo é a simplificação do filtro analógico de anti-aliasing na entrada do conversor A/D, necessário para evitar o aparecimento de frequências fictícias na faixa útil do sinal decorrentes dos efeitos da amostragem. No caso de oversampling, pode ser utilizado um filtro passivo simples do tipo R-C, que muitas vezes já está incorporado aos conversores A/D, dispensando o uso de filtros analógicos ativos. Se necessário, pode-se aplicar ainda um filtro digital para reduzir ainda mais os sinais indesejados. O segundo motivo é o aumento de resolução em número de bits. A relação entre o aumento de resolução em bits e a taxa de amostragem mínima é a seguinte:

 

Formula

 

Isso funciona, desde que o sinal seja periódico e o conversor A/D possua uma linearidade que não comprometa essa ação. Ao longo do texto serão apresentados scripts desenvolvidos para o programa Octave, que geraram os dados e as figuras apresentadas a seguir. O leitor pode copiar esses scripts e simular essas e outras situações que desejar. Será necessário também instalar o pacote adicional do Octave com funções de processamento digital de sinais, o pacote Signal

 

O script a seguir gera uma senoide ideal que servirá de base para o oversampling e a posterior quantização.

 

 

O script a seguir gera a quantização e o espectro (FFT) do sinal gerado pelo script anterior, assim se pode observar os efeitos do oversampling.

 

 

Na Figura 1 a seguir pode-se observar o espectro da senoide amostrada com taxa de 16 amostras por ciclo e quantizada para 8 bits.

 

Oversampling, Upsampling e Downsampling: Senoide ideal quantizada para 8 bits
Figura 1 - FFT da senoide ideal quantizada para 8 bits

 

Se aplicarmos uma sobre-amostragem de 256 vezes, rodando o script alterando, o valor de Num_Bits_Ovr para 4, visando aumentar a resolução para 12 bits, obtemos o espectro mostrado na Figura 2.

 

Oversampling 12 bits
Figura 2 - FFT da senoide ideal quantizada para 8 bits e amostrada para obter 12 bits de resolução

 

Observando a Figura 2, pode-se notar que o número de amostras é muito grande (64 vezes maior). E vale lembrar que resolução não é o mesmo que precisão. Muitos conversores A/D especificam um parâmetro chamado de EOB (Efective number of bits - número efetivo de bits), que sempre é menor que a resolução do conversor A/D e determina a efetiva precisão do componente. Para fins de comparação observe a Figura 3, onde está retratada a FFT de uma senoide, amostrada 16 vezes por ciclo, quantizada para 12 bits de resolução. Repare que o nível do ruído de quantização se encontra num nível semelhante ao do espectro obtido após o oversampling.

 

Oversampling, Upsampling e Downsampling: FFT Senoide quantizada com 12 bits
Figura 3 - FFT de senoide ideal amostrada para 12 bits

 

 

Upsampling

 

Upsampling é um técnica de processamento digital de sinais para aumentar artificialmente a taxa de amostragem em N vezes, inserindo um número N-1 de zeros entre as amostras originais do sinal, e passando o conjunto obtido por um filtro de reconstrução, que nada mais é que um filtro do tipo passa-baixas. Para mostrar essa técnica utilizaremos o programa anterior ligeiramente modificado. O script a seguir simula o upsampling da senoide ideal e realiza a filtragem de reconstrução.

 

 

Na Figura 4 pode-se observar como fica o sinal original intercalado com zeros entre as amostras, nesse caso com 255 zeros (fator_up = 256).

 

Upsampling
Figura 4 - Gráfico mostrando a senoide intercalada com 255 zeros

 

Evidentemente essa técnica impõe limites de aplicação. É intuitivo o fato que quanto maior a interpolação, mais a informação referente ao sinal original é distorcida ou perdida. Na Figura 5 pode-se observar a forma de onda resultante após a reconstrução da senoide original interpolada para aumentar a taxa de amostragem em 8 vezes (fator_up = 8). O filtro de reconstrução é do tipo FIR, que não distorce a fase do sinal.

 

Oversampling, Upsampling e Downsampling: Reconstruct
Figura 5 - Senoide reconstruída

 

Escolhendo o trecho da onda reconstruída que está livre dos transitórios decorrentes da filtragem, e calculando a FFT desse trecho, obtém-se o espectro mostrado na Figura 6.

 

Oversampling, Upsampling e Downsampling: FFT reconstruída
Figura 6 - FFT da onda reconstruída

 

Note que houve uma melhora do nível de ruído de quantização, quando comparado com o espectro original. O script a seguir calcula a FFT da senoide reconstruida.

 

 

 

Downsampling

 

Downsampling ou decimação é a técnica de redução da taxa de amostragem. Isso é feito simplesmente separando uma amostra a cada N. Há uma inevitável distorção do sinal. Na Figura 7 está retratada a forma de onda decimada e na Figura 8 o seu espectro.

 

Oversampling, Upsampling e Downsampling: Senoide decimada
Figura 7 - Senoide decimada

 

Oversampling, Upsampling e Downsampling: FFT decimada
Figura 8 - FFT da senoide decimada

 

O script para gerar a decimação ilustrada nas Figuras 7 e 8 encontra-se a seguir.

 

 

 

Conclusão

 

As técnicas apresentadas neste artigo técnico são muito úteis para a manipulação de sinais digitalizados. São aplicadas para se desenvolver sistemas de controle ou filtragens adaptativas. É necessário relembrar que, como quase tudo na vida real, essas técnicas têm limitações que devem ser consideradas, e que não existem soluções perfeitas. As soluções são sempre de compromisso. Assim cabe ao projetista escolher, segundo os seus critérios, a melhor solução para o seu projeto.

 

 

Referências

 

[1] Processamento Digital de Sinais - DSP - Parte 2

[2] Enhancing ADC resolution by oversampling

Crédito para a imagem destacada: Roundness - Van Truan | Dreamstime Stock Photos

Sou paulistano, 57 anos, formado em Engenharia Eletrônica pela Escola Politécnica da Universidade de São Paulo (formado em 1982) e trabalho há pelo menos 33 anos no Instituto de Pesquisas Tecnológicas do Estado de São Paulo S/A - IPT com Pesquisa e Desenvolvimento, principalmente pesquisa aplicada e desenvolvimento tecnológico de protótipos e produtos eletrônicos dedicados.

Deixe um comentário

Seja o Primeiro a Comentar!

Notificar
avatar
 
wpDiscuz