Documentação sobre filtros em geral


11

Eu já postei esta pergunta no StackOverflow. Eu tenho uma sugestão para buscar uma resposta melhor aqui.

Para tornar a pergunta mais concisa, estou interessado em uma introdução aos filtros digitais, qualquer recurso é bom.

Mas primeiro ficarei satisfeito se alguém puder me indicar alguns recursos que explicam esse filtro (usado no Android):

http://gitorious.org/rowboat/frameworks-base/blobs/671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8/services/sensorservice/SecondOrderLowPassFilter.cpp

O que me interessa é a maneira como os parâmetros do filtro são escolhidos. Embora eu possa copiá-lo sem pensar, acho que devo entender o conceito / idéia básica antes de usá-lo.

Obrigado,

Iulian

Respostas:


11

Você pode derivar a expressão para os coeficientes fazendo a transformação bilinear do seguinte filtro de protótipo de passa-baixo analógico

H(s)=w02s2+(w0/Q)s+w02

onde é a frequência de corte.w0

Você pode pesquisar a transformação bilinear na Wikipedia .

O filtro usado no aplicativo Android é um filtro Butterworth porque o valor escolhido de Q é . Observe que no construtor o inverso de Q é calculado e atribuído à variável iQ, que é usada no cálculo dos coeficientes. Observe também que a variável K mantém o valor 'deformado pela frequência' da frequência de corte especificada. Você pode encontrar mais informações sobre o fenômeno de distorção de frequência no link acima.1/2

Você pode encontrar muitos exemplos de design de filtro digital usando transformação bilinear. Eu encontrei este , que é bem parecido com o exemplo do Android.


Obrigado. Começo a lembrar de matemática que fiz na faculdade; infelizmente, ninguém estava lá para me mostrar também um bom exemplo prático ou eu estava preocupado com outra coisa ...
— Iulian Şerbănoiu

5

Uma introdução realmente boa e completa aos filtros digitais é https://ccrma.stanford.edu/~jos/filters/filters.html . Seu exemplo particular é um filtro passa-baixas de 2 ou 4 ordens muito simples. Se você usar o objeto "Biquad", obterá um filtro Butterworth de segunda ordem. Se você usar o objeto "CascadedBiquad", obteria o que chamamos de filtro Linkwitz Riley de 4ª ordem (mas NÃO um Butterworth de 4ª ordem). A implementação é bastante específica. Com um pouco mais de trabalho, você pode fazer algo que é muito mais genérico e utilizável para todos os aplicativos.


Sim, eu realmente quero entender a teoria dos filtros para poder controlar os filtros que estou usando. O filtro mencionado na pergunta me fez perceber que não apenas eu deveria entender como ele funciona, mas também deveria poder projetar meus próprios filtros, dependendo da entrada. Bom link, obrigado!
— Iulian Şerbănoiu

5

Minha primeira referência que achei realmente útil foi o Guia do cientista e do engenheiro para o processamento de sinais digitais . Eu acho que o ponto forte é que ele é voltado para familiarizar o leitor com os conceitos e terminologia do DSP sem se aprofundar muito na matemática. Essa abordagem se encaixou no meu estilo de aprendizado e experiência como engenheiro de software, com uma leve ênfase no EE. Hoje em dia, sempre abordo novos tópicos dessa maneira, tentando entender primeiro os conceitos de alto nível e depois aprofundar os detalhes com outras fontes de informação que são mais detalhadas / pesadas em matemática.


Foi assim que comecei a reler, já que era a única coisa que eu sabia que continha referências a esse tópico. Obrigado!
— Iulian Şerbănoiu 19/09/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.