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?