Estou tentando determinar qual deve ser o comprimento 'ideal' do filtro FIR, dado o comprimento do pulso de um sinusóide de janela em ruído que procuro filtrar.
Como parâmetros em um filtro FIR que eu design, tenho:
A frequência central. (Esta é a frequência portadora do sinal). Eu sei isso.
Como esse é um BPF FIR, especifiquei a banda de passagem como para . Isso ocorre porque a largura de banda do sinusóide da janela é
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:
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:
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.
Aqui estão os resultados correspondentes para o filtro de comprimento 11 (vermelho) e o novo filtro de comprimento 901 (preto).
fonte
Respostas:
Estou convertendo alguns dos meus comentários de cima para esta resposta:
Se você está tentando detectar a presença de alguma forma de pulsop ( 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:
Ondex ( 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 ocorremx ( 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 Pd e probabilidade de alarme falso Pfuma . 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 paraPd e Pfuma 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 determinarPfuma , estamos preocupados com a aparência do sinal na saída do filtro correspondente. Lembre-se qued( T ) é definido como:
Assumindo quex ( 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:
Ou seja, a variação na saída do filtro correspondente é escalada apenas pela energia total da forma de onda de pulsop ( t ) . A estatística de detecçãod( T ) é então apenas um processo gaussiano com variância σ2d . 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:
OndeFd( 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:
A probabilidade de detecção, portanto, é a probabilidade de a estatística de detecção exceder o limite:
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 limiteT que atenda às suas necessidades Pd ou Pfuma (o que for mais importante para você).
Conecte o valor resultante paraT 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:
OndepQ( 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 emx ( 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).
fonte
Para obter o "melhor" filtro, você precisa seguir algumas etapas
fonte
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,
fonte