predecir las características de los filtros

Me gustaría saber una cosa que diga si conoce la longitud de palabra del procesador (TMS320VC5510 DSP), los bits de acumulación y protección, ¿puede adivinar las características del filtro que se utilizará para esta arquitectura? solo para ser más precisos, pongamos los siguientes valores como ejemplo.

La longitud de la palabra del procesador es de 16 bits y tiene un acumulador de 40 bits con 8 bits de protección Entonces, ¿qué tipo de filtros (Características del filtro) puede usar para la arquitectura mencionada anteriormente y cómo predijo que quiero decir analizando qué? lo que puedo hacer hasta ahora es que se puede usar un filtro de paso bajo con un rango alrededor de [-3,3).

Saludos

la longitud de la palabra no está relacionada con la característica del filtro si entiendo su pregunta correctamente. ¿Has buscado filtros FIR e IIR?

Respuestas (2)

No, la arquitectura no tiene nada que ver con el tipo de filtros que se pueden implementar. La arquitectura le dará cierta velocidad y resolución para cualquier implementación de filtro en particular.

En su caso, aparentemente está pensando en un filtro de convolución. El coeficiente es de 16 bits y usted dice que el acumulador tiene 40 bits de ancho. Presumiblemente, las muestras de datos en la memoria también tienen 16 bits de ancho. Esto significa que se realizará una multiplicación de 16 x 16 bits por punto de datos. Esto produce hasta un número de 32 bits. Con un acumulador de 40 bits, sabe que puede sumar al menos 256 de esos números. Dependiendo de cómo funcionen los bits de protección, es posible que pueda sumar 65536 puntos de datos antes de un desbordamiento real. En ese caso, probablemente haya una instrucción para encontrar el bit significativo más alto del resultado de modo que se pueda realizar un cambio para finalmente mantener los bits superiores. En algunos casos, el rango máximo del resultado estará limitado debido a las propiedades inherentes del filtro y el flujo de datos que se filtra.

En este ejemplo, hay algo de ruido de cuantificación en cada coeficiente, cada muestra de datos, un límite en la cantidad de bits de resultado significativos y una cantidad máxima de acumulaciones múltiples que se pueden realizar en cada período de muestra de datos. Todos estos son parámetros que son una función de la arquitectura. Tenga en cuenta que el valor del coeficiente, y por lo tanto la respuesta del filtro, no tiene nada que ver con la arquitectura.

Tampoco tiene que usar el hardware DSP directamente. Podría, por ejemplo, hacer su propio código amplio de multiplicación y acumulación que conserve más bits por valor y tenga una palabra de resultado más amplia. El inconveniente es que, dado que esto sería significativamente más lento, el número de coeficientes sería mucho menor. Todo es un intercambio.

Muchas gracias por esta completa explicación. estoy realmente honrado por su respuesta
Un mejor enfoque si uno quiere una suma que es más amplia de lo que el acumulador del DSP puede soportar directamente es subdividir la operación en partes que caben en el acumulador del DSP. Hacer una multiplicación-acumulación de 1024 puntos como cuatro unidades de 256 puntos, por ejemplo, tiende a ser mucho más rápido que hacer 1024 operaciones individuales de multiplicación y suma. Incluso si uno quisiera multiplicar y acumular puntos de datos de 16 bits por coeficientes de 32 bits y el hardware solo podría manejar multiplicaciones de 16x16, almacenando cada coeficiente de 32 bits como una mitad alta y baja separada y...
... realizar operaciones MAC separadas para (puntos de datos * coeficientes altos) y (puntos de datos * coeficientes bajos), escalar los resultados y sumarlos, sería más rápido que hacer las cosas punto por punto.

Una longitud de palabra limitada en un DSP provoca una cuantificación excesiva (es decir, un tamaño de paso de cuantificación grande) de las muestras de datos, elevando el ruido de fondo y de los coeficientes del filtro, lo que puede hacer que la respuesta real del filtro se desvíe de su valor teórico. El último efecto es más visible en el área de atenuación reducida de la banda de parada.

¿Es este el tipo de cosa que estás buscando?

Por ejemplo, en un filtro FIR, los coeficientes también definen la respuesta de impulso del filtro. Además, para cualquier filtro, la transformada de Fourier de su respuesta de impulso es su respuesta de frecuencia.

Es un ejercicio interesante dibujar una curva que represente la respuesta de frecuencia deseada y tomar su transformada inversa de Fourier para obtener la respuesta de impulso. En cualquier implementación real, tendrá que seleccionar un número finito de coeficientes y tendrá que aplicar una función de "ventana" a esos coeficientes para limitar los efectos del truncamiento en la respuesta de impulso.

Tome la transformada de Fourier de estos coeficientes y vea cómo la respuesta de frecuencia resultante se desvía de la respuesta ideal con la que comenzó.

Ahora, cuantifique esos coeficientes con la precisión que realmente tendrán en el DSP. Tome otra transformada de Fourier y vea cómo esto ha modificado aún más la respuesta de frecuencia.

En algunos casos, los efectos pueden ser dramáticos. Hacer esto varias veces puede darle una buena idea del nivel de rendimiento del filtro que puede esperar para varios valores de longitud de filtro y ancho de palabra.

Para abordar los problemas de desbordamiento a los que se refiere Olin, normalmente escalaría los coeficientes durante la fase de diseño para que la ganancia máxima en la banda de paso del filtro sea la unidad. Sin embargo, esto puede crear errores de cuantificación adicionales en los coeficientes, haciendo que los más pequeños desaparezcan por completo. Si el hardware del DSP incluye, por ejemplo, un campo de desbordamiento de 8 bits en el acumulador MAC, puede establecer la ganancia de coeficiente en 256 y luego cambiar las muestras de salida 8 bits a la derecha para obtener una ganancia total de unidad.