Filtro De Media Móvil De Segundo Orden


Tengo que diseñar un filtro de media móvil que tiene una frecuencia de corte de 7,8 Hz. He utilizado filtros de media móvil antes, pero por lo que estoy enterado, el único parámetro que se puede alimentar es el número de puntos que se promedian. ¿Cómo puede esto relacionarse con una frecuencia de corte? El inverso de 7,8 Hz es de 130 ms, e Im trabajando con datos que se muestrean a 1000 Hz. ¿Esto implica que debo usar un tamaño de ventana de filtro de media móvil de 130 muestras, o hay algo más que falta aquí pidió Jul 18 13 en 9:52 El filtro de media móvil es el filtro utilizado en el dominio de tiempo para eliminar El ruido añadido y también para el propósito de suavizado, pero si utiliza el mismo filtro de media móvil en el dominio de frecuencia para la separación de frecuencia, el rendimiento será peor. Por lo que en ese caso el uso de filtros de dominio de frecuencia ndash user19373 Feb 3 at 5:53 El filtro de media móvil (a veces conocido coloquialmente como un filtro boxcar) tiene una respuesta de impulso rectangular: O, declarado de manera diferente: Recordando que una respuesta de frecuencia de sistemas de tiempo discreto Igual a la transformada de Fourier de tiempo discreto de su respuesta de impulso, podemos calcularlo de la siguiente manera: Lo que más interesó a su caso es la respuesta de magnitud del filtro, H (omega). Utilizando un par de manipulaciones simples, podemos obtener que en una forma más fácil de comprender: Esto puede no parecer más fácil de entender. Sin embargo, debido a la identidad de Eulers. Recuerde que: Por lo tanto, podemos escribir lo anterior como: Como he dicho antes, lo que realmente te preocupa es la magnitud de la respuesta de frecuencia. Por lo tanto, podemos tomar la magnitud de lo anterior para simplificarlo más: Nota: Somos capaces de eliminar los términos exponenciales porque no afectan a la magnitud del resultado e 1 para todos los valores de omega. Dado que xy xy para dos complejos finitos xyy, podemos concluir que la presencia de los términos exponenciales no afecta a la respuesta de magnitud global (en cambio, afectan a la respuesta de fase de sistemas). La función resultante dentro de los soportes de magnitud es una forma de un núcleo de Dirichlet. A veces se denomina función de sinc periódica, porque se asemeja a la función sinc en apariencia, pero es periódica. De todos modos, ya que la definición de la frecuencia de corte es un poco underspecified (-3 dB punto -6 dB punto primer sidelobe nulo), puede utilizar la ecuación anterior para resolver lo que necesita. Específicamente, puede hacer lo siguiente: Establezca H (omega) en el valor correspondiente a la respuesta del filtro que desea en la frecuencia de corte. Ajuste omega igual a la frecuencia de corte. Para asignar una frecuencia de tiempo continuo al dominio de tiempo discreto, recuerde que el fracción Omega 2pi, donde fs es su tasa de muestreo. Encuentre el valor de N que le da el mejor acuerdo entre los lados izquierdo y derecho de la ecuación. Que debe ser la longitud de su promedio móvil. Si N es la longitud de la media móvil, entonces una frecuencia de corte aproximada F (válida para N gt 2) en la frecuencia normalizada Ff / fs es: La inversa de esta es Esta fórmula es asintóticamente correcta para N grandes, y tiene alrededor de 2 para N2 y menos de 0,5 para N4. PD Después de dos años, aquí finalmente lo que fue el enfoque seguido. El resultado se basó en aproximar el espectro de amplitud de MA alrededor de f0 como una parábola (serie de segundo orden) de acuerdo con MA (Omega) aproximadamente 1 (frac-fra) Omega2 que se puede hacer más exacta cerca del cruce cero de MA (Omega) Frac por multiplicar Omega por un coeficiente obteniendo MA (Omega) aprox. 10.907523 (frac - frac) Omega2 La solución de MA (Omega) - frac 0 da los resultados anteriores, donde 2pi F Omega. Todo lo anterior se refiere a la frecuencia de corte -3dB, el sujeto de este post. A veces, aunque es interesante obtener un perfil de atenuación en banda de parada que es comparable con el de un filtro de paso bajo IIR de primer orden (LPF de un solo polo) con una frecuencia de corte de -3 dB determinada (un LPF de este tipo también se llama integrador con fugas, Teniendo un poste no exactamente en DC pero cerca de él). De hecho tanto el MA como el LPF de primer orden IIR tienen una pendiente de -20dB / década en la banda de parada (se necesita un N mayor que el usado en la figura, N32, para ver esto), mientras que MA tiene nulos espectrales en Fk / N y un 1 / f evelope, el filtro IIR sólo tiene un perfil 1 / f. Si se desea obtener un filtro MA con capacidades de filtrado de ruido similares a las de este filtro IIR, y coincide con las frecuencias de corte de 3dB para que sean las mismas, al comparar los dos espectros, se daría cuenta de que la ondulación de banda de parada del filtro MA termina 3dB por debajo de la del filtro IIR. Para obtener la misma ondulación de banda de parada (es decir, la misma atenuación de potencia de ruido) que el filtro IIR, las fórmulas se pueden modificar de la siguiente manera: Encontré de nuevo el script de Mathematica donde calculé el corte para varios filtros, incluyendo el MA. El resultado se basó en aproximar el espectro de MA alrededor de f0 como parábola según MA (Omega) Sin (OmegaN / 2) / Sin (Omega / 2) Omega 2piF MA (F) aproximadamente N1 / 6F2 (N-N3) pi2. Y derivando el cruce con 1 / sqrt desde allí. Ndash Massimo Jan 17 at 2: 08 Es bien sabido que un algoritmo de media móvil hecho en el dominio del tiempo es equivalente a un filtro con respuesta de frecuencia mathrm (omegatau) donde tau es el tiempo promedio. (Vea esta respuesta relacionada) Esto tiene la siguiente propiedad beneficiosa: usted está transmitiendo una serie temporal de datos, y el promedio en cualquier punto (an) es justo: un fra frac. Por lo tanto, puede aplicar el algoritmo recursivo anterior para una cantidad arbitraria de tiempo (tau), y cuando se detiene, el valor que tiene es filtrado por mathrm (omegatau), y tiene una varianza correspondientemente reducida. Ahora la función mathrm es un paso bajo de primer orden, modulado por un sobre sin. Por lo tanto, en efecto, se ha realizado un paso bajo de primer orden en el que la constante de tiempo de paso de paso constante constante tau es igual a la longitud del flujo de datos y tau no era necesariamente conocida antes de empezar. Mi pregunta es: ¿hay algún procedimiento análogo que permita un paso bajo (aproximado) de segundo orden donde la constante de tiempo no se conoce a priori? Una posibilidad es promediar los promedios, pero eso requiere mantener todos los promedios en la memoria. ¿Hay alguna ley que impida tal procedimiento con pequeños requerimientos de memoria? Se puede promediar los promedios de la misma manera que la media de la señal de entrada. Se puede hacer por el mismo procedimiento recursivo sin almacenar todos los promedios. La única cosa que usted necesita hacer es almacenar dos números en vez de uno. Sea xn los datos a promediar y sea yn la salida del primer procedimiento de promediación: ynalpha y (1-alfa) xn, quad 0ltalpha lt1 Aplicando de nuevo el mismo tipo de recursión (sólo con una posible constante de tiempo diferente) resulta en La salida final zn: znbeta z (1-beta) yn, quad 0ltbeta lt1 También puede escribir el procedimiento total como una recursión de segundo orden (eliminando yn): Así que tiene un filtro recursivo de segundo orden que sólo necesita almacenar dos resultados anteriores valores. Si desea un sistema de segundo orden, este es el almacenamiento mínimo posible. Respondió Mar 27 14 at 13:11 Esta respuesta no habría sido posible sin respuesta Matt L. s. Así como algunos fuera de la banda de comunicación con nibot. Permite ver una forma de derivar la fórmula para calcular el promedio que se da en la pregunta. Partiendo de un conjunto de números, tenemos la definición del promedio hasta la enésima muestra: una suma frac n xj frac sn y sn es la suma de todas las muestras hasta n. Ahora, sn se puede definir recursivamente: sns xn, y dado que nansn, tenemos: anfrac un frac. Y tenemos la fórmula de promedio de la pregunta. Ahora queremos básicamente realizar esta operación de promedio de nuevo en las muestras a. Así que sólo repetimos la misma fórmula, pero ahora para los promedios de un. Pero podemos reemplazar a en términos de d y d. Y finalmente después de la simplificación Ahora este conjunto de números es equivalente a promediar los promedios y sólo requiere dos valores almacenados Abajo I traza una señal que es un ruido aleatorio donde el RMS es 20 veces el valor medio. También muestro los promedios de primer y segundo orden. Como se puede ver, el promedio de segundo orden toma más tiempo para acercarse al verdadero valor medio, pero tiene fluctuaciones menores con relación a la media. Las fluctuaciones se hacen más pequeñas a medida que se registran más muestras, por lo que tiene el beneficio añadido de que la escala de tiempo del filtro de paso bajo efectivo siempre está aumentando. Si se tratara de un simple filtro de paso bajo con una frecuencia de polos fija, en algún momento estaríamos tirando información de muestras muy viejas. Este filtro utiliza la información de todas las muestras, independientemente de su antigüedad. Por último, creo que esta receta se puede repetir y el promedio se puede hacer a cualquier orden. Sí, puede hacer un filtro de paso bajo de segundo orden sin usar mucha memoria. La clave es utilizar el hecho de que la convolución es una operación lineal. Usted quiere hacer lo siguiente: y (t) (x (t) f1 (t)) f2 (t) donde f1 (t) yf2 (t) son sus filtros de media móvil de ancho a priori desconocido. Si usamos la propiedad asociativa de la linealidad podemos hacer lo siguiente: (t) (x (t) f1 (t)) f2 (t) x (t) (f1 (t) f2 (t)) Filtro convolucionando los dos filtros promediadores, y luego utilizando ese filtro compuesto para filtrar sus datos. Respondió Mar 26 14 en 18:23 quotAssociative propiedad de convolutionquot supongo. Ndash Matt L. Mar 26 14 a las 21:06 MattL. Entiendo que la linealidad implica asociatividad. ¿No es este el caso ndash Jim Clay Mar 26 14 a las 21:50 Cuando leí su respuesta, estaba seguro de que realmente quería decir propiedad quotassociativa de convolución, porque siempre es un tipo de operación binaria que es o bien asociativa o no , Y usaste la asociatividad de la convolución. Creo que no podemos hablar de la propiedad asociativa de la linealidad39, porque la linealidad39 no es una operación binaria. No quería ser un poco quisquilloso, pero tal vez lo era. Pero de todos modos, su pregunta es interesante (en cuanto a la relación entre linealidad y asociatividad) y debo admitir que no tengo una respuesta satisfactoria a ella. Ndash Matt L. Mar 27 14 a 11: 33FIR filtros, filtros IIR y la ecuación de diferencia de coeficiente constante lineal Filtros de media móvil causal (FIR) Hemos discutido sistemas en los que cada muestra de la salida es una suma ponderada de ) Las muestras de la entrada. Tomemos un sistema de suma ponderada causal, donde causal significa que una muestra de salida dada depende solamente de la muestra de entrada actual y de otros insumos más temprano en la secuencia. Ni los sistemas lineales en general, ni los sistemas finitos de respuesta al impulso en particular, necesitan ser causales. Sin embargo, la causalidad es conveniente para una especie de análisis que se va a explorar en breve. Si simbolizamos las entradas como valores de un vector x. Y las salidas como valores correspondientes de un vector y. Entonces tal sistema se puede escribir como cuando los valores de b son pesos aplicados a las muestras de entrada actuales y anteriores para obtener la muestra de salida actual. Podemos pensar en la expresión como una ecuación, con el signo de igual signo que es igual, o como una instrucción de procedimiento, con el signo de igual signo de asignación. Permite escribir la expresión para cada muestra de salida como un bucle MATLAB de sentencias de asignación, donde x es un vector N-length de muestras de entrada, yb es un vector M-length de pesos. Para tratar el caso especial al principio, incorporaremos x en un vector más largo xhat cuyas primeras muestras M-1 son cero. Escribiremos la suma ponderada para cada y (n) como un producto interno, y haremos algunas manipulaciones de las entradas (como invertir b) para este fin. Este tipo de sistema es a menudo llamado un filtro de media móvil, por razones obvias. De nuestras discusiones anteriores, debe ser obvio que tal sistema es lineal y invariable del turno. Por supuesto, sería mucho más rápido usar la función de convolución de MATLAB conv () en lugar de nuestro mafilt (). En lugar de considerar las primeras muestras M-1 de la entrada como cero, podríamos considerarlas como las mismas que las muestras M-1 pasadas. Esto es lo mismo que tratar la entrada como periódica. Utilice bien cmafilt () como el nombre de la función, una pequeña modificación de la función mafilt () anterior. En la determinación de la respuesta de impulso de un sistema, generalmente no hay diferencia entre estos dos, ya que todas las muestras no iniciales de la entrada son cero: Dado que un sistema de este tipo es lineal y invariante por turnos, sabemos que su efecto en cualquier Sinusoid será sólo a escala y cambiarlo. Aquí es importante que utilicemos la versión circular. La versión circularmente convoluida se desplaza y se escala un poco, mientras que la versión con convolución ordinaria se distorsiona al principio. Vamos a ver cuál es el escalado y desplazamiento exactos usando fft: Tanto la entrada como la salida tienen amplitud sólo en las frecuencias 1 y -1, que es como debería ser, dado que la entrada era una sinusoide y el sistema era lineal. Los valores de salida son mayores en una relación de 10.6251 / 8 1.3281. Esta es la ganancia del sistema. ¿Qué pasa con la fase? Sólo necesitamos mirar donde la amplitud es distinta de cero: La entrada tiene una fase de pi / 2, como pedimos. La fase de salida se desplaza por 1,0594 adicionales (con signo opuesto para la frecuencia negativa), o alrededor de 1/6 de un ciclo a la derecha, como podemos ver en el gráfico. Ahora vamos a intentar una sinusoide con la misma frecuencia (1), pero en lugar de la amplitud 1 y fase pi / 2, vamos a intentar la amplitud 1,5 y la fase 0. Sabemos que sólo la frecuencia 1 y -1 tendrá una amplitud no nula, Basta con mirarlos: de nuevo la relación de amplitud (15.9377 / 12.0000) es 1.3281 - y en cuanto a la fase se desplaza nuevamente hacia 1.0594. Si estos ejemplos son típicos, podemos predecir el efecto de nuestro sistema (respuesta al impulso .1.2 .3 .4 .5) en cualquier sinusoide con frecuencia 1 - la amplitud se incrementará en un factor de 1,3281 y la fase (frecuencia positiva) se desplazará en 1,0594. Podríamos pasar a calcular el efecto de este sistema sobre sinusoides de otras frecuencias por los mismos métodos. Pero hay una manera mucho más simple, y una que establece el punto general. Dado que la convolución (circular) en el dominio del tiempo significa la multiplicación en el dominio de la frecuencia, de ello se deduce que, en otras palabras, la DFT de la respuesta de impulso es la relación de la DFT de la salida a la DFT de la entrada. En esta relación los coeficientes de DFT son números complejos. Desde abs (c1 / c2) abs (c1) / abs (c2) para todos los números complejos c1, c2, esta ecuación nos dice que el espectro de amplitud de la respuesta de impulso siempre será la relación entre el espectro de amplitud de la salida a la De la entrada. En el caso del espectro de fase, ángulo (c1 / c2) ángulo (c1) - ángulo (c2) para todos c1, c2 (con la condición de que las fases que se diferencian por n2pi se consideran iguales). Por lo tanto, el espectro de fase de la respuesta de impulso siempre será la diferencia entre los espectros de fase de la salida y la entrada (con las correcciones de 2pi que sean necesarias para mantener el resultado entre - pi y pi). Podemos ver los efectos de fase más claramente si desempolvamos la representación de fase, es decir, si añadimos varios múltiplos de 2pi como sea necesario para minimizar los saltos que son producidos por la naturaleza periódica de la función angle (). Aunque la amplitud y la fase se usan generalmente para la presentación gráfica e incluso tabular, ya que son una manera intuitiva de pensar sobre los efectos de un sistema en los diversos componentes de frecuencia de su entrada, los complejos coeficientes de Fourier son más útiles algebraicamente, ya que permiten La expresión simple de la relación El enfoque general que acabamos de ver funcionará con filtros arbitrarios del tipo esbozado, en los que cada muestra de salida es una suma ponderada de algún conjunto de muestras de entrada. Como se mencionó anteriormente, a menudo se les llama filtros de Respuesta de Impulso Finito, ya que la respuesta de impulso es de tamaño finito, oa veces filtros de Promedio Móvil. Podemos determinar las características de respuesta de frecuencia de dicho filtro a partir de la FFT de su respuesta de impulso, y también podemos diseñar nuevos filtros con características deseadas por IFFT a partir de una especificación de la respuesta de frecuencia. Filtros Autoregresivos (IIR) No tendría mucho sentido tener nombres para los filtros FIR a menos que hubiera algún otro tipo de distinción, por lo que aquellos que han estudiado la pragmática no se sorprenderán al saber que hay de hecho otro tipo principal Del filtro lineal tiempo-invariante. Estos filtros a veces se llaman recursivos porque el valor de salidas anteriores (así como entradas anteriores) importa, aunque los algoritmos generalmente se escriben usando construcciones iterativas. También se les llama filtros de Respuesta a Impulsos Infinitos (IIR), porque en general su respuesta a un impulso permanece para siempre. También a veces se les llama filtros auto-regresivos, porque los coeficientes pueden considerarse como el resultado de hacer una regresión lineal para expresar valores de señal en función de valores de señal anteriores. La relación de los filtros FIR y IIR se puede ver claramente en una ecuación de diferencia de coeficiente constante lineal, es decir, establecer una suma ponderada de salidas igual a una suma ponderada de entradas. Esto es como la ecuación que dimos anteriormente para el filtro FIR causal, excepto que además de la suma ponderada de entradas, también tenemos una suma ponderada de salidas. Si queremos pensar en esto como un procedimiento para generar muestras de salida, necesitamos reorganizar la ecuación para obtener una expresión para la muestra de salida actual y (n), Adoptando la convención de que a (1) 1 (por ejemplo, escalando otra como Y bs), podemos deshacernos del término 1 / a (1): y (n) b (1) x (n) b (2) x (n-1). B (Nb _ {1}) _ {x} (n - nb) - a (2) y (n - 1) -. - a (Na1) y (n-na) Si todos los a (n) distintos de a (1) son cero, esto reduce a nuestro viejo amigo el filtro FIR causal. Este es el caso general de un filtro (causal) LTI, y es implementado por el filtro de función MATLAB. Veamos el caso en que los coeficientes b distintos de b (1) son cero (en lugar del caso FIR, donde a (n) son cero): En este caso, la muestra de salida corriente y (n) se calcula como (N-1), y (n-2), etc. Para tener una idea de lo que sucede con estos filtros, comencemos con el caso en el que: Es decir, la muestra de salida actual es la suma de la muestra de entrada actual y la mitad de la muestra de salida anterior. Bueno, tome un impulso de entrada a través de unos pasos de tiempo, uno a la vez. Debe quedar claro en este punto que podemos escribir fácilmente una expresión para el valor de la muestra n-ésima salida: es justo (si MATLAB contado desde 0, esto sería simplemente .5n). Puesto que lo que estamos calculando es la respuesta de impulso del sistema, hemos demostrado por ejemplo que la respuesta de impulso puede de hecho tener infinitas muestras no cero. Para implementar este filtro trivial de primer orden en MATLAB, podríamos usar filtro. La llamada se verá así: y el resultado es: ¿Es este negocio realmente todavía lineal? Podemos mirar esto empíricamente: Para un enfoque más general, considere el valor de una muestra de salida y (n). Por sustitución sucesiva podríamos escribir esto como Esto es como nuestro viejo amigo la forma convolución-suma de un filtro FIR, con la respuesta impulsiva proporcionada por la expresión .5k. Y la longitud de la respuesta de impulso es infinita. Así, los mismos argumentos que utilizamos para demostrar que los filtros FIR eran lineales ahora se aplicarán aquí. Hasta ahora esto puede parecer un montón de alboroto sobre no mucho. ¿Qué es toda esta línea de investigación para bien responder a esta pregunta en etapas, a partir de un ejemplo. No es una gran sorpresa que podamos calcular un exponencial muestreado por multiplicación recursiva. Veamos un filtro recursivo que hace algo menos obvio. Esta vez también lo convierten en un filtro de segundo orden, de modo que la llamada al filtro será de la forma. Permite establecer el segundo coeficiente de salida a2 a -2cos (2pi / 40) y el tercer coeficiente de salida a3 a 1, y mirar La respuesta al impulso. No muy útil como filtro, en realidad, pero genera una onda sinusoidal muestreada (de un impulso) con tres multiplicaciones por muestra. Para entender cómo y por qué lo hace, y cómo se pueden diseñar y analizar los filtros recursivos en El caso más general, tenemos que dar un paso atrás y echar un vistazo a algunas otras propiedades de los números complejos, en el camino a la comprensión de la transformación z.

Comments

Popular Posts