Friday, November 4, 2016

Moving Average Filter Circuit

Respuesta de Frecuencia del Filtro Promedio Corriente La respuesta de frecuencia de un sistema LTI es la DTFT de la respuesta de impulso. La respuesta de impulso de un promedio móvil de L-muestra es. Dado que el filtro de media móvil es FIR, la respuesta de frecuencia se reduce a la suma finita We Puede utilizar la identidad muy útil para escribir la respuesta de frecuencia como donde hemos dejado ae menos jomega. N 0 y M L menos 1. Podemos estar interesados ​​en la magnitud de esta función para determinar qué frecuencias pasan a través del filtro sin atenuación y cuáles son atenuadas. A continuación se muestra un gráfico de la magnitud de esta función para L 4 (rojo), 8 (verde) y 16 (azul). El eje horizontal varía de cero a pi radianes por muestra. Observe que en los tres casos, la respuesta de frecuencia tiene una característica de paso bajo. Un componente constante (frecuencia cero) en la entrada pasa a través del filtro sin atenuación. Ciertas frecuencias más altas, como pi / 2, son completamente eliminadas por el filtro. Sin embargo, si la intención era diseñar un filtro de paso bajo, entonces no lo hemos hecho muy bien. Algunas de las frecuencias más altas se atenúan sólo por un factor de 1/10 (para la media móvil de 16 puntos) o 1/3 (para la media móvil de cuatro puntos). Podemos hacer mucho mejor que eso. La gráfica anterior se creó mediante el siguiente código Matlab: omega 0: pi / 400: pi H4 (1/4) (1-exp (-iomega4)) ./ (1-exp (-iomega)) H8 (1/8 ) (1-exp (-iomega8)) ./ (1-exp (-iomega)) trama (omega , Abs (H4) abs (H8) abs (H16) eje (0, pi, 0, 1) Copyright copy 2000- - Universidad de California, BerkeleyThe Scientist and Engineers Guide to Digital Signal Processing Por Steven W. Smith, RE. 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. El filtro de media móvil es un filtro FIR de longitud N con todos los golpes establecidos igual a (1 / N) en el filtro de media móvil. .160 Su conocida por la separación de frecuencia pésima, pero la respuesta de tiempo excelente - en ese sentido, fuera-Bessels un filtro de Bessel.160 Puede implementarlo con SigmaStudios FIR bloque como se describe aquí: Cuanto más largo sea el filtro, más suavizado - Pero el algoritmo de filtro FIR estándar usa muchas instrucciones para filtros enormes, porque tiene que multiplicar los coeficientes para cada toma.160 Esto es un desperdicio cuando todos los coeficientes son los mismos.160 Como señala el capítulo 15 del libro de Steven W. Smith, Puede hacer un filtro de media móvil con una técnica recursiva que tiene un toque antes y después de un retardo de tamaño (N-1). Este filtro aparece a continuación como parte de un circuito de prueba con fuente de señal y un filtro de Bessel para comparación: 160160160160 Los coeficientes se extraen al bloque de ganancia individual en la entrada.160 La muestra actual se suma a la salida cuando entra en el retardo, la muestra retardada resta de la salida a medida que sale.160 El sumador con la retroalimentación acumula estas adiciones y sustracciones a Forma la salida - esto hace algo thats trivial en C pero es de otra manera un dolor en el GUI.160 Aunque una técnica recursive se utiliza, el filtro sigue siendo un filtro verdadero del FIR - la longitud de su respuesta del impulso se fija solamente por su retraso . 160160160160 Mi entrada de prueba es una onda cuadrada con ruido añadido.160 Los resultados filtrados aparecen como el trazo superior en ambas fotos - Primero el filtro de media móvil: El filtro de Bessel: 160160160160 El filtro de media móvil permite más ruido, pero conserva mejor el La forma de las ondas cuadradas - no gira alrededor de las esquinas, y las pendientes ascendentes y descendentes son simétricas (su fase lineal) .160 Escuchar los dos modos de onda con auriculares muestra un resultado similar - más ruido con el filtro de media móvil, pero la característica El sonido de una onda cuadrada viene a través. Fácil de usar Patentes Búsqueda Directorio de abogados de patentes Esta patente puede estar en venta o arrendamiento. Contáctenos Esta es su reclamación de patente ahora. Examinador Principal: Le Dinh T. Abogado, Agente o Firma: Rabin Berdo, P. C. 1. Un filtro de media móvil que comprende una unidad de retención de datos para contener una pluralidad de datos sucesivos, una unidad de almacenamiento de coeficientes para almacenar un coeficiente, una unidad de salida de señales de valor de decodificación que calcula una suma de un par de datos de un conjunto prescrito Combinada retenida en dicha unidad de almacenamiento de datos y emite una señal de valor de decodificación que corresponde a dicha suma una unidad de procesamiento de coeficientes que procesa datos de coeficiente obtenidos de dicha unidad de almacenamiento de coeficientes basándose en dicha señal de valor de decodificación emitida desde dicha unidad Datos de coeficientes como datos de adición y un sumador que acumula secuencialmente un número prescrito de dichos resultados de adición en el que dicha unidad de salida de señal de valor de decodificación envía una primera señal que fija una salida independientemente de los datos de coeficiente obtenidos de dicha unidad de almacenamiento de coeficientes, Datos obtenidos de dicha unidad de almacenamiento de coeficientes y una tercera señal que se desplaza por un número prescrito de datos de coeficientes de bits obtenidos de dicha unidad de almacenamiento de coeficientes. 2. Un filtro de media móvil que comprende: una unidad de retención de datos, que contiene una pluralidad de datos sucesivos y emite una primera señal y una segunda señal una unidad de decodificador, que tiene un primer circuito lógico que emite una señal cero cuando tanto la primera señal como la Una segunda señal tiene un nivel bajo, un segundo circuito lógico que emite una señal de paso cuando la primera señal o la segunda señal, pero no ambas, tiene un nivel alto, y un tercer circuito lógico que emite una señal de cambio cuando tanto la primera señal como la La segunda señal tiene el nivel alto una unidad de almacenamiento de coeficientes, que almacena un coeficiente y envía una señal de coeficiente a una unidad selectora, que envía una tercera señal que tiene un nivel bajo cuando la señal cero es introducida desde la unidad descodificadora, Cuando la señal de paso es introducida desde la unidad decodificadora o una señal desplazada que desplaza la señal de coeficiente como la tercera señal cuando la señal de cambio es introducida desde el decodificador y una unidad acumuladora que acumula la salida de señal de la unidad selectora. 3. El filtro de media móvil de acuerdo con la reivindicación 2, en el que la unidad selectora tiene un cuarto circuito lógico que emite un primer resultado lógico cuando la señal de paso tiene un nivel alto y cuando la señal cero tiene nivel bajo y al menos un circuito de operación lógica, El circuito de operación lógica tiene un quinto circuito lógico que emite un segundo resultado lógico cuando tanto el primer resultado lógico como la novena señal de coeficiente son de alto nivel, siendo n un número natural, un sexto circuito lógico que emite un tercer resultado lógico cuando ambos (n - 1) La señal de coeficiente y la señal de cambio son de nivel alto y un séptimo circuito lógico que emite la tercera señal cuando el segundo resultado lógico o el tercer resultado lógico es de alto nivel. 4. Un filtro de media móvil que comprende: una unidad de retención de datos, que contiene una pluralidad de datos sucesivos y emite una primera señal y una segunda señal una unidad de decodificador, que tiene un primer circuito lógico que emite una señal negativa cuando tanto la primera señal como la Una segunda señal tiene un nivel bajo, un segundo circuito lógico que emite una señal de paso cuando la primera señal o la segunda señal, pero no ambas, tiene un nivel alto y un tercer circuito lógico que emite una señal de cambio cuando tanto la primera señal como la segunda señal tienen De alto nivel una unidad de almacenamiento de coeficientes que almacena un coeficiente y emite una señal de coeficiente una unidad selectora que emite una señal que invierte la señal de coeficiente como una tercera señal y una señal de transporte cuando la señal de menos es introducida desde la unidad decodificadora, Como la tercera señal cuando la señal cero es introducida desde la unidad decodificadora o la señal de coeficiente como la tercera señal cuando la señal transitoria es introducida desde el decodificador y una unidad acumuladora mueve un lugar figura a la derecha cuando la señal de transporte es introducida desde La unidad decodificadora y acumula la señal de salida de la unidad selectora. 5. El filtro de media móvil de acuerdo con la reivindicación 4, en el que la unidad selectora tiene un cuarto circuito lógico que emite un primer resultado lógico cuando la señal de paso tiene un nivel alto y cuando la señal cero tiene nivel bajo y al menos un circuito de operación lógica, El circuito de operación lógica tiene un quinto circuito lógico que emite un segundo resultado lógico cuando tanto el primer resultado lógico como la n-ésima señal de coeficiente son de alto nivel, siendo n un número natural, un sexto circuito lógico que emite un tercer resultado lógico La señal negativa es de alto nivel y un séptimo circuito lógico que emite la tercera señal cuando el segundo resultado lógico o el tercer resultado lógico es un nivel alto. Campo de la invención La presente invención se refiere a un circuito de cálculo medio que calcula y emite el promedio de una señal de entrada, en particular a un filtro de media móvil para calcular el promedio móvil de la señal de entrada. 2. Descripción de la técnica relacionada El método de promediación móvil es un método para suavizar una señal (por ejemplo, Reference I: Beginners Digital Filter, 30 de noviembre de 1989, páginas 9-15, por Shougo Nakamura, Tokyo Denki University Press). De acuerdo con este método de promediado móvil, el promedio móvil se calcula como sigue. Cuando se dispone del k-ésimo promedio móvil y se calcula la media móvil (k1) - th, la diferencia entre los datos más antiguos de todos los datos utilizados en la obtención del k-ésimo promedio móvil y los nuevos datos que se introducen en Obtener la media móvil (k1) - ésima se añade a la k-ésima media móvil para obtener la media móvil (k1) - th (p14 en la Referencia I). La ventaja de este método es que la cantidad de cálculo en la obtención del promedio móvil se reduce. Sin embargo, puesto que la diferencia entre los datos más antiguos y los nuevos datos se añade a la media móvil ya obtenida para obtener la siguiente media móvil, una vez que se produce un error de cálculo por un ruido o un error de operación, el error de cálculo se propaga indefinidamente, problema. Además, ocasionalmente en la técnica anterior se obtienen primero promedios móviles en múltiples etapas y se toma el promedio móvil de las múltiples medias móviles. Cuando el número de etapas de las medias móviles es grande, la cantidad de hardware tiene que incrementarse en gran medida de acuerdo con el número de promedios móviles, lo cual es otro problema. Sumario de la invención Dado estos problemas, es un objeto de la presente invención proporcionar un filtro de media móvil capaz de resolver estos problemas. Para resolver los problemas anteriormente mencionados, un filtro de media móvil representativo de acuerdo con la presente invención tiene una unidad de retención de datos para contener múltiples datos sucesivos, una unidad de almacenamiento de coeficientes para almacenar coeficientes, un primer sumador que calcula la suma de un par de datos de Una combinación prescrita contenida en la unidad de almacenamiento de datos, un multiplicador que multiplica la suma por los datos de coeficiente obtenidos de la unidad de almacenamiento de coeficientes y un segundo sumador que suma un número prescrito de resultados de multiplicación producidos por el multiplicador. BREVE DESCRIPCIÓN DE LOS DIBUJOS La FIG. 1 es un diagrama de bloques que muestra la primera realización de la presente invención. HIGO. La figura 2 muestra el flujo de se~nal del filtro FIR de la presente invención. HIGO. 3 es un diagrama de bloques que muestra la segunda realización de la presente invención. HIGO. 4 es un diagrama de circuito del descodificador de acuerdo con la segunda realización de la presente invención. HIGO. 5 es un diagrama de circuito del selector de acuerdo con la segunda realización de la presente invención. HIGO. La figura 6 es un diagrama de bloques que muestra la tercera realización de la presente invención. HIGO. 7 es un diagrama de circuito del descodificador de acuerdo con la tercera realización de la presente invención. HIGO. 8 es un diagrama de circuito del selector de acuerdo con la tercera realización de la presente invención. Convencionalmente, al tomar la media móvil de múltiples promedios móviles, se conectan por etapas múltiples circuitos de cálculo del promedio móvil. En la presente invención, se utiliza un filtro de tipo FIR (Finite Impulse Response) para tomar el promedio móvil de múltiples promedios móviles. En lo que sigue, se explicará una realización de la presente invención con referencia a los dibujos adjuntos. HIGO. 1 es un diagrama de bloques que muestra el circuito de cálculo del promedio móvil de acuerdo con la primera realización de la presente invención. En este circuito de cálculo de media móvil, se introduce una señal de 1 bit en una unidad de mantenimiento de datos 101 que tiene una RAM o un registro de desplazamiento. Esta unidad 101 de retención de datos contiene un número mínimo de datos requeridos para calcular el promedio móvil en la presente invención. En la presente realización, se mantienen al menos 22 datos sucesivos en la unidad de mantenimiento de datos 101. Dos datos se leen de la unidad de mantenimiento de datos 101 según sea necesario. Estos dos datos se introducen en los dos terminales de entrada de un sumador 102. El sumador 102 envía una señal a un multiplicador 103. Los datos de coeficiente también se introducen en el multiplicador 103 desde una ROM de coeficiente 104 que funciona como una unidad de almacenamiento de coeficientes. El multiplicador 103 envía una señal a uno de los terminales de entrada de otro sumador 105. El sumador 105 envía una señal a un D-F / F106. El D-F / F106 envía una señal al otro terminal de entrada del sumador 105 y un circuito de retención 107. El circuito de retención 107 emite entonces una señal que se convierte en la señal de salida OUT de la media móvil. En la presente realización, tres filtros de media móvil están conectados en serie por etapas, cada uno de los cuales toma la media móvil de ocho datos. En primer lugar, los primeros datos que se utilizarán para tomar la media móvil se denotan por D0. Los otros datos D1 a D7 a utilizar para tomar la media móvil se introducen en secuencia para cada tiempo t de muestreo. La hora a la que se introduce la octava información D7 se ajusta a T0. Dado que este es un promedio móvil, este valor cambia cada vez que pasa el periodo del tiempo de muestreo t. El tiempo en el que se introduce la (n8) - ésima información Dn7 se ajusta inductivamente a Tn (donde n es un número entero no negativo). El filtro de media móvil de la segunda etapa conectado al filtro de media móvil de la primera etapa toma el promedio de los ocho datos de salida suministrados desde la media móvil de la primera etapa filtrar. La salida de datos de media móvil del filtro de media móvil de la segunda etapa en T7 está designada por Mb0. Entonces, Mb $ .0 $ se expresa mediante la sustitución de la ecuación (1) en cada uno de los Ma0 a Ma7, la ecuación anterior pasa a ser Mb0 (D02D. sub.0 .1 3D2D6D5 7D6 8D7 7D8 6D9 3D12D213D14) / 8s. En Tn, la salida del filtro de media móvil de la segunda etapa es Next, el filtro de media móvil de la tercera etapa conectado al filtro de media móvil de la segunda etapa toma la media de los ocho datos de salida suministrados desde el filtro de media móvil de la segunda etapa. La salida de datos de media móvil del filtro de media móvil de la tercera etapa en T14 se denomina Mc0. Entonces, Mc0 se expresa mediante la sustitución de la ecuación (2) en cada uno de los Mb0 a Mb7, la salida del filtro de media móvil de la tercera etapa en el tiempo Tn pasa a ser la Ecuación (3) que muestra El promedio móvil se puede obtener utilizando un filtro de tipo FIR (Respuesta de Impulso Finito) de 11º orden. HIGO. 2 muestra el flujo de señal del filtro FIR para realizar la ecuación (3). A continuación se explica el funcionamiento del filtro de media móvil de acuerdo con la primera realización con referencia a las Figs. 1 y 2. Los datos de 1 bit se introducen secuencialmente en la unidad de mantenimiento de datos 101. La unidad de mantenimiento de datos 101 mantiene 22 datos sucesivos. La unidad de mantenimiento de datos 101 lee los datos más recientes Dn21 y los datos más antiguos Dn. Estos datos Dn y Dn21 se envían al sumador 102, y el sumador 102 suma Dn y Dn21. El sumador 102 envía entonces el resultado de la adición al multiplicador 103. El coeficiente ROM 104 lee y suministra el coeficiente k01 al multiplicador 103. El multiplicador 103 multiplica entonces el coeficiente k01 a la Resultado de la adición. El multiplicador 103 envía entonces el resultado de multiplicación al sumador 105. Los datos de salida del sumador 105 se mantienen temporalmente en el D-F / F106. A continuación, la unidad de mantenimiento de datos 101 lee los datos Dn1 y Dn20. Estos datos Dn1 y Dn20 se envían al sumador 102, y el sumador 102 suma Dn1 y Dn20. El sumador 102 envía entonces el resultado de la adición al multiplicador 103. El coeficiente ROM 104 lee y suministra el coeficiente k1 3 al multiplicador 103. El multiplicador 103 multiplica entonces el coeficiente k1 3 a la Resultado de la adición. El multiplicador 103 envía entonces el resultado de multiplicación a uno de los dos terminales de entrada del sumador 105. Los datos de salida del sumador 105 mantenidos temporalmente en el DF / F106 se devuelven al otro terminal de entrada del sumador 105 cuando el resultado de multiplicación (Dn1Dn20) k1 se introduce en el terminal de entrada del sumador 105. En otras palabras, se acumula el resultado que se había obtenido en la temporización anterior por el sumador 105. De la misma manera, el sumador 102 suma los datos Dm y D2n21-m (mn, n1, n10) leídos por la unidad de mantenimiento de datos 101. El multiplicador 103 multiplica entonces la suma D. sub. mD2n21-m al coeficiente k1 (l1 a 10) leído por el coeficiente ROM 104. El sumador 105 acumula entonces el resultado de multiplicación. Este id de proceso se repitió. Después de esto, el circuito de retención 107 recibe una señal de enclavamiento de un circuito generador de temporización no mostrado en el dibujo cuando las cantidades en el numerador de la ecuación (3), es decir, todas las cantidades mostradas en la Fig. 2, están todos acumulados. El circuito de retención 107 bloquea entonces el resultado del cálculo y emite el promedio móvil como salida final. Para que el resultado final sea preciso, el denominador de la ecuación (3) necesita ser calculado y multiplicado por k11 1/8 (división por 8 3). En general, una multiplicación por 2n en el sistema binario puede llevarse a cabo desplazando la salida hacia arriba por n bits, y una división por 2 n en el sistema binario puede llevarse a cabo desplazando la salida hacia abajo Por n bit. Por lo tanto, en la práctica, cuando el cableado desde el DF / F (F) al circuito de retención 107, por ejemplo, se puede realizar una división por 2 9 en el sistema binario conectando el DF / F (F) al cierre Circuito 107 para desplazar la salida hacia abajo en 9 bits. Por lo tanto, se puede realizar una división por 8 3 en el sistema decimal, que es equivalente a una división por 2 en el sistema binario, conectando el DF / F (F) al circuito de retención 107 para que Como para desplazar la salida hacia abajo en 9 bits. Esta división por 8 3 en el sistema decimal no requiere hardware especial adicional y se puede lograr fácilmente. De este modo, de acuerdo con la primera realización de la presente invención, se utiliza una configuración de filtro FIR. Por lo tanto, incluso si un error de cálculo es generado por un ruido o un error de operación, se puede obtener un resultado de salida normal en el siguiente ciclo de cálculo. Además, incluso si se cambia el número medio de promedios móviles y el número de etapas de la conexión en serie, basta con ajustar el número de bits en los sumadores y el multiplicador y el coeficiente ROM para hacer frente a estos cambios sin aumentar significativamente el área Del hardware. HIGO. 3 es un diagrama de bloques que muestra la configuración de un circuito calculador de media móvil de acuerdo con la segunda realización de la presente invención. En este circuito de cálculo de media móvil, como en el caso de la primera realización, se introduce una señal de entrada de 1 bit en una unidad de retención de datos 201 que tiene un registro de RAM o de desplazamiento. Esta unidad de retención de datos 201 lee dos datos y envía los dos datos a los dos terminales de entrada de un decodificador 210. El decodificador 210 envía entonces una señal de salida al terminal de selección de un selector 220. Una ROM de coeficiente 204 suministra datos de coeficiente al selector 220. El selector 220 envía una señal de salida a uno de los dos terminales de entrada de un sumador 205. El sumador 205 envía una señal de salida a un DF / F206. La señal de salida del D-F / F206 se introduce en el otro terminal de entrada del sumador 205 y un circuito de retención 207. La salida de señal del circuito de retención 207 es la señal de salida de media móvil OUT. En lo que sigue, se explicará el funcionamiento en la segunda realización. Se introducen secuencialmente datos de 1 bit en la unidad de retención de datos 201. La unidad de retención de datos 201 mantiene 22 datos sucesivos. Como en la primera realización, la unidad de retención de datos 201 lee pares de datos Dn y Dn21, Dn1 y Dn20. Dn10 y Dn11 como se muestra en la ecuación (3). El decodificador 210 emite señales de valor de decodificación correspondientes a los valores de los dos datos de lectura, como se muestra en la Tabla 1. TABLA 1 Valores de decodificación (m 0 a n 10) del decodificador 210 de la segunda realización. En el que el decodificador 210 emite una se~nal cero cuando el valor de salida es igual a cero. La suma de las dos señales de entrada es 0, una señal de paso cuando la suma de las dos señales de entrada es 1, y una señal de cambio cuando la suma de las dos señales de entrada es 2. La FIG. La figura 4 muestra un ejemplo de circuito del descodificador 210. El descodificador 210 tiene un circuito AND, un circuito EXOR y un circuito NOR, a cada uno de los cuales se suministran las dos señales de entrada antes mencionadas. El circuito AND emite una señal de cambio. El circuito EXOR muestra una señal de paso. El circuito NOR envía una señal cero. Esto se puede cambiar con un circuito lógico que satisface la lógica mostrada en la Tabla 1. El selector 220, que funciona como unidad de procesamiento de coeficientes, funciona en respuesta a la señal de valor de decodificación suministrada desde el decodificador 210. Cuando el selector 220 recibe un cero , El selector 220 emite una señal de nivel L como datos de adición independientemente de la señal suministrada desde la ROM de coeficientes 204. Cuando el selector 220 recibe una señal de paso desde el decodificador 210, el selector 220 envía la señal suministrada desde el decodificador 210 Coeficiente ROM 204 tal como es. Cuando el selector 220 recibe una señal de cambio del decodificador 210, el selector 220 desplaza hacia arriba en 1 bit la señal suministrada desde la ROM 204 de coeficientes y emite la señal desplazada. HIGO. La figura 5 muestra un ejemplo de circuito del selector 220. El sumador 205 añade el resultado de adición del ciclo inmediatamente antes del presente ciclo mantenido en el DF / F 206 a los datos de adición recibidos del selector 220 y emite el nuevo resultado de adición al DF / F 206. Cuando se acaba la adición completa, el circuito de retención 207 bloquea la señal de salida del DF / F 206 en base a la señal de enclavamiento. La señal de salida del circuito de retención 207 se emite como la media móvil. De este modo, el decodificador 210 suma los datos dentro de los paréntesis () de la ecuación (3), es decir, pares de datos Dn y Dn21, Dn1 y Dn20. Dn10 y Dn11, y emite una se~nal de valor de descodificación que corresponde al resultado de adición. Basándose en esta señal de valor de decodificación, se procesa el valor de coeficiente leído por la ROM 204 de coeficientes. Este valor del coeficiente procesado se acumula para obtener la media móvil. Por lo tanto, según la segunda realización, se pueden conseguir las mismas ventajas que en la primera realización. Además, puesto que estas ventajas pueden conseguirse utilizando un circuito decodificador simple y un circuito selector sin utilizar un multiplicador, se reduce el área requerida por el hardware. HIGO. La figura 6 es un diagrama de bloques que muestra un circuito de cálculo de media móvil de acuerdo con la tercera realización de la presente invención. En la fig. 6, se dan los mismos números de referencia a los mismos componentes que ya se utilizan en la segunda realización. Las configuraciones del decodificador 310, el selector 320, el sumador con el terminal de retención 350 del circuito de cálculo de la media móvil de la tercera realización difieren de las configuraciones de las correspondientes de la segunda realización. La señal de salida del decodificador 310 es introducida en el selector 320 y el terminal de entrada de señal Ci del sumador con el terminal de transferencia 350. Los mismos dos datos son leídos por el decodificador 310 como en la segunda realización. Este decodificador 310 realiza la operación de decodificación mostrada en la Tabla 2. El decodificador 310 envía entonces el resultado de la decodificación como una señal de selección al terminal de entrada Ci del sumador con el terminal de transferencia 350. TABLA 2 Valores de decodificación (m 0 A través de n 10) del decodificador 310 de la segunda realización Decodificación Entrada Valor de entrada Datos Señal de datos DmD2n21-mDmD2n21-m 0 0 0 Menos 0 1 1 Por ejemplo, cuando la suma de Dn y Dn21 entrada al decodificador 310 es 0, el descodificador 310 emite una señal de menos. Cuando la suma de Dn y Dn21 entrada al decodificador 310 es 1, el descodificador 310 emite una señal cero. Cuando la suma de Dn y Dn21 entrada al decodificador 310 es 10, el decodificador 310 emite una señal de paso. Cuando el selector 320 recibe una señal de menos del decodificador 310, el selector 320 emite una señal que invierte la polaridad de la señal recibida de la ROM de coeficientes 204. Cuando el selector 320 recibe una señal cero del decodificador 310, el selector 320 emite una señal L, independientemente de la señal recibida de la ROM de coeficientes 204. Cuando el selector 320 recibe una señal de paso del decodificador 310, el selector 320 emite la se~nal recibida de la ROM de coeficientes 204 tal cual. Sólo cuando el descodificador 310 emite una señal de menos, el decodificador 310 envía una señal de nivel H al sumador con el terminal de transferencia 350. En todo el otro caso, el decodificador 310 envía una señal de nivel L al sumador con terminal de acarreo 350. En general, la salida de datos de 1 bit de la ΔSIGMA. El convertidor A / D del sistema es un nivel binario con valores H o L. Los datos de la forma del complemento de 2 se usan en el cálculo en el bloque después del filtro del promedio móvil. En el circuito de la segunda realización, se requiere un bloque de conversión después del bloque de media móvil para convertir una señal de nivel binario en datos de la forma de complemento de 2. Sin embargo, utilizando el decodificador 310 de la tercera realización, Convertidos en datos de forma de complemento de 2 en el bloque de media móvil simultáneamente. En otras palabras, el valor del coeficiente se agrega cuando la suma de los valores dentro del paréntesis () de la ecuación (3) es 10, el valor del coeficiente no se añade cuando la suma de los valores dentro del paréntesis () de la ecuación (3) Es 1, y el valor del coeficiente se resta cuando la suma de los valores dentro del paréntesis () de la ecuación (3) es 0. De esta manera, la señal de nivel binario puede convertirse en datos de forma de complemento de 2 cuyo valor de salida tiene una señal. Por lo tanto, realizando la operación usando el decodificador, procesando el valor del coeficiente basándose en el resultado de la operación, y acumulando los resultados de la adición, se puede calcular la media móvil. HIGO. 7 es un diagrama de circuito del descodificador de acuerdo con la tercera realización de la presente invención. HIGO. 8 es un diagrama de circuito del selector de acuerdo con la tercera realización de la presente invención. Por lo tanto, de acuerdo con la tercera realización de la presente invención, se pueden lograr las mismas ventajas que en las realizaciones primera y segunda. Además, puesto que el convertidor para convertir una señal de nivel binario en datos de forma de complemento de 2 se usa en la tercera realización, el área ocupada por el hardware puede reducirse aún más. El objetivo de esta semana es implementar y caracterizar un filtro de media móvil simple en un DSP en tiempo real. Tarea 0: Preparación Puede utilizar el mismo proyecto que lo hizo en el último laboratorio (o puede hacer clic con el botón secundario en él y crear un duplicado). Si desea conservar su antiguo archivo de programa, puede: Copiar el archivo quotE71Shell. cquot y darle un nuevo nombre. Haga clic con el botón derecho en el archivo antiguo (quotE71Shell. cquot) y retírelo de la compilación. Haga clic derecho en el nuevo archivo y asegúrese de que está incluido en la compilación. A lo largo de este laboratorio, deje todas las optimizaciones del compilador como estaban en el proyecto que descargó para el laboratorio anterior. Si no has cambiado, no te preocupes. Si los ha cambiado, asegúrese de volver a colocarlos en la configuración original. Asegúrese de que su código está configurado para muestrear a 44.1 kHz. Cambie el bucle principal en quotE71Shell. cquot a // --- Main Loop while (1) // Bucle sin fin - pero las interrupciones todavía se producen. Asm (quot NOPquot) a menos que tenga una razón para hacerlo de otra manera. En el archivo quotGPIO. Cquot localizar las líneas que establecen el pin AIO4 a una E / S de propósito general y una salida y cambiarlos a: GpioCtrlRegs. AIOMUX1.bit. AIO4 0 // 0,1AIO4 GpioCtrlRegs. AIODIR. bit. AIO4 1 // AIO4 es una salida Vamos a utilizar este pin para el tiempo de sus funciones. Este alfiler se fija alto al principio de la rutina de servicio de interrupciones, y bajo al final. Añadir la línea GpioDataRegs. AIODAT. bit. AIO4 0 // Marcar el inicio de la función como la primera línea ejecutada en la función quotE71Func () quot cuando se llama esta función está en quotE71Shell. c.quot Esto establece la línea AIO4 baja (así Usted puede decir cuando su función comienza). Añada la línea GpioDataRegs. AIODAT. bit. AIO4 1 // Marcar fin de función como la última línea a ejecutar en quotE71Func (). Quot Establece la línea AIO4 alta para indicar el final de su función. Los cables en el laboratorio sacan el canal izquierdo de las conexiones de línea y salida de auriculares. Para encontrar la cantidad de tiempo que se gasta en su función puede colocar una de las sondas del osciloscopio en AIO4 (se muestra a continuación en la selección ampliada de la imagen de la Peripheral Explorer Board), esto se marca como A4 en la placa de circuito impreso. No necesitará una conexión a tierra (el alcance se conectará a tierra a través de las conexiones de entrada / salida de audio). Pero si usted encuentra que usted necesita uno, usted puede acortar la tierra del alcance en la localización demostrada. Tarea 1: Promedio de ejecución corta Si coloca la entrada a través de un filtro de media móvil de 8 puntos, determine las frecuencias en las que la salida debería ser cero. Escriba un filtro de media móvil de 8 puntos y póngalo en la función quotE71Func () quot entre las líneas que agregó que manipulan AIO4. Acerca de este código: Sólo edite quotE71Func (). Quot No use números de coma flotante. No utilice un algoritmo recursivo. Promedio de las últimas 8 entradas. No use el operador de división, quot / quot. Recuerde que un desplazamiento a la derecha implementa la división por 2. Para desplazar una variable x a la derecha por dos bits, utilice xgtgt2. La matriz de valores de entrada anteriores debe ser quot quot global o quot static quot de modo que mantiene sus valores entre llamadas de función. El uso de quot static quot variables es una mejor práctica de programación, pero el uso de quot global quot variables le permite ver fácilmente los valores pasados ​​de la entrada cuando se pausa el programa. Velocidad cuenta - hacer la rutina lo más rápido posible. Sólo quotc, sin lenguaje ensamblador. Recuerde que la conversión A / D es de 16 bits, y un entero normal es de 16 bits. Escribe el código para que no pierdas la precisión. Su código debería funcionar para una señal de entrada a escala completa. Obtenga una impresión de ámbito que muestre la línea AIO4 durante el ISR. La impresión debe mostrar todo el ciclo AIO4 durante una interrupción. Es decir, debe mostrar AIO4 ir alto en el inicio de la ISR, va bajo entonces alto como pasa a través de E71Func (), quot y luego va bajo al final de la ISR. Usted no debe mostrar el tiempo entre las interrupciones, que está en una escala de tiempo mucho más larga. Tener una escala de tiempo tan pequeña como sea posible (para aumentar la precisión de la medición). Haga que el osciloscopio mida el tiempo que está en quotE71Func (). Quot Esta es una de las mediciones que el osciloscopio hará por usted. Recopilar pruebas de que el programa funciona como se esperaba (es decir, la respuesta de frecuencia). Save a copy of this program - you need it for the report.. Task 2: Longer Running Average Repeat the above task for a 64 point running average. To Turn in: Strive for clarity. The grading on this lab will be somewhat different than the others. It should be done in a more formal style with different sections for quotIntroduction, quot quotTheory, quot quotResults, quot quotDiscussion, quot etc. If you do everything I ask for, you will get a B for the lab. To get a higher grade you need to go beyond the basics. Make sure you include (as a start): Your well commented code for each task. You only need to include the function you edited (i. e. quotE71Func()quot). Labeled graphs showing the frequency response of the filters. Labeled graphs showing execution speeds. Include a table in the quotResultsquot section that gives your best times for each task. The group that gets the best time will get bumped up 1/3 of a grade (e. g. from B to B).


No comments:

Post a Comment