Implementación de DSP - Universidad de Buenos Aires
Transcripción
Implementación de DSP - Universidad de Buenos Aires
Implementación de Procesamiento de Señales - Introducción a estructuras y cuantización - Sebastián E. Garcı́a sebastianatslabscomar Seminario de Sistemas Embebidos Departamento de Electrónica Facultad de Ingenierı́a - Universidad de Buenos Aires Material disponible en: http://laboratorios.fi.uba.ar/lse/seminario/ Junio de 2010 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 1 / 34 Hoja de ruta 1 Estructuras de realización de filtros digitales 2 Introducción a los efectos de cuantización 3 Efectos FWL: Coeficientes 4 Efectos FWL: Señal Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 2 / 34 Ecuación en diferencias Partimos de la sub-clase de sistemas de tiempo discreto LTI causales, caracterizados por una ecuación en diferencias lineal de orden Max{M, N}, a coeficientes constantes, con condiciones iniciales nulas: N X ak y [n − k] = k=0 M X bk x[n − k] k=0 Normalizando al coef. a0 , renombrando, despejando, obtenemos: y [n] = M X k=0 bk x[n − k] − N X ak y [n − k] k=1 Esta ecuación en diferencias nos dá una forma directa, explı́cita, de obtener la salida y [n]. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 3 / 34 Forma Directa I b0 x[n] v [n] y [n] z −1 z −1 −a1 b1 z −1 z −1 bM −aM z −1 −aN Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 4 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Coeficientes feedforward, coeficientes feedback. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Coeficientes feedforward, coeficientes feedback. Implementación de ceros y polos. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Coeficientes feedforward, coeficientes feedback. Implementación de ceros y polos. Filtros IIR, FIR. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Coeficientes feedforward, coeficientes feedback. Implementación de ceros y polos. Filtros IIR, FIR. Implementación en un microprocesador: “tiempo real,” retardos, consideraciones. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 F.D. I: Definiciones y observaciones. Retardos, multiplicaciones, sumas. Realimentación de muestras anteriores de salida. Coeficientes feedforward, coeficientes feedback. Implementación de ceros y polos. Filtros IIR, FIR. Implementación en un microprocesador: “tiempo real,” retardos, consideraciones. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 5 / 34 Signal flow graph de forma directa I b0 x[n] Sebastián E. Garcı́a (FIUBA) y[n] z −1 b1 −a1 z −1 z −1 b2 −a2 z −1 −a3 z −1 Implementación de DSP Junio de 2010 6 / 34 Función transferencia Aplicando transformada Z. . . H(z) , M X Y (z) = X (z) bk z −k k=0 N X 1+ ak z −k k=1 M ! X 1 −k bk z H(z) = H2 (z)H1 (z) = N 1 + X a z −k k=0 k k=1 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 7 / 34 Función transferencia Aplicando transformada Z. . . H(z) , M X Y (z) = X (z) bk z −k k=0 N X 1+ ak z −k k=1 M ! X 1 −k bk z H(z) = H2 (z)H1 (z) = N 1 + X a z −k k=0 k k=1 H(z) = H1 (z)H2 (z) = M X k=0 bk z −k ! 1 N X 1 + ak z −k k=1 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 7 / 34 Función transferencia Aplicando transformada Z. . . H(z) , M X Y (z) = X (z) bk z −k k=0 N X 1+ ak z −k k=1 M ! X 1 −k bk z H(z) = H2 (z)H1 (z) = N 1 + X a z −k k=0 k k=1 H(z) = H1 (z)H2 (z) = M X k=0 bk z −k ! 1 N X 1 + ak z −k k=1 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 7 / 34 Intercambiando los subsistemas en cascada. . . b0 w [n] x[n] z −1 y [n] z −1 −a1 b1 z −1 z −1 −aM bM z −1 −aN Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 8 / 34 Forma directa tipo II w [n] b0 x[n] y [n] z −1 −a1 b1 z −1 −aM bM z −1 −aN Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 9 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. En un sistema digital real, debemos considerar: I Complejidad computacional, multiplicaciones, memoria (volátil y no-volátil). Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. En un sistema digital real, debemos considerar: I Complejidad computacional, multiplicaciones, memoria (volátil y no-volátil). Tiempo de ejecución (µDSP). Cantidad de recursos/área (FPGA, ASIC). Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. En un sistema digital real, debemos considerar: I I Complejidad computacional, multiplicaciones, memoria (volátil y no-volátil). Tiempo de ejecución (µDSP). Cantidad de recursos/área (FPGA, ASIC). Longitud finita de registros y aritmética de precisión finita. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. En un sistema digital real, debemos considerar: I I I Complejidad computacional, multiplicaciones, memoria (volátil y no-volátil). Tiempo de ejecución (µDSP). Cantidad de recursos/área (FPGA, ASIC). Longitud finita de registros y aritmética de precisión finita. Facilidades de procesamiento provistas por la arquitectura particular de hardware. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Comentarios Transformaciones lineales a las variables de la E.D. original (ideal, precisión infinita): Infinitas realizaciones equivalentes (entrada-salida) para un mismo sistema. Internamente, diferentes realizaciones representan distintos algoritmos, con distintas propiedades. En un sistema digital real, debemos considerar: I I I Complejidad computacional, multiplicaciones, memoria (volátil y no-volátil). Tiempo de ejecución (µDSP). Cantidad de recursos/área (FPGA, ASIC). Longitud finita de registros y aritmética de precisión finita. Facilidades de procesamiento provistas por la arquitectura particular de hardware. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 10 / 34 Forma en Cascada Factorizando los polinomios en z −1 de numerador y denominador de H(z): M1 Y H(z) = A (1 − fk z −1 ) k=1 N1 Y (1 − ck z −1 ) k=1 M2 Y (1 − gk z −1 )(1 − gk∗ z −1 ) k=1 N2 Y , (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde M = M1 + 2M2 y N = N1 + 2N2 . Los factores de primer orden representan ceros reales en fk y polos reales en ck . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 11 / 34 Forma en Cascada Factorizando los polinomios en z −1 de numerador y denominador de H(z): M1 Y H(z) = A (1 − fk z −1 ) k=1 N1 Y (1 − ck z −1 ) k=1 M2 Y (1 − gk z −1 )(1 − gk∗ z −1 ) k=1 N2 Y , (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde M = M1 + 2M2 y N = N1 + 2N2 . Los factores de primer orden representan ceros reales en fk y polos reales en ck . Los factores de segundo orden representan pares de polos complejos conjugados en dk y dk∗ , y pares de ceros complejos conjugados en gk y gk ∗. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 11 / 34 Forma en Cascada Factorizando los polinomios en z −1 de numerador y denominador de H(z): M1 Y H(z) = A (1 − fk z −1 ) k=1 N1 Y (1 − ck z −1 ) k=1 M2 Y (1 − gk z −1 )(1 − gk∗ z −1 ) k=1 N2 Y , (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde M = M1 + 2M2 y N = N1 + 2N2 . Los factores de primer orden representan ceros reales en fk y polos reales en ck . Los factores de segundo orden representan pares de polos complejos conjugados en dk y dk∗ , y pares de ceros complejos conjugados en gk y gk ∗. Esta ecuación sugiere una clase de estructuras compuesta por sistemas de primer y segundo orden interconectadas en cascada. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 11 / 34 Forma en Cascada Factorizando los polinomios en z −1 de numerador y denominador de H(z): M1 Y H(z) = A (1 − fk z −1 ) k=1 N1 Y (1 − ck z −1 ) k=1 M2 Y (1 − gk z −1 )(1 − gk∗ z −1 ) k=1 N2 Y , (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde M = M1 + 2M2 y N = N1 + 2N2 . Los factores de primer orden representan ceros reales en fk y polos reales en ck . Los factores de segundo orden representan pares de polos complejos conjugados en dk y dk∗ , y pares de ceros complejos conjugados en gk y gk ∗. Esta ecuación sugiere una clase de estructuras compuesta por sistemas de primer y segundo orden interconectadas en cascada. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 11 / 34 Forma en Cascada Combinando pares de factores reales, y pares complejos conjugados en factores de segundo orden, se obtiene una estructura modular ventajosa para varios tipos de implementaciones. H(z) = Ns Y b0k + b1k z −1 + b2k z −2 , 1 − a1k z −1 − a2k z −2 k=1 ; donde Ns = b(N + 1)/2c, es la función floor{(N + 1)/2} Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 12 / 34 Forma en Cascada Combinando pares de factores reales, y pares complejos conjugados en factores de segundo orden, se obtiene una estructura modular ventajosa para varios tipos de implementaciones. H(z) = Ns Y b0k + b1k z −1 + b2k z −2 , 1 − a1k z −1 − a2k z −2 k=1 ; donde Ns = b(N + 1)/2c, es la función floor{(N + 1)/2} Notamos: Serie de k etapas discretas bi-cuadráticas (“biquads”) en cascada, pudiendo implementar cada una con una forma directa II. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 12 / 34 Forma en Cascada Combinando pares de factores reales, y pares complejos conjugados en factores de segundo orden, se obtiene una estructura modular ventajosa para varios tipos de implementaciones. H(z) = Ns Y b0k + b1k z −1 + b2k z −2 , 1 − a1k z −1 − a2k z −2 k=1 ; donde Ns = b(N + 1)/2c, es la función floor{(N + 1)/2} Notamos: Serie de k etapas discretas bi-cuadráticas (“biquads”) en cascada, pudiendo implementar cada una con una forma directa II. Podemos aparear polos y ceros y ubicar las etapas de segundo orden según conveniencia. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 12 / 34 Forma en Cascada Combinando pares de factores reales, y pares complejos conjugados en factores de segundo orden, se obtiene una estructura modular ventajosa para varios tipos de implementaciones. H(z) = Ns Y b0k + b1k z −1 + b2k z −2 , 1 − a1k z −1 − a2k z −2 k=1 ; donde Ns = b(N + 1)/2c, es la función floor{(N + 1)/2} Notamos: Serie de k etapas discretas bi-cuadráticas (“biquads”) en cascada, pudiendo implementar cada una con una forma directa II. Podemos aparear polos y ceros y ubicar las etapas de segundo orden según conveniencia. (pizarrón. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 12 / 34 Forma en Cascada Combinando pares de factores reales, y pares complejos conjugados en factores de segundo orden, se obtiene una estructura modular ventajosa para varios tipos de implementaciones. H(z) = Ns Y b0k + b1k z −1 + b2k z −2 , 1 − a1k z −1 − a2k z −2 k=1 ; donde Ns = b(N + 1)/2c, es la función floor{(N + 1)/2} Notamos: Serie de k etapas discretas bi-cuadráticas (“biquads”) en cascada, pudiendo implementar cada una con una forma directa II. Podemos aparear polos y ceros y ubicar las etapas de segundo orden según conveniencia. (pizarrón. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 12 / 34 Forma Paralela Otra forma de expresar una H(z) racional, es realizar una expansión en fracciones parciales: H(z) = Np X Ck z −1 k=0 + N1 X k=1 N 2 X Bk (1 − ek z −1 ) Ak + 1 − ck z −1 (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde N = N1 + 2N2 . Si Np = M − N < 0, la primera suma debe omitirse. O sea, quedó una combinación en paralelo de sistemas IIR de primer y segundo orden, con Np caminos de retardo. Agrupando los polos reales de a pares: H(z) = Np X k=0 Ck z −1 + Ns X k=1 e0k + e1k z −1 1 − a1k z −1 − a2k z −2 ; donde Ns = b(N + 1)/2c. Si Np = M − N < 0, la primera suma debe omitirse. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 13 / 34 Forma Paralela Otra forma de expresar una H(z) racional, es realizar una expansión en fracciones parciales: H(z) = Np X Ck z −1 k=0 + N1 X k=1 N 2 X Bk (1 − ek z −1 ) Ak + 1 − ck z −1 (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde N = N1 + 2N2 . Si Np = M − N < 0, la primera suma debe omitirse. O sea, quedó una combinación en paralelo de sistemas IIR de primer y segundo orden, con Np caminos de retardo. Agrupando los polos reales de a pares: H(z) = Np X k=0 Ck z −1 + Ns X k=1 e0k + e1k z −1 1 − a1k z −1 − a2k z −2 ; donde Ns = b(N + 1)/2c. Si Np = M − N < 0, la primera suma debe omitirse. (pizarrón. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 13 / 34 Forma Paralela Otra forma de expresar una H(z) racional, es realizar una expansión en fracciones parciales: H(z) = Np X Ck z −1 k=0 + N1 X k=1 N 2 X Bk (1 − ek z −1 ) Ak + 1 − ck z −1 (1 − dk z −1 )(1 − dk∗ z −1 ) k=1 ; donde N = N1 + 2N2 . Si Np = M − N < 0, la primera suma debe omitirse. O sea, quedó una combinación en paralelo de sistemas IIR de primer y segundo orden, con Np caminos de retardo. Agrupando los polos reales de a pares: H(z) = Np X k=0 Ck z −1 + Ns X k=1 e0k + e1k z −1 1 − a1k z −1 − a2k z −2 ; donde Ns = b(N + 1)/2c. Si Np = M − N < 0, la primera suma debe omitirse. (pizarrón. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 13 / 34 Toda una variedad de estructuras. . . Formas traspuestas, Lattice, Espacio de estados, . . . etc. La elección y sus variantes dependerán de la conveniencia, dado un problema a resolver sobre un hardware determinado. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 14 / 34 Cuantización en conversión A/D ADC: x(t) C /D x[n] Q{·} x̂[n] Codif −−−−→. x̂B [n] −−→ −−→ C/D: muestreo en tiempo (modulador por tren de deltas) + ZOH Operador Cuantización: x̂[n] = Q{ x[n] } Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 15 / 34 Escalera, cuantización uniforme con (B+1) bits Figura tomada de [Oppenheim-Schafer] Full Scale Range, (FSR) = 2Xm ; Escalón: ∆ = 2Xm 2B+1 −1 ≈ Xm /2B (LSB) Asumimos: x̂[n] = Xm x̂B [n] ; −1 ≤ x̂B [n] < +1 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 16 / 34 Representación fraccionaria de punto fijo Q(1.B) Dado un registro de longitud (B + 1) bits, podemos representar: {x̂B }Q(1.B) = b0 .b−1 · · · b−B 0 = −b0 2 + = −b0 + Sebastián E. Garcı́a (FIUBA) −1 X i=−B b−1 2−1 bi 2 i ; bi ∈ {0, 1} + . . . + b−B 2−B Implementación de DSP Junio de 2010 17 / 34 Longitud de palabra finita (jerga: “FWL”, Finite Word-Length) Error de Cuantización: e[n] = x̂[n] − x[n] (a) No cuantizada; (b) Cuantizada a 3 bits; (c) Error; (d) Error, si fuese a 8 bits. Figura tomada de [Oppenheim-Schafer] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 18 / 34 Longitud de palabra finita (jerga: “FWL”, Finite Word-Length) Error de Cuantización: e[n] = x̂[n] − x[n] (a) No cuantizada; (b) Cuantizada a 3 bits; (c) Error; (d) Error, si fuese a 8 bits. Figura tomada de [Oppenheim-Schafer] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 18 / 34 Error FWL De la escalera: −∆/2 < e[n] ≤ ∆/2 ; vale mientras: (−Xm − ∆/2) < x[n] ≤ (Xm − ∆/2) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 19 / 34 Un modelo lineal para el cuantizador Hipótesis: e[n] sucesión de proceso aleatorio estacionario. e[n] no correlacionada con x[n]. Muestras del error no correlacionadas (e[n] ruido blanco) e[n] con distribución uniforme en su rango de variación. Varianza: σe2 Z ∆/2 = Sebastián E. Garcı́a (FIUBA) −∆/2 e2 ∆2 1 de = ∆ 12 = Implementación de DSP 2−2B Xm2 12 Junio de 2010 20 / 34 Un modelo lineal para el cuantizador Hipótesis: e[n] sucesión de proceso aleatorio estacionario. e[n] no correlacionada con x[n]. Muestras del error no correlacionadas (e[n] ruido blanco) e[n] con distribución uniforme en su rango de variación. Varianza: σe2 Z ∆/2 = Sebastián E. Garcı́a (FIUBA) −∆/2 e2 1 ∆2 de = ∆ 12 = Implementación de DSP 2−2B Xm2 12 Junio de 2010 20 / 34 Modelo lineal - Relación Señal-Ruido(de cuantización) SQNR = = = = σx2 σe2 12 · 22B σx2 10 log10 = 10 log10 = 10 log10 Xm2 2 Xm 10 log10 (22B ) + 10 log10 (12) − 10 log10 σx2 Xm 20 log10 (2) B + 10.8 − 20 log10 σx Xm 6.02 B + 10.8 − 20 log10 σx Sebastián E. Garcı́a (FIUBA) Px Pe Implementación de DSP Junio de 2010 21 / 34 IIR de un Polo - Simplificado, sin cuantización Figura tomada de [Oppenheim-Schafer] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 22 / 34 IIR de un Polo - Agregando cuantizadores Figura tomada de [Oppenheim-Schafer] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 23 / 34 IIR de un Polo - Reemplazando por el modelo lineal Figura tomada de [Oppenheim-Schafer] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 24 / 34 Cuantización de coeficientes en IIR Filtro IIR original: M X H(z) = bk z −k k=0 N X 1+ ak z −k k=1 Recordemos que de esta expresión se desprende la implementación en estructura de Forma Directa I. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 25 / 34 Cuantización de coeficientes en IIR Filtro IIR original: M X H(z) = bk z −k k=0 N X 1+ ak z −k k=1 Recordemos que de esta expresión se desprende la implementación en estructura de Forma Directa I. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 25 / 34 Cuantización de coeficientes en IIR IIR cuantizado: M X Ĥ(z) = b̂k z −k k=0 N X 1+ âk z −k k=1 ; donde: âk = ak + ∆ak ; k = 1, 2, . . . , N. b̂k = bk + ∆bk ; k = 1, 2, . . . , M. Al cuantizar las constantes del filtro. . . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 26 / 34 Cuantización de coeficientes en IIR IIR cuantizado: M X Ĥ(z) = b̂k z −k k=0 N X 1+ âk z −k k=1 ; donde: âk = ak + ∆ak ; k = 1, 2, . . . , N. b̂k = bk + ∆bk ; k = 1, 2, . . . , M. Al cuantizar las constantes del filtro. . . Cambia H(z). . . ¡Polos y ceros diferentes! Cambia la respuesta en frecuencia. Empeora el desempeño, según la sensibilidad de la estructura de realización. En este caso, IIR, el filtro puede volverse inestable. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 26 / 34 Cuantización de coeficientes en IIR IIR cuantizado: M X Ĥ(z) = b̂k z −k k=0 N X 1+ âk z −k k=1 ; donde: âk = ak + ∆ak ; k = 1, 2, . . . , N. b̂k = bk + ∆bk ; k = 1, 2, . . . , M. Al cuantizar las constantes del filtro. . . Cambia H(z). . . ¡Polos y ceros diferentes! Cambia la respuesta en frecuencia. Empeora el desempeño, según la sensibilidad de la estructura de realización. En este caso, IIR, el filtro puede volverse inestable. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 26 / 34 Sensibilidad de H(z) a la perturbación de sus parámetros Denominador de H(z): D(z) = 1 + N X ak z −k = k=1 N Y (1 − pk z −1 ) k=1 ; pk son los polos no nulos de H(z). Denominador de Ĥ(z): D̂(z) = N Y (1 − p̂k z −1 ) ; p̂k = pk + ∆pk . k=1 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 27 / 34 Sensibilidad de H(z) a la perturbación de sus parámetros Denominador de H(z): D(z) = 1 + N X ak z −k = k=1 N Y (1 − pk z −1 ) k=1 ; pk son los polos no nulos de H(z). Denominador de Ĥ(z): D̂(z) = N Y (1 − p̂k z −1 ) ; p̂k = pk + ∆pk . k=1 Error de perturbación: N X ∂pi ∆pi = ∆ak ∂ak k=1 ; donde ∂pi ∂ak es el cambio incremental en polo pi debido al coef. ak . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 27 / 34 Sensibilidad de H(z) a la perturbación de sus parámetros Denominador de H(z): D(z) = 1 + N X ak z −k = k=1 N Y (1 − pk z −1 ) k=1 ; pk son los polos no nulos de H(z). Denominador de Ĥ(z): D̂(z) = N Y (1 − p̂k z −1 ) ; p̂k = pk + ∆pk . k=1 Error de perturbación: N X ∂pi ∆pi = ∆ak ∂ak k=1 ; donde ∂pi ∂ak es el cambio incremental en polo pi debido al coef. ak . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 27 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Estructuras básicas Y útiles: I Cascada Sebastián E. Garcı́a (FIUBA) : control sobre polos y ceros de cada etapa. Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Estructuras básicas Y útiles: I I Cascada : control sobre polos y ceros de cada etapa. X : sin control directo sobre ceros. Paralela Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Estructuras básicas Y útiles: I I Cascada : control sobre polos y ceros de cada etapa. X : sin control directo sobre ceros. Paralela Son útiles las conclusiones generales. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Estructuras básicas Y útiles: I I Cascada : control sobre polos y ceros de cada etapa. X : sin control directo sobre ceros. Paralela Son útiles las conclusiones generales. Casos particulares ⇒ Analizar con MATLAB, Scilab, Octave. . . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Sensibilidad de H(z). . . Operando ([Proakis-Manolakis], p.571) , se obtiene: ∆pi = − N X k=1 piN−k N Y ∆ak (pi − pl ) l=1; l6=i (Hay una expresión similar para la sensibilidad a los ceros). Notar: Polos “apretados” ⇒ errores grandes. Usando biquads, maximizamos |pi − pl | ⇒ minimizamos ∆pi . Estructuras básicas Y útiles: I I Cascada : control sobre polos y ceros de cada etapa. X : sin control directo sobre ceros. Paralela Son útiles las conclusiones generales. Casos particulares ⇒ Analizar con MATLAB, Scilab, Octave. . . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 28 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) I Permite calcular σo2 a la salida. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) I I Permite calcular σo2 a la salida. No hay una “estructura de mı́nimo ruido”; σo2 queda dependiendo de los coefs. del filtro. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) I I Permite calcular σo2 a la salida. No hay una “estructura de mı́nimo ruido”; σo2 queda dependiendo de los coefs. del filtro. Usando un acumulador de precisión extendida (mas de 2B+1 bits) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) I I Permite calcular σo2 a la salida. No hay una “estructura de mı́nimo ruido”; σo2 queda dependiendo de los coefs. del filtro. Usando un acumulador de precisión extendida (mas de 2B+1 bits) I I ⇒ nivel de ruido baja considerablemente. (redondeo sólo a la salida del filtro. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Efectos de redondeo en filtros IIR E.D. con aritmética de precisión finita ⇒ Sistema nolineal. Sin embargo, usando “unos cuantos bits,” el error de tomarlo como lineal se vuelve pequeño. I ¡Salvo en casos de ciclos-lı́mite! Cuantización al truncar/redondear una multiplicación. I (B + 1)x(B + 1) = (2B + 1) Q{·} (B + 1) −−→ Modelo estadı́stico lineal (anda bien en muchos casos) I I Permite calcular σo2 a la salida. No hay una “estructura de mı́nimo ruido”; σo2 queda dependiendo de los coefs. del filtro. Usando un acumulador de precisión extendida (mas de 2B+1 bits) I I ⇒ nivel de ruido baja considerablemente. (redondeo sólo a la salida del filtro. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 29 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sin embargo, a veces se permite desborde en sumas parciales, cuando el resultado final cae dentro del rango numérico (módulo. . . ) Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sin embargo, a veces se permite desborde en sumas parciales, cuando el resultado final cae dentro del rango numérico (módulo. . . ) Una posible solución: todos los nodos de la estructura deben tener magnitud menor a 1. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sin embargo, a veces se permite desborde en sumas parciales, cuando el resultado final cae dentro del rango numérico (módulo. . . ) Una posible solución: todos los nodos de la estructura deben tener magnitud menor a 1. Para esto, se escala la entrada. Existen distintos criterios. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sin embargo, a veces se permite desborde en sumas parciales, cuando el resultado final cae dentro del rango numérico (módulo. . . ) Una posible solución: todos los nodos de la estructura deben tener magnitud menor a 1. Para esto, se escala la entrada. Existen distintos criterios. Un criterio. Si wk [n] es la variable en el k-ésimo nodo: +∞ +∞ X X |wk [n]| = x[n − m]hk [m] ⇒ |wk [n]| ≤ xmax |hk [m]| m=−∞ Sebastián E. Garcı́a (FIUBA) m=−∞ Implementación de DSP Junio de 2010 30 / 34 Overflow. Escalajes. Problema de desborde de la representación numérica de punto fijo. Al ocurrir overflow, el nivel de ruido crece abruptamente, y podemos perder el control del procesamiento . Podemos evitarlo en multiplicadores, con operandos de magnitud menor a 1. Aún ası́, en los sumadores podemos tener desbordes. Los µDSP proveen la opción de saturación, la cual suele ser menos destructiva que el salto abrupto. Sin embargo, a veces se permite desborde en sumas parciales, cuando el resultado final cae dentro del rango numérico (módulo. . . ) Una posible solución: todos los nodos de la estructura deben tener magnitud menor a 1. Para esto, se escala la entrada. Existen distintos criterios. Un criterio. Si wk [n] es la variable en el k-ésimo nodo: +∞ +∞ X X |wk [n]| = x[n − m]hk [m] ⇒ |wk [n]| ≤ xmax |hk [m]| m=−∞ Sebastián E. Garcı́a (FIUBA) m=−∞ Implementación de DSP Junio de 2010 30 / 34 Escalajes: un criterio Fijando |wk [n]| < 1, ∀k, obtenemos: 1 xmax < " máx k +∞ X # |hk [m]| m=−∞ O sea, esto es condición suficiente para obtener magnitud menor a 1 en todos los nodos wk de la estructura. Si xmax no cumple esta condición, podemos multiplicar x[n] por un escalaje “s” que la cumpla. Hacer esto nos salva del overflow, pero es muy conservador. Costo: disminuye el rango dinámico y baja la relación señal-ruido. Hay múltiples criterios de escalaje, basados en distintas normas. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 31 / 34 Escalajes: un criterio Fijando |wk [n]| < 1, ∀k, obtenemos: 1 xmax < " máx k +∞ X # |hk [m]| m=−∞ O sea, esto es condición suficiente para obtener magnitud menor a 1 en todos los nodos wk de la estructura. Si xmax no cumple esta condición, podemos multiplicar x[n] por un escalaje “s” que la cumpla. Hacer esto nos salva del overflow, pero es muy conservador. Costo: disminuye el rango dinámico y baja la relación señal-ruido. Hay múltiples criterios de escalaje, basados en distintas normas. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 31 / 34 Ciclos lı́mite (filtros IIR) El fenómeno de “ciclos lı́mite” consiste en la producción auto-sostenida de oscilaciones, a entrada nula. Esto es una caracterı́stica inherente a los sistemas dinámicos nolineales. En la implementación de un filtro digital, este efecto puede llegar a aparecer de dos maneras: Oscilaciones de amplitud pequeña, debidas a la cuantización de redondeo (o truncado), Oscilaciones de mayor amplitud, debidas a la ocurrencia de overflow. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 32 / 34 Ciclos lı́mite (filtros IIR) El fenómeno de “ciclos lı́mite” consiste en la producción auto-sostenida de oscilaciones, a entrada nula. Esto es una caracterı́stica inherente a los sistemas dinámicos nolineales. En la implementación de un filtro digital, este efecto puede llegar a aparecer de dos maneras: Oscilaciones de amplitud pequeña, debidas a la cuantización de redondeo (o truncado), Oscilaciones de mayor amplitud, debidas a la ocurrencia de overflow. Veremos un ejemplo sencillo para clarificar este mecanismo de producción de patrones a la salida. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 32 / 34 Ciclos lı́mite (filtros IIR) El fenómeno de “ciclos lı́mite” consiste en la producción auto-sostenida de oscilaciones, a entrada nula. Esto es una caracterı́stica inherente a los sistemas dinámicos nolineales. En la implementación de un filtro digital, este efecto puede llegar a aparecer de dos maneras: Oscilaciones de amplitud pequeña, debidas a la cuantización de redondeo (o truncado), Oscilaciones de mayor amplitud, debidas a la ocurrencia de overflow. Veremos un ejemplo sencillo para clarificar este mecanismo de producción de patrones a la salida. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 32 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 ŷ [3] = Q{0.100 · 0.010} + 0.000 = Q{0.001000} = 0.001 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 ŷ [3] = Q{0.100 · 0.010} + 0.000 = Q{0.001000} = 0.001 ŷ [4] = Q{0.100 · 0.001} + 0.000 = Q{0.000100} = 0.001 Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 ŷ [3] = Q{0.100 · 0.010} + 0.000 = Q{0.001000} = 0.001 ŷ [4] = Q{0.100 · 0.001} + 0.000 = Q{0.000100} = 0.001 para n > 4 se repite la misma cuenta que para n = 4. . . Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 ŷ [3] = Q{0.100 · 0.010} + 0.000 = Q{0.001000} = 0.001 ŷ [4] = Q{0.100 · 0.001} + 0.000 = Q{0.000100} = 0.001 para n > 4 se repite la misma cuenta que para n = 4. . . La salida se estableció en 18 , siendo que la entrada es nula para n → ∞. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Ejemplo de ciclo lı́mite debido a redondeo Sea la E.D. LTI, causal y estable (polo en z = 12 ): 1 y [n] = y [n − 1] + x[n] 2 Se implementa el formato Q(1.3) sobre registros de 4 bits, cuantizando el resultado de la multiplicación mediante redondeo. La E.D. implementada, entonces, es en realidad nolineal: ŷ [n] = Q {0.100 · ŷ [n − 1]} + x[n] Supongamos una entrada: x[n] = 87 δ[n] = 0.111Q(1.3) δ[n]. Entonces: ŷ [0] = Q{0.100 · 0.000} + 0.111 = 0.111 ŷ [1] = Q{0.100 · 0.111} + 0.000 = Q{0.011100} = 0.100 ŷ [2] = Q{0.100 · 0.100} + 0.000 = Q{0.010000} = 0.010 ŷ [3] = Q{0.100 · 0.010} + 0.000 = Q{0.001000} = 0.001 ŷ [4] = Q{0.100 · 0.001} + 0.000 = Q{0.000100} = 0.001 para n > 4 se repite la misma cuenta que para n = 4. . . La salida se estableció en 18 , siendo que la entrada es nula para n → ∞. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 33 / 34 Referencias I Oppenheim, A., Schafer R., Buck J., “Discrete-Time Signal Processing,” 2nd ed., Prentice Hall 1999. I Proakis J., Manolakis D., “Digital Signal Processing: Principles, Algorithms and Applications,” 3rd ed., Prentice Hall 1996. Sebastián E. Garcı́a (FIUBA) Implementación de DSP Junio de 2010 34 / 34