Sei sulla pagina 1di 9

Appunti sull’implementazione di un

Numeric Automatic Gain Control


Matteo Mazzotti
17 Luglio 2008

1 Introduzione
Un Numeric Automatic Gain Control (NAGC) é un sistema che ha lo scopo di mantenere costante
la potenza media o la probabilità di clipping del segnale in uscita per un fissato range di potenze del
segnale in ingresso. In pratica si tratta di un dispositivo non lineare con retroazione. Nel seguito
descriviamo un modello di NAGC che consente di ricondursi facilmente ad un modello equivalente
lineare.

2 Schema a blocchi
Si consideri lo schema riportato in figura 1. In linea di principio l’NAGC proposto può vedersi
composto di due distinti blocchi funzionali: il primo si occupa di calcolare l’energia dei campioni
all’interno di una determinata finestra e deve quindi operare alla sample rate dei campioni stessi, RS ,
mentre il secondo aggiorna opportunamente il guadagno dell’amplificatore sulla base del confronto
tra l’energia calcolata ed un valore di riferimento prefissato. Questo secondo blocco, in generale,
lavora ad una frequenza di simbolo inferiore, pari a RDS = RS /R.
In ingresso al sistema sono presenti i segnali tempo-discreti xI [n] e xQ [n], relativi alle vie in fase
ed in quadratura, mentre in uscita si hanno i segnali yI [n] e yQ [n]:

yI [n] = g[n] · xI [n]


yQ [n] = g[n] · xQ [n].

Il segnale s[n] é dato da:


M
X −1 M
X −1
yI2 [n − i] + yQ
2
g 2 [n − i] · x2I [n − i] + x2Q [n − i]
¡ ¢
s[n] = [n − i] = (1)
i=0 i=0

e rappresenta l’energia complessiva dei campioni lungo le due vie all’interno di una finestra di
dimensione M . Assumiamo che la dimensione della finestra sia M = R · N . L’aggiornamento del
guadagno dell’NAGC deve operare su una scala temporale decisamente più lunga rispetto al periodo
di campionamento del segnale e quindi si sottocampiona s[n] ottenendo la successione di valori:

M
X −1
ŝ[m] , s[mR] = g 2 [mR − i] · x2I [mR − i] + x2Q [mR − i]
¡ ¢
i=0
N
X −1 R−1
X
2
x2I [(m − k)R − i] + x2Q [(m − k)R − i]
¡ ¢
= ĝ [m − k] (2)
k=0 i=0

1
!" # %" #
x
!$ # x %$ #
 
 

 # +

Integratore
a finestra mobile
 

Replica  
campioni A

   
 

& 
+

+ 
  -

 
 
 
 

  

Figure 1: Schema a blocchi dell’NAGC.

dove si é posto ĝ[m] , g[mR] = g[mR − 1] = · · · = g[mR − R + 1], dal momento che il guadagno
viene modificato con rate RDS . Ponendo
R−1
X
p̂[m] , x2I [mR − i] + x2Q [mR − i]
i=0

l’espressione (2) diventa


N
X −1
ŝ[m] = ĝ 2 [m − k] · p̂[m − k]. (3)
k=0

Per poter linearizzare il sistema, come si vedrà in seguito, il segnale errore ẽ[m] viene calcolato
a partire dalla versione logaritmica di ŝ[m], i.e.

ẽ[m] = s̃[m] − P̃ref [m] (4)

dove s̃[m] , log2 ŝ[m] e P̃ref é il valore di riferimento opportunamente calcolato. Il segnale errore
ẽ[m] viene filtrato dal filtro con funzione di trasferimento H(z). Il blocco di ritardo (z −1 ) é stato
esplicitamente indicato in figura perchè necessario per avere un feedback effettivamente realizzabile
con segnali tempo-discreti, ma, a livello implementativo, può essere considerato parte del filtro di
loop complessivo, avente funzione di trasferimento HL (z) = z −1 H(z).
Indicando con ṽ[m] il segnale in uscita dal filtro H(z), dopo il blocco di elevamento a potenza si
ottiene il valore aggiornato del guadagno dell’amplificatore

ĝ[m] = 2−ṽ[m−1] (5)

che, in seguito all’operazione di up-sampling, viene idealmente replicato R volte nel segnale g[mR +
1] = · · · = g[(m + 1)R] = ĝ[m + 1].

2
'
,-./ )*+

(')*+ 9')*+ 8')*+


-
+
+ +
+ -
<
x
+
:;')* 0 123
2 45
6')*+

07 123

Figure 2: Modello lineare equivalente dell’NAGC.

3 Modello Lineare Equivalente


Facciamo ora l’assunzione semplificativa N = 1 (i.e. la finestra di integrazione ha dimensione
M = R) e mostriamo come il sistema sia descrivibile mediante un modello completamente lineare.
L’equazione (3) diventa semplicemente

ŝ[m] = ĝ 2 [m] · p̂[m],

e, dopo il blocco che calcola il logaritmo, si ha

