Qual projeto de filtro passa-banda produz a menor resposta de impulso?

14

Projetar um filtro Buterworth simples de segunda ordem de banda IIR de 2ª ordem com uma frequência central de 500 Hz e uma largura de banda de 1 oitava fornece a seguinte resposta de frequência ...

insira a descrição da imagem aqui

Agora, se eu pegar a resposta ao impulso, normalizá-la e convertê-la em dB, podemos observar o decaimento da resposta ao impulso.

insira a descrição da imagem aqui

O decaimento da resposta ao impulso é aproximadamente linear com o tempo quando plotado nessa escala, permitindo definir uma estatística do tempo de decaimento (assim como na acústica da sala, onde é possível definir o tempo de reverberação). Para que a resposta de impulso desse filtro caia abaixo de 30 dB, são necessários cerca de 11 ms.

Estamos tentando minimizar esse tempo de decaimento mantendo a seguinte constante:

  • -3 dB de largura de banda
  • Ordem do filtro

Fico feliz em aceitar (dentro dos limites) a banda passante e a interrupção da banda de parada, e / ou um compromisso com a inclinação da banda de transição para conseguir isso. Alguém pode sugerir um método para filtrar com a menor duração possível da resposta ao impulso, conforme definido acima?

learnvst
fonte
2
Inclua a frequência de amostragem, para dar algum significado aos 11ms.
Juancho 31/05
4
Os pólos no filtro produzirão termos de decaimento exponencial na resposta ao impulso, que, quando plotados em uma escala de log, fornecem um decaimento linear, como você mostrou. A taxa de decaimento está relacionada à distância dos polos ao círculo unitário; quanto mais próximos eles estiverem, mais lenta será a deterioração. A inclinação da banda de transição também está relacionada à distância entre os pólos e o círculo unitário. Não conheço nenhuma técnica de design que permita priorizar essa característica em particular.
Jason R
@ Juancho A taxa de amostragem foi omitida porque eu pensei que era completamente irrelevante: o uso de 5 kHz ou 500 kHz não altera a taxa de decaimento da resposta ao impulso. Estou direcionando 44,1 kHz, se você estiver curioso. Obrigado por procurar :) #
learnvst
2
@ JimClay sim, você pode, tenho certeza, mas quero manter o custo computacional muito baixo. Para usar eficientemente o Fir, eu precisaria usar uma técnica baseada em fft, e isso introduziria latência no algoritmo enquanto o buffer FFT é preenchido com amostras. Sim não?
Learnvst
3
@ JimClay Por que as leis da física sempre interrompem meus planos de dominação mundial! Grumble grumble
learnvst

Respostas:

8

A resposta de frequência do filtro Butterworth é o resultado de fórmulas específicas e sua característica é a resposta de frequência de banda passante plana. Conseqüentemente, se os coeficientes do filtro IIR forem modificados de alguma forma, o filtro poderá não manter as características "Butterworth".

Além das respostas de "Hilmar" e "Jason R", talvez você possa tratar isso como um problema de otimização de uma função de condicionamento físico que captura suas especificações.

Você pode, por exemplo, começar com algum design (por exemplo, um filtro Butterworth) e, em seguida, usar uma técnica de otimização para mover os zeros e pólos sobre suas localizações (ou modificar o design adicionando / removendo pólos e zeros) tentando obter suas especificações (mais nítidas roll-off no domínio do tempo, mantendo a largura de banda e a ordem dos filtros).

Nessa linha, uma grande quantidade de trabalho foi realizada no projeto de filtros com algoritmos genéticos (e aqui ) e recozimento simulado (e aqui ), que você pode achar útil.

A_A
fonte
6

Não há bala mágica, receio. Você pode usar um filtro elíptico para controlar independentemente a ondulação da banda de passagem e interromper a atenuação da banda. No entanto, você descobrirá que a taxa de decaimento está intimamente relacionada à inclinação e à largura de banda geral do filtro. Você pode fazer com que o filtro decaia drasticamente mais rápido, reduzindo a ordem do filtro para 1, mas, novamente, o filtro ficará muito menos íngreme.

Hilmar
fonte
Não pode reduzir o filtro de primeira ordem como ele está sendo usado em um tipo Linkwitz-Riley de rede, mas agradecimento muito para tomar o tempo para responder +1
learnvst