Qual é o comprimento FIR ideal, considerando um comprimento de pulso específico?

7

Estou tentando determinar qual deve ser o comprimento 'ideal' do filtro FIR, dado o comprimento do pulso Tp de um sinusóide de janela em ruído que procuro filtrar.

Como parâmetros em um filtro FIR que eu design, tenho:

  1. Fc=15 kHzA frequência central. (Esta é a frequência portadora do sinal). Eu sei isso.

  2. Como esse é um BPF FIR, especifiquei a banda de passagem como Fc1Tp para Fc+1Tp. Isso ocorre porque a largura de banda do sinusóide da janela é2Tp

  3. O último parâmetro que eu não sei exatamente como especificar, é o comprimento desse FIR ... é aqui que estou perdido. Qual é o comprimento ideal aqui, (se houver?) ... Deve ser apenas o comprimento do pulso (em amostras, é claro), tornando-o algo semelhante a um filtro correspondente? Isso significa que não tenho mais ganhos no aumento do comprimento do filtro?


Como contexto adicional, estou buscando esse comprimento "ideal", caso exista, porque estou tentando filtrar o máximo de ruído possível, mas também faço o possível para reter os transientes agudos. Foi isso que me levou a perguntar: existe um comprimento ideal de filtro para começar. Por exemplo, no gráfico a seguir, filtrei uma versão barulhenta do meu sinal, com filtros de comprimento 11 (vermelho) e 171 (preto), respectivamente. Eles são mostrados abaixo:

insira a descrição da imagem aqui

Como você pode ver, enquanto o resultado em preto é 'mais suave', você pode ver que também é mais 'borrado' na medida em que seus transitórios vão. Por outro lado, o vermelho ainda retém algum ruído, mas os transitórios não são tão afetados.

O gráfico abaixo mostra os espectros dos filtros acima:

insira a descrição da imagem aqui

TLDR: Então, existe um comprimento 'ideal' para filtros FIR, na medida em que aumentar ainda mais o comprimento do filtro não comprará mais imunidade a ruídos, mas poderá realmente manchar seus transientes ainda mais do que o necessário?

EDITAR:

Eu adicionei duas novas imagens. O primeiro possui filtro de comprimento 11, (vermelho), filtro de comprimento 171, (preto) e filtro de comprimento 901, (azul). O azul espesso é o espectro dos dados.

insira a descrição da imagem aqui

Aqui estão os resultados correspondentes para o filtro de comprimento 11 (vermelho) e o novo filtro de comprimento 901 (preto).

insira a descrição da imagem aqui

Spacey
fonte
Eu suspeito que o problema com o filtro preto é que a largura de banda é maior do que você pensa. A largura de banda do sinal em si pode ser2Tp, mas quando você cortá-lo abruptamente nas amostras 100 e 150, você o multiplica por um retângulo que convolve com um sinc, o que aumentará a largura de banda. Faça um filtro que tenha uma banda de passagem que possa lidar com a largura de banda total.
Jim Clay
11
Para o canal AWGN, o filtro ideal é o filtro correspondente. O fato de o pulso de interesse ser um sinusóide com janela não muda realmente as coisas. No entanto, se você não souber com precisão a frequência do pulso, o processo de filtragem correspondente pode sofrer perda de escalonamento devido ao filtro não estar perfeitamente centrado no sinal de interesse.
Jason R
@JasonR Tenho o luxo de saber com precisão a frequência do meu centro de pulso nesta aplicação. Isso significa que o filtro ideal, neste caso, (AWGN) deve ser um filtro que tenha o mesmo comprimento que o pulso em questão?
Spacey
Isso significa que o filtro ideal é o filtro correspondente, que é igual amostra por amostra ao pulso que você está procurando.
Jason R
@JimClay Eu atualizei o post para mostrar-lhe outro filtro com uma largura de banda mais apertado, mas de comprimento 901 ... Eu não acho que está comprando me qualquer coisa mais ...
Spacey

