Se a fase linear for um requisito, isso provavelmente o levará a uma implementação FIR. É possível criar filtros IIR com fase linear aproximada, mas é fácil projetar um FIR de fase linear.
Se você está preocupado com a latência, a filtragem para frente e para trás como na filtfilt
verdade não é realmente uma boa opção. Em geral, ele realmente deve ser usado em um processo offline, pois para implementar exatamente a técnica, você precisa executar todo o sinal através do encaminhamento e, em seguida, fazer o mesmo ao contrário. Isso implica que você tem acesso a todo o sinal de uma só vez, o que não é proporcional ao baixo atraso.
Em geral, um filtro FIR exigirá uma ordem mais alta para um determinado conjunto de requisitos de desempenho. No entanto, os filtros FIR trazem algumas vantagens reais, como estabilidade garantida, menor suscetibilidade a erros de arredondamento (já que o erro de quantização não é realimentado pelo filtro, embora você possa compensar isso com maior complexidade), e simplesmente alcançado resposta de fase linear. Além disso, implementações eficientes de filtro FIR estão disponíveis para muitas arquiteturas de processador, mitigando um pouco o custo dos toques extras.
Outra maneira de reduzir o custo extra para os filtros FIR na sua situação é tirar proveito de técnicas eficientes de processamento de sinais com múltiplas taxas. Especificamente, você pode usar uma abordagem de dizimação polifásica para reduzir significativamente o número de cálculos que você realiza no processo de dizimar seu sinal. Isso tem o efeito de diminuir o número de derivações efetivas (em termos de complexidade computacional) no filtro de dizimação. Além disso, se você precisar dizimar por um grande fator, as abordagens de vários estágios poderão ajudar a reduzir ainda mais sua carga. O livro introdutório de DSP de Lyons tem um bom material de fácil leitura sobre esses tópicos.
Dados parâmetros mais específicos do seu sistema, é possível fazer recomendações mais pontuais. Quais são os seus requisitos de design de filtro? Que tipo de recursos computacionais sua plataforma possui? Com qual taxa de amostra você vai dizimar?
Quão baixo você quer dizer com "baixa latência"?
Se você quer dizer abaixo de 1 mS com uma grande redução na taxa de amostragem, pode ser necessário um FIR mínimo de fase. Se você quer dizer cerca de 1/30 de segundo, poderá implementar um filtro FIR de fase linear eficiente usando uma abordagem de adição / salvamento de sobreposição de FFT (convolução rápida).
fonte
Um pouco de dificuldade com relação à complexidade do tempo: os filtros FIR são vetorizáveis, o que realmente ajuda nas arquiteturas modernas de CPU. Além disso, os filtros IIR sofrem um impacto no desempenho porque o valor atual de saída depende dos valores anteriores, o que remove a vantagem da tubulação.
fonte