O que isso está fazendo sinc na minha saída de filtro LP que virou HP?

10

Estou tentando filtrar um sinal pela HP filtrando-o por LP e subtraindo a saída do filtro original. Para obter o sinal filtrado por LP, eu retrocedi para a frente usando um filtro Butterworth de terceira ordem para um sinal de 16.000 amostras. A frequência de corte foi de 0,5 Hz a 250 Hz. Nenhuma janela foi usada.

Nos primeiros 85% ou mais das amostras, a saída desse método parece se sobrepor completamente ao sinal realmente filtrado por HP. No entanto, no final da saída, há um fenômeno supostamente sincero.

  • O que causa isso?
  • O que eu poderia mudar para tornar esse método viável?

Aqui estão os dois sinais sobrepostos. O azul é filtrado por HP e o vermelho é obtido por subtração.

Sinais HP e orig-LP

Aqui está a diferença absoluta por amostra. Eles nunca são exatamente iguais; a diferença mínima é 8e-12. 87% dos valores estão abaixo de 0,01.

diferença entre os dois métodos

(Se houver uma maneira melhor de obter um filtro HP do de um filtro LP , ficaria feliz em saber.)H(z)

Andreas
fonte
Você pode incluir o código MATLAB que você está usando para gerar os gráficos? Os dados não são importantes; você pode simular isso com amostras aleatórias, se necessário.
Jason R #

Respostas:

0

Methinks @ hotpaw2 está no caminho certo. Meu palpite é que o filtfilt não está lidando corretamente com as condições iniciais do filtro reverso. Parece um problema muito difícil - acho que não posso culpar o Mathworks por errar ...

A correção parece fácil para mim: coloque o zero no final do seu sinal até que o sinc desapareça e exclua o preenchimento (agora diferente de zero!) Após o filtro.

rtollert
fonte
0

Você está criando um filtro de retrocesso para um e outro somente para o outro. Assim, os dois filtros se comportarão de maneira diferente em uma ou nas duas bordas.

Se o seu sinal é fortemente estacionário e exatamente periódico no comprimento da janela de dados, você pode tentar agrupar os dados circularmente e iniciar os filtros de acordo com os comprimentos de resposta ao impulso.

hotpaw2
fonte
Desculpe se eu não estava suficientemente claro. O sinal com o qual estou comparando (azul) também é filtrado para a frente e para trás ( filtfilte butter(3,0.5/250,high)). O sinal é de um ECG que não posso esperar que seja exatamente periódico.
Andreas
Estou entendendo mal alguma coisa? Não consigo entender o voto positivo, pois o primeiro parágrafo está claramente errado.
Andreas