Respostas:

2

Estou convertendo alguns dos meus comentários de cima para esta resposta:

Se você está tentando detectar a presença de alguma forma de pulso p(t) no canal AWGN, o detector ideal usa um filtro que corresponde à forma do pulso p(t)(apropriadamente chamado de filtro correspondente ); isso maximiza a relação sinal-ruído (SNR) na saída do filtro e, portanto, fornece a melhor estatística de detecção. Essa abordagem é equivalente a uma correlação cruzada deslizante da forma do pulso com o sinal observado, expresso matematicamente da seguinte maneira:

d(t)=x(t)p(t)

Onde x(t) é o sinal observado e d(t) é a estatística de detecção resultante.

O principal problema, portanto, consiste na seleção de um limite apropriado que pode ser usado para determinar onde os pulsos de interesse ocorrem x(t). Especificamente, um indicaria uma detecção quandod(t)>T, Onde Té um limite usado para equilibrar entre duas métricas de desempenho opostas: probabilidade de detecção Pde probabilidade de alarme falso Pfa. Aqui está um link para uma resposta anterior, em que falo um pouco mais sobre o tradeoff . Os valores-alvo para essas métricas seriam escolhidos de acordo com os requisitos para sua aplicação específica.

Nesse caso, podemos criar expressões gerais para Pd e Pfa muito facilmente:

  • Probabilidade de alarme falso: Um "alarme falso" indica um caso em que o detector relata a presença do pulso alvop(t)quando na verdade não está presente. Como definimos o canal como AWGN, isso significa que, para um alarme falso, o sinal de entradax(t)é um processo de ruído gaussiano branco (WGN). Sem perda de generalidade, assumiremos que o ruído seja zero-médio com variaçãoσ2.

    Para determinar Pfa, estamos preocupados com a aparência do sinal na saída do filtro correspondente. Lembre-se qued(t) é definido como:

    d(t)=x(t)p(t)=x(τ)p(tτ)dτ

    Assumindo que x(t) é um processo de ruído gaussiano branco com variância σ2, pode ser mostrado que d(t) também será gaussiano, com uma variação igual a:

    σd2=σ2-|p(t)|2dt

    Ou seja, a variação na saída do filtro correspondente é escalada apenas pela energia total da forma de onda de pulso p(t). A estatística de detecçãod(t) é então apenas um processo gaussiano com variância σd2. A probabilidade de um alarme falso a qualquer momentot é igual à probabilidade de a estatística de detecção exceder o limite T. Usando as propriedades da distribuição gaussiana , podemos escrever isso como:

    Pfuma=P(d(t)>T | nenhum sinal presente)=1 1-Fd(T)=Q(Tσd)

    Onde Fd(d)é a função de distribuição cumulativa (CDF) da distribuição gaussiana eQ(x)é a função-Q .

  • Probabilidade de detecção: Este caso difere do caso de falso alarme, pois o sinal de interesse está presente. Especificamente, examinamos a situação em que o filtro correspondente está perfeitamente alinhado com o pulso de interesse. O mesmo componente de ruído que analisamos anteriormente está presente, mas a autocorrelação da forma de pulso desejada fornece uma média diferente de zero. Essa média é igual à energia total da forma de onda de pulso:

    E(d(t))=-|p(t)|2dt

    A probabilidade de detecção, portanto, é a probabilidade de a estatística de detecção exceder o limite:

    Pd=P(d(t)>T | sinal presente)=1 1-Fd(T)=Q(T-mdσd)

O processo de design ficaria assim:

  • Selecione uma faixa de operação para o seu detector, definindo uma relação sinal-ruído mínima (ou equivalente, uma variação máxima de ruído σ2) em que você operará.

  • Supondo as piores condições (ou seja, o nível máximo de ruído), selecione um limite T que atenda às suas necessidades Pd ou Pfuma (o que for mais importante para você).

  • Conecte o valor resultante para T na outra equação para determinar suas métricas de desempenho previstas.

