Friday, December 23, 2016

Moving Average Dsp

El científico y los ingenieros Guía para el procesamiento de señales digitales Por Steven W. Smith, Ph. D. Como su nombre indica, el filtro de media móvil opera promediando un número de puntos de la señal de entrada para producir cada punto en la señal de salida. En forma de ecuación, esto se escribe: Donde es la señal de entrada, es la señal de salida, y M es el número de puntos en la media. Por ejemplo, en un filtro de media móvil de 5 puntos, el punto 80 de la señal de salida viene dado por: Como alternativa, el grupo de puntos de la señal de entrada puede ser elegido simétricamente alrededor del punto de salida: Esto corresponde a cambiar la suma en Eq . 15-1 de: j 0 a M -1, a: j - (M -1) / 2 a (M -1) / 2. Por ejemplo, en un filtro de media móvil de 10 puntos, el índice, j. Puede ir de 0 a 11 (promedio de un lado) o de -5 a 5 (promedio simétrico). El promedio simétrico requiere que M sea un número impar. La programación es ligeramente más fácil con los puntos en solamente un lado sin embargo, esto produce un cambio relativo entre las señales de entrada y de salida. Debe reconocer que el filtro de media móvil es una convolución utilizando un núcleo de filtro muy simple. Por ejemplo, un filtro de 5 puntos tiene el núcleo del filtro: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Es decir, el filtro de media móvil es una convolución De la señal de entrada con un impulso rectangular que tiene un área de uno. La Tabla 15-1 muestra un programa para implementar la filtrado de media móvil Medida móvil usando objetos del sistema Cree un objeto System dsp. MovingAverage para calcular la media móvil de 10 puntos de la señal de transmisión. Utilice un objeto de sistema dsp. MatFileReader para leer datos del archivo MAT del acelerómetro. Ver la media móvil de salida en el ámbito de tiempo. Los objetos System indexan automáticamente los datos en marcos. Elija un tamaño de marco de 714 muestras. Hay 7140 muestras o 10 cuadros de datos en cada columna del archivo MAT. Cada bucle de iteración calcula el promedio móvil de 1 trama de datos. El bucle de procesamiento es muy simple. Los objetos de sistema controlan la indexación de datos y los estados automáticamente. MATLAB y Simulink son marcas registradas de The MathWorks, Inc. Para obtener una lista de otras marcas comerciales propiedad de The MathWorks, Inc., visite www. mathworks. com/store. Otros nombres de productos o marcas son marcas comerciales o marcas registradas de sus respectivos propietarios. Seleccione su paísUn filtro digital introductorio Abra bien MicroModeler DSP y seleccione un filtro digital de la barra de herramientas en la parte superior y arrástrelo a nuestra aplicación. Bueno elegir un filtro de media móvil porque es uno de los tipos más simples de filtros. Después de soltar el filtro, las pantallas se actualizarán automáticamente. (Haga clic para lanzar MicroModeler DSP en una nueva ventana) Todos sabemos lo que es un promedio - agregar los números juntos y dividir por cuántos hay. Un filtro de media móvil hace exactamente eso. Almacena un historial de los últimos N números y emite su promedio. Cada vez que entra un nuevo número, el promedio se recalcula efectivamente de las muestras almacenadas y se emite un nuevo número. La respuesta de frecuencia de un filtro En la parte superior derecha, vemos la gráfica de Magnitud vs Frecuencia, o cuántas frecuencias diferentes serán amplificadas o reducidas por el filtro de media móvil. Como es de esperar, el promedio de las últimas muestras de N aplicará algún tipo de suavizado a la señal, reteniendo las frecuencias bajas y eliminando las altas frecuencias. Podemos controlar el número de entradas anteriores, o muestras que se promedian ajustando la longitud del filtro, N. Al ajustar esto, podemos ver que tenemos un control básico sobre el cual las frecuencias pueden pasar y que se descartan. El interior de un filtro Si observamos la vista de estructura, podemos ver cómo puede verse el interior de un filtro de media móvil. El diagrama ha sido anotado para mostrar lo que significan los diferentes símbolos. Los símbolos Z -1 significan un retardo de una muestra de tiempo y los símbolos significan añadir, o combinar las señales. Las flechas significan multiplicar (piense amplificar, reducir o escalar) la señal por la cantidad mostrada a la derecha de la flecha. Para un promedio de 5 muestras, tomamos una quinta parte (0,2) de la muestra más reciente, una quinta parte de la segunda muestra más reciente y así sucesivamente. La cadena de retardos se denomina una línea de retardo con la señal de entrada siendo retrasada por un paso de tiempo adicional a medida que avanza a lo largo de la línea de retardo. Las flechas también se llaman grifos, por lo que casi podría imaginar que como grifos como el de su fregadero de la cocina que son todos un quinto abierto. Se podría imaginar la señal que fluye desde la izquierda y se retrasa progresivamente a medida que se mueve a lo largo de la línea de retardo, y luego se recombinan en diferentes fuerzas a través de los grifos para formar la salida. También debería ser fácil ver que la salida del filtro será: Que es el equivalente a la media de las últimas 5 muestras. En la práctica, el código generado por MicroModeler DSP utilizará trucos para hacer esto de manera más eficiente, de modo que sólo las primeras y últimas muestras deben estar involucradas, pero el diagrama es bueno para fines ilustrativos. Si puedes entender esto, entonces puedes tener una idea de lo que es un filtro FIR. Un filtro FIR es idéntico al filtro de media móvil, pero en lugar de que todas las potencias sean iguales, pueden ser diferentes. Aquí tenemos un filtro de media móvil y un filtro FIR. Se puede ver que son estructuralmente los mismos, la única diferencia es la fuerza de los grifos. La siguiente sección le presentará los filtros de respuesta de impulso finito (FIR). Mediante la variación de las resistencias de toma, podemos crear cerca de cualquier respuesta de frecuencia que deseamos. Documentación Objeto Guardar y cargar saveObjectImpl define qué propiedades y valores de estado se guardan en un archivo MAT cuando llama a guardar en ese objeto. Si no define un método saveObjectImpl para su clase de objeto System, sólo se guardan las propiedades públicas y las propiedades con el atributo DiscreteState. Guardar el estado de un objeto sólo si el objeto está bloqueado. Cuando carga el objeto guardado, el objeto se carga en ese estado bloqueado. En este objeto System, los coeficientes del filtro se guardan si el objeto está bloqueado. LoadObjectImpl define qué propiedad de objeto de sistema y valores de estado se cargan al cargar un archivo MAT. LoadObjectImpl debe corresponder a su saveObjectImpl para asegurarse de que todas las propiedades y datos guardados estén cargados. Nota: Debe establecer el acceso protegido para este método. Objeto de sistema Uso en MATLAB Este ejemplo utiliza el objeto System para eliminar el ruido de una secuencia de impulsos ruidosos. La longitud del filtro de media móvil es de 30 muestras. Si está utilizando el dspdemo. MovingAverageFilter predefinido. Sustituya ese nombre por MovingAverageFilter en el constructor de clase, por ejemplo movingAverageFilter dspdemo. MovingAverageFilter (WindowLength, 30). Métodos de personalización de Simulink Es necesario definir algunos métodos más para poder utilizar el objeto System en un bloque de sistema de Simulink MATLAB. Estos métodos no son necesarios si utiliza el objeto System sólo en MATLAB. GetOutputSizeImpl devuelve los tamaños de cada puerto de salida. Para objetos de sistema con una entrada y una salida y donde desea que los tamaños de entrada y salida sean iguales, no es necesario implementar este método. En el caso de MovingAverageFilter. Hay una entrada y salida y el tamaño de cada uno es el mismo. Por lo tanto, quite este método de la definición de clase de MovingAverageFilter. GetDiscreteStateSpecificationImpl devuelve el tamaño, el tipo de datos y la complejidad de una propiedad. Esta propiedad debe ser una propiedad de estado discreto. Debe definir este método si el objeto System tiene propiedades de estado discreto y se utiliza en el bloque del sistema MATLAB. En este ejemplo, el método se utiliza para definir la propiedad Estado. Seleccione su CountryDocumentation dsp. MovingAverage Objeto de sistema Descripción El objeto dsp. MovingAverage Systemx2122 calcula el promedio móvil de la señal de entrada a lo largo de cada canal, independientemente con el tiempo. El objeto utiliza el método de ventana deslizante o el método de ponderación exponencial para calcular el promedio móvil. En el método de ventana deslizante, una ventana de longitud especificada se mueve sobre los datos, muestra por muestra y el promedio se calcula sobre los datos de la ventana. En el método de ponderación exponencial, el objeto multiplica las muestras de datos con un conjunto de factores de ponderación. El promedio se calcula sumando los datos ponderados. Para obtener más detalles sobre estos métodos, consulte Algoritmos. El objeto acepta entradas multicanal, es decir, entradas de tamaño m-por-n, donde m 8805 1 y n gt 1. El objeto también acepta entradas de tamaño variable. Una vez que el objeto está bloqueado, puede cambiar el tamaño de cada canal de entrada. Sin embargo, el número de canales no puede cambiar. Este objeto admite generación de código C y C. Para calcular el promedio móvil de la entrada: Cree un objeto dsp. MovingAverage y establezca las propiedades del objeto. Paso de llamada para calcular el promedio móvil. Nota: Alternativamente, en lugar de usar el método step para realizar la operación definida por el objeto System, puede llamar al objeto con argumentos, como si fuera una función. Por ejemplo, y step (obj, x) y y obj (x) realizan operaciones equivalentes. Construcción movAvg dsp. MovingAverage devuelve un objeto de media móvil, movAvg. Utilizando las propiedades predeterminadas. MovAvg dsp. MovingAverage (Len) establece la propiedad WindowLength en Len. MovAvg dsp. MovingAverage (Name, Value) especifica propiedades adicionales usando pares Nombre y Valor. Las propiedades no especificadas tienen valores predeterminados. Selecciona tu pais


No comments:

Post a Comment