filtros iir en fpga - sase.com.ar · filtros iir en fpga disertantes: marcos cervetto ingeniero...
Post on 24-Apr-2018
249 Views
Preview:
TRANSCRIPT
Filtros IIR en FPGADisertantes:Marcos CervettoIngeniero Electrónico - UBALaboratorio de Radiocomunicaciones - INTIEdgardo MarchiIngeniero Electrónico - UBALaboratorio de Radiocomunicaciones - INTI
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Introducción
Técnicas de diseño de IIR
¿Por qué?
El diseño de filtros analógicos es un tema ampliamente desarrollado y estudiado
Muchos métodos de diseño analógicos tienen fórmulas cerradas relativamente simples
La aplicación de estas fórmulas en forma directa al caso discreto no lleva a fórmulas cerradas simples
¿Por qué?
El diseño de filtros analógicos es un tema ampliamente desarrollado y estudiado
Muchos métodos de diseño analógicos tienen fórmulas cerradas relativamente simples
La aplicación de estas fórmulas en forma directa al caso discreto no lleva a fórmulas cerradas simples
Filtro analógicoFiltro analógico Filtro discretoFiltro discreto
Introducción
Técnicas de diseño de IIR
Indirecto
Método de invarianza al impulso
Transformación bilineal
Aproximación de derivadas
Directo
Diseño por la aproximación de Padé
Diseño por aproximación de mínimos cuadrados.
Introducción
Tipos clásicos de filtros IIR
Butterworth Chebyshev tipo I
Chebyshev tipo II Elíptico
Banda de paso
Plana(Óptimo) Equiripple Plana Equiripple
Banda de transición
Ancha Moderada Moderada Angosta
Banda de rechazo
Plana Plana Equiripple Equiripple
Orden* Alto Medio Medio Bajo
*En general, el orden del filtro para lograr especificación determinada
Introducción
Estructuras básicas
Nos restringimos a sistemas con transferencia:
Racional
Estable
Causal
De coeficientes reales
0
1
( )1
Mk
kkN
kk
k
b zH z
a z
-
=
-
=
=-
å
å0
1
( )1
Mk
kkN
kk
k
b zH z
a z
-
=
-
=
=-
å
å
Introducción
Estructuras básicas
Ejemplo
01 2
1 2
( )1
bH z
a z a z- -=- -
1 2 0[ ] [ 1] [ 2] [ ]y n a y n a y n b x n= - + - +
Introducción
Estructuras básicas
Ejemplo
3[ 1] [ ] [ ]
4y n y n x n+ = +
LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;
ENTITY iir ISPORT (x_in : IN STD_LOGIC_VECTOR(15 downto 0) ; -- Input y_out : OUT STD_LOGIC_VECTOR(15 downto 0); -- Result clk : IN STD_LOGIC; rst : IN STD_LOGIC );END iir;
ARCHITECTURE fpga OF iir ISSIGNAL x_u, y_u: signed(15 downto 0);BEGIN
PROCESS(clk, rst) -- Use FF for input and recursive part BEGIN if rst = '1' then y_u <= (others => '0'); elsif (clk = '1' and clk'event) then y_u <= x_u + y_u/4 + y_u/2; end if; end process;
x_u <= signed(x_in);y_out <= std_logic_vector(y_u); -- Connect y to output pins
END fpga;
Introducción
Estructuras básicas
1 0
[ ] [ ] [ ]N M
k kk k
y n a y n k b x n k= =
- - = -å å
0
1
( )1
Mk
kkN
kk
k
b zH z
a z
-
=
-
=
=-
å
å
Ecuación en diferencias
Transferencia
Introducción
Estructuras básicas
1 0
[ ] [ ] [ ]N M
k kk k
y n a y n k b x n k= =
- - = -å åForma directa I
Introducción
Estructuras básicas
Forma directa I
Se puede pensar como una sección todo cero (forward filter) seguida de una sección todo polo
No hay posibilidad de “overflow interno” en punto fijo si el resultado es válido. La mayoría de las estructuras IIR no poseen esta propiedad.
Tiene el doble de delays de los que son necesarios
Como todas las formas directas, es sensible a los errores introducidos por la cuantificación de los coeficientes
Es usado para implementaciones de 1er o 2do orden
Introducción
Estructuras básicas
BOOST ATTENUATION
BOOST:
>> Rango dinámico
ATTENUATION:
<< Rango dinámico
Introducción
Estructuras básicas
Forma directa II ó canónica
Se puede pensar como una sección todo polo (IIR) seguida de una sección todo cero (FIR)
Existe posibilidad de overflow
Es canónico. Tiene la mínima cantidad de delays
Como todas las formas directas, es sensible a los errores introducidos por el redondeo de los coeficientes
Su uso es limitado debido a que necesita acomodar mayor rango dinámico en la sección IIR
Introducción
Estructuras básicas
Forma Directa II Traspuesta
Primero los ceros y depués los polos
Posee robustez numérica frente a overflow
Es canónico
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Introducción
Cuántización
Al cuantizar, hay que verificar que el filtro siga cumpliendo con las especificaciones
Analizar los efectos de la cuantización en forma general, es sumamente complejo. Hay resultados y principios generales que orientan el diseño
Cuantización
Cuantización de coeficientes
Cuantización aritmética
Introducción
Cuántización
Cuantización aritmética
Factores de interés:
Ancho de palabra
Wrapping / saturación
Truncado / redondeo
Escalado en diferentes etapas
Estabilidad: polos cercanos a la circunferencia unitaria
Introducción
Cuántización
Los polos y los ceros se desplazan de sus posiciones por efecto numérico. La respuesta en frecuencia varía.
Es conveniente analizar la sensibilidad a la cuantización de los coeficientes
0
1
( )1
Mk
kkN
kk
k
b zH z
a z
-
=
-
=
=-
å
å
Volvamos a nuestra querida transferencia
0
1
( )1
Mk
kk
Nk
kk
b zH z
a z
-
=
-
=
=-
å
å
Coeficientes reales
Coeficientes cuantizados
k k ka a a= + D
k k kb b b= + D
Cuantización de coeficientes
Introducción
Cuántización de coeficientes
1
1 1
( ) 1 (1 )NN
kk k
k k
D z a z p z- -
= =
= - = -å Õ 1
1 1
( ) 1 (1 )NN
kk k
k k
D z a z p z- -
= =
= - = -å Õ
k k kp p p= + D
1
Ni
i kk k
pp a
a=
¶D = D
¶å
Debemos relacionar con la el error de cuantización de cada coeficientes ipD kaD
1
1
( )
N kNi
i kNk
i lll i
pp a
p p
-
=
=¹
D = D-
åÕ
Para minimizar el efecto de la cuantización de los coeficientes, los polos (y los ceros)
deben ser distantes entre sí.
Para minimizar el efecto de la cuantización de los coeficientes, los polos (y los ceros)
deben ser distantes entre sí.
Introducción
Ciclos límite
En sistemas recursivos, las alinealidades debida a la aritmética de precisión finita a menudo causan oscilaciones, incluso para entrada nula
Ejemplo: 1 2[ ] [ ] [ [ 1]] [ [ 2]]y n x n Q a y n Q a y n= + - + -) ) )
1
30.110
4a = =
[ ] 0 0x n n= " ³
3[ 1] 0.110
4y - = =)
3[ 2] 1.010
4y - = - =)
[0] 0.110 0.110 1.010 1010y = ´ + ´)
[0] 0.100100 0.100100y = +)
3[0] 0.101 0.101 1.010
4y = + = = -)
3[1] 1.011 1.011 0.110
4y = + = =)
2
31.010
4a = - =
Calculando para n= 0...
Repitiendo el cálculo para n = 1...
Introducción
Cuántización de coeficientes
El efecto de la cuantización de los coeficientes debe tenerse siempre en cuenta, especialmente en IIR, al implementarlo con precisión finita
La estructura del filtro es clave
Se suele dividir un filtro de alto orden en un paralelo o una cascada de filtros de primer y segundo orden
En general, los polos (o ceros) complejos conjugados garantizan un alejamiento suficiente
El efecto de la cuantización de los coeficientes debe tenerse siempre en cuenta, especialmente en IIR, al implementarlo con precisión finita
La estructura del filtro es clave
Se suele dividir un filtro de alto orden en un paralelo o una cascada de filtros de primer y segundo orden
En general, los polos (o ceros) complejos conjugados garantizan un alejamiento suficiente
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Introducción
Estructuras avanzadas
Forma en cascada
1 2
1 2
1 1 * 1
1 1
1 1 * 1
1 1
(1 ) (1 )(1 )( )
(1 ) (1 )(1 )
M M
k k kk kN N
k k kk k
f z g z g zH z A
c z d z d z
- - -
= =
- - -
= =
- - -=
- - -
Õ Õ
Õ Õ
Descomposición en productos de primer orden y de segundo orden
1 22M M M= +1 22N N N= +
Introducción
Estructuras avanzadas
Forma en cascada
En la práctica se agrupan en factores de segundo orden, así:
1 20 1 2
1 21 1 2
( )1
SNk k k
k k k
b b z b zH z
a z a z
- -
- -=
+ +=
- -Õ
Cascada de Formas Directas II
Introducción
Estructuras avanzadas
Forma en paralelo
Descomposición en sumas de primer orden y de segundo orden
1 22N N N= +
pN M N= -
1 2 1
1 1 * 10 1 1
(1 )( )
1 (1 )(1 )
pN N Nk k k k
kk k kk k k
A B e zH z C z
c z d z d z
--
- - -= = =
-= + +
- - -å å å
10 1
1 20 1 1 2
( )1
p sN N
k k kk
k k k k
e e zH z C z
a z a z
--
- -= =
+= +
- -å å
En general, se agrupan en factores de segundo orden
Introducción
Estructuras avanzadas
Cascada y paralelo
Permite independizar un grupo de polos (ceros) de otro
Al minimizar el orden de los subsistemas, se reduce la sensibilidad a la cuantización
Cascada es preferido cuando todas las secciones actúan sobre la misma banda
Paralelo es preferido cuando las secciones actúan en diferentes bandas (filtros multibanda)
En Paralelo no logramos independencia en el control sobre los ceros; dependen de H(z) en su totalidad
En el caso de buscar coeficientes variantes en el tiempo, es más fácil controlarlos
Permite independizar un grupo de polos (ceros) de otro
Al minimizar el orden de los subsistemas, se reduce la sensibilidad a la cuantización
Cascada es preferido cuando todas las secciones actúan sobre la misma banda
Paralelo es preferido cuando las secciones actúan en diferentes bandas (filtros multibanda)
En Paralelo no logramos independencia en el control sobre los ceros; dependen de H(z) en su totalidad
En el caso de buscar coeficientes variantes en el tiempo, es más fácil controlarlos
Polos en:
Introducción
Estructuras avanzadas
Análisis de sección de 2 polos
jz re f±=
1 1
1( )
(1 )(1 )j jH z
re z re zf f- - -=- -
2
1( )
(1 2 cos( ) )H z
r rf=
- +
Introducción
Estructuras avanzadas
Forma acopladaForma acoplada
jz re f±=Polos en:
Misma transferencia
Mayor cantidad de multiplicadores
¿Cuál es la ventaja?
Misma transferencia
Mayor cantidad de multiplicadores
¿Cuál es la ventaja?
Introducción
Resumen de estructuras
Forma Directa I y II (y traspuestos)
Paralelo y Cascada
BiQuad
Normal – cascada de sistemas de variable de estado de 1er o 2do orden
Paralelo normal
Lattice
Wave
General state space
...etc
Forma Directa I y II (y traspuestos)
Paralelo y Cascada
BiQuad
Normal – cascada de sistemas de variable de estado de 1er o 2do orden
Paralelo normal
Lattice
Wave
General state space
...etc
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Filtros IIR rápidos
Técnicas
Introducir pipelines en el feedback muy probablemente mueva los polos de lugar
Hay estrategias para incrementar el throughput que han sido estudiadas:
Look – ahead time domain interleaving
Clustered look – ahead pole/zero assignment
Scaterred look – ahead pole/zero assignment
Procesamiento paralelo
Implementación RNS
Introducir pipelines en el feedback muy probablemente mueva los polos de lugar
Hay estrategias para incrementar el throughput que han sido estudiadas:
Look – ahead time domain interleaving
Clustered look – ahead pole/zero assignment
Scaterred look – ahead pole/zero assignment
Procesamiento paralelo
Implementación RNS
No es tan sencillo usar pipelines como en FIREl problema básico surge porque:
Filtros IIR rápidos
Look – ahead Time Domain Interleaving
Considerando un sistema de 1er orden
[ ] [ 1] [ 1]y n ay n bx n= - + -[ ] [ 1] [ 1]y n ay n bx n= - + -
Filtros IIR rápidos
Look – ahead Time Domain Interleaving
Mirando “adelante” en el tiempo
[ 1] [ ] [ ]y n ay n bx n+ = +2[ 2] [ 1] [ 1] [ ] [ ] [ 1]y n ay n bx n a y n abx n bx n+ = + + + = + + +
1
0
[ ] [ ] [ 1 ]B
B k
k
y n B a y n a bx n B k-
=
+ = + + - -å
Filtros IIR rápidos
Look – ahead Time Domain InterleavingLIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;
ENTITY iir ISPORT (x_in : IN STD_LOGIC_VECTOR(15 downto 0) ; -- Input y_out : OUT STD_LOGIC_VECTOR(15 downto 0); -- Result clk : IN STD_LOGIC; rst : IN STD_LOGIC );END iir;
ARCHITECTURE fpga OF iir IS SIGNAL x_u, y_u, y_d: signed(15 downto 0); SIGNAL x3, sx, y9: signed(15 downto 0);BEGIN
PROCESS(clk, rst) -- Use FF for input and recursive part BEGIN if rst = '1' then y_u <= (others => '0'); if (clk = '1' and clk'event) then x3 <= x_u / 2 + x_u / 4; -- Compute x*3/4 sx <= x_u + x3; -- Sum of x element i.e. output FIR part y9 <= y_u / 2 + y_u / 16; -- Compute y*9/16 y_u <= sx + y9; --- Compute output end if;end process;
x_u <= signed(x_in); y_out <= std_logic_vector(y_u); -- Connect y to output pinsEND fpga;
3
4ab =
1b =
2 9
16a =
Filtros IIR rápidos
Look – ahead Time Domain Interleaving
Propiedades:
La sección forward puede usar pipeline para incrementar throughput
La sección feedback puede usar un multiplicador pipelined para el coeficiente
La ganancia en velocidad es a costa de muchos más recursos
Se incrementa el delay total del sistema
Propiedades:
La sección forward puede usar pipeline para incrementar throughput
La sección feedback puede usar un multiplicador pipelined para el coeficiente
La ganancia en velocidad es a costa de muchos más recursos
Se incrementa el delay total del sistema
Sa
Filtros IIR rápidos
Clustered look – ahead pole/zero assignment
Considerando el siguiente sistema
1 1 1 21 2 1 2 1 2
1 1( )
(1 )(1 ) 1 ( )H z
r z r z r r z r r z- - - -= =- - - + +
11 2
1 1 21 2 1 2 1 2
1 ( )( )
(1 ( ) )(1 ( ) )
r r zH z
r r z r r z r r z
-
- - -
+ +=
+ + - + +
11 2
1 2 1 2 2 31 2 1 2 1 2 1 2 1 2 1 2
1 ( )( )
1 ( ) ( ) ( ) ( )
r r zH z
r r z r r z r r z r r z r r r r z
-
- - - - -
+ +=
- + + + + - + + +
11 22 2 3
1 2 1 2 1 2 1 2
1 ( )( )
1 ( ( ) ) ( )
r r zH z
r r r r z r r r r z
-
- -
+ +=
+ - + + +
11 22 2 3
1 2 1 2 1 2 1 2
1 ( )( )
1 ( ( ) ) ( )
r r zH z
r r r r z r r r r z
-
- -
+ +=
+ - + + +
Agregando un par polo/cero:
Filtros IIR rápidos
Clustered look – ahead pole/zero assignment
1 2 1 1
1 1( )
1 1,25 0,375 (1 0,5 )(1 0,75 )H z
z z z z- - - -= =- + - -
1
2 3
1 1,25( )
1 1,1875 0,4688
zH z
z z
-
- -
+=
- +
Teniendo un sistema de segundo orden
Insertando un polo/cero en -(r1+r2)
La parte recursiva ahora puede ser implementada con una etapa adicional de pipeline
La aniquilación polo/cero tiene que ser perfecta o el sistema puede ser inestable
Pro
Contra
Filtros IIR rápidos
Scattered look – ahead pole/zero assignment
Introduce M-1 polos/ceros dentro de la circunferencia unitaria, por lo cual
no tiene problemas de estabilidad
Se introducen M-1 ceros y polos en:
2jMz rep
±=
Filtros IIR rápidos
Scattered look – ahead pole/zero assignment
1 2 1 1
1 1( )
1 1,25 0,375 (1 0,5 )(1 0,75 )H z
z z z z- - - -= =- + - -
Teniendo el mismo sistema de segundo orden
Insertando un polo/cero en 2
30.5j
z ep
±=
2
30.75j
z ep
±=y en
1 2
1( )
1 1,25 0,375H z
z z- -=- +
1 2 1 2
1 2 1 2
(1 0,5 0,25 )(1 0,75 0,5625 )
(1 0,5 0,25 )(1 0,75 0,5625 )
z z z z
z z z z
- - - -
- - - -
+ + + ++ + + +
1 2 3 4
3 6
1 1,25 1,1875 0,4687 0,1406( )
1 0,5469 0,0527
z z z zH z
z z
- - - -
- -
+ + + +=
- +
De esta forma, la parte recursiva puede contar con 2 etapas de pipeline
adicionales
Filtros IIR rápidos
Clustered look – ahead pole/zero assignment
Para un sistema de primer orden
1
1( )
1H z
az-=
-
11( ) 1H z az-= +
2 22 ( ) 1H z a z-= +
3 4 4
1( )
1H z
a z-=
-
3
11
1( ) ( )
1kk
H z H zaz-=
= =-Õ
1 2 2
4 4
(1 )(1 )( )
1
az a zH z
a z
- -
-
+ +=
-
Filtros IIR rápidos
Clustered/Scattered – ahead Time Domain Interleaving
Propiedades:
Permite eliminar términos de menor orden de la sección feedback
Scattered logra estabilidad
Clustered necesita una aniquilación polo/cero perfecta, si el polo cae por fuera del círculo unitario
En general a mayor grado de pipelining, mayor complejidad
Propiedades:
Permite eliminar términos de menor orden de la sección feedback
Scattered logra estabilidad
Clustered necesita una aniquilación polo/cero perfecta, si el polo cae por fuera del círculo unitario
En general a mayor grado de pipelining, mayor complejidad
Filtros IIR rápidos
Procesamiento paralelo
2[ 2] [ ] [ ] [ 1]y n a y n ax n x n+ = + + +
2[2 2] [2 ] [2 ] [2 1]y k a y k ax k x k+ = + + +2[2 1] [2 1] [2 1] [2 ]y k a y k ax k x k+ = - + - +
[ 2]y n + =
Look ahead
Separación en pares e impares
[ ] [ 1] [ 1]y n ay n x n= - + -
[ 2] [ 1] [ 1]y n ay n x n+ = + + +
Filtros IIR rápidos
Procesamiento paralelo
Cada rama corre a ½ de la tasa de muestreoCada rama corre a ½ de la tasa de muestreo
Filtros IIR rápidos
Procesamiento paralelo
Propiedades:
Cada camino IIR corre a 1/P veces la tasa de muestreo
Como a la salida y a la entrada se usan mux y demux respectivamente, es esperable que puedan ejecutarse a mayor frecuencia
Cada camino tiene P veces más tiempo para computar su salida
Usa muchos recursos a cambio de un gran aumento de un velocidad
Propiedades:
Cada camino IIR corre a 1/P veces la tasa de muestreo
Como a la salida y a la entrada se usan mux y demux respectivamente, es esperable que puedan ejecutarse a mayor frecuencia
Cada camino tiene P veces más tiempo para computar su salida
Usa muchos recursos a cambio de un gran aumento de un velocidad
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Filtros IIR rápidos
Sistema RNS
El primer documento conocido que menciona el Sistema Númerico de Residuos
(RNS) data de hace más de 1500 años. Sun Tzu, su autor, lo menciona en forma de
acertijo matemático, y dice más o menos esto:
Tenemos cosas de las cuales no sabemos su número,Si las contamos de a tres, nos sobran dosSi las contamos de a cinco, nos sobran tresSi las contamos de a siete, nos sobran dos¿Cuántas cosas tenemos?
Filtros IIR rápidos
Sistema RNS
En otras palabras, lo que nos pregunta el acertijo es:
¿Qué número produce los restos (residuos) 2, 3 y 2 cuando es
dividido por 3, 5 y 7 respectivamente?
¿Qué número produce los restos (residuos) 2, 3 y 2 cuando es
dividido por 3, 5 y 7 respectivamente?
En notación de residuos:
(7|5|3)(2 | 3 | 2)RNS
La respuesta fue dada en forma general por el Chinese Remainder Theorem
(Teorema del Resto Chino) en el año 1247, por un matemático chino, Qin Jiushao.
La solución general no es trivial; en este caso es 86.
La respuesta fue dada en forma general por el Chinese Remainder Theorem
(Teorema del Resto Chino) en el año 1247, por un matemático chino, Qin Jiushao.
La solución general no es trivial; en este caso es 86.
x =
Filtros IIR rápidos
Sistema RNS
¿De donde nace el interés por este problema?
- Un poco de historia: en los '50s fue redescubierto en el ámbito de la computación,
buscando un sistema aritmético veloz y tolerante a fallas
- RNS posee estas capacidades:
- En suma y producto, no posee propagación de carry. La propagación de
carry es el mayor factor limitante de la velocidad en estas operaciones
- La suma, resta y producto son completamente paralelizables
- Como las representaciones de los residuos no poseen peso, un error de
posición en un dígito, no afecta al resto de los dígitos
- Un poco de historia: en los '50s fue redescubierto en el ámbito de la computación,
buscando un sistema aritmético veloz y tolerante a fallas
- RNS posee estas capacidades:
- En suma y producto, no posee propagación de carry. La propagación de
carry es el mayor factor limitante de la velocidad en estas operaciones
- La suma, resta y producto son completamente paralelizables
- Como las representaciones de los residuos no poseen peso, un error de
posición en un dígito, no afecta al resto de los dígitos
Filtros IIR rápidos
Sistema RNS
Aplicaciones actuales
- Sistemas de alta velocidad
- Sistemas de comunicaciones
- Soluciones basadas en FPGAs
- Filtrado (FIR, IIR)
- Transformaciones lineales (o las que conlleven gran cantidad de productos y sumas)
- Sistemas adaptativos
- Criptografía
- Procesamiento de imágenes
- Procesamiento del habla
- Sistemas de alta velocidad
- Sistemas de comunicaciones
- Soluciones basadas en FPGAs
- Filtrado (FIR, IIR)
- Transformaciones lineales (o las que conlleven gran cantidad de productos y sumas)
- Sistemas adaptativos
- Criptografía
- Procesamiento de imágenes
- Procesamiento del habla
Filtros IIR rápidos
Sistema RNS
Definición: En un sistema RNS, un número es representado por una
lista de sus residuos con respecto a módulos primos entre sí
xk
1 1 0km m m- > > >L
Ejemplo: Suponemos el siguiente sistema RNS
(8 | 7 | 5 | 3)RNS
(8|7|5|3)21 (5 | 0 |1| 0)RNS=
(8|7|5|3)8 (0 |1| 3 | 2)RNS=
(8|7|5|3)64 (0 |1| 4 |1)RNS=
Definición: Se define rango dinámico a 1 2 1 0k kM m m mm- -= LEn este caso, M = 8 x 7 x 5 x 3 = 840
8 7 5 3( 21 | 21 | 21 | 21 )=
8 7 5 3( 8 | 8 | 8 | 8 )=
8 7 5 3( 64 | 64 | 64 | 64 )=
Filtros IIR rápidos
Sistema RNS
estos 840 valores pueden ser usados para representar números de
0 a 839, de -420 a 419, o de cualquier otro rango entero.
Debido a la igualdadi im m
x M x- = -
(8|7|5|3)(0 | 0 | 0 | 0)RNS representa 0 ó 840 ó...
(8|7|5|3)(1|1|1|1)RNS representa 1 ó 841 ó...
(8|7|5|3)(0 |1| 3 | 2)RNS representa 8 ó 848 ó...
(8|7|5|3)(2 | 0 | 0 | 2)RNS representa -70 ó 770 ó...
(8|7|5|3)(7 | 6 | 4 | 2)RNS representa -1 ó 839 ó...
(8|7|5|3)(6 | 0 | 0 |1)RNS representa 70 ó 910 ó...
Filtros IIR rápidos
Sistema RNS
Operaciones
(8|7|5|3)(5 | 5 | 0 | 2)RNS representa x=5
(8|7|5|3)(7 | 6 | 4 | 2)RNS representa y=-1
(8|7|5|3)(4 | 4 | 4 |1)RNS
(8|7|5|3)(6 | 6 |1| 0)RNS
(8|7|5|3)(3 | 2 | 0 |1)RNS
x+y:
x-y:
Suma
Resta
Multiplicación
xy:
(8|7|5|3)8 7 5 3( 5 7 | 5 6 | 0 4 | 2 2 )RNS+ + + +
(8|7|5|3)8 7 5 3( 5 7 | 5 6 | 0 4 | 2 2 )RNS- - - -
(8|7|5|3)8 7 5 3( 5 7 | 5 6 | 0 4 | 2 2 )RNS´ ´ ´ ´
Filtros IIR rápidos
Sistema RNS
Operaciones óptimas en RNS: suma, resta, multiplicación ---> ¡Filtros!
Operaciones difíciles en RNS: - Comparación de módulo
- Detección de signo
- Division
- Escalado, redondeo, truncado
- Detección de overflow
Filtros IIR rápidos
Sistema RNS
Para la misma performance, las implementaciones en RNS tienen menor consumo y menor área
Filtros IIR en FPGA
Agenda
Introducción
Estructuras básicas
Cuantización
Estructuras avanzadas
Filtros IIR rápidos
Sistema RNS
Resumen
Resumen
Comparativa IIR vs FIR
Ventajas:
Diseño estándar usando un prototipo analógico está muy bien estudiado
Filtros altamente selectivos pueden ser realizados con diseños de bajo orden y correr a altas tasas
Para el mismo esquema de tolerancia, los filtros IIR resultan más cortos que los FIR
Ventajas:
Diseño estándar usando un prototipo analógico está muy bien estudiado
Filtros altamente selectivos pueden ser realizados con diseños de bajo orden y correr a altas tasas
Para el mismo esquema de tolerancia, los filtros IIR resultan más cortos que los FIR
IIR
Resumen
Comparativa IIR vs FIR
Desventajas:
Fase no lineal
Para implementaciones enteras, puede haber ciclos límite
Los diseños multibanda son difíciles. Sólo se diseñan pasabajo, pasaalto o pasabanda
La realimentación puede introducir inestabilidad
Es difícil obtener diseños de muy alta velocidad, con alto grado de pipelining
Desventajas:
Fase no lineal
Para implementaciones enteras, puede haber ciclos límite
Los diseños multibanda son difíciles. Sólo se diseñan pasabajo, pasaalto o pasabanda
La realimentación puede introducir inestabilidad
Es difícil obtener diseños de muy alta velocidad, con alto grado de pipelining
IIR
Resumen
Comparativa IIR vs FIR
Ventajas:
Es sencillo lograr fase lineal
Los filtros multibanda son una realidad con FIR
Los filtros FIR no recursivos son siempre estables y no tienen ciclos límite
Es sencillo tener altas velocidades, con alto grado de pipelining
El redondeo aritmético tiene un impacto relativamente leve y el ruido de cuantización es bien definido
Ventajas:
Es sencillo lograr fase lineal
Los filtros multibanda son una realidad con FIR
Los filtros FIR no recursivos son siempre estables y no tienen ciclos límite
Es sencillo tener altas velocidades, con alto grado de pipelining
El redondeo aritmético tiene un impacto relativamente leve y el ruido de cuantización es bien definido
FIR
Resumen
Comparativa IIR vs FIR
Desventajas:
Se debe tener acceso a los algoritmos de Parks – McClellan para una implementación óptima
Filtros de alto orden requieren un alto esfuerzo de implementación
Filtros de alto orden requieren muchos coeficientes y muchos recursos
Desventajas:
Se debe tener acceso a los algoritmos de Parks – McClellan para una implementación óptima
Filtros de alto orden requieren un alto esfuerzo de implementación
Filtros de alto orden requieren muchos coeficientes y muchos recursos
FIR
Filtros IIR en FPGA
Bibliografía
Discrete-Time Signal Processing– A. Oppenheim, R. Schafer
Digital Signal Processing – J. Proakis, D. Manolakis
Digital signal processing with FPGA – Meyer-Baese
FIUBABuenos Aires, Argentinacervetto@inti.gob.aremarchi@inti.gob.ar
Agosto de 2012
top related