Estoy haciendo esta pregunta porque no estoy muy seguro de qué filtro debo usar.
La mía es simplemente una señal compuesta de valores discretos como s = [1 2 2 2 3 4 2 4 3 4 5 3 2 3 3]
. Entonces me gustaría, por tamaño de ventana, una señal filtrada. Así por ejemplo si utilizo un tamaño de ventana de 5 para s
entonces obtendría; %código%. Por lo tanto, quiero mantener los valores estadísticos que ocurren con mayor frecuencia por tamaño de ventana.
Actualmente estoy usando solo un filtro de mediana, pero no creo que este sea el enfoque correcto.
Aquí hay un código de Python para demostrar lo que estoy haciendo (pero como he dicho, lo que creo que es incorrecto).
import numpy as np
import pylab *
from scipy.signal import medfilt
test = np.random.randint(10, size=1000)
fig, ax1 = plt.subplots(1,sharey=True, sharex=True, figsize=(15,5))
ax1.plot(test)
ax1.plot(medfilt(test,[99]),'r')
plt.show()
Donde la línea roja es la señal filtrada para un tamaño de ventana de 99.