Filtro FIR Gaussiano sem multiplicadores?

8

Qual é a maneira mais simples de implementar um filtro FIR Gaussiano com coeficientes de ganho de unidade e sem multiplicadores?

Por favor, anteceda sua resposta com notação de spoiler, digitando os dois caracteres a seguir primeiro ">!"

Nota: Um filtro FIR Gaussiano é um filtro FIR com uma resposta de impulso que é uma função Gaussiana. Por "coeficientes de ganho de unidade", quero dizer que todos os coeficientes na estrutura do filtro são 1.

Dan Boschen
fonte
2
Gostaria de saber onde posso pegar um filtro gaussiano? talvez na mesma loja eu consiga um desses filtros Kalman. ouvi-os filtros Kalman são muito bons.
Robert Bristow-johnson
Algumas características interessantes dos filtros gaussianos: eles têm o tempo mínimo de subida e descida sem ultrapassar a função step e têm o menor atraso de grupo possível para uma determinada largura de banda. Uma aplicação está na modulação GMSK usando um filtro Gaussiano devidamente dimensionado na palavra de controle de frequência de um NCO (ou a tensão de controle de um VCO), com cada símbolo no filtro representado como um impulso. Se o filtro tiver exatamente 1 período de símbolo, isso implementaria a sinalização de resposta completa ou, se menos, implementaria a sinalização de resposta parcial (como é feito no GSM e UHF SATCOM).
Dan Boschen 13/06/16
Por mais que eu goste do assunto do dsp-puzzle, sinto que o modo como este é definido aqui, apesar de desafiador, é um pouco contraditório (ou há algo que não estou entendendo). Por um lado, um perfil no domínio do tempo gaussiano é especificado, por outro, a resposta aceita aponta para algo como h = [1,1]. Um pulso retido tem uma frequência sincera e a média de um grande número deles PODE aproximar-se de um gaussiano. Mas isso seria um perfil gaussiano no domínio da frequência . Onde eu estou errando?
um_um
Obrigado pela resposta, estou corrigido. (Não era um comentário sobre a resposta aceita pelo caminho, mais um pedido de esclarecimento)
um_um
É um bom comentário - eu esperava que meus esclarecimentos levassem o formato de spoiler, mas não, então excluí minha resposta, que foi muito reveladora. Vou apenas dizer que um perfil gaussiano no domínio do tempo também é um perfil gaussiano no domínio da frequência.
Dan Boschen

Respostas:

5

Esta é uma aproximação, mas você pode torná-la tão boa quanto quiser.

Basta usar uma cascata de vários filtros com respostas de impulso retangulares. No caso mais simples, isso seria um filtro de dois toques. Isso funciona por causa do teorema do limite central . No entanto, você precisará escalar, pois, caso contrário, a resposta ao impulso resultante poderá se tornar muito grande. O dimensionamento pode ser feito pela troca de bits.

Matt L.
fonte
Como você aplica o CLT aqui? Todo o procedimento é determinístico.
MBaz
@ MBaz: Não há necessidade de aleatoriedade aqui. O que a CLT diz é que o pdf de um RV que é a soma de muitos RVs independentes se aproxima de um gaussiano. Esse pdf é apenas a convolução dos pdfs dos outros RVs independentes. Em outras palavras, convolva muitas funções entre si e você terminará com um gaussiano.
Matt L.
Certo, considerando que a soma dos RVs do IID se aproxima de um gaussiano usando o CLT, e considerando que a distribuição para uma soma dos RVs é uma convolução dos seus PDFs individuais; como a resposta de impulso resultante para a cascata de FIR é a convolução de suas respostas de impulso individuais, podemos deduzir que a resposta de impulso para a cascata de FIR com respostas de impulso idênticas também se aproximará de um gaussiano.
Dan Boschen
@ DanBoschen Sim, o que eu perdi é que a resposta ao impulso é interpretada como um pdf (em escala).
MBaz 13/06/16
É uma ótima ponte entre duas disciplinas diferentes ... A matemática que você pode fazer em pdf discreto se aplica ao que você pode fazer com os coeficientes dos filtros FIR ... no final, é apenas a matemática equivalente, mas pode levar a algumas boas idéias como essa!
Dan Boschen
4

Não é tão elegante quanto a resposta de Matt L., mas também parece funcionar.

Em vez de colocar filtros FIR de um coeficiente em série, coloque-os em paralelo, mas agora use-os em diferentes comprimentos e em diferentes atrasos e depois some todas as saídas do filtro. Como na resposta de Matt, isso não será dimensionado corretamente. O Gaussiano original terá que ser escalado e tornar valores inteiros (que é onde o erro ocorre). Verifique este URL para o erro.

Peter K.
fonte
Sim, isso também funciona, bom pensamento!
Dan Boschen 13/06