Professional Documents
Culture Documents
17/11/99
17/11/99
17/11/99
H2
H 1H 2
H1
H 1+ H 2
H2
Conexin en paralelo de dos sistemas
G
-
G
1+GH
H
Un sistema sencillo con realimentacin
17/11/99
Los filtros digitales pueden realizarse usando elementos correspondientes a las operaciones de multiplicacin, adicin y
almacenaje de datos.
El almacenaje de un dato significa retrasar su uso una cantidad normalmente igual al periodo de muestreo. Este retraso se
representa mendiante z-1 (retraso de una unidad), z-2 (dos
unidades, etc).
x[n]
Ax[n]
Elemento Multiplicador
x[n]
z -1
x[n]
x[n-1]
Elemento Almacenador
x[n]y[n]
+
y[n]
Elemento Sumador
17/11/99
B0
y[n]
+
z -1
B1
z -1
B2
z -1
BM
17/11/99
Filtros Autoregresivos: Son filtros recursivos cuya funcin de Transferencia HAR(z) y su correspondiente ecuacin diferencia y[n] son de la forma,
H AR (z ) =
1
1 + A1 z 1 ++ AN z N
y[n]
z -1
+
-A1
z -1
+
-A2
z -1
-AN
17/11/99
B0 + B1 z ++ BM z
1 + A1 z 1 ++ AN z N
= H AR (z )H MA (z )
B0
+
+
y[n]
z -1
z -1
B1
+
+
-A 1
z -1
z -1
B2
+
+
-A 2
z -1
z -1
-A N
BM
HMA(z) HAR(z)
17/11/99
B0
z -1
+
z -1
-A1
B1
z -1
+
y[n]
z -1
-A2
B2
z -1
z -1
-AN
BM
HAR(z)HMA(z)
17/11/99
B0
y[n]
+
z -1
+
-A 1
B1
z -1
+
-A 2
B2
Forma directa II
z -1
-A M
BM
z -1
-A N
17/11/99
10
B0
y[n]
z -1
B1
+
+
-A 1
-A 2
-A M
z -1
B2
+
+
Forma Transpuesta o
Cannica
z -1
BM
+
+
z -1
-A N
17/11/99
11
2
+ a1i z 1 + 1
i =1 a2 i z
L = int
2
i =0
2 i z 2 + 1i z 1 + 1
12
b0
b 01
b 01
z -1
z -1
x[n]
x[n]
+ -a 1 1
b 11
b 11
z -1
z -1
y[n]
-a 2 1
b 0L
b 0L
+ -a 1 L
z -1
z -1
b 1L
b 1L
-a 1 L
z -1
-a 2 L
17/11/99
y[n]
-a 2 1
-a 1 1
z -1
-a 2 L
13
x[n]
+ - 1 1
z -1
1 1
+ - 1 L
1 L
z -1
- 2 1
y[n]
z -1
z -1
1 1
- 2 L
1 L
Forma en Cascada II
x[n]
1 1
0 1
z -1
z -1
- 1 1
1 L
z -1
z -1
- 2 1
0 L
y[n]
- 1 L
- 2 L
14
Efectos de Cuantizacin
17/11/99
15
Efectos de Cuantizacin
17/11/99
16
Efectos de Cuantizacin
s
a -1
a -2
a -1
a -2
...
...
a -b
a -
a -b
El error producido al truncar x es: t = Q(x)-x. El error es cero si todos los bits
rechazados son cero, y ser mximo si todos los bits rechazados son 1. El error
a
2
2
2
=
+
i
i =b +1
2b t 0
A la hora de analizar los errores producidos por el truncamiento se recurre al
anlisis estadstico. Suponiendo una distribucin uniforme de los errores en el
rango (-2-b,0), la media del error es -2-(b+1) y su varianza es 2-b/12. Estos valores
son ciertos en caso de utilizar complemento de 2, lo cual es bastante habitual.
17/11/99
17
Efectos de Cuantizacin
El anlisis se hace sumando una seal de ruido a la seal sin truncar. Esa seal de
error tiene la media y varianzas calculadas previamente.
u[n]
v[n]
v[n]
u[n]
v[n]
v[n]
e [n]
17/11/99
18
Efectos de Cuantizacin
Una forma de evitar el overflow multiplicar las operaciones por un factor que evite
el overflow. Este factor debe ser lgicamente menor que 1, lo que emperora
relacin seal ruido del filtro. Vimos en el captulo 5 que la relacin seal-ruido en
una seal cuantizada es, SNRQ = 10 log Ps + 10.8 20 log D + 6b
Ps es la potencia de la seal de entrada, D es el fondo de escala y b es el nmero de
bits. Ps es proporcional a la varianza de la seal, x2. Si multiplicamos la seal por
un factor A, la potencia de la seal ser A2x2. Sustituyendo en la ecuacin vemos
que si A>1, mejora la SNRQ, pero se corre el peligro de producir overflow. Por el
contrario, un valor de A<1, evita el overflow pero empeora la SNRQ.
17/11/99
19
Efectos de Cuantizacin
y[n]
z -1
17/11/99
20
Efectos de Cuantizacin
=0.1011, y[-1] = 0
17/11/99
=1.1011, y[-1] = 0
y[n-1]
y[n]
y[n-1]
y[n]
0.1101
0.1101
0.10001111
0.1001
1.1000111
1.1001
0.01100011
0.0110
0.0110001
0.0110
0.01000010
0.0100
1.0100001
1.0100
0.00101100
0.0011
0.0010110
0.0011
0.00100001
0.0010
1.0010000
1.0010
0.00010110
0.0001
0.0001011
0.0001
0.00001011
0.0001
1.0000101
1.0001
0.00001011
0.0001
0.0000101
0.0001
21
Efectos de Cuantizacin
Para los dos valores de se observa que cuando >0, la salida tiende a un valor
constante distinto de cero, mientras que si <0, la salida oscila entre dos valores.
Esto se debe a que el sistema tiene un polo efectivo en el crculo unidad. En este
caso el sistema tiene un polo en z=1 para >0, y en z=-1 para <0. Esto implica
y [n 1], > 0
Q ( y [n 1]) =
y [n 1], < 0
El error de cuantizacin debido al redondeo es
Q( y [n 1]) y [n 1]
.
2(1 )
Con esta frmula tenemos delimitado el rango de variacin de los ciclos lmite. Por
tanto, utilizar un mayor nmero de bits de cuantizacin disminuye la amplitud del
ciclo lmite. Esto no es siempre posible, por lo que existen tcnicas de eliminacin
de los ciclos lmites basadas en realizaciones en espacio de estado.
y [n 1]
17/11/99
22
Efectos de Cuantizacin
Cuantizacin de coeficientes : Trataremos de investigar el impacto de la
cuantizacin de los coeficientes del filtro en la funcin de Transferencia del
mismo.
Supongamos una funcin de Transferencia H(z)=1/(1+a1z -1+a2z -2), cuyos polos
complejos son p y p* cumplindose que a1= -2Re(p) y a2=|p|2. Por tanto,
cuantizar a1 significa cuantizar la parte real del polo, mientras que cuantizar a2
significa cuantizar el radio del polo. Esto se muestra en la figura.
Im(z)
-1
-1
R e (z)
17/11/99
23
Efectos de Cuantizacin
17/11/99
Para sistemas de mayor orden es previsible que la sensibilidad de los coeficientes vaya a peor, por lo que realizar filtros que contegan polos (filtros IIR)
de forma directa (formas directa I o II) no es aconsejable. Los coeficientes en
estas forman no nos dicen nada acerca de la situacin de sus polos y mucho
menos acerca de las consecuencias de su cuantizacin.
La solucin es, lgicamente, utilizar las formas Paralelo o Cascada para tener
un mayor control sobre la situacin de los polos al cuantizar.
Estudiamos ahora el efecto de la cuantizacin sobre los ceros. En el caso de
filtros FIR (compuesto exclusivamente por ceros), sabemos que se caracterizan por ser de fase lineal. Esto es debido a que los coeficientes son simtricos
(o asimtricos). Por tanto cuantizar los coeficientes no va a variar la linealidad
de fase del filtro.
Lo que si variar es la magnitud de la respuesta. Se puede demostrar que los
ceros de un filtro FIR o bien estn sobre la circunferencia de radio 1, o estn
en parejas con radios recprocos (ver figura T24). Por tanto, en los filtros FIR
lo normal es utilizar la forma directa (I o II). Tambin se podra utilizar la
forma en cascada pero se utiliza menos.
Captulo 10 : Implementacin de Filtros Digitales
24
Efectos de Cuantizacin
4
3
2
1
0
-1
-2
-3
-4
-4
-2
17/11/99
25
Efectos de Cuantizacin
M 1
M 1
n =0
n =0
( ) = e[n] e
Ee
M 1
n =0
jn
M 1
e[n] e
n =0
jn
M 1
e[n]
n =0
En el peor caso en que todos los errores de redondeo sean mximos, el error del
filtro est acotado por
M
E e j
2
Este lmite es bastante pesimista. Un lmite ms realista se obtiene si suponemos
que la seal e[n] es una variable aleatoria con varianza e2. La varianza de E(ej)
se puede demostrar que es (e2 = 2/12),
sin M 2
sin M
2M 1
2
2
E ( ) = e M 1 +
E ( )
=
M 1 +
sin 12
sin
12
( )
17/11/99
26
Efectos de Cuantizacin
m z m + m1 z m1 ++1 z + 0
n z n + n 1 z n 1 ++ 1 z + 0
Los polos vienen dados por las races del denominador y los polos por
las races del numerador:
N ( z ) = m z m + m1 z m1 ++1 z + 0 = 0
D( z ) = n z n + n 1 z n 1 + 1 z + 0 = 0
Desarrollaremos la sensibilidad de las races a la cuantizacin de los
coeficientes. El mtodo es aplicable tambin a los ceros. Los polos de
D(z) sonj, j=1,2,...,n, pero si uno de los coeficientes k vara en una
cantidad k, habr un cambio j en las races del polinomio.
D z , k = n z n + n 1 z n 1 ++ k z k ++ 1 z + 0 = 0
17/11/99
27
Efectos de Cuantizacin
D(z , k )
z
D (z , k )
z
z = k
k = k 0
j +
z= j0
k +
D(z , k )
k
D(z , k )
k
k = k 0
z= j 0
z = k
k = k 0
k +
k = k 0
D z , k
j =
D z , k
z
j =
)
z = j 0
kj 0
( j 0 i )
n
i =1,i k
k = k 0
17/11/99
28
Efectos de Cuantizacin
17/11/99
29
Efectos de Cuantizacin
Ejemplos en MATLAB
Dado el filtro digital IIR con Fs=25 KHz, cuyos coeficientes B y A son
>> B = [0.0280 -0.0850 0.1037 -0.0942 0.0782 0 -0.0782 0.0942 -0.1037 0.0850 0.0280]
>> A = [1.0000 -5.0041 12.5162 -20.3913 23.8604 -20.8072 13.6498 -6.6537 2.3175 0.5229 0.0594]
Analog(:) Prewarped(-) and Unwarped(--) Spectrum vs f in Hz
1.2
0.8
0.6
0.4
0.2
0
0
17/11/99
2000
4000
6000
8000
10000
12000
14000
30
Efectos de Cuantizacin
>> Bq = round(B*1000)/1000;
>> Aq = round(A*1000)/1000;
>> [H F]=freqz(Bq,Aq,500,25000);plot(F,abs(H));grid;
Respuesta del filtro cuantizado a 3 dgitos decimales
1.2
0.8
0.6
0.4
0.2
0
0
2000
4000
6000
8000
10000
12000
14000
Frecuencia (Hz)
17/11/99
31
Efectos de Cuantizacin
>> [Z P K]=tf2zp(B,A);
>> SOS = zp2sos(Z,P,K,down);SOSq=round(SOS*1000)/1000;M=size(SOS,1);
>> Ht=ones(500,1);for i=1:M;Bsosq=SOSq(i,1:3);Asosq=SOSq(i,4:6);[H
F]=freqz(Bsosq,Asosq,500,25000);Ht=H.*Ht;end;
>> plot(F,abs(Ht));grid;
Realizacin de filtro con Secciones de 2 Orden y
coeficientes cuantizados con 3 decimales
1.2
0.8
0.6
0.4
0.2
17/11/99
2000
4000
6000
8000
Frecuencia (Hz)
10000
12000
14000
32
Implementacin Hardware
Las estructuras ms simples para sumar y restar son las estructuras en serie. El tamao
del circuito es mnimo pero requiere de N ciclos de reloj para producir el resultado (N es
el tamao de los datos en bits). Sin embargo, un circuito tan pequeo (retrasos pequeos)
permite utilizar un reloj de muy alta frecuencia, lo cual compensa el hecho de necesitar
N ciclos.
CLR
CLR
CARRY
IN1
IN2
Full
Adder
Sumador Serie
17/11/99
CARRY
IN1
SUM
IN2
Full
Adder
DIFF
Restador Serie
Captulo 10 : Implementacin de Filtros Digitales
33
Implementacin Hardware
Los sumadores (restadores) en paralelo ms sencillos son los que propagan las llevadas (carry
propagate o ripple carry) de un bit a otro. Como
contrapartida producen los retrasos ms largos.
B3
A3
B2
Ci
Full
Adder
Co
A2
B1
Ci
Full
Adder
Co
A1
B0
Ci
Full
Adder
Co
A0
B3 B2 B1 B0
5V
B3 B2 B1 B0
A3 A2 A1 A0
Ci
Sumador
4 bits
Half
Adder
Co
A3 A2 A1 A0
Co
S3 S2 S1 S0
C
S3
S2
S1
S0
R3 R2 R1 R0
34
Implementacin Hardware
Co = A B + Ci ( A + B)
Cg = A B; Cp = A + B
Co = Cg + Ci Cp
35
Implementacin Hardware
B3 A3
B2 A2
C g2
C g1
C p2
B1 A1
B0 A0
C g0
C p1
S3
S2
S1
S0
17/11/99
36
Implementacin Hardware
A[7:4]
ADDER 4
B[3:0]
A[3:0]
ADDER 4
Co
ADDER 4
S[7:4]
17/11/99
S[3:0]
37
Implementacin Hardware
c 12 (1)
B[11:8]
A[7:4]
c 8 (1)
ADDER 4
c 12 (0)
B[7:4]
A[3:0]
c 4 (1)
ADDER 4
c 8 (0)
c 8 (0)
c 4 (1)
c 4 (0)
c0
CS2
c0
ADDER 4
c 4 (0)
c 4 (1)
c 4 (0)
c0
c 8 (1)
B[3:0]
CS1
CS3
c4
c8
c 12
17/11/99
S[11:8]
S[7:4]
c0
S[3:0]
38
Implementacin Hardware
vn-1
w n-1
FA
cn
s n-1
u1
v1
w1
FA
c2
u0
v0
w0
FA
s1
c1
s0
17/11/99
39
Implementacin Hardware
A8
A7
A6
A5
A4
A3
CSA
A1
CSA
CSA
C
A2
CSA
S
CSA
C
CSA
C
CPA
SA
17/11/99
40
Implementacin Hardware
Ak
Ak
CSA
CPA
CLK
CLR
CLK
CLR
REG
REG
CPA
SA
SA
17/11/99
41
Implementacin Hardware
Multiplicadores de nmeros positivos
P7
A3 B3
P6
A3 B2
A2 B3
P5
A3B1
A2B2
A1B3
P4
A3
B3
A3B0
A2B1
A1B2
A0B3
p3
A2
B2
A2B0
A1B1
A0B2
A1
B1
A1 B0
A0 B1
A0
B0
A0B0
P2
P1
P0
42
Implementacin Hardware
Ripple Carry Multiplier
s'
s'
A3
A2
A1
0
A0
0
B0
B
c'
c
c'
s
FA
c
B1
s
0
B2
0
B3
0
P7
17/11/99
P6
P5
P4
P3
P2
P1
P0
43
Implementacin Hardware
Carry Save Multipliers
A3
A2
0
A1
0
A0
0
0
B0
B1
0
B2
0
B3
ADDER
P7
17/11/99
P6
P5
P4
P3
P2
P1
P0
44
Implementacin Hardware
Wallace Tree
Los productos parciales se calculan todos a la vez en la primera etapa. Luego esos
productos parciales se suman con una carry save adder. Se utilizan para valores
grandes de N y el retraso depende del logaritmo de N.
A
Multiply Modules
CSA Array
CPA
P
17/11/99
45
Implementacin Hardware
Arquitecturas Standard de Multiplicadores
Multiplicand
Shift Left
64 bits
64-bit ALU
Multiplier
Shift Right
32 bits
Control
Product
Write
64 bits
17/11/99
46
Implementacin Hardware
Arquitecturas Standard de Multiplicadores
Multiplicand
32 bits
32-bit ALU
Multiplier
Shift Right
32 bits
Product
Shift Right
Control
Write
64 bits
17/11/99
47
Implementacin Hardware
Arquitecturas Standard de Multiplicadores
Multiplicand
32 bits
32-bit ALU
Product
Shift Right
Control
Write
64 bits
17/11/99
48
Implementacin Hardware
Multiplicadores de nmeros con signo
Algoritmo de Booth
El algoritmo de Booth est basado en una representacin digital denominada
Signed Digit (SD). Para nmeros en base 2, la representacin SD de un dgito
tiene 3 posibles valores (0, 1 y -1), por lo que existe una redundancia (los nmeros
se pueden representar de varias formas). Por ejemplo, el valor -9 (10111), se puede
representar de las siguientes formas con SD de 5 bits:
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
=
=
=
=
=
=
=
8
8
8
16
16
16
16
1
2
4
+4
+8
+8
+8
+1
A=
+ 2 +1
+ 2 +1
1
2 +1
4 + 2 +1
an 1 2
n 1
n2
+ ai 2i
i =0
17/11/99
49
Implementacin Hardware
17/11/99
50
Implementacin Hardware
P
0000
0000
0000
+0101
0101
0010
+1011
1101
1110
+0101
0011
0001
17/11/99
A
1010
1010
0101
0101
1010
a0=a-1=0, sumar 0
Desplazar un bit a la izquierda
a0=0,a-1=1, restar B (1011)
Desplazar un bit a la izquierda
a0=1,a-1=0, sumar B (1011)
1010
1101
1101
1110
51
17/11/99
ALU flexible y rpida: las operaciones estandard (bit a bit, suma, etc),
multiplicaciones, multiplicaciones con acumulacin y desplazamientos
arbitrarios deben ser realizados en un ciclo de reloj.
Rango dinmico extendido para multiplicaciones+acumulacin, de
forma que no ocurra overflow.
Carga de operandos en un ciclo de reloj, lo que significa un direccionamiento flexible para varias memorias de datos.
Hardware especfico que permita el almacenamiento circular.
No son necesarias instrucciones adicionales (condiciones, comparaciones) para bucles y saltos.
52
6WDWXV
2SFRGH
3URFHVVLQJ
8QLW
&RQWURO
8QLW
5HVXOWV
2SHUDQGV
'DWD
%XV
,QVWUXFWLRQV
'DWD
$GGUHVV
'DWDDQG
3URJUDP
0HPRU\
$UTXLWHFWXUDGH9RQ1HXPDQQ
17/11/99
53
6WDWXV
2SFRGH
$ULWKPHWLF
8QLW
'DWD
'DWD$GGUHVV
'DWD
0HPRU\
,QVWUXFWLRQ
&RQWURO
8QLW
17/11/99
,QVWUXFWLRQ$GGUHVV
3URJUDP
0HPRU\
54
,QVWUXFWLRQ6HTXHQFHU
$GGUHVV*HQHUDWLRQ8QLW
,QVWUXFWLRQ0HPRU\
'DWD0HPRU\
,QVWUXFWLRQ5HJLVWHU
'DWD3DWK
3URFHVVLQJ8QLW
,QVWUXFWLRQ'HFRGHU
,QVWUXFWLRQ6WUHDP
17/11/99
'DWD6WUHDP
55
$*8
$*8
'DWD
0HPRU\
'DWD
0HPRU\
'DWD
0HPRU\
'DWD %XV
'DWDSDWK
'DWDSDWK
3URFHVDPLHQWRFRQXQR\GRVEXVHV
17/11/99
56
'DWD<
6KLIW
6KLIW
'DWD<
'DWD;
$UUD\0XOWLSOLHU
$UUD\0XOWLSOLHU
6KLIW
$/8
$/8
6KLIW
6KLIW
08;
08;
5HJLVWHU
$/8
6KLIW
6KLIW
5HJLVWHU
6KLIW
'DWDSDWKEDVDGRHQXQDFRPELQDFLyQGH0XOWLSOLFDGRU
\$/8
17/11/99
57
08;
/HQJWK5HJLVWHU
0RGXOR5HJLVWHU
$GGUHVV5HJLVWHU
$/8
0RGXOR/RJLF
%LW5HYHUVH
$GGUHVV
*HQHUDFLyQGHGLUHFFLRQHVHQXQ'63
17/11/99
58
$GGUHVV
*HQHUDWRU
3URJUDP
&RXQWHU
3URJUDP
0HPRU\
65$0 RU
520
'DWD
0HPRU\
65$0
$GGUHVV
,QVWUXFWLRQV
&DFKH 0HPRU\ "
'DWD
17/11/99
5HJLVWHU
5HJLVWHU
5HJLVWHU
$/8
0$&
6+,)7
5HJLVWHU
5HJLVWHU
5HJLVWHU
,2
,2
%XV
59
520
3URJUDP
'DWD
0HPRU\
65$0
'DWD
0HPRU\
65$0
([WHUQDO
$GGUHVV
%XV
$GGUHVV
$GGUHVV
*HQHUDWRU
,QVWUXFWLRQV
'DWDSDWK
$/808/$&&
'DWD
,2
([WHUQDO
'DWD
%XV
,2 %XV
'LDJUDPDGH%ORTXHVGHO706&
17/11/99
60
17/11/99
61
17/11/99
62
17/11/99
63