Estou trabalhando em uma placa que não possui filtro antializante na entrada do ADC. Eu tenho a opção de implementar meu próprio filtro usando o circuito RC + Opamp. Mas também é possível implementar o filtro Anti Aliasing após a amostragem pelo ADC e o processamento no domínio Digital: um filtro digital Anti Aliasing?
Apenas para apoiar a resposta de Matt e fornecer mais alguns detalhes:
A maioria dos ADCs modernos realiza a maior parte do trabalho duro de suavização de borda no domínio digital. A razão é que os filtros digitais tendem a produzir menos subprodutos por um custo muito menor. A cadeia real é:
Entrada analógica.
Filtro anti-aliasing analógico.
Sobre-amostragem (por exemplo, 8x).
Filtro digital anti-aliasing.
Dizimação (redução para 1x).
Saída digital.
A seguir, considere o seguinte:
O áudio é amostrado em 44100Hz.
Isso fornece uma frequência Nyquist de 22050 Hz.
Quaisquer frequências acima de 24100 Hz voltarão à faixa audível (abaixo de 20kHz).
20000Hz a 24100 é cerca de um quarto de oitava.
Mesmo com um filtro íngreme de 80dB / 8ve, você reduzirá apenas as frequências de aliasing em 20dB.
Mas com 8x oversampling:
O áudio é amostrado em 352,8kHz (44,1kHz x 8).
Nyquist é 176,4 kHz.
Somente frequências acima de 332,8kHz serão refletidas na faixa audível.
Isso é cerca de 4 oitavas.
Assim, você pode aplicar um filtro analógico de 24dB / 8ve para reduzir as frequências de aliasing em 96dB.
Então oversample.
Aplique o filtro digital de fase linear entre 20kHz e 24.1kHz
O livro a seguir é um recurso excelente e claro para esse tipo de coisa.
O que você diz é certamente verdadeiro para aplicativos de áudio (nos quais chips de codec integrados e prontos para uso substituíram o ADC / DAC há muito tempo) - mas há muitos campos de engenharia nos quais a aquisição ainda é feita por ADCs de baunilha SAR (como autônomos chips ou embutidos em microcontroladores) - e com estes você precisa fazer o trabalho duro!
Pichenettes
Esse é um ótimo comentário. No entanto, acredito que a resposta ainda permanece - se você puder pagar, os filtros anti-aliasing digitais trazem muitos benefícios.
Izhaki
Só queria saber se é esse o caminho para garantir que os filtros analógicos tenham pequena geometria e peso?
Gpuguy
1
Se eu entendi a pergunta corretamente, então sim - usar um filtro digital significará um indicador analógico muito mais simples (principalmente se a qualidade for responsável).
Izhaki
Você quer dizer "dizimar" na penúltima etapa do fluxo de trabalho de superamostragem?
Nick T
15
Não, isso não faz sentido. Digamos que sua taxa de amostragem ADC seja de 1kHz. Uma onda senoidal de 100 Hz e uma onda senoidal de 900 Hz produzirá exatamente a mesma sequência de amostras digitais uma vez inseridas no ADC - mas você deseja passar pela primeira e atenuar a posterior. Como você espera que seu filtro digital produza saídas diferentes quando alimentado com a mesma entrada?
A única coisa que poderia funcionar seria amostrar o sinal de entrada o mais rápido que o seu ADC permitir e reduzi-lo no domínio digital para a taxa de amostragem desejada - mas, a menos que você tenha ciclos de CPU desperdiçados, é melhor usar um analógico filtro a montante.
"Uma onda senoidal de 100 Hz e uma onda senoidal de 900 Hz produzirá exatamente a mesma sequência de amostras digitais". Isso geralmente não é verdade (embora eu entenda o que você quer dizer).
Niaren 20/05
3
Ok, isso requer uma condição específica em suas fases para funcionar, mas esse não é o ponto! O ponto é que suas amostras digitais podem parecer provenientes de uma onda senoidal de 100 Hz, enquanto a mesma sequência de dados pode ter sido gerada por uma onda senoidal de 900 Hz.
Pichenettes
você pode dizer qual é essa condição (exatamente para manter)?
Niaren 20/05
1
π
há um erro na sua resposta. 100Hz e 900Hz não têm a mesma saída de amostra. Na verdade, é [100 +/- k * 1000], que dará as mesmas amostras. Assim, -900, 1100, 2100 etc. são as frequências com aliases correspondentes a 100Hz. Na verdade, 900Hz será negativo da onda de tamanho de 100Hz.
15
Concordo com a resposta de pichenettes, mas gostaria de acrescentar que é uma prática bastante comum usar um filtro anti-aliasing analógico de ordem simples de baixo custo e fazer o resto da filtragem anti-aliasing no domínio digital. Isso implica, obviamente, que você não processa na taxa máxima de amostragem, mas reduz a amostragem após o filtro anti-aliasing digital. Resumindo:
Claro que você precisa de um filtro anti-aliasing analógico.
O filtro analógico pode ser mantido muito simples se você puder reduzir a amostra do seu sinal. Nesse caso, você pode fazer mais remoção de alias no domínio digital (antes da redução da amostra).
Não, isso não faz sentido. Digamos que sua taxa de amostragem ADC seja de 1kHz. Uma onda senoidal de 100 Hz e uma onda senoidal de 900 Hz produzirá exatamente a mesma sequência de amostras digitais uma vez inseridas no ADC - mas você deseja passar pela primeira e atenuar a posterior. Como você espera que seu filtro digital produza saídas diferentes quando alimentado com a mesma entrada?
A única coisa que poderia funcionar seria amostrar o sinal de entrada o mais rápido que o seu ADC permitir e reduzi-lo no domínio digital para a taxa de amostragem desejada - mas, a menos que você tenha ciclos de CPU desperdiçados, é melhor usar um analógico filtro a montante.
fonte
Concordo com a resposta de pichenettes, mas gostaria de acrescentar que é uma prática bastante comum usar um filtro anti-aliasing analógico de ordem simples de baixo custo e fazer o resto da filtragem anti-aliasing no domínio digital. Isso implica, obviamente, que você não processa na taxa máxima de amostragem, mas reduz a amostragem após o filtro anti-aliasing digital. Resumindo:
Claro que você precisa de um filtro anti-aliasing analógico.
O filtro analógico pode ser mantido muito simples se você puder reduzir a amostra do seu sinal. Nesse caso, você pode fazer mais remoção de alias no domínio digital (antes da redução da amostra).
fonte