s̃[m] = 2 log2 ĝ[m] + log2 p̂[m] = 2g̃[m] + p̃[m], (6)

avendo posto g̃[m] , log2 ĝ[m] e p̃[m] , log2 p̂[m]. Il segnale errore diventa

ẽ[m] = 2g̃[m] + p̃[m] − P̃ref [m], (7)

mentre dalla (5) si ottiene immediatamente

g̃[m] = log2 ĝ[m] = ṽ[m − 1] (8)

e, quindi, combinando le equazioni (7) e (8), si ha

ẽ[m] = p̃[m] − P̃ref [m] − 2ṽ[m − 1]. (9)

L’equazione (9) descrive il sistema a retroazione lineare schematizzato in figura 2.


Passando al dominio delle z-trasformate, si ottiene facilmente la funzione di trasferimento che
˜
lega la trasformata dell’ingresso D̃(z) = Z{d[m]}, ˜
con d[m] = p̃[m] − P̃ref [m], alla trasformata del
segnale errore Ẽ(z) = Z{ẽ[m]},

Ẽ(z) 1 1
HCL (z) , = = , (10)
D̃(z) 1 + 2HL (z) 1 + 2z H(z)
−1

ed é quindi possibile studiare il comportamento del sistema in retroazione con diverse scelte del filtro
H(z) e per diversi ingressi.
In maniera del tutto analoga si determina la funzione di trasferimento che lega D̃(z) alla z-
trasfomata del guadagno G̃(z):

G̃(z) HL (z) z −1 H(z)


FCL (z) = =− =− . (11)
D̃(z) 1 + 2HL (z) 1 + 2z −1 H(z)

3
3.0
-1.0 -0.8 -0.6 -0.4 -0.2

2.5
=

H
CG 2.0

CD
C EF
1.5
CD
B
A
@
? 1.0

0.5

0.0 0.5 1.0 1.5 2.0

Max K >
con b = -0.4

Figure 3: Massimo modulo dei poli del sistema ad anello chiuso; −1 < b < 0.

3.1 Filtro del primo ordine


Assumiamo un filtro H(z) del primo ordine, ossia:
K
H(z) = . (12)
1 − az −1
Tale filtro presenta un polo in z = a e la funzione di trasferimento ad anello chiuso diventa

z −1
HCL (z) = . (13)
1 − (a − 2K)z −1
Senza perdere in generalità, supponiamo che fino all’istante 0 il sistema sia perfettamente aggan-
ciato al guadagno obiettivo unitario (i.e. p̃[m] = P̃ref [m] e, pertanto, g̃[m] = ẽ[m] = 0 con m < 0)
e che, a partire da tale istante, la potenza del segnale in ingresso aumenti di un gradino 1 . Questo
significa che si può scrivere
˜
d[m] = A · u[m], (14)
dove, con u[m], si é indicato il gradino unitario tempo-discreto. La sua z-trasformata vale D̃(z) =
1
1−z −1 .
In base al teorema del valore finale per segnali tempo-discreti si ha che, a regime, il segnale errore
vale:

ẽ∞ = lim ẽ[m] = lim (1 − z −1 )Ẽ(z)


m→+∞ z→1
A
= lim (1 − z −1 )HCL (z)D̃(z) = . (15)
z→1 1 − a + 2K
Pertanto l’errore a regime si mantiene limitato, ma la potenza in uscita dall’ amplificatore non
converge al valore obiettivo.

3.2 Filtro del secondo ordine


Assumiamo ora un filtro H(z) del secondo ordine, ossia:
K
H(z) = . (16)
1− az −1 + bz −2
1 In generale il segnale di riferimento P̃ref [m] non varia nel tempo.

4
5
0.2
0.4
0.6
T 4 0.8
OS 1.0
OP
O QR 3
I
OP
N
M
L
K 2

0.0 0.5 1.0


Max K 1.5 J 2.0 2.5 3.0

con b = 0.2

Figure 4: Massimo modulo dei poli del sistema ad anello chiuso; 0 < b < 1.

Tale filtro presenta due poli e la funzione di trasferimento ad anello chiuso diventa

1 − az −1 + bz −2
HCL (z) = . (17)
1 − (a − 2K)z −1 + bz −2

Assumendo lo stesso ingresso a gradino della sezione precedente si ha che l’errore a regime diventa

ẽ∞ = lim (1 − z −1 )Ẽ(z) = lim (1 − z −1 )HCL (z)D̃(z)


z→1 z→1
1−a+b
=A· (18)
1 − a + 2K + b
e si annulla per a = 1 + b. Pertanto, volendo un sistema in grado di inseguire un ingresso a gradino
con errore a regime nullo é necessario ricorrere almeno ad un filtro del secondo ordine, con funzione
di trasferimento
K
H(z) = . (19)
1 − (1 + b)z −1 + bz −2
che porta alle funzioni di trasferimento complessive per il sistema ad anello chiuso