Este é um tratamento de alto nível para o problema e, se você começar a trabalhar tentando criar algo que funcione praticamente, você encontrará alguns outros detalhes da nota:

  • Uma coisa que pode ser relevante para o seu problema de detecção de sinusoides é que é provável que os pulsos recebidos estejam em alguma fase inicial desconhecida ϕ em relação ao seu formato de pulso do modelo p(t). Você observaria uma redução no pico de correlação com base na quantidade de deslocamento de fase, o que causará estragos no desempenho do seu detector. Se for esse o caso, um não-coerente detector é uma abordagem melhor:

    d1 1(t)=x(t)p(t)
    d2(t)=x(t)pQ(t)
    d(t)=d1 12(t)+d22(t)

    Onde pQ(t)é uma versão deslocada de 90 graus (ou em quadratura ) do pulso senoidal modelo. As estatísticas deste caso são um pouco diferentes e são deixadas como um exercício para o leitor interessado.

  • O tratamento acima assume que o pulso é recebido em x(t) no mesmo nível de potência do modelo p(t), que é quase certo que é falso. Duas maneiras de abordar essa complicação vêm à mente: ou use algum tipo de processo de controle automático de ganho (AGC) para direcionar o nível de potência recebido para o que você esperaria, ou você podeT um limiar adaptável que se ajusta em relação ao sinal observado (por exemplo, você pode tentar estimar a variação do ruído de fundo σ2 e depois defina T adequadamente).

Jason R
fonte
Obrigado pelo tratamento detalhado e rigoroso. Acho que não tenho nenhum acompanhamento neste momento.
Spacey
1

Para obter o "melhor" filtro, você precisa seguir algumas etapas

  1. Determine o espectro do seu sinal: o espectro de um pulso senoidal em janela é basicamente dado pela função da janela convoluida com a portadora. Como a transportadora é uma onda senoidal, a convolução simplesmente muda o espectro da janela. No entanto, a forma da janela é importante: ela é elevada em cosseno, hanning, hamming, kaiser etc. Isso determina a largura da largura de banda e se há lóbulos laterais fortes que precisam ser mantidos.
  2. Determine o espectro do ruído: isso é mais fácil, observando o espectro em áreas do sinal em que há apenas ruído
  3. Observe o espectro de sinal e ruído. Frequências úteis são aquelas em que a energia do sinal é maior que o ruído. Frequências "ruins" são aquelas em que o ruído é maior.
  4. Crie uma especificação de filtro que passe as frequências "úteis" e "rejeite" as ruins. A quantidade de rejeição pode ser otimizada usando uma abordagem chamada "Wiener Filter" http://en.wikipedia.org/wiki/Wiener_filter . Em uma pitada, um passe de banda também serve.
  5. A especificação do filtro deve ter pelo menos frequência central, largura de banda e inclinação íngreme. Mais coeficientes de filtro geralmente tornam a banda de passagem mais plana e a rolagem mais íngreme. Olhar novamente para um gráfico de sinal para ruído normalmente indica o que faz sentido
Hilmar
fonte
1

O comprimento do filtro FIR determinará a precisão do filtro FIR. O filtro FIR é uma aproximação da resposta ótima do filtro (que é para você decidir) e não deve estar ligada à duração do "pulso". Quanto mais longo o filtro FIR, mais coeficientes você possui, mais precisa é a resposta da magnitude do filtro conforme suas especificações. Há duas outras questões a serem consideradas. Você deve considerar a resposta da fase, pois isso pode distorcer a forma do pulso desmodulado. Você já deve estar fazendo isso, mas acho que provavelmente deseja que seu filtro FIR tenha fase linear. Além disso, à medida que aumenta o comprimento do filtro FIR, você adiciona o atraso da entrada para a saída, para que você não queira apenas fotografar a lua em termos de comprimento do filtro. Então, em termos de tamanho ideal,

Bruce Zenone
fonte