Cálculo da derivada suavizada de um sinal usando diferença com passo maior = convolvendo com janela retangular

9

I têm um sinal amostrado a , onde i = 0..n-1. Eu quero encontrar a primeira derivada do sinal: f '(t).Δt:fi(ti=iΔt)

Meu primeiro pensamento foi estimar isso por uma diferença central:

f(ti)=f(ti+1)f(ti1)2Δt

No entanto, o sinal pode ter muito ruído de alta frequência que pode causar flutuações rápidas em f '. Eu acho que o melhor seria suavizar o sinal convolvendo com uma função de janela, por exemplo, Hann e depois encontrar a derivada das diferenças.

Um colega sugeriu uma maneira mais rápida de encontrar uma estimativa suavizada da derivada: use uma diferença central em 2n amostras, em que n >> 1:

f(ti)=f(ti+n)f(tin)2nΔt

Obviamente, isso seria computacionalmente mais rápido do que o primeiro convolve com uma função de janela, mas é uma boa solução?

Se formarmos a soma:

S=2Δt[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Δt

S=f(tin+2)f(tin)+f(tin+3)f(tin+2)+..+f(ti+n)f(ti+n2)

todos os termos, exceto dois, são cancelados:

S=f(ti+n)f(tin)=2nΔtf(ti)

Portanto:

f(ti)=1n[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Portanto, pegar a diferença central em 2n amostras equivale a primeiro convolver por uma janela retangular de tamanho 2n - 2 e, em seguida, pegar uma diferença central em +/- 1 amostra.

Quão "ruim" é suavizar com uma janela retangular?

Se pegarmos a FFT, isso causará "toque", mas não precisamos pegá-la.

Agradecemos antecipadamente por qualquer resposta!

Andy
fonte

Respostas:

4

Essa é uma pergunta difícil de lidar em geral. A suavização com uma janela retangular é usada o tempo todo (geralmente chamada de "média móvel"), portanto isso não é necessariamente um problema. Não sei ao que você está se referindo, talvez os lóbulos laterais da resposta de frequência da janela retangular.

A diferenciação é inerentemente uma operação highpass; o diferenciador ideal de tempo contínuo possui uma função de transferência de:

H(s)=s

Para que sua resposta de magnitude seja:

|H(jω)|=ω

O ganho de um diferenciador aumenta, portanto, monotonicamente com a frequência. Se o seu sinal contiver ruído de alta frequência, ele poderá ser amplificado aplicando um diferenciador. Para combater isso, duas abordagens são aparentes:

  • Crie um filtro diferenciador mais sofisticado que tenha a resposta de magnitude linear desejada sobre a parte da banda que cobre seu sinal de interesse e atenue acentuadamente as frequências mais altas. Você pode projetar esse filtro usando métodos de mínimos quadrados ou o método de amostragem de frequência, por exemplo.

  • Use uma abordagem em cascata na qual você primeiro suprime todo o ruído de alta frequência que pode usar usando um filtro passa-baixo e depois segue com o diferenciador. A cobertura de frequência do diferenciador não precisa ser tão estanque, pois o filtro passa-baixo eliminará o ruído fora da banda.

Os métodos devem ser aproximadamente equivalentes se você estiver usando filtros lineares; você pode pensar na primeira abordagem de filtro único como apenas uma cascata de um diferenciador e um filtro passa-baixo. Como você observou, a abordagem da diferença central pode ser modelada dessa maneira. É difícil para alguém dizer que é "ruim" sem nenhum conhecimento do seu aplicativo. Meu pensamento principal seria que seria "ruim" se a operação de suavização atenuasse tangivelmente seu sinal de interesse, de modo que a estimativa derivada não seja mais útil. No entanto, se os parâmetros do sinal forem tais que você possa suavizar o ruído sem distorcer visivelmente o sinal (ou seja, se o sinal for bem amostrado), poderá ser uma vitória.

Jason R
fonte