Saltar al contenido principal
LibreTexts Español

4.7: Fondo- Filtrado con un Promedio Funcional

  • Page ID
    151772
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    Espero que ahora quede claro que el filtrado funciona reemplazando cada punto en la forma de onda con una copia escalada de la función de respuesta al impulso. Sin embargo, probablemente no sea obvio por qué esto termina filtrando las frecuencias altas. Hay una forma de pensar ligeramente diferente —pero matemáticamente equivalente— sobre el filtrado que lo hace más obvio.

    Empecemos olvidando todo lo que sabes sobre EEG y filtrado, y en su lugar pensemos en los precios bursátiles. La Figura 4.2.A muestra los valores diarios del índice bursátil Standard & Poor 500 durante un periodo de 3 meses. Hay muchas variaciones del día a día que son en gran parte aleatorias y no significan mucho para la economía en general. ¿Cuál sería una manera fácil de minimizar estas fluctuaciones del día a día para que puedas visualizar mejor la tendencia general?

    Figura 4.2. A) Valores diarios del índice bursátil Standard & Poor 500 entre el 4 de enero y el 31 de marzo de 2016. B) Valores después de aplicar un promedio lineal de 3 puntos. C) Valores después de aplicar un promedio lineal de 7 puntos.

    Un enfoque común es tomar un promedio corriente. La Figura 4.2.B muestra un promedio lineal de 3 puntos de los valores de la Figura 4.2.A. Cada valor para un día determinado en el promedio corriente es solo el promedio de los valores del día anterior, ese día y el día siguiente. Por ejemplo, el valor promedio corriente del 2 de febrero es el promedio de los valores del 1, 2 y 3 de febrero. Se puede ver que el promedio de funcionamiento es más suave que los datos originales.

    Podemos hacer que los datos sean aún más fluidos con un promedio de funcionamiento de 7 días (Figura 4.2.C). Ahora, el promedio corriente para un día determinado es el promedio del valor en ese día, los tres días anteriores y los tres días posteriores. Cuantos más puntos incluyamos en nuestra media corriente, más atenuamos los cambios rápidos del día a día y vemos las tendencias más lentas en los datos. Es decir, al aumentar el número de puntos en la media corriente se incrementa el filtrado de altas frecuencias en los datos. Entonces, tomar un promedio corriente es una forma simple de filtrado paso bajo, y podemos controlar la frecuencia de corte cambiando el número de puntos que se promedian juntos. Podemos aplicar este mismo algoritmo para filtrar altas frecuencias en el EEG o en los ERPs (ver Capítulo 7 en Suerte, 2014 para más detalles).

    Artefactos de borde

    El enfoque de promedio corriente para el filtrado expone un problema que siempre enfrentamos en el filtrado, sin importar qué algoritmo usemos. Los valores del índice S&P 500 mostrados en la Figura 4.2.A comienzan el 4 de enero y terminan el 31 de marzo. Para calcular el valor promedio de 3 puntos para el 4 de enero, necesitaríamos valores para el 3, 4 y 5 de enero, pero no tenemos el valor para el 3 de enero. De igual manera, no podemos calcular el valor promedio corriente para el 31 de marzo porque no tenemos el valor para el 1 de abril. Las cosas son aún peores para el promedio de carrera de 7 puntos porque ahora necesitamos 3 días antes y 3 días después de un día determinado. Como resultado, no podemos calcular el promedio corriente para el 4, 5 o 6 de enero o para el 29, 30 o 31 de marzo con los datos que tenemos disponibles. Se puede ver que estos puntos faltan en los promedios corrientes en la Figura 4.2.

    Este problema es menos obvio cuando filtramos usando funciones de respuesta de impulso o la transformada de Fourier, pero el mismo problema está presente para todos los algoritmos de filtrado. Resolvemos este problema en ERPLAB utilizando un algoritmo de extrapolación para estimar los valores para los puntos que son necesarios pero no disponibles. Funciona bastante bien en la mayoría de los casos, pero puede generar problemas cuando hay que extrapolar demasiados puntos. La situación más común donde eso surge es cuando usamos un filtro de paso alto para filtrar las bajas frecuencias del EEG continuo, lo que requiere una cantidad muy grande de puntos antes y después del punto actual. En esta situación, a veces vemos “artefactos de borde” al principio y al final de las formas de onda del EEG. Para evitar estos artefactos de borde, recomiendo registrar ~10 segundos adicionales de datos antes del primer estímulo al inicio de cada bock de ensayo y otros ~10 segundos después del último estímulo al final de cada bloque de prueba. De esa manera, los bordes de las formas de onda están lejos del período de tiempo que te importa, y los artefactos de borde ocurren durante un período de tiempo que está fuera de las épocas que usarás para promediar.

    Además, la herramienta de filtrado de ERPLAB tiene una opción que puede ayudar a reducir los artefactos de borde. Esta opción está etiquetada como “Eliminar valor medio (desplazamiento de CC) antes de filtrar”. Normalmente se debe usar cuando se están filtrando datos EEG continuos. Sin embargo, no debe usarse para datos corregidos por la línea de base (por ejemplo, EEG de época o ERPs promediados) porque la corrección de línea de base ya elimina el desplazamiento de CC (y normalmente funciona mejor que eliminar el valor medio).


    This page titled 4.7: Fondo- Filtrado con un Promedio Funcional is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Steven J Luck directly on the LibreTexts platform.