1 − (1 + b)z −1 + bz −2
HCL (z) = (20)
1 − (1 + b − 2K)z −1 + bz −2

z −1 H(z) Kz −1
FCL (z) = − =− . (21)
1 + 2z H(z)
−1 1 − (1 + b − 2K)z −1 + bz −2
I poli di tali funzioni di trasferimento sono pertanto le soluzioni dell’equazione z 2 −(1+b−2K)z +b =
0, ossia q
2
1 + b − 2K ± (1 + b − 2K) − 4b
p1,2 = . (22)
2
Si noti che al variare dei parametri b e K cambiano le posizioni dei poli e altre grandezze caratter-
istiche del sistema in retroazione, come il fattore di overshooting e il settling time. In particolare
occorre prestare attenzione alla stabilità del sistema, verificando che con i valori fissati per b e K i poli
risultino compresi all’interno del cerchio di raggio unitario e centro nell’origine del piano complesso.
In particolare, assumendo K > 0 e sfruttando il metodo del luogo delle radici, si può verificare
che per

1. b ≤ −1: il sistema ad anello ha entrambi i poli reali e non é stabile;

5
+

U VW

X[
X Y
X [
\

+
+ -
Z
UV

Figure 5: Filtro CIC ad uno stadio.

2. −1 < b < 0: il sistema ad anello ha entrambi i poli reali ed stabile per K compresi tra 0 e
valori Kmax dipendenti da b, come si desume dalla figura 3;

3. b = 0: il sistema si riduce ad un sistema con filtro del primo ordine;


4. 0 < b < 1: il sistema ad anello chiuso stabile per K compresi tra 0 e valori Kmax dipendenti
da b, come si desume dalla figura 4.

4 Osservazioni
4.1 Integratore a finestra mobile
Il blocco che esegue l’integrazione discreta a finestra mobile e la decimazione può essere facilmente
realizzato mdiante un filtro CIC ad uno stadio, risparmiando spazio sulla scheda e mantenendo
ridotta la complessità del sistema. Pertanto il blocco indicato con A in figura 1 può essere realizzato
come in figura 5.

4.2 Finestra di integrazione con N > 1


Quando N > 1, ossia quando la linea di ritardo del filtro CIC é composta da più di uno stadio,
l’NAGC non é più modellabile con lo schema lineare di figura 2 e, in generale, conviene fissare
dei parametri (K e b) caratterizzati da una maggiore stabilità. In altre parole il sistema diviene
maggiormente soggetto a fenomeni di instabilità.

4.3 Differenti guadagni d’anello


Può essere conveniente prevedere diversi guadagni d’anello (ad es. K1 e K2 , con K1 > K2 ), da
applicarsi sulla base dell’entità del segnale errore ẽ[m]. Quando il segnale errore supera una prefissata
soglia si usa il guadagno maggiore (K1 ), riducendo il settling time, mentre con segnale errore inferiore
alla soglia si passa al guadagno minore (K2 ), contenendo cosı̀ l’effetto di overshooting.

5 Risultati
Nel seguito si riportano alcuni risultati ottenuti per simulazione, relativi ad un NAGC con filtro del
secondo ordine. In particolare nei grafici riportati si é assunto:

• N =1

6
20

18 Ideal gain step


K=0.1
16 K=0.5
K=1.0
14

12
Gain (dB)

10

0
0 0,005 0,01 0,015 0,02 0,025 0,03 0,035 0,04
Time (s)

Figure 6: Risposta ad un gradino (di attenuazione) di 10dB, con R = 16384, N = 1 ed b = 0.6.

• R = 16384

• RS = 12.5 Msample/s.

I grafici riportano il guadagno che si dovrebbe avere idealmente a causa di variazioni della potenza
del segnale in ingresso (assunto con distribuzione gaussiana indipendente sulle due vie) e la curva del
guadagno ottenuto con l’NAGC. Nelle simulazioni effettuate non si sono considerati quantizzazione
e clipping.

7
20

18 Ideal gain step


K=0.1
16 K=0.5
K=1.0
14

12
Gain (dB)

10

0
0 0,005 0,01 0,015 0,02 0,025 0,03 0,035 0,04
Time (s)

Figure 7: Risposta ad un gradino (di attenuazione) di 10dB, con R = 16384, N = 1 ed b = 0.2.

20

18 Ideal gain step


K=0.1
16 K=0.5

14

12
Gain (dB)

10

0
0 0,005 0,01 0,015 0,02 0,025 0,03 0,035 0,04
Time (s)

Figure 8: Risposta ad un gradino (di attenuazione) di 10dB, con R = 16384, N = 1 ed b = −0.4.

8
30
28
Ideal gain
26 K=0.1
24 K=0.5
K=1.0
22
20
18
Gain (dB)

16
14
12
10
8
6
4
2
0
0 0,005 0,01 0,015 0,02 0,025 0,03 0,035 0,04
Time (s)

Figure 9: Risposta alla rampa (in dB), con R = 16384, N = 1 ed b = 0.2.