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

Documentos relacionados