Beruflich Dokumente
Kultur Dokumente
I
Índice
Objetivo………………….………………………………….....3
Introducción……………..……………………………….....3
Librerías ……………….……….….….………………….....3
Simulaciones…….……………………….....……….....13
Mediciones…………..……….……………...…………...15
Conclusiones……………….……………………………....17
Bibliografía…………………….…………………………....17
II
Objetivo
Implementar un Ecualizador gráfico digital de audio de alta fidelidad, 8 bandas con la familia
de DSP Blackfin de punto fijo.
Introducción
Un Ecualizador grafico esta compuesto por N filtros pasabanda en paralelo modificados por
una ganancia variable por el operador y luego sumadas.
• Un algoritmo que implementara un filtro pasabanda IIR de alto orden , basado en una
publicación.[4]
Librerías
El BF537 cuenta con 2 librerías para implementar filtros IIR: la iir_fr16 ( direct form I ) y la
iirdf1_fr16 ( direct form II ) . El objetivo es analizar a fondo cada una de ellas, simularlas y
comparar resultados con Matlab.
Iir_fr16
void iir_fr16(const fract16 x[], fract16 y[], int Ni, iir_state_fr16 *s);
III
a2,a1,b2,b1,b0,…..a2n,a1n,b2n,b1n,b0n........ .
Cycle count:
Execution time for Number of Samples= Ni and Number of biquad stages = B
Iirdf1_fr16
Esta librería no resuelve en secciones bicuadráticas, sino que resuelve la transferencia como
una ecuación en diferencias a continuación podemos ver el diagrama en bloques:
Esta librería lee de a 1 muestra por vez. Los coeficientes se ordenan de la siguiente manera:
IV
b0, a1, b1, a2, b2, Scaling Factor (0 if no scaling)
void iirdf1_fr16_v2(const fract16 x[], fract16 y[], int Ni, iir_state_fr16 *s);
• En ninguna de las 3 librerías se produce un stall del Pipeline dentro del algoritmo.
Otra observación a tener en cuenta es que las librerías no incluyen ganancias intermedias
entre secciones bicuadráticas, lo cual condiciona el diseño del filtro y sus coeficientes.
( Requiere un escalamiento y reordenamiento intensivo de cada SOS )
V
Como funciona iirdf1_fr16_v2
• Pasaje en paralelo de 2 muestras por vuelta.
Ejemplo:
Código de inicialización:
Código para las secciones bicuadráticas impares: 1,3,5 … ( la primer sección es la “1” )
VI
Código para las secciones bicuadráticas pares: 2,4,6,..
Las siguientes tablas son las que figuran en la publicación. Para poder analizar a fondo se
propone reescribirlas en otros términos con el fin de entender más fácilmente el algoritmo,
analizando puntualmente el caso de 2 secciones bicuadráticas.
Por cada paso del algoritmo vamos a ver el contenido de los registros al finalizar la ejecución
del mismo. Por ultimo agregamos al costado como quedan apuntado los punteros Index.
Step0:
Step1:
VII
Step2:
Step3:
Step4:
VIII
Step5:
Step6:
Step7:
Step8:
Step9:
IX
Step10:
X
Fig. 6 Diagrama en bloques equ_mix
Nota: equ_mix mezcla un solo canal ( Left o Right) por lo tanto para un Equ estereo deberá
llamarse 2 veces. El consumo es de [5+N] x (Bloque/2)
XI
Estimación de tiempos y numero de bandas
A mayor numero de bandas mayor costo computacional tendremos.
Tbp ≤ N .Ts
Donde:
- IIR es el consumo en ciclos del filtro pasabanda.( Depende del orden del filtro )
- Nband es el numero de bandas.
- equ_mix es el consumo total de la sumatoria de las N bandas mono.
- El x 2 es Stereo.
- Ti es el tiempo que demora un ciclo de instrucción. El Clock puede llegar como máximo a
600 MHz ( Tclock = 1.6nseg)
- Ts es 1/48000 Hz = 20useg
Para poder estimar la potencia de nuestro algoritmo vamos a calcular el Numero de Bandas
máximo que podríamos diseñar, suponiendo un Tbp del 90% del N.Ts ( dejamos un 10% de
tiempo de procesamiento para otras tareas ) y un Ti de 3nseg. ( para no exigir al micro ).
Luego, el consumo del IIR lo diseñaremos de orden 4 ( 2 sos=5552 ciclos ) en cascada con una
transferencia adicional de orden 4 que realice otro procesamiento extra :
XII
Nband = 126
Cabe aclarar que esta ecuación esta fuertemente dominada por el tamaño de bloque y el
Tiempo de instrucción.
Simulaciones
Para testear las 3 librerías se diseña el filtro digital con el FDATOOL:
Respuesta: Pasabajos
Topologia: Butterworth
Fs:48000 Hz
Fpass:1000 Hz
Fstop:10000 Hz
El objetivo es filtrar una poliarmónica con componentes de 500 y 20000 Hz, el resultado
esperado luego de filtrar es recuperar solamente la componente de 500 Hz.
Los filtros IIR de alto orden diseñados en secciones bicuadráticas poseen por lo general sus
coeficientes en el intervalo [ -2 , 2 ] es por esto que vamos a cuantificar en Q.14
Como vamos a diseñar el ecualizador con filtros IIR direct form I , procedemos a testear el
funcionamiento de las librerías
XIII
1)iirdf1_fr16
Coeficientes:
(*) Esta librería implementa un escalamiento dentro del loop. Esto permite que la librería
soporte cualquier numero de coeficientes ( Q15, Q14, Q13 etc ).
Resultados:
XIV
Fig. 11 Error cuadrático medio de los vectores de salida
2)iirdf1_fr16_v2
Para poder comparar el mismo filtro, como la versión 2 resuelve como mínimo 2 SOS, se
diseña una segunda etapa seguidora:
Coeficientes:
SOS Numero 1: b0=0x0275,b1=0x04EB,b2=0x0275,-a1=0x55D2,-a2=0xDF62
SOS Numero 2: b0=0x4000 ( x1 en Q14, es decir que la señal sigue ),b1=b2=-a1=-a2=0x0000
Mediciones
Con la librería iirdf1_fr16_v2 funcionando y equ_mix se realiza a continuación la
medición una sola banda, con un filtro de orden 8 con frecuencia central en 16000Hz
XV
Fig. 12 IIR Pasabanda orden 8 - Fc:16KHz.
Para poder ver la respuesta en frecuencia se excita con ruido de banda angosta BW:30 KHz.
XVI
Fig. 15 Respuesta del filtro
Conclusiones
• El diseño de un filtro IIR es muchísimo mas complejo que un FIR, y se presentan
problemas como underflow y oscilaciones que son medibles en el osciloscopio.
• Los filtros IIR a medida que aumenta el orden, pierden SNR, y en muchos casos se
vuelven inestables, y llegan a oscilar. En esta condición de alto orden y muchas SOS
en cascada, trabajar con muestras de 16 bits cuantificadas en Q14 es una limitación a
tener en cuenta.
• Se encontraron muchas dificultades con la respuesta de fase de los IIR de alto orden.
Los Ecualizadores Graficos deben tener pasabandas de fase lineal, es decir retardo de
grupo constante para todas las frecuencias, es por esto que el diseño de filtros FIR es
aconsejable. Para poder resolver el problema de la fase de los IIR se propuso una
transferencia “pasa todo” que impone a la salida un retardo de grupo casi constante
solamente en la banda de paso de los filtros pasabanda. Los resultados obtenidos
fueron muy buenos.
XVII
Bibliografía
Libros:
[3] Gan & Kuo “ Embedded Signal Processing with the Micro Signal Architecture
(2007)
Papers:
[6] John Dattorro “The Implementation of recursive digital filters for high
fidelity audio ” (1988)
Presentaciones:
XVIII