"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como suavizar curvas barulhentas usando a filtragem Savitzky-Golay?

Como suavizar curvas barulhentas usando a filtragem Savitzky-Golay?

Publicado em 2024-11-06
Navegar:445

How to Smooth Noisy Curves Using Savitzky-Golay Filtering?

Suavização de curvas para dados ruidosos: explorando a filtragem Savitzky-Golay

Na busca pela análise de conjuntos de dados, o desafio de suavizar curvas ruidosas surge para aumentar a clareza e descobrir padrões subjacentes. Um método particularmente eficaz para esta tarefa é o filtro Savitzky-Golay.

O filtro Savitzky-Golay opera sob a suposição de que os dados podem ser aproximados localmente por uma função polinomial. Ele aproveita a regressão de mínimos quadrados para ajustar um polinômio especificado a uma pequena janela de pontos de dados e, posteriormente, emprega o polinômio para estimar o valor no centro da janela. Este processo é aplicado iterativamente, movendo a janela ao longo da série de dados, permitindo o ajuste ideal de cada ponto em relação aos seus vizinhos.

Para conjuntos de dados que apresentam pequenas variações de ruído, como o exemplo fornecido na pergunta, um O filtro Savitzky-Golay provou ser altamente eficaz. Ao especificar o tamanho da janela e a ordem do polinômio, pode-se adaptar o filtro para se adequar às características dos dados.

Em Python, o filtro Savitzky-Golay está prontamente disponível na biblioteca SciPy. O trecho de código a seguir ilustra sua implementação:

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)   np.random.random(100) * 0.2
yhat = savgol_filter(y, 51, 3)  # window size 51, polynomial order 3

plt.plot(x,y)
plt.plot(x,yhat, color='red')
plt.show()

A curva suavizada resultante fornece uma representação mais clara da função senoidal subjacente, destacando a eficácia do filtro Savitzky-Golay na mitigação de ruído e melhorando a visibilidade de características salientes.

Concluindo, o filtro Savitzky-Golay oferece uma abordagem versátil e adaptável para suavizar curvas ruidosas, tornando-o uma ferramenta valiosa para análise de dados em diversas disciplinas científicas e de engenharia.

Declaração de lançamento Este artigo é reproduzido em: 1729411096 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3