Sei sulla pagina 1di 226

Appunti di Elaborazione Numerica dei Segnali

Gian Antonio Mian


Università degli Studi di Padova
Dipartimento di Elettronica e Informatica
Anno accademico 2002-2003
1

Questa dispensa contiene le lezioni del corso di Elaborazione Numerica dei


Segnali che, negli ultimi anni, sono state dedicate agli effetti che la aritmetica
a precisione finita ha sulla rappresentazione dei segnali e sulle realizzazioni
dei filtri numerici.
Desidero ringraziare il prof. Doriano Ciscato col quale, molti anni fa, é
stata stesa una prima versione di questa dispensa ed i molti studenti che, in
vario modo, mi hanno aiutato: tra di essi un ringraziamento particolare va
a Marco Barbina per l’aiuto nella preparazione di parte delle figure, a Paolo
Campagnaro per gli esempi numerici di realizzazioni “ad onda” ed a Carlo
Meneghini per gli esempi numerici di realizzazioni a minimo rumore di calcolo.
Desidero, infine, ringraziare gli amici Riccardo Bernardini, Giancarlo Cal-
vagno e Roberto Rinaldo: senza il loro aiuto starei ancora lottando con la
diagnostica del LATEX.
Indice

1 Sistemi quasi–lineari 1

1.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Caratteristiche di quantizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Quantizzatori uniformi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.2 Quantizzatori logaritmici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Metodi di studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Effetti della quantizzazione dei coefficienti moltiplicatori 15

2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Calcolo della sensibilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Sensibilità di poli e zeri. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Realizzazioni in forma diretta, cascata e parallelo . . . . . . . . . . . . . . . . . 22
2.5 Normalizzazione dei coefficienti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Lunghezza statistica di parola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7 Una classe di realizzazioni a piccola sensibilità. . . . . . . . . . . . . . . . . . . . 48
2.7.1 Funzioni di trasferimento doppiamente complementari . . . . . . . 50
2.7.2 Realizzazioni mediante f.d.t. passa-tutto . . . . . . . . . . . . . . . . . . . 52
2.7.3 Filtri di Butterworth, Chebychev e Cauer . . . . . . . . . . . . . . . . . . . 55
2.7.4 Filtri numerici ad “onda” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.7.5 Un esempio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

3 La quantizzazione nelle conversioni da segnale analogico a numerico


e da segnale numerico ad analogico. 79

3.1 Modello deterministico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79


3.2 Modello statistico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3 Propagazione del rumore di quantizzazione. . . . . . . . . . . . . . . . . . . . . . . 89
3.4 Convertitori a sovracampionamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.4.1 Convertitori A/D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
3.4.2 Convertitori sigma-delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.4.3 Convertitori D/A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
ii

4 Valutazione degli errori di calcolo. 105


4.1 Il caso della aritmetica a virgola fissa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.1.1 Modello deterministico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
4.1.2 Modello statistico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.1.3 Normalizzazione delle variabili. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.1.4 Normalizzazione dell’uscita. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.1.5 Realizzazioni cascata e parallelo . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.1.6 Realizzazioni a traliccio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.1.7 Realizzazioni a variabili di stato a minimo rumore di calcolo . 149
4.1.8 Cicli limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.2 Il caso della aritmetica a virgola mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . 166
4.2.1 Realizzazioni non–ricorsive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.2.2 Realizzazioni ricorsive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

A Rappresentazione in virgola fissa e mobile 179


A.1 Rappresentazione in virgola fissa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
A.1.1 Notazione modulo e segno (MS). . . . . . . . . . . . . . . . . . . . . . . . . . . 179
A.1.2 Notazione in complemento a due (C2). . . . . . . . . . . . . . . . . . . . . . 180
A.1.3 Eccesso 2n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
A.1.4 Notazione CSDC (Canonical Signed Digit Code). . . . . . . . . . . . 185
A.2 Rappresentazione in virgola mobile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

B Funzioni di trasferimento passatutto. 191

C Proprietà associate alla realizzazione a traliccio. 195


C.1 La decomposizione An (z) = An−1 (z) + kn z −1 Ân−1 (z). . . . . . . . . . . 195
C.2 Un test di stabilità. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
C.3 Polinomi ortogonali sul cerchio di raggio unitario. . . . . . . . . . . . . . . . . . 199
C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.203
C.4.1 Algoritmo di Levinson e realizzazione a traliccio del filtro
sbiancante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
C.4.2 Proprietà spettrali dell’errore di predizione . . . . . . . . . . . . . . . . . . 213
Capitolo 1
Sistemi quasi–lineari

1.1 Introduzione
La ”realizzazione” fisica dei sistemi discreti nel tempo e continui nelle ampiezze
(ad esempio filtri e regolatori) avviene con tecniche numeriche, in hardware o
software, utilizzando necessariamente una aritmetica a precisione finita, nella
quale i numeri sono rappresentati in virgola fissa o mobile. Poichè sia i segnali
di ingresso/uscita che le variabili interne e le costanti del sistema devono essere
rappresentate con un numero finito di cifre binarie (”registro” o ”parola” di
lunghezza finita), i sistemi a tempo discreto, una volta calati dal corpo dei
numeri reali all’insieme dei numeri ”realmente” rappresentabili in un ambiente
operante con aritmetica a precisione finita, diventano sistemi numerici e quindi
sistemi a stati finiti.
Si consideri, ad esempio, il sistema elementare descritto dalla funzione di
trasferimento:
b
H(z) = (1.1)
1 − a z −1
che corrisponde nel dominio delle frequenze ad un filtro ricorsivo passa–basso
o passa–alto del primo ordine a seconda che sia a > 0 o a < 0, rispettivamente,
e in cui di solito per garantire guadagno unitario a z = 1 (f = 0) se a > 0 o
a z = −1 (f = Fc /2 con Fc frequenza di campionamento) se a < 0, si pone
b = 1 − |a|.
Il segnale di ingresso x(kT ) sia ottenuto mediante campionamento a fre-
quenza costante Fc = 1/T di un segnale analogico a banda limitata, e il
segnale a tempo discreto di uscita y(kT ) sia trasformato nel segnale ana-
logico y(t) mediante un convertitore digitale–analogico ideale, modellabile
come la cascata di una trasformazione elementare di dominio da Z(T ) a R
seguita da un semplice filtro interpolatore a tenuta di funzione di trasferi-
mento H0 (s) = (1 − e−sT )/sT .
Uno schema a blocchi del sistema è riportato in Fig. 1.1 a), in cui il legame
fra l’ingresso x(kT ) e l’uscita y(kT ) è dato dalla:
y(kT ) = a y((k − 1)T ) + b x(kT ) (1.2)
La sequenza di operazioni per ottenere Y = y(kT ) a partire da X = x(kT ) e
ST AT O = y((k − 1)T ) secondo la (1.2) è la seguente (le operazioni di ingresso
2 1.1 Introduzione

e uscita si suppongono opportunamente sincronizzate):

t = kT → leggi X
Y =b∗X
Y = a ∗ ST AT O + Y (1.3)
ST AT O = Y
scrivi Y

R Z(T) R

b H 0(s)
x(t) y(t)

a z-1

a)

A/D D/A
x(t) b’ H0 (s) ~y(t)
Qi [] Qa [] S [] Qu []

a’ z-1
Qa []

b)

Figura 1.1 Esempio: a) di sistema a dati campionati e b) di sistema numerico


corrispondente

In Fig. 1.1 b) è riportato lo schema a blocchi di una possibile realizzazione


numerica.
Il campionamento del segnale analogico di ingresso x(t) viene ottenuto con
un convertitore analogico–numerico (A/D) il quale, oltre al campionamento
ideale, esegue anche una quantizzazione Q i [x(kT )] con modalità che dipen-
dono dalla legge di quantizzazione adottata e dal numero di cifre scelto per il
convertitore (lunghezza di parola del convertitore A/D). Il segnale numerico di
uscita y(kT ) viene trasformato in segnale analogico mediante un convertitore
numerico–analogico (D/A), che esegue oltre all’operazione di tenuta, H 0 (s),
anche una quantizzazione, Qu [y(kT )], nel caso la rappresentazione numerica
”interna” scelta per y(kT ) sia (come quasi sempre avviene) diversa da quella
scelta per il convertitore D/A (lunghezza di parola del convertitore D/A).
I coefficienti a e b vengono memorizzati con un numero finito di cifre, per
cui i valori a0 e b0 effettivamente utilizzati si può pensare derivino da una quan-
tizzazione, Qc [·], di a e b (a0 = Qc [a] e b0 = Qc [b]) la cui caratteristica dipende
Capitolo 1. Sistemi quasi–lineari 3

dalla lunghezza di parola scelta per rappresentare i coefficienti moltiplicatori


(lunghezza di parola dei coefficienti).
Il risultato dell’operazione di moltiplicazione possiede, come noto, un nu-
mero di cifre superiore a quello dei fattori: per evitare un aumento infinito
del numero di bit nell’anello di reazione, si rende necessario riportarlo, at-
traverso il quantizzatore Qa [·], alla lunghezza di parola scelta per memorizzare
la variabile di stato associata all’uscita dall’elemento di ritardo z −1 (lunghezza
di parola dell’unità aritmetica ). Questa normalizzazione della lunghezza di
parola può avvenire come in Fig. 1.1 b) prima dell’operazione di somma op-
pure dopo di essa, utilizzando per la somma un accumulatore di lunghezza
maggiore. Infine anche l’operazione di somma può introdurre degli errori (ad
esempio, overflow), di cui rende conto il legame non lineare S(x) tra la somma
ideale, x, ed il risultato effettivo, S(x).
La presenza in Fig. 1.1 b) dei vari blocchi non lineari comporta che l’uscita,
ỹ(t), del sistema numerico differisca da quella, y(t), del sistema lineare di Fig.
1.1 a) (a pari ingresso ed a partire dallo stesso stato iniziale). In particolare
con ingresso nullo o periodico il sistema di Fig. 1.1 b), in quanto a stati finiti,
si porta a regime in un numero finito di passi (se, ad esempio, si associa alla
variabile di stato una parola di 16 bit, il sistema si porta a regime, al massimo,
in 216 passi).
L’errore ỹ(t)−y(t) che si verifica nella realizzazione numerica di un sistema
lineare dipende, in generale, sia dalla caratteristica dei vari blocchi non lineari:
Qi , Qa , Qc , Qu e S che dalla struttura dell’algoritmo (cioè dalla realizzazione
scelta, ad esempio, diretta, cascata, parallelo, traliccio ecc.), in quanto, essendo
il sistema non lineare, l’uscita è in generale influenzata sia dal tipo di operazioni
effettuate che dall’ordine nel quale esse vengono eseguite. È ovvio l’interesse a
ridurre tale errore entro limiti accettabili mediante una opportuna scelta della
realizzazione e delle lunghezze di parola. Spesso un sistema numerico che sia
stato ben progettato e che quindi sia una buona approssimazione del sistema
lineare prototipo, viene detto sistema ”quasi lineare”.
Le caratteristiche dei quantizzatori dipendono dalla rappresentazione nu-
merica impiegata per le variabili. Come noto, le due principali rappresen-
tazioni utilizzate in un sistema numerico sono: virgola mobile (floating point)
e virgola fissa (fixed point), le cui proprietá sono richiamate nella Appendice
A.
Allo stato attuale dello sviluppo dei microprocessori per la elaborazione numer-
ica di segnali (DSP: Digital Signal Processor), la rappresentazione numerica
più diffusa è quella a virgola fissa. Essa, però, può comportare errori che pos-
sono rendere inaccettabile il comportamento del sistema numerico che realizza
il sistema a tempo discreto prototipo. Nel seguito perciò la maggior parte
delle considerazioni svolte si riferirà al caso in cui le variabili numeriche siano
rappresentate in notazione binaria in virgola fissa ed in complemento a due
4 1.2 Caratteristiche di quantizzazione

(C2).
Nel caso di sistemi per il filtraggio numerico di segnali, è importante disporre
di metodi che consentano di valutare lo ”scostamento” introdotto nella re-
alizzazione, e di guidare la scelta della struttura e delle caratteristiche dei
quantizzatori.
Nel caso di sistemi di controllo a controreazione in cui l’organo di controllo è
un sistema numerico, occorre inoltre studiare l’effetto di tale scostamento sul
comportamento del sistema a catena chiusa.

1.2 Caratteristiche di quantizzazione


Nel seguito si richiamano le principali caratteristiche dei quantizzatori uniformi
e logaritmici. I primi servono sempre come modello dei quantizzatori Q i e Qu
di Fig. 1.1 b), dato che i numeri di uscita e ingresso ai convertitori A/D e
D/A sono sempre numeri in virgola fissa, e sono inoltre il modello anche dei
quantizzatori Qc e Qa se l’unità di calcolo utilizza aritmetica a virgola fissa. I
secondi servono come modello di Qc e Qa nel caso in cui si utilizzi aritmetica
a virgola mobile.

1.2.1 Quantizzatori uniformi


Si consideri nuovamente il sistema di Fig. 1.1 b). L’operazione svolta dai
quantizzatori Qi e Qu consiste nell’associare al segnale di ingresso, variabile
in un certo intervallo, un numero in virgola fissa di n + 1 bit. L’ingresso di
Qi è il segnale analogico campionato x(kT ), mentre quello di Q u è il risultato
della elaborazione, che per il momento possiamo ritenere un numero reale.
Poichè i numeri rappresentabili con n + 1 bit sono in totale 2 n+1 (in notazione
complemento a due e 2n+1 − 1 in notazione modulo e segno), l’intervallo di
variazione di x può essere suddiviso in 2 n+1 intervalli elementari (xk , xk+1 ),
a ciascuno dei quali viene associato lo stesso numero Q(x), detto valore di
ricostruzione. Se −M ≤ x ≤ +M , si definisce passo di quantizzazione o
quanto q la quantità:
2M
q = n+1 = M 2−n (1.4)
2
e la legge di quantizzazione Q(x) è scelta in modo da soddisfare la relazione
Q(x) = x per ogni x per cui si abbia x = N q con N intero di n + 1 bit
(N = −2n , −2n + 1, · · · , −1, 0, 1, · · · , 2n − 1 in C2). I valori N q costituiscono
l’alfabeto del quantizzatore. Dato che la differenza tra due valori successivi
dell’alfabeto è costante e pari a q, la legge di quantizzazione corrispondente è
detta ”lineare” o uniforme.
Per quanto riguarda i valori di x per cui x 6= N q vengono seguite due diverse
Capitolo 1. Sistemi quasi–lineari 5

tecniche di approssimazione, e cioè: arrotondamento o troncamento, che cor-


rispondono a modalità diverse di suddivisione del campo di variazione di x e
che verranno descritte nel seguito.

In ogni caso il valore di uscita Q(x) = N q è rappresentato univocamente dal


numero intero N , e l’operazione di quantizzazione può essere vista come una
mappa che trasforma l’ingresso x in un numero intero N di n+1 bit, la cui scala
è data da q. Nel caso di Qi , in particolare, il fattore di scala q i viene sottinteso
in tutta la successiva elaborazione numerica del segnale. Di esso si dovrà
tener conto solo quando interessi il valore ”fisico” di una variabile ottenuta
per elaborazione dell’ingresso, e necessariamente all’atto della conversione da
segnale digitale ad analogico. Secondo questa convenzione si può assumere
che sia qi = 1, cioè che tutta l’elaborazione operi su numeri interi provenienti
dal convertitore analogico–numerico e produca dei numeri che alimentano il
convertitore digitale–analogico di uscita, cui è associato un quanto q u in genere
uguale a qi (si veda il par 4.1.4).

Talora, anzichè interpretare il risultato della quantizzazione come un intero


N multiplo del quanto q, si preferisce interpretare detto risultato come una
frazione del fondo scala, cioè Q(x) = f M con |f | < 1. Evidentemente le due
convenzioni sono perfettamente equivalenti, e si ha: f = N 2 n , cioè f si ottiene
da N pensando la ”virgola” alla destra del bit di segno, anzichè alla destra del
bit meno significativo.

QR(x) e R(x)

3q

2q

q q

-2q -q q 2q 3q x -2q -q q 2q 3q x
-q -q

-2q

Figura 1.2 Quantizzatore ad arrotondamento: caratteristica Q R (x) ed errore eR (x).


6 1.2 Caratteristiche di quantizzazione

Arrotondamento
Nella quantizzazione ”lineare” ad arrotondamento si associa a x il valore di
ricostruzione Q(x) = N q più prossimo, cioè l’intero N per cui:

(N − 1/2)q ≤ x < (N + 1/2)q (1.5)

Essa corrisponde a dividere il campo di variazione di x negli intervalli [(N −


1/2)q, (N + 1/2)q) e ad associare ad ogni intervallo il valore del punto medio 1 .
Per definizione essa è indipendente dalla notazione di x. La caratteristica
QR (x) del quantizzatore corrispondente è riportata in Fig. 1.2 e risulta sim-
metrica, cioè QR (−x) = −QR (x), eccetto che nei punti x = (N − 1/2)q.
La legge di quantizzazione data dalla (1.5), secondo la quale tutti gli intervalli
sono chiusi a sinistra, è la più semplice da realizzare nel caso x sia rappresen-
tato in complemento a due ed è la legge di arrotondamento utilizzata in quasi
tutti i microprocessori. Infatti, per effettuare l’arrotondamento su n + 1 bit di
un numero rappresentato in C2 su n0 + 1 > n + 1 bit, è sufficiente sommare
1 al bit più significativo tra quelli da scartare, e conservare gli n + 1 bit più
significativi del risultato. (Verificarlo arrotondando ai 4 bit più significativi i
numeri rappresentati in C2 da 0100.1011 e 1100.1011). È possibile adottare
una legge di arrotondamento che sia perfettamente simmetrica, e qualche mi-
croprocessore in effetti la adotta.
L’andamento dell’errore eR (x), definito come:

eR (x) = QR (x) − x, (1.6)

è riportato in Fig. 1.2. Esso risulta periodico di periodo q e per ogni x


(|x| ≤ M ) si ha:
q q
− < eR (x) ≤ (1.7)
2 2
e quindi il valore massimo di |eR (x)| è pari a q/2.
Quanto detto vale esattamente se l’ingresso del quantizzatore assume valori
nel continuo, cioè x ∈ R, e quindi si applica alla quantizzazione del segnale
di ingresso x(kT ) di Fig. 1.1, cioè a Q i , ed alla quantizzazione dei coefficienti
moltiplicatori, cioè a Qc .
Per quanto riguarda la quantizzazione del segnale di uscita, associata al
quantizzatore Qu , si osserva che se la lunghezza di parola adottata interna-
mente (cioè per memorizzare la variabile di stato in Fig.1.1 b) è n a + 1 bit, e
quella associata alla conversione del segnale da digitale ad analogico è n u + 1
bit, l’errore di quantizzazione è una variabile i cui valori appartengono ad
un insieme finito, costituito da valori equispaziati con passo determinato da
1
La quantizzazione ad arrotondamento corrisponde alla istruzione Matlab: qx =
round(x/q) ∗ q.
Capitolo 1. Sistemi quasi–lineari 7

qa = M 2na , se, come è normalmente, si ha na > nu . L’errore massimo |eR (x)|


è in questo caso dato da (M 2nu − M 2na )/2, cioè dalla semidifferenza dei due
quanti. Se però na è abbastanza più grande di nu , si può ancora ritenere che
eR (x) assuma tutti i valori in (−qu /2, qu /2].
Per il quantizzatore Qa valgono considerazioni analoghe a quelle relative a
Qu non appena il numero di bit associati alla parte frazionaria dei moltiplica-
tori sia abbastanza grande.

QTs (x) eTs (x)

3q

2q

q q
q 2q 3q
-3q -2q -q q 2q 3q x -2q -q x
-q -q

-2q

Figura 1.3 Quantizzatore a troncamento simmetrico: caratteristica Q T s (x) ed errore


eT s (x).

Troncamento simmetrico
Dato x, si rappresenti |x| nella forma: |x| = N + q + r con N+ ≥ 0 e 0 ≤ r < q.
La quantizzazione per troncamento simmetrico corrisponde a porre

QT s (x) = sign(x) N+ q (1.8)

Il campo di variazione di x risulta diviso negli intervalli di lunghezza q: [(N q, (N +


1)q) con N intero positivo, ((N −1)q, N q] con N intero negativo, e nell’intervallo
di lunghezza 2q: (−q, q), a cavallo dello zero. Il valore Q T s (x) è dato, rispet-
tivamente, dall’estremo sinistro, destro e dal punto centrale 2 .
La (1.8) corrisponde alla nozione usuale di troncamento in base 10, in
cui ad esempio il numero −5.7 troncato ad una cifra decimale diviene −5
e, simmetricamente, 5.7 diviene 5. Analogamente, nel caso binario, dato un
numero x in notazione M S su n0 + 1 bit, la operazione di troncamento a n + 1
bit, con n < n0 , corrisponde a conservarne solo gli n bit più significativi (e il bit
di segno, ovviamente). Nel caso il numero x sia in notazione C2 (come avviene
2
La quantizzazione a troncamento simmetrico corrisponde alla istruzione Matlab: qx =
f ix(x/q) ∗ q.
8 1.2 Caratteristiche di quantizzazione

sempre per i segnali associati ai quantizzatori Q a e Qu ) è ancora possibile


operare un troncamento secondo la (1.8). In questo caso però l’operazione è
”meno banale”, e corrisponde a rappresentare per arrotondamento su n + 1
bit il numero di n0 + 1 bit: (x)c2 + (q/2)c2 con (·)c2 rappresentazione in C2
dell’argomento.
La caratteristica QT s (x) di un quantizzatore a troncamento simmetrico è
riportata in Fig. 1.3. Essa è simmetrica, Q T s (−x) = −QT s (x), e gode della
proprietà fondamentale di non amplificare, cioè vale la |Q T s (x)| ≤ |x| per ogni
x.
L’andamento dell’errore eT s (x) = QT s (x) − x è riportato ancora in Fig. 1.3,
da cui risulta:

0 ≤ eT s (x) < q per x < 0


(1.9)
−q < eT s (x) ≤ 0 per x > 0

e ovviamente si ha: |eT s | < q. Si osserva che il segno dell’errore dipende da


quello del segnale (è sempre opposto a quello del segnale) e quindi questo tipo
di quantizzazione tende ad introdurre un legame sistematico tra segnale x ed
errore eT s (x).

Troncamento in complemento a due

QT2 (x) e T2 (x)

3q

2q

q
-3q -2q -q q 2q 3q
-3q -2q -q q 2q 3q x x
-q -q

-2q

-3q

Figura 1.4 Quantizzatore a troncamento in complemento a due: caratteristica Q T 2 (x)


ed errore eT 2 (x).

Nella quantizzazione di un numero x rappresentato in complemento a due


su n0 + 1 bit (quindi solo nei quantizzatori Q a e Qu di Fig. 1.1 b), é pos-
sibile ridurre la lunghezza di parola a n + 1 bit, con n < n 0 , troncando la
rappresentazione di x agli n + 1 bit più significativi.
Capitolo 1. Sistemi quasi–lineari 9

La Fig. 1.4 riporta la caratteristica del quantizzatore Q T 2 (x), che rapp-


resenta la corrispondente operazione di troncamento, detta in complemento
a due: per x ≥ 0 la caratteristica di quantizzazione coincide con quella del
troncamento simmetrico, mentre risulta diversa per x < 0 3 . Se, infatti, si
ricorda che in complemento a due il bit più significativo (e che segnala il
segno del numero) ha peso negativo (Appendice A), ci si rende conto che, per
x < 0, il troncamento della rappresentazione di x porta al numero negativo
rappresentabile con n + 1 bit minore o uguale a x. Ad esempio, se n 0 = 11
ed n = 7, a (x)c2 = 11111111.1111 corrisponde QT 2 (x) = 11111111, cioè al
numero negativo massimo su n0 + 1 bit corrisponde l’analogo su n + 1 bit.
La funzione QT 2 (x)/q = N è la funzione parte intera 4 di x modulo q,
caratterizzata dalla: N q ≤ x < (N + 1) q, N ∈ Z, e corrisponde alla rappre-
sentazione di x secondo la: x = N q + r con 0 ≤ r < q, con resto cioè sempre
non negativo indipendentemente dal segno di x. In corrispondenza il campo
di variazione di x risulta diviso negli intervalli di lunghezza q: [N q, (N + 1)q),
a ciascuno dei quali resta associato come valore rappresentativo l’estremo sin-
istro.
La caratteristica QT 2 (x) risulta dissimmetrica, cioè Q T 2 (−x) 6= −QT 2 (x), per
x 6= N q, e si ha sempre QT 2 (x) ≤ x. Quindi il segno dell’errore e T 2 (x) è
indipendente dal segno di x e risulta sempre:

−q < eT 2 (x) ≤ 0 (1.10)

Dall’esame delle caratteristiche di quantizzazione di Fig. 1.2, 1.3 e 1.4


risulta che quella relativa all’arrotondamento dipende solo da q, mentre quella
relativa al troncamento dipende anche dalla notazione impiegata. In ogni caso
l’errore assoluto introdotto dalla quantizzazione uniforme è limitato e dipende
solo da q:
|eR (x)| ≤ q/2
(1.11)
|eT (x)| < q,
mentre l’errore relativo aumenta al diminuire di x, a differenza di quanto
avviene nella quantizzazione associata alla rappresentazione in virgola mobile,
nella quale è il massimo assoluto dell’errore relativo ad essere costante su tutto
il campo dei numeri rappresentabili.
Dalle considerazioni ora svolte appare evidente l’interesse, dal punto di vista
degli errori, ad usare un elevato numero di bit (q piccolo) e la tecnica dell’arrotondamento.
(La caratteristica di ”non-amplificare” della quantizzazione a troncamento
3
La quantizzazione a troncamento in complemento a due corrisponde alla istruzione Mat-
lab: qx = f loor(x/q) ∗ q.
4
Si veda G. De Marco: ”Analisi zero”, Decibel, Padova, 1981
10 1.2 Caratteristiche di quantizzazione

simmetrico risulta invece utile per la soppressione dei cicli limite di piccola
ampiezza.)
Per quanto riguarda, ad esempio, il quantizzatore di ingresso Q i i convertitori
ad approssimazioni successive operano un arrotondamento, mentre quelli in
cui si esegue un conteggio di impulsi in un certo intervallo di tempo (ad esem-
pio, convertitori a rampa) operano un troncamento simmetrico. In entrambi,
comunque, l’aumento del numero dei bit in uscita comporta un aumento del
costo e del tempo di conversione. Si osserva che convertitori A/D a 8, 10 o 12
(talora 16) bit sono generalmente sufficienti in quasi tutte le applicazioni.
Per quanto riguarda Qa e Qc la tecnica di riduzione della lunghezza della
parola di ingresso (arrotondamento o troncamento) è talora fissata dall’hardware
a disposizione, mentre in altri casi può essere scelta dal progettista, ad esempio
nel caso in cui le operazioni vengano realizzate su un DSP : in questo caso il
numero di bit per i coefficienti moltiplicatori è 12, 16, 24 bit, a seconda del
processore, e il numero di bit associato alle variabili di stato è comunemente
16 e talora 24 bit, a seconda del processore.

1.2.2 Quantizzatori logaritmici

^x er

2 2 -3

2 -4

1
x

1/2 _
2 -4
1/4
_
2 -3
1/4 1/2 1 2 x

Figura 1.5 Caratteristica di quantizzazione, Q(x), ed errore relativo, e r (x), cor-


rispondenti ad una rappresentazione in virgola mobile con mantissa su n + 1 = 4
bit.

La rappresentazione in virgola mobile di un numero corrisponde alla scrit-


tura x̂ = f 2e con f (1 > |f | ≥ 1/2) ed e numeri in virgola fissa di n + 1 e
m + 1 bit, rispettivamente (si veda la Appendice A).
I numeri rappresentabili sono compresi tra (circa) −2 m e 2m e, ordinati gli
x in ordine crescente, ogni numero differisce dal precedente di 2 e−n , che rappre-
Capitolo 1. Sistemi quasi–lineari 11

senta il passo di quantizzazione. Esso è costante solo all’interno di ogni ottava,


mentre raddoppia passando da una ottava alla successiva. La caratteristica
di quantizzazione è caratterizzata dall’avere errore assoluto massimo costante
all’interno di ogni ottava ed errore relativo massimo costante all’interno del
campo dei numeri rappresentabili.
Dato il numero x da rappresentare e indicata con Q[x] l’operazione di quan-
tizzazione della mantissa (spesso indicata con f l[x] dove fl sta per float), si
ha
x̂ = Q[x] = x + x er (x) = x(1 + er (x)) (1.12)
dove max |er (x)| dipende (almeno finchè non si ha overflow nella rappresen-
tazione) dal tipo di quantizzazione: arrotondamento o troncamento. Nel caso
di arrotondamento l’errore assoluto massimo non supera mezzo quanto, cioè
2e−n /2, e quindi l’errore relativo soddisfa la:
x − x̂

|er (x)| =
≤ 2−n , (1.13)
x

mentre nel caso di troncamento simmetrico si ha: |e r | < 21−n .


La Fig. 1.5 riporta, limitatamente a 3 ottave, la caratteristica di quantiz-
zazione e l’errore relativo per n + 1 = 4, nel caso di arrotondamento.
Ricordiamo che la funzione y = f (x) caratterizzata da dy = k dx/x,
cioè da ”errore relativo costante”, è la funzione logaritmo. Ne viene che la
quantizzazione uniforme con quanto q y di y = sign(x) log |x| induce su x
una quantizzazione con quanto qx variabile con x che soddisfa la qy ' qx /x
e che ha quindi errore relativo (massimo) costante. La x̂ = Q(x) associata
alla rappresentazione in virgola mobile è di tipo logaritmico nei riguardi della
caratteristica, da cui il nome di quantizzazione logaritmica che le è stato dato.

1.3 Metodi di studio


Sulla base delle precedenti considerazioni si è ora in grado di associare ai vari
quantizzatori di Fig. 1.1 b) la loro reale caratteristica. Il sistema numerico
risultante può essere interpretato come un sistema non lineare a tempo dis-
creto, la cui analisi presenta notevoli difficoltà non appena il sistema sia più
complesso di quello del primo ordine di Fig. 1.1. Per tale motivo le tecniche
di simulazione risultano particolarmente importanti in fase di progetto.
Ogni quantizzatore di Fig. 1.1 b) può essere rappresentato ”formalmente”
nel caso di notazione in virgola fissa mediante un modello ad errore additivo
(Fig. 1.6 a), in cui cioè la non linearità viene rappresentata con un blocco
lineare di guadagno unitario all’uscita del quale viene sommato l’errore e(x),
funzione di x, e nel caso di virgola mobile mediante un modello ad errore
moltiplicativo, in cui viene sommato ad x l’errore e r (x) x.
12 1.3 Metodi di studio

e(x) x e r (x)

x x^ x x^

a) b)

Figura 1.6 Modello pseudo–additivo dell’errore di quantizzazione.

Si osserva che, noto il segnale di ingresso al quantizzatore, è sempre pos-


sibile in linea di principio determinare il corrispondente segnale di errore e(x)
(o xer (x) nel caso di virgola mobile). Usando questo modello il sistema di
Fig. 1.1 b) diviene quello di Fig. 1.7, in cui i valori effettivi dei vari segnali di
errore dipendono ovviamente dai segnali in gioco e quindi dall’ingresso x(kT )
e dallo stato iniziale del sistema.

A/D ei ea1 eu D/A


x(t) b’ H0 (s) ~
y(t)
S []

a’ z-1

ea2

Figura 1.7 Modello del sistema di Fig. 1.1 b).

Dall’esame di Fig. 1.7 si possono trarre le seguenti conclusioni:

a) ea (kT ), ei (kT ) ed eu (kT ) possono far variare l’uscita, ma, essendo limitati,
non possono influenzare la stabilità BIBO del sistema. Se la realizzazione
è di tipo ricorsivo, cioè comprende anelli chiusi, come in Fig. 1.7, possono
verificarsi però oscillazioni permanenti (dette cicli limite di piccola ampiezza
o da granularità della caratteristica di quantizzazione ) limitate in ampiezza e
dovute ai quantizzatori in reazione (par 4.1.8). È evidente che tale compor-
tamento deve essere evitato. Si osserva che in una realizzazione non ricorsiva
(quindi priva di anelli chiusi) questo problema non si pone.

b) L’influenza di ei (kT ) sull’uscita (in assenza di altri quantizzatori) dipende


unicamente dalla funzione di trasferimento e non dalla realizzazione.

c) L’influenza di ea (kT ) sull’uscita dipende (sempre in assenza di altri quan-


tizzatori) dalla funzione di trasferimento tra il punto dove l’errore è applicato
e l’uscita, e quindi dipende dalla realizzazione.
Capitolo 1. Sistemi quasi–lineari 13

d) Assunto un fondo scala unitario per i numeri rappresentati, la relazione


ingresso-uscita, S(x), del sommatore è ”trasparente” per −1 ≤ x < 1, cioè si
ha S(x) = x. Per valori oltre il fondo scala si ha overflow, ed il valore restituito
S(x) dipende dalla caratteristica del sommatore. Ad esempio, in un somma-
tore in complemento a due per |x| = |x 1 + x2 | > 1 si ha S(x) = x − 2 sign(x),
e quindi l’errore: x − S(x) risulta sempre pari a due volte il fondo scala (si
veda la Appendice A). Se, invece, si corregge la caratteristica introducendo
una saturazione, l’errore risulta inferiore e dato da: x − S(x) = x − 1, per
x > 1, e x − S(x) = x + 1, per x < −1. In ogni caso un overflow introduce
un errore di notevole ampiezza, e il suo effetto è equivalente alla introduzione
(all’istante in cui si verifica l’overflow) nella struttura di Fig. 1.7 di un im-
pulso di ampiezza pari all’errore stesso. In una realizzazione ricorsiva esso si
traduce in un ”disturbo” di notevole entità il cui effetto si ripercuote anche sui
valori calcolati negli istanti successivi, può provocare altri overflow e, in con-
dizioni particolarmente sfavorevoli legate alla realizzazione, alla aritmetica in
C2 e all’ingresso, può innescare oscillazioni di grande ampiezza (cicli limite di
grande ampiezza o da overflow) che rendono inutilizzabile il sistema. (Questa
descrizione dei possibili effetti perversi degli overflow in aritmetica a virgola
fissa ha lo scopo di sensibilizzare alla importanza del problema. Nel par. 4.1.3
si vedrà come assicurarsi contro il verificarsi del fenomeno.)

e) Per effetto della quantizzazione dei coefficienti, associata a Q c , i poli e gli


zeri del sistema con i coefficienti quantizzati sono diversi da quelli del sistema
lineare prototipo, e quindi la rappresentazione dei coefficienti con un numero
finito di cifre influenza la dinamica e la risposta in frequenza risultante.

Non esiste attualmente una teoria generale in grado di analizzare il com-


portamento di un sistema numerico. In effetti, un sistema numerico è per
definizione un sistema a stati finiti, ma la teoria relativa non risulta pratica-
mente applicabile dato l’elevato numero di stati da considerare. I vari metodi
di studio consentono di analizzare solo problemi particolari, considerando sep-
aratamente l’effetto delle singole non linearità. Questo modo di procedere è
in qualche modo giustificato se il comportamento del sistema numerico non si
scosta molto da quello del sistema a tempo discreto prototipo, come avviene
in un sistema ben progettato (sistema “quasi–lineare”). Questo modo di pro-
cedere permette, inoltre, di rendersi conto dei fenomeni indesiderati che pos-
sono essere presenti nel sistema numerico, e di suggerire gli accorgimenti nec-
essari per evitarli.
A questo proposito, nel seguito vedremo che per i sistemi “quasi–lineari” esiste,
fortunatamente, una relazione fondamentale tra la sensibilità alla variazione
dei coefficienti moltiplicatori e la robustezza numerica (insensibilità agli errori
di calcolo) della realizzazione adottata, nel senso che realizzazioni a piccola
14 1.3 Metodi di studio

(grande) sensibilità alle variazioni dei coefficienti sono anche numericamente


molto (poco) robuste e viceversa.

I metodi di studio di un sistema del tipo di Fig.1.2 si possono dividere in:

- metodi ”esatti”, in cui si considera l’effettivo andamento dei vari errori


e[x(kT )] e, cioè, si studia l’effettivo sistema discreto non lineare;

- metodi ”approssimati”, in cui i vari errori vengono considerati come variabili


indipendenti dall’ingresso, e quindi come ingressi (indipendenti) del sistema,
considerato lineare.

I metodi ”esatti” possono essere applicati solo a casi semplici e per lo stu-
dio di particolari problemi. Per quanto riguarda i metodi ”approssimati”, essi
sono di tipo deterministico o probabilistico.
Nel primo caso, fra tutte le sequenze di errore si considerano le sequenze che
causano il massimo scostamento dell’uscita. Si tratta quindi di una appli-
cazione del criterio del caso peggiore (”worst case”), che spesso fornisce risul-
tati eccessivamente pessimistici.
Nel secondo caso i vari errori vengono considerati come segnali aleatori, non
correlati tra loro e con i segnali “utili” in gioco, e se ne studia l’influenza
sull’uscita . In tal modo, però, non viene reso conto dei fenomeni determinis-
tici (tipo cicli limite), che richiedono una analisi a parte.
Capitolo 2
Effetti della quantizzazione dei coefficienti
moltiplicatori

2.1 Introduzione
Data una realizzazione di una funzione di trasferimento H(z), la H(z) risulta
funzione dei coefficienti moltiplicatori: c 1 , c2 ...cL che intervengono nella real-
izzazione. In generale quindi si può scrivere: H(z; c), dove c è il vettore dei
coefficienti.
I coefficienti vengono rappresentati su n c +1 bit nel sistema numerico scelto
e quindi ogni parametro subisce una quantizzazione. Ne deriva che (nell’ipotesi
di trascurare gli errori introdotti dalle altre operazioni di quantizzazione) la
funzione di trasferimento corrispondente è data da: H(z; c + dc), dove dc è la
perturbazione del vettore c dovuta alla quantizzazione, ed è quindi una fun-
zione di trasferimento diversa da quella di partenza. (Il problema è analogo a
quello che si incontra nella sintesi di una f.d.t. H(s) mediante reti elettriche,
attive o passive, quando si tenga conto delle tolleranze dei componenti.)
Si osserva inoltre che, anche se nel seguito le variazioni dei coefficienti saranno
attribuite alla quantizzazione, molte delle considerazioni che verranno esposte
rimangono valide anche quando le dc sono di natura diversa. In particolare,
in un sistema di controllo numerico a catena chiusa, la f.d.t. che rappresenta
il processo da controllare può avere dei coefficienti affetti da incertezze o ad-
dirittura lentamente variabili nel tempo.
Per piccoli scostamenti risulta:
L
X ∂H
H(z; c + dc) = H(z, c) + dci + · · · (2.1)
i=1
∂ci
da cui
L L 
∂H ∂H dci
X X 
∆H(z; c) ' dci = ci , (2.2)
i=1
∂ci i=1
∂ci ci
dove le derivate sono calcolate in corrispondenza dei valori nominali dei parametri
ci . La (2.2) esprime la sensibilità assoluta della funzione di trasferimento
rispetto a variazioni (assolute la prima e relative la seconda) dei coefficienti
della realizzazione.
16 2.1 Introduzione

È evidente che una realizzazione è ”migliore” di un’altra dal punto di vista


della sensibilità alle variazioni dei coefficienti, se presenta un valore minore
di |∆H(z; c)|, a parità di numero di bit utilizzati per la rappresentazione dei
coefficienti.
Si osserva che in certe realizzazioni esistono moltiplicatori c i e cj con i 6= j
che sono vincolati ad avere valori e quindi variazioni uguali. Ciò accade, ad
esempio, nella realizzazione in forma diretta di f.d.t. “passa-tutto” e nelle
realizzazioni a traliccio a due e a quattro moltiplicatori. In tal caso nella (2.2)
gli addendi corrispondenti vanno riscritti come: (∂H/∂c i + ∂H/∂cj ) dcij con
dcij = dci = dcj .
Note le ∂H/∂ci , che dipendono dalla realizzazione scelta, è possibile in gen-
erale scegliere i coefficienti c0i = ci + dci in modo da rendere minimo |∆H(z; c)|
nella regione di interesse del piano z (tipicamente sul cerchio di raggio unitario:
|z| = 1). In tal caso il problema diviene quello della minimizzazione a numeri
interi di una funzione quadratica. In alternativa (ed è la soluzione migliore)
è possibile costruire la H(z, c) a partire dalle specifiche, tenendo conto della
natura quantizzata dei coefficienti già in fase di sintesi [36], [2].
Dalla prima delle (2.2) si ha:

L
∂H max(|dci |)
X

| |H(z; c + dc)| − |H(z; c)| | ≤ |∆H(z; c)| ≤ ∂c (2.3)
i=1 i

che, utilizzando la |dci | < q o q/2 nella ipotesi qi = q per tutti i coefficienti,
consente di stimare il massimo valore di q (e quindi il minimo numero di bit
nc + 1) per il quale lo scostamento del modulo risulti inferiore ad un certo
valore prefissato.
La (2.3), valutata per z = ejθ con θ = 2πf T e T periodo di campionamento,
fornisce il massimo dello scostamento del modulo della risposta in frequenza
dovuto all’errore di quantizzazione dei coefficienti. Essa fornisce una stima
in genere molto pessimistica dello scostamento massimo, in quanto in essa
viene considerata la combinazione dei dc i che provoca il massimo scostamento
|∆H(z)|. Per una stima meno pessimistica si possono considerare le variazioni
dci come variabili aleatorie indipendenti, con densità di probabilità uniforme,
ottenendo una stima di tipo probabilistico per |∆H(z; c)| come illustrato in
2.6.
Nel caso interessi lo scostamento corrispondente ad una rappresentazione
in virgola mobile dei coefficienti, la seconda delle (2.2) porge la maggiorazione:

L
∂H dci

X
|∆H(z; c)| ≤ ci ∂c max( c ),
(2.4)
i=1 i i
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 17

che, posto max(|dci /ci |) = er per tutti i coefficienti, consente di stimare la


massima deviazione corrispondente all’errore relativo (massimo) e r da cui sono
affetti i coefficienti ci .

2.2 Calcolo della sensibilità


Per il calcolo della funzione sensibilità è possibile ricorrere ad una proprietà
generale dei sistemi lineari, che consente di ricondurre il calcolo delle derivate
parziali ∂H/∂ci a quello di due funzioni di trasferimento associate alla realiz-
zazione della f.d.t.
Si consideri una realizzazione, <, di H(z) e si metta in evidenza, come
illustrato in fig. 2.1, il coefficiente moltiplicatore c i rispetto al quale si vuole
determinare la sensibilità. Il sistema lineare a due ingressi, U 1 (z) = X(z) e
U4 (z), ed a due uscite, Y2 (z) = Y (z) e Y3 (z), ottenuto estraendo dal sistema
di partenza il coefficiente ci , è descritto in termini di trasformate zeta da:
(
Y2 = T12 U1 + T42 U4
(2.5)
Y3 = T13 U1 + T43 U4
dove le quattro trasferenze Tmn (z) sono funzioni razionali in z, definite da:

Yn (z)

Tmn (z) = l 6= m. (2.6)
Um (z) Ul (z)=0
La realizzazione risulta descritta dalle (2.5) e dalla equazione che porge il
legame tra Y3 e U4 associato al coefficiente moltiplicatore c i :

U4 = c i Y3 . (2.7)

Dalle (2.5) e (2.7) risulta:

Y2 (z) T42 T13


H(z) = = H12 = T12 + ci (2.8)
U1 (z) 1 − ci T43
Y3 (z) T13
H13 (z) = = (2.9)
U1 (z) 1 − ci T43

Si valuti ora la f.d.t. H42 (z) = Y2 (z)/W (z) con riferimento alla Fig. 2.1
b). La (2.7) diviene:
U4 (z) = ci Y3 (z) + W (z) (2.10)
e quindi:

Y2 (z) T42
H42 (z) = = (2.11)
W (z) 1 − ci T43
18 2.2 Calcolo della sensibilità

u1 y2 u1 =0 y2
R R
1 2 1 2

y3 3 4 u4 y3 3 4 u4

a) ci b) ci w

Figura 2.1 Per il calcolo di ∂H/∂ci .

In conclusione dalla (2.9) risulta:

∂H ∂H12 T42 T13


= = = H13 (z) H42 (z). (2.12)
∂ci ∂c34 (1 − ci T43 )2
dove si è posto H = H12 (trasferenza che porta dal nodo 1 al nodo 2) e c i = c34
(trasferenza che porta dal nodo 3 al nodo 4) per facilitare la memorizzazione
della (2.12).
La sensibilità della f.d.t. H(z) = H 12 (z) alle variazioni del coefficiente
moltiplicatore ci = c34 è quindi data dal prodotto della f.d.t. H 13 (z) che porta
dall’ingresso X(z) = U1 (z) (nodo 1) all’ingresso del moltiplicatore c 34 (nodo 3)
e della f.d.t. H42 (z) che lega l’uscita del moltiplicatore c 34 (nodo 4) all’uscita
Y2 (z) = Y (z) (nodo 2).
Si osserva che è notevole che la derivata ∂H/∂c i possa essere espressa mediante
il prodotto di due funzioni di trasferimento, ciascuna ottenibile con una analisi
in regime lineare della realizzazione, <, di H(z). Si osserva inoltre che la
sensibilità rispetto al coefficiente c 34 è la stessa nella realizzazione, <, e nella
realizzazione duale, <t , ottenuta da < mediante trasposizione, cioè invertendo
i versi delle varie trasferenze del grafo associato, e scambiando l’ingresso con
l’uscita.

Esempio. Si consideri una realizzazione a variabili di stato:


(
s(k + 1) = As(k) + bx(k)
(2.13)
y(k) = cs(k) + dx(k)
con s(k) vettore di stato N × 1, x(k) e y(k) ingresso e uscita scalari e con
A = [aij ], b = [bi ], c = [ci ] matrici N × N , N × 1, 1 × N , rispettivamente, e
d scalare.
Si ha H(z) = c(zI − A)−1 b + d e se ne calcoli la sensibilità alle variazioni dei
coefficienti. Si trova direttamente o tramite la (2.12):
∂H
= [c(zI − A)−1 ]i = Gi (z)
∂bi (2.14)
∂H
= [(zI − A)−1 b]i = Fi (z)
∂ci
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 19

dove [v]i indica la componente i–esima del vettore (riga o colonna) v, G i (z)
denota la f.d.t. dal nodo associato alla variabile di stato “futura” s i (k + 1) al
nodo di uscita e Fi (z) la f.d.t. dall’ingresso alla variabile di stato s i (k).
Si ha quindi tramite la (2.12) (il moltiplicatore a ij collega il nodo associato
alla variabile di stato sj (k) a quello associato alla variabile di stato “futura”
si (k + 1)) o tramite un meno immediato calcolo diretto
∂H
= Fj (z)Gi (z). (2.15)
∂aij
e quindi ∂H/∂aij risulta pari al prodotto delle due sensibilità ∂H/∂b i e ∂H/∂ci .

Ha particolare interesse valutare la (2.12) per z = e jθ , ottenendo in tal


caso la sensibilità della risposta in frequenza alle variazioni dei coefficienti
moltiplicatori. La analisi può essere condotta in modo automatico mediante
un programma di calcolo che valuti la (2.12) su una griglia di punti z k = ejθk
distribuiti sul cerchio di raggio unitario. In tal caso risulta particolarmente
conveniente calcolare il valore H42 (ejθ ) come il valore H24t (ejθ ) della realiz-

zazione ottenuta per trasposizione, < t , dato che con una sola analisi della
t (ejθ ) associate
realizzazione trasposta è possibile calcolare le trasferenze H 2n
a tutti i coefficienti cmn , cosı̀ come una sola analisi di < fornisce tutte le
trasferenze H1m (ejθ ).

La (2.12) consente di valutare anche la sensibilità di modulo e fase di


H(ejθ ). Infatti si ha:

H(ejθ ) = |H(ejθ )|ejφ(θ) ; ln H(ejθ ) = ln |H(ejθ )| + jφ(ejθ ) (2.16)

da cui si ottiene la relazione:


1 ∂H 1 ∂|H| ∂φ
= +j (2.17)
H ∂ci |H| ∂ci ∂ci
che consente di risalire a ∂|H|/∂ci ed a ∂φ/∂ci dalla conoscenza di ∂H/∂ci e
H.

Inoltre, tenuto conto che ∂H13 /∂c34 = H13 H43 e ∂H42 /∂c34 = H43 H42 ,
dalla (2.12) si ottiene:
∂ 2 H12 ∂H12
2 = 2H13 H42 H43 = 2H43 . (2.18)
∂c34 ∂c34
In generale, per la derivata n–esima si ha:
∂ n H12 n−1 ∂H12 ∂ n−1 H12
= n!H 43 = nH 43 (2.19)
∂cn34 ∂c34 n−1
∂c34
20 2.3 Sensibilità di poli e zeri

Tali relazioni mostrano che la variazione ∆H 12 dipende solo dalle tre f.d.t.
H13 , H42 e H43 , qualsiasi sia la entità della variazione ∆c 34 . Ritroveremo
queste f.d.t. nel Cap. 4 quando tratteremo della propagazione degli errori di
calcolo.

Si osserva infine che dalla (2.9) si può dedurre il cosiddetto ”teorema bi-
lineare” [42]. Infatti da (2.9) risulta che, in generale, la dipendenza di una
qualsiasi f.d.t. H(z) da un qualsiasi parametro c è del tipo:

α(z) + β(z) c
H(z; c) = (2.20)
γ(z) + δ(z) c

con α(z), β(z), δ(z) e γ(z) opportune funzioni razionali (indipendenti da c), e
quindi H(z) è una funzione bilineare del parametro c. Essa è individuata, in
accordo con la (2.19), dalla conoscenza al massimo di tre funzioni razionali, le
quali riassumono la dipendenza della f.d.t. dal parametro. (La (2.9) è un caso
particolare corrispondente a: α = 0, T 13 = β/γ e T43 = −δ/γ, e analogamente
la (2.10)).
Conseguenza notevole della dipendenza di tipo bilineare è che fissato z, ad
esempio z = z0 = ejθ0 , se il parametro c è complesso e varia su un cerchio
(c = c0 +r ejφ con 0 ≤ φ ≤ 2π), che eventualmente può degenerare in una retta
(ad esempio, nell’asse reale), corrispondentemente il vettore H(z 0 ; c) descrive
anch’esso un cerchio (eventualmente degenere) di raggio e centro dipendenti
da α(z0 ), β(z0 ), γ(z0 ) e δ(z0 ).

2.3 Sensibilità di poli e zeri


Il calcolo di ∂H/∂ci a partire dalla realizzazione non è sempre agevole. È
possibile, però, giungere ad alcune conclusioni generali mediante le seguenti
considerazioni.
I poli, pj , e gli zeri, zj , costituiscono una parametrizzazione particolar-
mente significativa di una f.d.t., H(z), e sono funzioni dei coefficienti c i della
realizzazione in esame, per cui risulta:
N M
∂H X ∂H ∂pj X ∂H ∂zj
= + (2.21)
∂ci j=1
∂pj ∂ci j=1
∂zj ∂ci

dove le derivate vanno (al solito) valutate in corrispondenza dei valori nominali
dei poli e degli zeri, e dei coefficienti.
Per quanto riguarda i valori di ∂H/∂p j e ∂H/∂zj , considerata H(z) in forma
fattorizzata: QM
B(z) −1
i=1 (1 − zi z )
H(z) = = b0 Q N (2.22)
A(z) −1
i=1 (1 − pi z )
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 21

risulta (nella ipotesi di poli semplici):

∂H z −1
= H(z) (2.23)
∂pj 1 − pj z −1

da cui:
∂H/H pj z −1
= (2.24)
∂pj /pj 1 − pj z −1
Analogamente per gli zeri si ottiene:

∂H −z −1
= H(z) (2.25)
∂zj 1 − zj z −1
∂H/H −zj z −1
= (2.26)
∂zj /zj 1 − zj z −1

Queste relazioni valutate per z = ejθ forniscono la sensibilità della risposta


in frequenza alle variazioni dei poli e degli zeri. Le sensibilità date dalle (2.24)
e (2.26) risultano massime per θ = arg(p j ) e θ = arg(zj ) ed aumentano per
|pj | → 1 e |zj | → 1.
È interessante osservare che nella (2.21) le derivate ∂H/∂p j e ∂H/∂zj
dipendono solamente dagli zeri e poli di H(z), e misurano la difficoltà ”intrin-
seca” di realizzare la H(z) stessa, mentre ∂p j /∂ci e ∂zj /∂ci dipendono dalla
realizzazione scelta, e misurano la sensibilità dei poli e degli zeri a piccole
perturbazioni nei coefficienti della realizzazione.

A causa della discretizzazione dei coefficienti c i , dovuta alla quantizzazione,


i poli e gli zeri possono occupare un numero finito di posizioni nel piano z
(griglia degli zeri e dei poli): ad ogni realizzazione corrisponde una griglia di-
versa.
Con riferimento ai poli (per gli zeri valgono considerazioni analoghe), definiti
i vettori p = [p1 , · · · , pN ]t e c = [c1 , · · · , cL ]t e la matrice Jacobiana J =
[∂pj /∂ci ] della trasformazione p = f (c) che lega i coefficienti ai poli, si ha
∆p ' J∆c, e quindi lo scostamento ∆p risulta piccolo (grande) nelle regioni
dove il valore assoluto dello jacobiano assume valori piccoli (grandi). Con-
seguentemente ci si può attendere una densità elevata (piccola) della griglia
dei poli dove lo jacobiano assume valori piccoli (grandi). A questo proposito
sarebbe desiderabile individuare per ogni H(z) la realizzazione cui corrisponde
lo jacobiano che ha valori minimi in corrispondenza dei valori nominali dei
parametri della realizzazione.

Esempio 1. Si consideri il sistema di fig. 1.1 in cui a = 0.95, e si imponga


un guadagno statico unitario: b = 1 − a = 0.05. I corrispondenti codici
22 2.4 Realizzazioni in forma diretta, cascata e parallelo

binari sono: a = (0.11110011001100 · · ·) c2 , b = (0.0000110011001100 · · ·)c2 ;


utilizzando 8 bit e troncamento si ha: a 0 = (0.1111001)c2 = (0.9453)10 e b0 =
(0.0000110)c2 = (0.046875)10 . Il polo del sistema originale è in z = a = 0.95,
e per effetto della quantizzazione si sposta in z = a 0 = 0.9453. Il guadagno
statico varia da 1 al valore: H 0 (1) = b0 /(1 − a0 ) = 0.857, e quindi, anche se la
rappresentazione di a e b su 8 bit comporta un errore inferiore a 2 −7 , pari allo
0.8% del fondo scala, il guadagno risulta variato di circa il 14%.
Si consideri ora il problema di stimare il numero di bit necessari affinchè il
guadagno H(1) vari meno del 5%. Utilizzando il fatto che q = 2 −nc è il
massimo errore di troncamento per a e b:

db b da db b da

∆H(1) ' 1 − a + (1 − a)2 ≤ 1 − a + (1 − a)2
(2.27)

1 b
 
≤ 2−nc + < 0.05 (2.28)
1 − a (1 − a)2
Da tale relazione risulta che |∆H(1)| aumenta al crescere di a, cioè all’avvicinarsi
del polo al cerchio di raggio unitario. Nel caso attuale risulta n c > 9.6, cioè
nc + 1 = 11 bit. Il numero di bit cosı̀ determinato rappresenta una stima
pessimistica di nc ; si verifica infatti che sono sufficienti n c + 1 = 10 bit.
In questo esempio l’effetto della quantizzazione dei coefficienti può essere
dimezzato approssimando il valore a = 0.95 mediante arrotondamento. Cor-
rispondentemente si ha:

a0 = (0.1111010)c2 = (0.953125)10 , b0 = (0.0000110)c2 = (0.046875)10 ,

per cui il guadagno H(1) non viene influenzato dalla quantizzazione. Si può,
infatti, verificare che per il sistema considerato tale situazione si verifica per
ogni valore di a0 = QR [a] e b0 = QR [1 − a].

2.4 Realizzazioni in forma diretta, cascata e parallelo


Si consideri la realizzazione in forma diretta di H(z):
PM −i
i=0 bi z B(z; b)
H(z) = PN = (2.29)
1− i=1 ai z −i A(z; a)

nella quale i coefficienti moltiplicatori che intervengono nella realizzazione sono


i coefficienti bi e ai che definiscono i polinomi a numeratore e a denominatore.
Lo studio dell’effetto della quantizzazione di a i e bi sui poli e sugli zeri dei
polinomi B(z; b) e A(z; a) può essere risolto col metodo del luogo delle radici
facendo variare un coefficiente alla volta. Per piccole variazioni dei coefficienti
è possibile ricorrere ad una linearizzazione, e ricavare delle indicazioni di tipo
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 23

generale. Ogni radice pi dell’equazione A(z; a) = 0, risulta una funzione p i (a)


dei coefficienti per cui si può scrivere:
N
X ∂pi
dpi = dak (2.30)
k=1
∂ak

Per il calcolo di ∂pi /∂ak si consideri il polinomio A(z; a) espresso in forma


diretta e in forma fattorizzata (per semplicità si suppongono i poli semplici):
N N
ak z −k = (1 − pk z −1 )
X Y
A(z; a) = 1 − (2.31)
k=1 k=1

e si derivino entrambe le espressioni rispetto al coefficiente a k . Si ottiene:


 
N N
∂A ∂pj
= −z −k = −z −1 (1 − pn z −1 )
X Y
(2.32)
∂ak j=1 n=1;n6=j
∂ak

Valutando le due espressioni ottenute in z = p i risulta:


N
∂pi
−p−k −1
Y
i = −pi (1 − pn /pi ) (2.33)
n=1;n6=i
∂ak

e quindi si ha:

∂pi pNi
−k
= QN (2.34)
∂ak n=1;n6=i (pi − pn )
pN
i
−1
da1 + · · · + pi daN −1 + daN
∆pi ' QN (2.35)
n=1;n6=i (pi − pn )

La (2.34) esprime la sensibilità del polo p i rispetto al coefficiente ak nel


caso di realizzazione diretta, e la (2.35) la variazione del polo p i corrispondente
a piccole variazioni dei coefficienti a k , k = 1, .., N .
Con riferimento alla (2.34) si osserva che:

1 - poichè |pi | < 1 (sistema stabile) il modulo del numeratore della (2.34)
cresce esponenzialmente con k da |p i |N −1 a 1. Risulta quindi che le variazioni
che influenzano maggiormente i poli sono le variazioni del coefficiente a N =
− i (−pi );
Q

2 - il modulo del numeratore della (2.34) cresce per |p i | → 1;

3 - il modulo del denominatore è pari al prodotto delle distanze dei poli p n dal
polo in esame pi . La sensibilità aumenta quanto più vicini sono i poli tra loro
(quindi nei filtri a banda stretta) ed all’aumentare dell’ordine N.
24 2.4 Realizzazioni in forma diretta, cascata e parallelo

Si osserva che, essendo sup |pn −pi | = 2, la situazione più favorevole si incontra
in sistemi in cui i poli sono equispaziati, cioè per p n = r ej2πn/N . Purtroppo
tale configurazione di poli si incontra raramente in pratica.
La situazione più critica si verifica nel caso di ”grappoli” di poli complessi e
coniugati prossimi a z = ±1, quali si presentano in filtri passa-basso (o passa-
alto) di ordine elevato con frequenza di taglio molto più piccola della frequenza
di campionamento o prossima alla metà della frequenza di campionamento. Se,
ad esempio, si ha |pn | = 0.8 e max |pn − pi | = 1/10 , dalla

dpi Y p daN

' n

p
n6=i pi − pn
a
i N

si ottiene che la variazione |daN /aN | viene amplificata 8, 3 · 103 e 108 volte
per N = 2, 5 e 10, rispettivamente.

x(k) b0 y(k)

-1
a1 z b1
α

z -1
-1
z
a2 b2 c1
x(k) β y(k)
a) b’1
d

b’2 −β
-1
c2
z
x(k)
b)
-k 2 -k 1 α

-1
k2 z k1 z -1

d2 d1 d0 y(k)
c)

Figura 2.2 Funzione di trasferimento del secondo ordine: a) realizzazione in forma


diretta, b) a variabili di stato e c) a traliccio a due moltiplicatori.

Queste considerazioni spiegano perchè la realizzazione in forma diretta di


f.d.t. I.I.R. di ordine elevato debba essere guardata sempre con ”sospetto” an-
che in ambiente con aritmetica in virgola mobile (devono in particolare essere
sempre effettuate con molta cautela tutte le manipolazioni che coinvolgono
direttamente i coefficienti di un polinomio), non venga mai impiegata in am-
biente con aritmetica in virgola fissa e le si preferiscano realizzazioni a minore
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 25

sensibilità, come ad esempio le realizzazioni cascata o parallelo di f.d.t. del


primo o secondo ordine che, anche se realizzate in forma diretta, corrispondono
almeno a ”piccoli” valori di N .
In linea di principio, considerazioni analoghe valgono anche per il numera-
tore della (2.29) e quindi per la realizzazione in forma diretta di f.d.t. F.I.R..
Fortunatamente, però, in pratica non si incontrano quasi mai ”grappoli di
zeri”, per cui la realizzazione in forma diretta è la realizzazione più usata per
i F.I.R. (si vedano gli esempi 2 e 3 del par. 2.5).

Si consideri ora la realizzazione in cascata, la quale fa riferimento all’espressione


fattorizzata di H(z). Per poli reali la realizzazione risulta una combinazione
in cascata di f.d.t. del tipo:

1 − z1 z −1
H(z) = (2.36)
1 − p1 z −1

I coefficienti sono i poli e gli zeri di H(z): gli errori massimi su di essi dovuti
alla quantizzazione sono facilmente determinabili a priori sulla base del nu-
mero di bit scelto.
Nel caso di coppie di poli complessi e coniugati, la f.d.t elementare da consid-
erare risulta:
b0 + b1 z −1 + b2 z −2
H(z) = (2.37)
1 − a1 z −1 − a2 z −2
Se per essa si utilizza una realizzazione in forma diretta (Fig. 2.2 a), poli e
zeri risultano legati ai coefficienti da relazioni semplici. Ad esempio, per la
coppia di poli complessi coniugati : p 1,2 = α ± jβ = re±jθ0 risulta:
(
a1 = p1 + p2 = 2r cos θ0
(2.38)
a2 = −p1 p2 = −r 2

e per |p1,2 | < 1 si ha: |a2 | < 1 e |a1 | < 2 (si ricorda che la condizione è
solo necessaria, dato che la regione di stabilità nel piano (a 1 , a2 ) è il triangolo
−1 < a2 < |a1 | + 1).
A causa della quantizzazione dei coefficienti a 1 e a2 , la griglia delle
p posizioni
possibili dei poli è data dall’intersezione dei cerchi di raggio Q[−a2 ] con
le rette Re(z) = Q[a1 /2]. In fig. 2.3 a è riportata (limitatamente al primo
quadrante) la griglia dei poli corrispondente ad una rappresentazione in virgola
fissa di a1 e a2 su nc + 1 = 5 bit, nel formato:

(a1 )c2 = b1 b0 .b−1 b−2 b−3 (a2 )c2 = b0 .b−1 b−2 b−3 b−4 ,

con bi ∈ (0, 1). I coefficienti a1 /2 e a2 risultano numeri del tipo I · 2−4 con
I = −16, −15, .., 0, .. + 15. Corrispondentemente risultano realizzabili solo i
26 2.4 Realizzazioni in forma diretta, cascata e parallelo

valori del modulo r pari a:

0, 0.25, 0.35, 0.43, 0.5, 0.56, 0.61, 0.66, 0.71, 0.75, 0.79, 0.83, 1.

La figura 2.3 b) è relativa al caso nc + 1 = 8bit.


Si osserva che le posizioni possibili dei poli si addensano verso la periferia e per
θ0 = ±π/2, in accordo con le considerazioni generali fatte sulla realizzazione
in forma
q diretta e con le proprietà dello jacobiano della mappa: α = a 1 /2 e
β= (4a2 − a21 )/4 con p1,2 = α ± jβ.

In Fig. 2.2 b è riportata una realizzazione ”a variabili di stato” (A, b, c, d),


con A matrice 2 × 2, b vettore colonna 2 × 1, c vettore riga 1 × 2 e d scalare,
della f.d.t. del secondo ordine (2.37). In questo caso la quaterna (A, b, c, d)
soddisfa la H(z) = c(zI − A)−1 b + d e si hanno 9 gradi di libertà e 5 vincoli.
In particolare si ha d = b0 , ed i poli di H(z) sono le soluzione della equazione
|(zI − A)| = 0, alla quale nel caso di poli complessi p 1,2 = α ± jβ = r ejθ0
corrispondono le equazioni di vincolo sugli elementi di A:

|A| = p1 p2 = r 2 tr(A) = p1 + p2 = 2α

con tr(·) traccia della matrice in argomento. La matrice A di aggiornamento


dello stato di Fig. 2.2 b) è data da:
" #
α −β
A= (2.39)
β α

e la realizzazione corrispondente viene spesso detta in ”forma accoppiata”. La


matrice A é interpretabile come il prodotto di una matrice di rotazione e di
una matrice “cambio di scala” e gode della proprietà AA t = At A = r 2 I.
Ai coefficienti moltiplicatori, α e β, che compaiono in Fig. 2.2 b) corrisponde
uno jacobiano unitario: corrispondentemente la loro rappresentazione in vir-
gola fissa dà luogo ad una griglia dei poli distribuita uniformemente nel quadrato
|α|, |β| < 1, come illustrato in Fig. 2.3 c) (limitatamente ai poli interni al cer-
chio di raggio unitario) per nc + 1 = 5 bit e in Fig. 2.3 d) per nc + 1 = 8 bit .

In Fig. 2.2 c) è riportata la realizzazione a traliccio ”a due moltiplicatori”


(si veda par. 4.1.6) della f.d.t.
2
1 + b1 z −1 + b2 z −2 X Âi (z)
H(z) = −1 −2
= di (2.40)
1 − a 1 z − a2 z i=0
A2 (z)
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 27

1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
a) b)
1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
c) d)

1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
e) f)

Figura 2.3 Griglia dei poli corrispondente a nc +1 = 5 e 8 bit: a) e b) realizzazione in


forma diretta; c) e d) realizzazione a variabili di stato; e) e f) realizzazione a traliccio
a due moltiplicatori.
28 2.4 Realizzazioni in forma diretta, cascata e parallelo

In essa si ha: a1 = −k1 (1 + k2 ) e a2 = −k2 , e nel caso di poli complessi


coniugati r e±jθ0 risulta:
p k1 (1 + k2 )
r= k2 cos θ0 = − √ (2.41)
2 k2
Le Fig. 2.3 e) e f) riportano, rispettivamente, le griglie dei poli corrispon-
denti alla rappresentazione di k1 e k2 come frazioni su nc + 1 = 5 e 8 bit (la
regione di stabilità è il quadrato (|k 1 |, |k2 | < 1)). La distribuzione dei poli è
non uniforme ed è simile a quella di Fig. 2.3 a) e b).
1 1.5

0.9

0.8

0.7
1
0.6

0.5

0.4
0.5
0.3

0.2

0.1

0 0
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −2 −1.5 −1 −0.5 0 0.5 1 1.5 2
a) b)

Figura 2.4 Esempi di griglie degli zeri in una realizzazione a traliccio con coefficienti
di rappresentati su 8 bit.

Per quanto riguarda gli zeri della H(z), nel caso di zeri complessi coniugati:
z1,2 = rz e±jθz , sussistono le tre relazioni:


 d2 = b2 = rz2
d1 + d2 k1 (1 + k2 ) = b1 = −2rz cos θz (2.42)
 d +d k +d k = b = 1

0 1 1 2 2 0

da cui risulta:
p
rz = d2 cos θz = f (d1 , d2 ; k1 , k2 ) (2.43)

Essendo il numeratore ottenuto per via ”indiretta” come somma pesata


i di Âi (z) dei polinomi Âi (z) che sono funzione di k1 e k2 , la posizione degli
P

zeri è funzione anche dei valori k1 e k2 (quindi dei poli), e quindi una quan-
tizzazione di k1 e k2 influenza anche la griglia degli zeri.
La Fig. 2.4 illustra la griglia degli zeri ottenibile con i coefficienti d i (e ki )
rappresentati su nc + 1 = 8 bit, per:

r = 0.9, θ0 = π/4; k1 ' −0.07, k2 ' 0.8125.


Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 29

La Fig. 2.4 a) si riferisce al caso |d i | < 1 e la Fig. 2.4 b) al caso |di | < 2.
Si osserva che in questo caso è conveniente, una volta quantizzati i coefficienti
ki , ricalcolare i polinomi Âi (z) a partire dai valori ki0 = Q[ki ], ottenendo i poli-
nomi Â0 i (z), e quantizzare i coefficienti d0i associati alla B(z) = i d0i Â0 i (z).
P

In questo modo si disaccoppiano (parzialmente) i problemi di quantizzazione


associati ai poli ed agli zeri.
Questo procedimento è sempre consigliabile quando il numeratore B(z) della
f.d.t. venga ottenuto come somma pesata (come avviene in una realizzazione
parallelo o in una realizzazione a variabili di stato).

In alternativa alla realizzazione cascata si può considerare la realizzazione


parallelo che fa riferimento allo sviluppo in frazioni parziali di H(z), e per
la quale i blocchi da considerare sono ”simili” a quelli di Fig. 2.2. Per i
poli valgono le considerazioni svolte in relazione alla realizzazione in cascata,
mentre gli zeri risultano legati ai coefficienti dello sviluppo in frazioni parziali
in modo complesso (analogamente a quanto visto per la realizzazione a traliccio
di una f.d.t. del secondo ordine). Quando la posizione degli zeri è molto
importante per determinare alcune caratteristiche della H(z) (come si verifica
per gli zeri di un filtro ellittico nei confronti del comportamento nelle ”bande
attenuate”), può risultare quindi conveniente ricorrere alla realizzazione in
cascata.
Non esiste una metodologia generale per scegliere la realizzazione più op-
portuna di una data H(z) dal punto di vista della sensibilità alla quantiz-
zazione dei coefficienti. Nella letteratura sull’argomento sono state proposte
numerose varianti alle realizzazioni classiche, ciascuna delle quali adatta a par-
ticolari applicazioni. Tra queste sono risultate particolarmente importanti le
realizzazioni a variabili di stato a minimo rumore di calcolo [46, 47, 57], adatte
a f.d.t. di tipo generale, e trattate nel par. 4.1.7, e quelle proposte da Fettweis
[15, 16], denominate ”filtri numerici d’onda” (wave digital filters) e derivate,
mediante opportune trasformazioni, da reti L−C a scala largamente utilizzata
nei filtri analogici per la loro bassa sensibilità alle tolleranze dei componenti
elettrici (recentemente sono state ”reinterpretate” in [67] e rese indipendenti
dalla loro origine analogica). Ad esse é dedicato il par. 2.7.4.
30 2.5 Normalizzazione dei coefficienti

2.5 Normalizzazione dei coefficienti


In tutte le realizzazioni di una f.d.t. l’operazione fondamentale è la operazione
di somma pesata (o prodotto interno):
r
X
s(k) = ci xi (k)
i=1

dove ci e xi sono, rispettivamente, i coefficienti moltiplicatori e le variabili


interne che concorrono a determinare l’uscita s(k) di un nodo sommatore. Si
consideri l’esempio di Fig. 2.5, dove le variabili e i coefficienti sono rappresen-
tati in C2.
x1 s

z -1
1.75 y2 = 1.75 x 2
x2
y = .75 x
3 3
z -1
.75
s = x + y +y
1 2 3
x3

Figura 2.5 Per la normalizzazione dei coefficienti.

Si supponga che per x1 , x2 e x3 si sia adottata la convenzione dei numeri


frazionari (|xi | < 1), e che la realizzazione sia stata opportunamente normal-
izzata in modo che non si verifichi overflow, cioè s appartenga al campo dei
numeri frazionari rappresentabili (|s| < 1 per ogni |x 1 | < 1, si veda par. 4.1.3).
Se vengono impiegati n + 1 = 4 bit per x i e ci risulta:

c2 = 0.75 → 0.110; xi → b0 .b−1 b−2 b−3


c3 = 1.75 → 01.11

mentre il coefficiente c1 = 1 non deve essere ovviamente rappresentato. Le


variabili y2 e y3 siano disponibili come parole binarie di 2n + 1 = 7 bit, 1 e si
supponga di eseguire la somma, s, con un sommatore a 7 bit per cui i numeri
1
Nell’esempio si è supposto che sia |x| < 1, cioè che non sia rappresentato il valore
x = −1 (peraltro rappresentabile in C2), e che il moltiplicatore tenga conto di questo fatto.
In caso contrario, per poter rappresentare correttamente anche il prodotto (1.000×10.00) c2 =
(010.00000)c2 = (2)10 corrispondente ad un coefficiente c = −2, sarebbero necessari 2n + 2 =
8 bit, e nella rappresentazione di y2 e y3 si avrebbe un altro bit alla sinistra della “virgola”. (Si
ricordi la regola imparata alle elementari per determinre la posizione della virgola nel risultato
di una moltiplicazione.) Dato che tale bit serve solo per la rappresentazione corretta di tale
prodotto, con uno shift a sinistra di un bit si torna alla convenzione utilizzata nell’esempio.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 31

binari da sommare risultano:


(x1 )c2 = b0 .b−1 b−2 b−3 000
(y3 )c2 = m0 .m−1 m−2 m−3 m−4 m−5 m−6 (2.44)
(y2 )c2 = s1 s0 .s−1 s−2 s−3 s−4 s−5
Si noti che le posizioni delle ”virgole” non risultano allineate perchè, anche se
si è adottata la convenzione dei numeri frazionari per x i , i coefficienti molti-
plicatori possono essere in modulo maggiori di uno. Per eseguire la somma,
quindi, è necessario allineare la posizione delle virgole nei singoli addendi.
Ciò può essere ottenuto con una operazione di shift a sinistra di 1 bit di y 2
(moltiplicazione per 2) con possibilità di overflow parziale, che però non ha
conseguenze sul risultato finale nelle ipotesi fatte (par. 4.1.3).
L’operazione y2 = (c2 ·x2 ) (mod 2) è equivalente alla y2 = (c02 ·x2 )·2 (mod 2)
con c02 = c2 /2. Nel caso generale risulta quindi conveniente adottare la con-
venzione dei numeri frazionari, anche per i coefficienti. Ogni coefficiente c i
con |ci | > 1 viene rappresentato come: ci = c0i 2j con 1/2 ≤ |c0i | < 1 e il passo
di quantizzazione diviene: qi = 2j−n , se c0i è rappresentato su n + 1 bit. La
moltiplicazione corrispondente viene realizzata come: (c 0i · xi ) · 2j (mod 2) e
la struttura si modifica per i coefficienti per cui |c i | > 1 come illustrato in Fig.
2.6, in cui si è supposto |c1 | > 1 e |c3 | > 1.
x x c 1’ x
1 1 1 c’
c j1 1
1 2
c2 -j
c2 c ’2 2
x2 s x2 s x2 s
c’
3
c 3’ 23
j
c
3
x3 x3 x3

a) b) c)

Figura 2.6 Normalizzazione dei coefficienti di un prodotto interno

Si osserva che, mentre l’equivalenza delle due realizzazioni è ovvia nel caso
di aritmetica a precisione infinita, con aritmetica a virgola fissa essa è valida
solo se è possibile trascurare l’eventuale overflow nella moltiplicazione per 2 j .
Il fattore di normalizzazione 2j può essere diverso per ogni coefficiente di mod-
ulo maggiore dell’unità, e, al limite, la rappresentazione c i = c0i · 2j può venire
applicata ad ogni coefficiente (la rappresentazione dei c i risulta a virgola mo-
bile), se si ammette che ogni moltiplicazione sia seguita da una operazione di
shift per un numero di bit che dipende dal coefficiente stesso.
In alternativa, per tutti i coefficienti che afferiscono ad uno stesso nodo di
somma si può considerare un fattore di normalizzazione unico , dato dalla
minima potenza di 2 per cui : max |c0i |/2j ≤ 1. In ogni caso, se il rapporto
max |ci |/ min |ci | è elevato, i coefficienti di modulo minore risultano rappre-
sentati con pochi bit significativi, e conseguentemente con un elevato errore
32 2.5 Normalizzazione dei coefficienti

relativo.
Ad esempio, se c1 = 1.75, c2 = 10−2 e c3 = 1.25, risulta j = 1, e per nc + 1 = 8
si ha:
c01 = 1.75/2 → 0.1110000; c02 = 0.01/2 → 0.0000000; c03 = 1.25/2 → 0.1010000.
Se (come accade per i FIR a banda stretta realizzati in forma diretta) tutti
i coefficienti ci , che concorrono allo stesso nodo sommatore, soddisfano alla
|ci | < 1/2, è conveniente modificare la struttura come illustrato in Fig. 2.6 c),
dove c0i = ci / max |ci | e, per semplicità, si è posto max |c i | pari alla potenza
di due immediatamente superiore. Il passo di quantizzazione risulta: q =
max |ci | · 2−n .
Sulla base delle considerazioni di sensibilità alla quantizzazione dei coeffi-
cienti le realizzazioni di tipo generale più usate sono quelle cascata e parallelo.
Nella realizzazione cascata il blocco fondamentale è un sistema del secono
ordine del tipo:
1 + b1 z−1 + b2 z −2
H(z) =
1 − a1 z −1 − a2 z −2
che può essere realizzato, ad esempio, come in Fig. 2.2. H(z) può essere
particolarizzata nei seguenti modi:
1 polo reale b1 = b2 = a2 = 0
1 polo e 1 zero reali b2 = a2 = 0
(2.45)
2 poli b1 = b2 = 0
2 poli e 1 zero reali b2 = 0
Dato che H(z) è (ovviamente) stabile risulta come visto a proposito della
(2.38): |a1 | < 2 e |a2 | < 1. Nella maggior parte delle applicazioni (filtri a fase
minima o controllori numerici) gli zeri di H(z) non sono esterni al cerchio di
raggio unitario, e quindi si ha |b1 | ≤ 2 e |b2 | ≤ 1. (Fa eccezione la realizzazione
degli equalizzatori di fase: per essi risulta |b 1 | < 4 e |b2 | < 2 in tutti i casi di
interesse pratico).
Se gli zeri sono sul cerchio di raggio unitario, risulta b 1 = −2 cos θz e b2 = 1
per cui in una realizzazione in forma diretta viene eliminata la corrispondente
moltiplicazione per b2 . Inoltre, fatto molto più importante, viene garantito che
gli zeri rimangano sul cerchio di raggio unitario indipendentemente dalla quan-
tizzazione di b1 , il cui effetto si traduce solo in una variazione della anomalia θ z
degli zeri. La situazione è analoga a quella di una coppia di zeri, s 1,2 = ±jω0 ,
realizzati in una rete a scala L − C con un circuito risonante serie o parallelo:
una variazione dei valori di induttanza e capacità fa solo variare la frequenza
di risonanza o antirisonanza, lasciando gli zeri sull’asse immaginario.
Nella realizzazione parallelo il blocco fondamentale è:
b0 + b1 z −1 b01 z −1 + b02 z −2
H(z) = oppure
1 − a1 z −1 − a2 z −2 1 − a1 z −1 − a2 z −2
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 33

Per quanto riguarda a1 e a2 valgono le considerazioni svolte nel caso della


realizzazione in cascata. Per b0 e b1 (b01 e b02 ) si dovrà procedere in generale ad
una normalizzazione secondo quanto illustrato precedentemente, non essendo
possibile determinare, in generale, un limite superiore per i loro moduli.

2.6 Lunghezza statistica di parola


Nel seguito viene presentato un metodo di stima del numero di bit su cui rapp-
resentare i coefficienti moltiplicatori nel caso la quantità di interesse sia il solo
modulo della risposta in frequenza (l’estensione al caso generale è immediata).
Sia D(ejθ ) ≥ 0 l’andamento desiderato per il modulo, e sia T (e jθ ) la fun-
zione che rappresenta la tolleranza ammessa nella approssimazione di D(e jθ )
e che supponiamo strettamente positiva: T (e jθ ) > 0 (Fig. 2.7).
Sia M (ejθ ) = |H(ejθ ; c)| e M 0 (ejθ ) = |H(ejθ ; c0 )| con c e c0 i vettori dei coef-
ficienti a precisione infinita e finita, rispettivamente. Vogliamo garantirci che
lo scostamento di M 0 da D sia non superiore a T , cioè:

|M 0 (ejθ ) − D(ejθ )| ≤ T (ejθ ). (2.46)

Allo scopo osserviamo che se, dato M , lo scostamento di M da D è minore in


senso stretto di T (cioè, se esiste un certo margine)

|M (ejθ ) − D(ejθ )| < T (ejθ ), (2.47)

per soddisfare la (2.46) è sufficiente rendere abbastanza piccola la quantità

|∆| = |M 0 − M | = |(M 0 − D) − (M − D)|. (2.48)

Ricordando la | |a| − |b| | ≤ |a − b|, si ha

| |M 0 − D| − |M − D| | ≤ |∆| (2.49)
e si ottiene che la (2.46) è soddisfatta, non appena è soddisfatta la:

|∆| = |M 0 − M | ≤ | T − |M − D| | (2.50)
La (2.50) dice, quindi, quale debba essere il margine con cui progettare la
f.d.t. con coefficienti a precisione infinita per garantire che anche la f.d.t. a
coefficienti a precisione finita soddisfi alle specifiche. Linearizzando, come in
(2.2), ∆(ejθ ) si ha:

L
∂M
∆(ejθ ) '
X
dci (2.51)
i=1
∂ci
34 2.6 Lunghezza statistica di parola

D( θ ) T (θ)

T (θ)

0 θ p
θ s
π θ

Figura 2.7 Esempio di tolleranza.

e lo scostamento D(ejθ ) risulta funzione lineare delle variazioni dc i , le quali


dipendono dalla rappresentazione scelta per i coefficienti, cioè virgola fissa o
virgola mobile.
Sia m i
qik 2k
X
|ci | =
k=−∞

la rappresentazione in binario di |c i | con mi bit più significativo e sia


mi
|c0i | = 0 k
X
qik 2
k=li

la corrispondente versione in virgola fissa, ottenuta per arrotondamento alla


cifra li . Supponiamo che il bit meno significativo, l i , sia lo stesso per tutti
i coefficienti, cioè li = l, per cui max |ci − c0i | = q/2 = 2l /2. Nella ipotesi di
rappresentare tutti i coefficienti sullo stesso numero di bit, si ha che il numero
di bit (segno compreso) associato ad ogni coefficiente c 0i risulta B = nc + 1 =
m − l + 2 con m = max(mi ).
In definitiva dalla (2.51) si ottiene la maggiorazione:
L L
∂M ∂M

∆(ejθ ) ≤
X X
|dci | ≤
∂c max |dci |

∂c
i=1 i i=1 i
l L
2 ∂M

X
= (2.52)
2 i=1
∂c i

con li = l per ogni i. (In caso contrario è semplice modificare la (2.52)


scrivendo max |dci | = Ki 2l /2 con l = min(li ) e Ki = 1, 2, 4, · · ·).
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 35

Imponendo che la maggiorazione ottenuta per |∆| sia non superiore a


max |T − |M − D| | si può calcolare il valore di l che consente di soddisfare
alla (2.46). La relazione (2.52) conduce però, in generale, a stime molto pes-
simistiche del numero di bit su cui rappresentare i coefficienti per mantenere
la variazione ∆ entro i limiti prefissati.
In alternativa si può utilizzare un modello statistico delle variazioni dc i il
quale in genere conduce a stime del numero di bit molto più attendibili. La
lunghezza di parola (o numero di bit) cosı̀ determinata viene generalmente
detta lunghezza statistica di parola, mentre si riserva il nome di lunghezza
effettiva di parola alla lunghezza effettivamente necessaria per memorizzare i
coefficienti e garantire un certo scostamento ∆. L’utilità di detta quantità sta
nel fatto che consente di mettere in luce le regioni della risposta in frequenza
più critiche per una certa realizzazione (cioè le zone dove ci si può aspettare
le maggiori variazioni), consente di confrontare le proprietà di realizzazioni
diverse senza quantizzarne i coefficienti moltiplicatori, e, inoltre, può essere
usata, come illustrato negli esempi, per guidare il progetto della f.d.t. con
coefficienti a precisione infinita, anticipando gli effetti della quantizzazione dei
coefficienti.
È importante ricordare che, nel caso attuale, le ”perturbazioni” dc i sono del
tutto deterministiche e che, note le dc i , la f.d.t. corrispondente H(z; c + dc)
è perfettamente calcolabile! Il modello presentato va quindi interpretato solo
come un utile strumento di lavoro che consente di prevedere la entità probabile
dello scostamento (come tale è largamente usato per prevedere gli effetti delle
tolleranze dei componenti passivi e attivi nel progetto di circuiti elettronici
analogici).
Interpretiamo le variazioni dci come variabili aleatorie, indipendenti ed
equidistribuite con d.d.p. uniforme in [−q/2, q/2] con q = 2 l , per cui E[dci ] = 0
e σ 2 [dci ] = q 2 /12. Poichè , nelle ipotesi fatte, la ∆(e jθ ) è una combinazione
lineare di variabili indipendenti, si può assumere che la variabile ∆(e jθ ) abbia
approssimativamente d.d.p. gaussiana, con media e varianza date dalle:

L

X ∂M
E[∆(e )] = E[dci ] = 0 (2.53)
i=1
∂ci
L  2
2 jθ ∂M q2 q2
= S 2 (ejθ ; c)
X
σ [∆(e )] = (2.54)
i=1
∂ci 12 12

con S 2 funzione della sensibilità alle variazioni dei coefficienti della realiz-
zazione considerata.
Secondo questo modello si può dire che:

∆(ejθ ) ≤ m σ[∆(ejθ )] (2.55)

36 2.6 Lunghezza statistica di parola

con probabilità Pm controllata dal valore di m: generalmente si pone m = 2,


cui corrisponde una probabilità P ' 95%. (Si osserva che sarebbe sbagliato
usare un valore elevato di m, dato che la stima corrispondente di max |∆|
potrebbe risultare maggiore di quella data dalla (2.52)).
Utilizzando nella (2.50) la stima del valore massimo di |∆| data dalla (2.55),
si ha:
m σ[∆(ejθ )] ≤ T (ejθ ) − |M (ejθ ) − D(ejθ )| (2.56)

da cui si ottiene che deve essere:



12 T (ejθ ) − |M (ejθ ) − D(ejθ )|
q≤ (2.57)
m S(ejθ )

La (2.57) porge per un dato valore di θ il valore massimo di q che consente


di soddisfare le specifiche. Ovviamente, per soddisfare le specifiche date per
ogni valore di θ, si sceglierà come passo di quantizzazione il valore minimo di
q(θ).

Esempio 1: realizzazioni I.I.R.


Le specifiche di un filtro passabanda siano: banda passante: 2 ÷ 3 kHz con
ondulazione (DBR) ≤ 0.2 dB; banda attenuata: 0 ÷ 1.6 kHz e 3.26 ÷ 4 kHz
con attenuazione (A) ≥ 50 dB; frequenza di campionamento: 8 kHz.
Si progetta un filtro ellittico di ordine N = 10 con DBR = 0.1 dB (< 0.2dB)
e attenuazione 54.5 dB (> 50dB), quindi con un certo margine (distribuito fra
banda passante e attenuata in modo abbastanza arbitrario).
Si considerano tre realizzazioni: cascata e parallelo di celle del secondo ordine
in forma diretta, e traliccio a quattro moltiplicatori. La Fig. 2.8 riporta
la lunghezza statistica di parola (segno escluso), n s , nelle bande passante e
attenuata, calcolata con m = 2 tramite il programma FAP, e la Fig. 2.9 riporta
gli andamenti delle risposte in frequenza corrispondenti ad una quantizzazione
su 10 bit (segno compreso) dei coefficienti moltiplicatori delle tre realizzazioni:
la colonna di sinistra riporta l’andamento complessivo in [0, F c /2] e quella di
destra l’andamento nella sola banda bassante.
L’analisi delle figure consente di trarre alcune interessanti conclusioni:

a) nelle realizzazioni considerate, i massimi della lunghezza statistica di parola


cadono in corrispondenza dei massimi e minimi di |H(e jθ )| nella banda pas-
sante ed in corrispondenza dei massimi di |H(e jθ )| nella banda attenuata;

b) per la realizzazione cascata si ha una previsione: B s = ns + 1 ' 15 bit,


valore determinato dalla sensibilità in banda passante. Si osserva che sareb-
bero sufficienti solo circa 8 bit per garantire i 50 dB di attenuazione richiesti
in banda attenuata. Questo comportamento è da attribuire al fatto che la
realizzazione in forma diretta si sposa particolarmente bene con gli zeri sul
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 37

cerchio, dato che una quantizzazione dei coefficienti del numeratore di ogni
cella lascia gli zeri sul cerchio e ne sposta solo la posizione angolare. Dalla
figura risulta, inoltre, che sarebbe stato preferibile progettare il filtro ellittico
lasciando più margine in banda passante e meno in banda attenuata. (A tale
proposito una procedura euristica consiste, dato N , nel dividere l’intervallo
[min DBR, max DBR], ammissibile per l’errore in banda passante, in un certo
numero di intervalli uguali, di progettare un filtro per ogni estremo di tali
intervalli, di quantizzarne i coefficienti e di scegliere la/e soluzione/i cui cor-
risponde il minimo numero di bit.)
Le previsioni fatte in base alla lunghezza statistica B s sono ben soddisfatte.
Si vede infatti che già con 10 bit la attenuazione è circa 56 dB e la ondulazione
in banda passante pari a circa 0.25 dB (la lunghezza effettiva di parola risulta
12 bit).

c) Per la realizzazione parallelo valgono considerazioni simili a quelle fatte per


la cascata, cioè Bs = ns + 1 (pari a circa 13 bit) è ancora determinata dalla
sensibilità in banda passante. La differenza tra i valori assunti da B s in banda
passante e attenuata è pari a circa 1 bit ed è quindi minore che nella realiz-
zazione cascata, dato che in questo caso il controllo della posizione degli zeri
è molto meno forte. In particolare si nota la riduzione di attenuazione legata
al fatto che gli zeri hanno abbandonato il cerchio di raggio unitario. Anche
in questo caso le previsioni sono ben verificate dall’andamento corrispondente
ad una quantizzazione su 10 bit.

d) La realizzazione a traliccio a quattro moltiplicatori ha comportamento sim-


ile a quello della realizzazione parallelo. Confrontando i risultati con quelli
della realizzazione cascata si nota che al controllo indiretto sul posizionamento
degli zeri corrispondono valori maggiori di sensibilità in banda attenuata e
quindi valori di Bs maggiori (circa 10 ÷ 11 bit in banda attenuata).
38 2.6 Lunghezza statistica di parola

Cascata
15

10
n (f)
c

0
0 0.5 1 1.5 2 2.5 3 3.5 4
f (KHz)

Parallelo
14

12

10

8
n (f)
c

0
0 0.5 1 1.5 2 2.5 3 3.5 4
f (KHz)

Traliccio
12

10

8
n (f)

6
c

0
0 0.5 1 1.5 2 2.5 3 3.5 4
f (KHz)

Figura 2.8 Per l’esempio 1: lunghezza statistica di parola


Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 39

Cascata Cascata
10 0.15

0.1
−10

−20 0.05
|H(f)| (dB)

−30

|H(f)| (dB)
0
−40

−50 −0.05

−60

−0.1
−70

−80
0 0.5 1 1.5 2 2.5 3 3.5 4 2 2.2 2.4 2.6 2.8 3
f (KHz) f (KHz)
Parallelo Parallelo
10 0.1

−10

−20 0
|H(f)| (dB)
|H(f)| (dB)

−30

−40

−50 −0.1

−60

−70

−80 −0.2
0 0.5 1 1.5 2 2.5 3 3.5 4 2 2.2 2.4 2.6 2.8 3
f (KHz) f (KHz)

Traliccio Traliccio
10 0.05

0
−10

−20 −0.05
|H(f)| (dB)

−30
|H(f)| (dB)

−0.1
−40

−50 −0.15

−60

−0.2
−70

−80 −0.25
0 0.5 1 1.5 2 2.5 3 3.5 4 2 2.2 2.4 2.6 2.8 3
f (KHz) f (KHz)

Figura 2.9 Per l’esempio 1: risposta in frequenza con nc + 1 = 10 bit.


40 2.6 Lunghezza statistica di parola

Esempio 2: filtri FIR.


Si consideri la applicazione della (2.51) (o della (2.2)), ad un filtro FIR di
ordine N −1 a fase lineare, realizzato in forma diretta. La risposta in frequenza,
per N dispari, può essere scritta in funzione dei coefficienti della risposta
impulsiva h(k) = h(N − 1 − k) come:

r
"   #
N −1 N −1
 
−j N 2−1 θ
H(ejθ ) = e
X
h +2 h(k) cos −k θ
2 k=0
2
N −1
= e−j 2
θ
H(θ) (2.58)

dove H(θ) è un polinomio trigonometrico di grado r = (N − 3)/2 e |H(e jθ )| =


|H(θ)|. (Per N pari vale una espressione simile). Data la linearità di H(e jθ )
e H(θ) rispetto ai coefficienti h(k), si ha (esattamente):

r
N −1 N −1
  X  
∆H = H(θ; h + dh) − H(θ; h) = dh +2 dh + i cos iθ
2 i=0
2
(2.59)
e quindi:
r

X
|∆|H| | ≤ |∆H| = ∆H ≤ max(dh(k)) 1 + cos iθ (2.60)


i=0

Se la quantizzazione dei coefficienti avviene per arrotondamento, risulta nel


caso peggiore (θ = 0 o π):
q
∆H ≤ max |dh(k)| N = N , (2.61)

2
valore chiaramente pessimistico.
In alternativa, si può arrivare ad una stima più realistica per max |∆H|,
interpretando nella (2.59) gli errori dh(k) come variabili aleatorie, incorrelate
e uniformemente distribuite nell’intervallo [−q/2, +q/2]. Secondo questo pro-
cedimento, ∆H risulta (per ogni θ) una variabile aleatoria di cui è possibile
calcolare media e varianza:

r
!
X
E(∆H) = 1+2 cos iθ E(dh) = 0 (2.62)
i=0
r
!
σ 2 (∆H) = cos2 iθ σdh
2
= S 2 (ejθ )σdh
2
X
1+4
i=0

2 2 q2
≤ σ∆ = (2N − 1) σdh = (2N − 1) (2.63)
12
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 41

Approssimando ∆H con una variabile gaussiana a media nulla e varianza σ ∆ 2,

si può dire che, per un certo valore di θ e con probabilità dipendente dal valore
di m (P ' .95 per m = 2), si ha:
mq q
∆H ≤ m σ∆ = (2N − 1)/2 (2.64)

2
La (2.64) porge una stima di max |∆H| più conservativa della (2.61), gen-
eralmente ben soddisfatta in pratica gia’ con m = 2, cui corrisponde la

|∆H| ≤ 0.82q N ,

e indipendente dai valori dei coefficienti h(k), cioè dalla f.d.t. realizzata.
Si osserva che è possibile utilizzare la funzione S(e jθ ), definita nella (2.63),
direttamente nel progetto del filtro FIR. Se D(e jθ ) rappresenta l’andamento
desiderato per il modulo e W (ejθ ) > 0 la funzione peso dell’ errore di approssi-
mazione, si può impostare il problema di progetto come:
 h i 
jθ jθjθ jθ
min max W (e )S(e ) D(e ) − H(e ) (2.65)

h θ

In tal modo, tramite la S(ejθ ) si tiene già conto nel progetto del filtro a coeffi-
cienti a precisione infinita degli effetti prodotti dalla quantizzazione dei coeffi-
cienti, anticipandone gli effetti. Con questa procedura si possono guadagnare
uno/due bit nella rappresentazione dei coefficienti del filtro, rispetto alla quan-
tizzazione dei coefficienti ottenuti progettando il filtro nel modo usuale, cioè
con S(ejθ ) = 1.
0
Tornando alla (2.64), indichiamo con D, H e H , rispettivamente, l’andamento
desiderato per il modulo, il polinomio trigonometrico con coefficienti a preci-
sione infinita e quantizzati; si ha:
0
H − D = H − D + ∆H (2.66)
0
max |H − D| ≤ max |H − D| + |∆H| ' max |H − D| + 2σ∆
θ θ θ
0
Questa relazione mostra che max |H − D| è limitato superiormente dalla
somma di due addendi, dei quali il primo tende a zero (a norma del teorema
di Weierstrass, se D e W sono continue sul dominio di definizione)
√ al crescere
dell’ordine N del filtro, mentre il secondo diverge con N . Tale relazione
suggerisce che per ”piccoli” valori di N predominerà il primo effetto, mentre
per ”grandi” valori di N predominerà il secondo, e che quindi il massimo del
valore assoluto dell’errore di approssimazione presenterà un minimo per un
certo valore di N , minimo di valore tanto più piccolo quanto minore risulta q
(o quanto maggiore il numero di bit).
Ne viene che, fissato l’errore massimo ammesso per il filtro a coefficienti quan-
tizzati, esiste un valore massimo di q, max(q), (o un valore minimo del numero
42 2.6 Lunghezza statistica di parola

di bit) al di sopra (sotto) del quale non è possibile soddisfare le specifiche, in-
dipendentemente dal valore della lunghezza N della risposta impulsiva del fil-
tro. Si ha inoltre che per q < max(q) esistono più coppie (N, q) che soddisfano
le specifiche.

Tali considerazioni da qualitative possono diventare quantitative, se si


conosce la dipendenza di max |H − D| da D, da W e da N , come avviene
nel caso D sia di tipo passa basso (o passa alto). In questo caso indicati con
δp e δs gli errori massimi in banda passante e attenuata corrispondenti a H, e
con δp0 e δs0 le analoghe quantità corrispondenti a H 0 , si ha:

δp0 ' δ + 2σ∆ δs0 ' δs + 2σ∆ , (2.67)


mentre la relazione tra δp , δs , N e la banda di transizione normalizzata
∆F = ∆f /Fc è data dalla:

10 log 10 (δp δs ) + 13
N −1'− (2.68)
14.6∆F
Si ha inoltre:
Z 2π Z 2π
|h(k)| ≤ H(ejθ ) dθ/2π ' D(ejθ )dθ/2π < 1 (2.69)

0 0

da cui risulta che per ogni D(ejθ ) costante a tratti (D(ejθ ) = 1 o D(ejθ ) = 0)
si può assumere per i coefficienti h(k) un fondo scala unitario. Corrisponden-
temente si ha q = 2−nc , ed i coefficienti h0 (k) risultano numeri in virgola fissa
di nc + 1 bit con nc bit di parte frazionaria.
Fissato il rapporto k 0 = δp0 /δs0 e il valore di ∆F , è possibile risolvere il sistema
costituito dalle (2.67) e (2.68) e ottenere famiglie di curve che riportano la
dipendenza di δp0 e δs0 da N e da nc + 1 [43]. Ad esempio, in Fig. 2.10 le
curve a tratto continuo mostrano la dipendenza prevista per la attenuazione
A0 = −20 log 10 δs0 nel caso k 0 = 1, ∆F = 0.1 e hM = 0.25 (vedi dopo); i punti
mostrano i risultati di simulazioni ed i valori corrispondenti risultano in buon
accordo con le previsioni.
Dalla figura risulta che, come già anticipato, fissato un valore di A 0 (ad es.
40 dB) esiste un valore minimo di nc (pari a circa 8, nell’esempio) al di sotto del
quale non è possibile scendere, qualsiasi sia N . Risulta, inoltre, che per ogni
valore di nc > min(nc ) esistono due valori di N che soddisfano le specifiche (il
maggiore dei due non ha ovviamente interesse pratico), e che quindi esistono
infinite coppie (N, nc ) che soddisfano le specifiche. Di queste hanno interesse
particolare: quella che corrisponde al valore minimo di n c + 1, e quella che
corrisponde al valore minimo del prodotto N (n c + 1) (cioè ad una occupazione
di memoria minima per i coefficienti del filtro, e ad un numero minimo di
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 43

nc =
A (dB)

∆ F=0.1
k’=1
h =0.25
M

Figura 2.10 Andamento previsto per la attenuazione in funzione dell’ordine per


alcuni valori di nc .

operazioni elementari di ”shift and add” nel calcolo di ogni campione di uscita
per una prefissata lunghezza di parola dello stato). Per quest’ultima esistono
le relazioni approssimate (corrispondenti a un valore m = 2):

A0 − 7.5 − 11.5 log 10 k 0


Nopt ' (2.70)
14.8∆F
nopt ' 0.17A0 + 0.49 + 0.76/k 0 − 1.9 log 10 ∆F (2.71)

con Nopt (nopt + 1) ' min(N (nc + 1)). Le (2.70) e (2.71) consentono di stimare
l’ordine N del filtro passa-basso (con coefficienti a precisione infinita) ottimo
in norma di Chebychev, che con coefficienti quantizzati su n opt + 1 bit soddisfa
le specifiche imposte (con elevata probabilità).

Si osserva che la (2.71) vale nella ipotesi q = 2 −nc . Se invece si normaliz-


zano i coefficienti h(k) dividendoli per max |h(k)| = h M prima di quantizzarli
(e si modifica la realizzazione, utilizzando i coefficienti moltiplicatori h(k)/h M
e premoltiplicando l’ingresso o postmoltiplicando l’uscita per h M ), si aumenta
la precisione di rappresentazione, ad esempio, di un bit se 1/2 ≥ h M > 1/4.
In questo caso, trascurando la quantizzazione di h M , risulta: q = hM 2−nc e al
44 2.6 Lunghezza statistica di parola

secondo membro della (2.71) va aggiunto l’addendo (negativo) log 2 hM , dove


per hM si può usare la approssimazione:

fp + f s 2fp 2fp
hM ' = + ∆F '
Fc Fc Fc

facilmente ricavabile dalla (2.69).

Sia, ad esempio, Fc = 1Hz, fp = 0.248 Hz, fs = 0.2955 Hz, A0 = 74 dB e


δp0 = 10−2 :

a) si ponga q = 2−nc ; si ha δp0 /δs0 ' 50, Nopt ' 66.8 e nopt ' 15.8. Per
progettare la H(z) corrispondente è necessario calcolare il rapporto k = δ p /δs
fra gli errori massimi in B.P. e B.A., rapporto che determina i pesi da dare
agli errori in dette bande. Si ha con m = 2:

δp0 − mσ∆
k' ' 100.
δs0 − mσ∆

Il filtro con N = 67 e nc + 1 = 17 bit soddisfa le specifiche; variando N fra 60


e 75 e quantizzando i coefficienti dei filtri ottenuti con n c + 1 variabile tra 13 e
20 bit, si trova che il minimo per N (n c + 1) lo si ha per N = 69 e nc + 1 = 15,
ed è quindi abbastanza vicino al valore predetto in base alle (2.70) e (2.71);

b) si ponga q = hM 2−nc ; si ha N = 66.8 come prima, ma nc = 15; il filtro a


min N (nc + 1) corrisponde a N = 67 e nc + 1 = 16.

Esempio 3: filtri IFIR.


Come visto nel precedente esempio, la sensibilità alla quantizzazione dei coeffi-
cienti di un filtro F.I.R. realizzato in forma diretta cresce con la lunghezza del
filtro ed è quindi inversamente proporzionale alla banda di transizione normal-
izzata. In questo esempio accenneremo ad una tecnica che consente di ridurre
l’entità di questo fenomeno e di ridurre contemporaneamente la complessità
di calcolo associata alla realizzazione del filtro nel caso la banda passante o
quella attenuata siano ”piccole” [48], [58].
Per fissare le idee consideriamo il progetto di un filtro FIR passa-basso con
banda passante [0, θp ] e banda attenuata [θs , π] con θs < π/2.
Per prefissati valori di δp e δs la lunghezza N della risposta impulsiva risulta
data dalla (2.68). Consideriamo un filtro con gli stessi valori di δ p e δs ,
ma con θp0 = 2θs e θs0 = 2θs e quindi con banda di transizione normalizzata
θp0 − θs0 doppia di quella del filtro originale e lunghezza N 1 ' N/2. Indichiamo
con H1 (z) la f.d.t. corrispondente e consideriamo la f.d.t. H 1 (z 2 ), la cui
realizzazione si può ottenere da quella di H 1 (z) sostituendo ogni ritardo con un
ritardo doppio. H1 (z 2 ) ha lunghezza 2N1 − 1 ' N , quindi ancora dimensione
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 45

di stato pari a N − 1, ma ha solo N/2 coefficienti non nulli.


Come illustrato in Fig. 2.11, la risposta in frequenza H 1 (ej2θ ) corrispondente
ha periodo π e quindi risulta del tipo ”elimina banda” e presenta una banda
passante [−θp , θp ] centrata nell’origine e una [π − θp , π + θp ] centrata in θ = π.

H(θ)
1

2 θp 2 θs π
H (2 θ)
1

θp θs π
H(θ)
2

0 θp π - θs π

Figura 2.11 Per i filtri IF IR.

Se mettiamo in cascata ad H1 (z 2 ) un FIR passabasso, H2 (z), con banda


passante [−θp , θp ] e banda attenuata [π − θs , π + θs ], otteniamo un sistema che
soddisfa le specifiche iniziali, ma con un numero di coefficienti non nulli pari
a N1 + N2 ' N/2 + N2 con N2 lunghezza di H2 (z). Il filtro H2 (z) ha banda
di transizione π − (θp + θs ) e, se la quantità θp + θs è sufficientemente piccola,
risulta N2 << N/2, e quindi N1 + N2 ' N/2 (è talvolta possibile utilizzare
come filtro H2 (z) un filtro ”senza moltiplicatori” [48], [32]).
Quindi, dal punto di vista della complessità di calcolo tutto va come se si
fosse utilizzato un filtro di lunghezza metà. Generalmente H 1 (z) è detto filtro
”modello”, H1 (z 2 ) filtro ”sagomatore”, e H2 (z) filtro ”interpolatore”, dato che
la sua funzione è quella di eliminare la replica della banda passante a θ = π o,
nel tempo, di interpolare i coefficienti nulli della risposta impulsiva di H 1 (z 2 ).
Da qui il nome di ”Interpolated FIR” (IFIR) dato alla realizzazione.
Se θs ha valori sufficientemente piccoli, è possibile partire da un filtro H 1 (z)
di specifiche θp0 = Lθp e θs0 = Lθs con Lθs < π e L ≥ 2, e quindi con una banda
di transizione L(θs − θp ). In questo caso H1 (z) ha lunghezza N1 ' N/L, che
diminuisce al crescere di L, e H1 (z L ) presenta L bande passanti centrate nelle
radici L-esime dell’unità, L−1 delle quali devono essere cancellate da H 2 (z), il
cui ordine quindi cresce con L. Se ne deduce che per un certo valore massimo,
Lmax , consentito per L, esiste un valore ottimo di L cui corrisponde il minimo
46 2.6 Lunghezza statistica di parola

numero totale di coefficienti non nulli e quindi la minima complessità di calcolo


e minima sensibilità.
In ogni caso la risposta in frequenza complessiva dipende dal prodotto

H1 (ejLθ ) H2 (ejθ )

ed è sufficiente che H1 (ejθ ) e H2 (ejθ ) garantiscano singolarmente un errore


massimo pari a δs in banda attenuata, mentre in banda passante deve essere:

1 − δp ≤ |H1 (ejLθ ) H(ejθ )| ≤ 1 + δp

Quindi gli errori δp1 e δp2 di H1 e H2 devono soddisfare alla condizione: δ p1 +


δp2 ≤ δp . Tale condizione può essere soddisfatta:
a) con la scelta δp1 = δp2 = δ/2;
b) ripartendo l’errore totale δp tra δp1 e δp2 in modo da minimizzare la quantità
N1 + N2 . Il problema diviene:

min[N1 (δp1 ) + N2 (δp2 )],

con N (δp ) dato dalla (2.68), soggetto alla condizione

δp1 + δp2 = δp ,

che, risolto col metodo dei moltiplicatori di Lagrange, porge


∆F2 ∆F1
δp1 = δp δp2 = δp ;
∆F1 + ∆F2 ∆F1 + ∆F2
c) progettando iterativamente H1 e H2 [58]. Ad esempio, progettato H1 come
in b), si determina H2 in modo che il prodotto H1 H2 soddisfi le specifiche
(allo scopo è sufficiente definire opportunamente la funzione peso dell’errore
nell’algoritmo di Remez). A questo punto si riprogetta H 1 in modo che il
prodotto H1 H2 soddisfi le specifiche e si itera.

A titolo di esempio sia: fp = 200Hz, fs = 500Hz, Fc = 10 kHz, δp ≤ 1/50


e δs ≤ 1/200. La lunghezza del filtro corrispondente risulta N = 63 e si ha
Lmax = 10. Posto per semplicità δp1 = δp2 = δp /2, al variare di L tra 2 e 9 si
ottengono i valori N1 e N2 riportati in Tab. 2.6. (I valori N1 e N2 non sono i
valori stimati in base alla (2.68), ma sono i valori effettivi ottenuti progettando
i filtri con l’algoritmo di Remez). Dalla tabella risulta che N 1 + N2 è minimo
per L = 4 ed in corrispondenza assume il valore 30, valore che va confrontato
col valore N = 63, corrispondente a L = 1! Quindi si è dimezzato il numero di
coefficienti non nulli (cioè di operazioni di moltiplicazione e somma) a spese
di un modesto aumento della dimensione dello stato (16 × 4 + 12 = 76 verso
62).
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 47

L 1 2 3 4 5 6 7 8 9
N1 63 33 25 17 15 13 11 9 9
N2 0 5 9 13 17 21 29 41 53
N1 + N 2 63 38 33 30 32 34 40 50 62

Tabella 2.1

La soluzione può essere leggermente migliorata introducendo nel progetto


di H2 (ejθ ) delle bande di transizione in corrispondenza delle bande attenuate
di H1 (ej4θ ): N2 passa da 13 a 11, o progettando anche H 2 (z) come un IFIR,
cioè facendo H2 (z) = H21 (z)H22 (z 2 ), senza vantaggi ulteriori in questo caso.

Per quanto riguarda la riduzione della sensibilità alla quantizzazione dei


coefficienti, si ha H̄(ejθ ) = H̄1 (ejLθ )H̄2 (ejθ ) e risulta

∆H̄ ' H̄1 ∆H̄2 + H̄2 ∆H̄2

da cui è agevole ricavare la:

|∆H̄| ≤ |∆H̄1 | + |∆H̄2 |

e quindi, se si assume un fondo scala unitario per i coefficienti (cioè se q = 2 −nc ,


si vedano le considerazioni fatte sulla (2.71)), la variazione |∆ H̄| risulta non
superiore a quella corrispondente ad una realizzazione in forma diretta di
un FIR con N = N1 /L + N2 coefficienti non nulli. Nell’esempio numerico
considerato si trova che, in ottimo accordo con quanto prevedibile in base alla
(2.64), alla realizzazione con L = 4 corrisponde un risparmio di circa un bit
rispetto alla realizzazione corrispondente al caso L = 1. Si osserva che non è
difficile dimostrare che la cosa non è più vera se si normalizzano i coefficienti
dei due FIR al valore massimo (cioè se q = h M 2−nc ).

Quanto detto relativamente al caso di un passa-basso, si può applicare


con semplici modifiche al caso di un filtro passa-alto o passa-banda, purchè
la banda passante sia piccola (cambia il solo filtro interpolatore H 2 (z)). Se la
banda passante è estesa, quanto detto si può ancora applicare pur di riferirsi
al filtro complementare G(z). Se H(z) ha lunghezza N dispari, si ha:

H(z) = z −(N −1)/2 − G(z) (2.72)

con G(z) f.d.t. F.I.R. a fase lineare, che soddisfa la

H̄(ejθ ) + G(ejθ ) = 1, (2.73)

dove al solito si è posto H(z) = z −(N −1)/2 H̄(z) e G(z) = z −(N −1)/2 G(z).
Se quindi, ad esempio, H(ejθ ) è di tipo passa-basso, ma con θs > π/2, basta
48 2.7 Una classe di realizzazioni a piccola sensibilità.

applicare quanto visto a G(ejθ ), che risulta di tipo passa-alto, e realizzare la


H(z) secondo la (2.72). (Il ritardo z −(N −1)/2 è già presente nella realizzazione
di G(z), se questa è del tipo a post-moltiplicazione).

2.7 Una classe di realizzazioni a piccola sensibilità.


In questo paragrafo verrà presentata una classe di realizzazioni a piccola sen-
sibilità alla variazione dei coefficienti moltiplicatori. Verrà introdotta una
condizione cui deve obbedire la realizzazione di una f.d.t. in un punto, es.
z0 = ejθ0 , per avere minima sensibilità (cioè sensibilità nulla) per z = z 0
e quindi piccola sensibilità in un opportuno intorno di z 0 . Tale condizione
si rivela molto utile nel caso di filtri selettivi in frequenza, perchè consente
di individuare realizzazioni con valori molto piccoli della sensibilità in banda
passante, cioè proprio nella regione in cui generalmente le realizzazioni cascata
e parallelo di celle del secondo ordine in forma diretta presentano elevati valori
della sensibilità (si veda l’esempio 1 del precedente paragrafo).
Si consideri una realizzazione di una f.d.t. con moltiplicatori c . Si sup-
ponga che i coefficienti possano variare in un certo dominio D, conservando
la stabilità della f.d.t., e si supponga inoltre che la realizzazione sia tale da
garantire che, per ogni c ∈ D e ogni θ, sia verificata la condizione

|H(ejθ ; c)| ≤ 1 ∀c ∈ D; θ (2.74)


cioè il modulo della risposta in frequenza non possa mai superare un certo
valore che si è assunto pari all’unità. Se per un particolare valore c 0 del
vettore c e per un certo valore θ = θ0 si ha

|H(ejθ0 ; c0 )| = 1, (2.75)

allora a fronte di una qualsiasi perturbazione dc si ha:



H(ejθ0 ; c0 + dc) ≤ 1. (2.76)

Quindi una tale realizzazione gode della proprietà di avere sensibilità alle vari-
azioni dei parametri nulla a θ = θ0 , cioè:

∂|H(ejθ0 ; c)|
=0 (2.77)
∂c


c=c
0

e sensibilità piccola in un intorno di θ 0 . Essa si presta particolarmente bene


a realizzare la f.d.t. dei filtri ellittici, dato che un filtro ellittico di ordine N
presenta in banda passante b(N + 1)/2c punti (con bxc parte intera di x) che
soddisfano la (2.75).
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 49

Il riconoscimento dell’esistenza di realizzazioni che soddisfano la (2.77) e


della importanza della (2.77) stessa, è avvenuto nel campo dei filtri analogici.
Esso è dovuto ad Orchard [51], al quale va il merito di aver individuato il
motivo per cui la sensibilità alle variazioni parametriche dei filtri L − C a
scala era cosı̀ eccezionalmente inferiore a quella dei filtri attivi proposti fino al
’66.
La linea di ragionamento seguita è nota come ”the Orchard’s argument”
ed è la seguente. Si consideri una f.d.t. selettiva in frequenza, H a (s) =
V2 (s)/VG (s), realizzata con un due-porte passivo e privo di perdite, cioè cos-
tituito solo di induttanze e capacità, interposto tra il generatore di resistenza
interna RG e un carico adattato RL = RG = R, come illustrato in fig. 2.12.
L2
R

V C2 V
G 2
C1 C3 R

Figura 2.12 Filtro analogico a scala.

La potenza attiva erogata dal generatore viene tutta trasferita al carico ed


ha valore massimo pari alla potenza disponibile del generatore V G2 /4R. Si
supponga che, in corrispondenza ai valori nominali dei parametri (resistenze,
induttanze e capacità), si abbia il massimo trasferimento di potenza tra gen-
eratore e carico ad una frequenza f0 . A tale frequenza una qualsiasi variazione
dei parametri rispetto ai valori nominali non può che provocare una riduzione
della potenza erogata. Quindi la funzione (V 22 (f )/R)/(VG2 (f )/4R) = 4|Ha (f )|2
ha un massimo alla frequenza f0 e soddisfa una equazione analoga alla (2.77):
essa ha sensibilità nulla per f = f0 e piccola per f ' f0 , cioè in banda pas-
sante.
Se poi la rete L − C è del tipo a scala, come in figura, e gli zeri di H a (s)
sono realizzati come antirisonanze di rami serie (o come risonanze di rami
parallelo), una variazione dei valori di induttanza e capacità provoca solo uno
spostamento degli zeri lungo l’asse immaginario s = j2πf . Conseguentemente
le reti a scala hanno piccola sensibilità anche in banda attenuata.
La messa in luce di queste proprietà ha portato successivamente all’impiego
quasi generale di strutture per filtri attivi che copiassero la topologia del cir-
cuito L − C (realizzazioni a giratore o a FDNR), conservandone quindi tutte
le eccellenti proprietà di bassa sensibilità. La stessa strada è stata seguita da
Fettweis [15], [16] in campo digitale ed ha portato ai filtri numerici d’onda (o
ad onda).
Nel seguito presenteremo, per prima, la classe di realizzazioni di filtri nu-
50 2.7 Una classe di realizzazioni a piccola sensibilità.

merici tramite il parallelo di f.d.t. passatutto. Tale classe garantisce bassa


sensibilità in banda passante e, con una attenta scelta della realizzazione adot-
tata per i passatutto, buone prestazioni anche in banda attenuata. Successi-
vamente, nel paragrafo 2.7.4 introdurremo i filtri numerici d’onda. Concluder-
emo con un esempio di confronto della sensibilità alle variazioni dei coefficienti
moltiplicatori delle realizzazioni considerate.

2.7.1 Funzioni di trasferimento doppiamente complementari


Due risposte in frequenza H(ejθ ) e G(ejθ ) vengono dette complementari, quando
soddisfano la condizione:

H(ejθ ) + G(ejθ ) = 1 (2.78)

e vengono dette complementari in potenza quando soddisfano la condizione


2 2
H(ejθ ) + G(ejθ ) = 1 (2.79)

Risposte in frequenza che soddisfano entrambe le condizioni vengono dette


doppiamente complementari. In tal caso si ha:
2 2
H(ejθ ) + G(ejθ ) = H(ejθ ) + G(ejθ ) = 1 (2.80)

La (2.80) indica che H(ejθ ) e G(ejθ ) devono essere in quadratura di fase ad


ogni θ, per cui H(ejθ ) + G(ejθ ) e H(ejθ ) − G(ejθ ) devono avere entrambe
modulo unitario.
Per prolungamento analitico si ha

H(z) + G(z) = H1 (z)


(2.81)
H(z) − G(z) = H2 (z)

con H1 (z) e H2 (z) f.d.t. passa-tutto razionali e stabili, se lo sono H(z) e G(z).
Dalle (2.81) si ha:

1
H(z) = [H1 (z) + H2 (z)]
2
1
G(z) = [H1 (z) − H2 (z)] (2.82)
2
e quindi f.d.t. doppiamente complementari possono essere realizzate come
somma e differenza di f.d.t. passatutto (Fig. 2.13).
Se quindi si adotta una realizzazione dei passatutto che garantisca

|H1 (ejθ ; c)| = |H2 (ejθ ; c)| = 1


Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 51

H1 (z) H(z)X(z)
0.5
X(z)

H2 (z) G(z)X(z)
-1

Figura 2.13 Realizzazione tramite f.d.t. passatutto di f.d.t. doppiamente comple-


mentari.

per ogni c ∈ D (ad esempio, una realizzazione in forma diretta o a traliccio ad


uno o due moltiplicatori), si è nelle condizioni richieste dalla (2.75) e si ottiene
una realizzazione a piccola sensibilità nella banda passante di H(e jθ ) e G(ejθ ).
È evidente che la banda passante (|H| ' 1) e la banda attenuata (|H| ' 0)
di H(ejθ ) corrispondono, rispettivamente, ai valori di θ per cui H 1 (ejθ ) =
exp[jφ1 (θ)] e H2 (ejθ ) = exp[jφ2 (θ)] sono circa in fase e circa in opposizione di
fase, e viceversa per G(ejθ ).
Consideriamo il caso in cui H(z) sia di tipo passa-basso (e G(z) passa-alto)
e H1 (z) e H2 (z) siano f.d.t. passatutto stabili a coefficienti reali di ordine N 1
e N2 , rispettivamente, con H1 (1) = H2 (1) = 1, cioè φ1 (0) = φ2 (0) = 0.
Dalla (2.7.1) risulta immediatamente H(1) = 1 e G(1) = 0. Ricordando poi
che φ1 (θ) e φ2 (θ) sono funzioni monotone decrescenti di θ (si veda la Appendice
B) e φ1 (π) − φ1 (0) = N1 π e φ2 (π) − φ2 (0) = N2 π, sempre dalla (2.7.1) si ricava
che, affinchè H(ejθ ) sia di tipo passa-basso, deve essere N 1 − N2 = 1 e quindi
l’ordine N1 +N2 di H(z) e G(z) deve essere dispari. (In generale, per N 1 −N2 =
2n + 1 si hanno n bande attenuate). In conclusione, se ci si restringe a f.d.t.
passatutto a coefficienti reali e a coppie di f.d.t. doppiamente complementari
di tipo passabasso/passalto, la decomposizione (2.7.1) può essere applicata
solo nel caso H(z) e G(z) abbiano grado dispari.
Come illustrato nel seguito, per ottenere una coppia passa–basso/passa–
alto di grado pari è, infatti, necessario ricorrere a f.d.t. passatutto a coefficienti
complessi [68, 55, 69].

Comportamento in banda attenuata.

La realizzazione tramite passatutto di f.d.t. doppiamente complementari assi-


cura una bassa sensibilità alla quantizzazione dei coefficienti nella banda pas-
sante di entrambi i filtri. Va osservato, a questo proposito, che ciò non assicura
automaticamente anche una bassa sensibilità nella banda attenuata. Infatti
una piccola deviazione nella banda passante di uno dei filtri può corrispondere
a una variazione (in dB) ben più sensibile nella banda attenuata dell’altro. Ad
52 2.7 Una classe di realizzazioni a piccola sensibilità.

esempio, |H(ejθ )| abbia deviazione dall’unità δHp = 10−2 (DBR' 0.1 dB) e
deviazione dallo zero δHs = 10−2 (A=40 dB). Dalla condizione di complemen-
tarità in potenza si ricava:
1 2 q
δGp ' δHs = 5 · 10−5 δGs ' 2δHp ' 1/7
2
e quindi G(z), a fronte delle prestazioni ”ragionevoli” di H(z), risulta avere
prestazioni molto sbilanciate: eccezionali in banda passante e molto scadenti
in banda attenuata. Se la quantizzazione dei coefficienti provoca una vari-
azione di δGp dello stesso ordine di δGp , cioè se è δGp0 ' 2δGp , si trova che
0

detta (piccolissima) variazione porta ad un valore δ Hs ' 2δHs e quindi a
una riduzione di attenuazione pari a 3dB.
Questo comportamento in banda attenuata può essere anche interpretato con
la considerazione generale che gli zeri di H(z) e G(z) sono realizzati indiret-
tamente tramite la somma e la differenza di due f.d.t.
In conclusione con riferimento a Fig. 2.13 si ha che, mentre a qualsiasi real-
izzazione dei passa-tutto, H1 (z) e H2 (z), che garantisca che le f.d.t. rimangano
tali anche dopo quantizzazione dei coefficienti, corrisponde una realizzazione
di H(z) e G(z) che ha sensibilità minima in banda passante, lo stesso non
risulta necessariamente vero relativamente al comportamento in banda atten-
uata.
In particolare ci si può aspettare che realizzazioni dei passa-tutto come cascata
di celle dal primo e secondo ordine, abbiano un migliore comportamento per
il controllo più diretto che esse esercitano su poli e zeri di ogni cella (si veda
il par. 2.7.5) e quindi sulla caratteristica di fase associata.
Infine osserviamo che la realizzazione tramite f.d.t. passatutto può risultare
più efficiente della realizzazione cascata o parallelo di H(z) o G(z), almeno in
termini di numero di moltiplicazioni. Allo scopo basta ricordare che esistono
realizzazioni di f.d.t. passa-tutto che richiedono un numero di moltiplicazioni
e di elementi di memoria pari all’ordine della f.d.t. (e un numero di somme
pari a tre volte l’ordine).

2.7.2 Realizzazioni mediante f.d.t. passa-tutto


Nel precedente paragrafo si è trovato che, se H(z) e G(z) sono doppiamente
complementari, vale la decomposizione (2.81). Ora, data una f.d.t. H(z),
è sempre possibile trovare una G(z) complementare in potenza, e ci si può
chiedere se esistano condizioni esplicite su H(z) e G(z) che garantiscano che
H(z) e G(z) siano doppiamente complementari e garantiscano, quindi, la pos-
sibilità della decomposizione (2.81).
A questo proposito, indicato con
D̂(z) = z −N D(z −1 )
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 53

il polinomio “reciprocato” del polinomio D(z) di grado N (D(z k ) = 0 k =


1, · · · , N ↔ D̂(1/zk ) = 0 e D(1) = D̂(1)), vale il seguente risultato:

Siano H(z) = P (z)/D(z) e G(z) = Q(z)/D(z) due f.d.t. a coefficienti reali,


stabili e complementari in potenza di grado N , sia P (z) = N p z −i sim-
P
PN −i PN i=0−ii
metrico, Q(z) = i=0 qi z antisimmetrico, D(z) = 1 + i=1 di z e non ci
siano fattori comuni tra P (z) e D(z) e tra Q(z) e D(z). Sotto queste con-
dizioni H(z) e G(z) sono doppiamente complementari e vale la decomposizione
(2.81) con
D̂1 (z) D̂2 (z)
H1 (z) = H2 (z) =
D1 (z) D2 (z)
f.d.t. passatutto a coefficienti reali di grado N 1 e N2 , rispettivamente, con
N1 + N2 = N e D(z) = D1 (z)D2 (z).

Per la dimostrazione osserviamo che la (2.79) si può scrivere come:

P (z)P (z −1 ) + Q(z)Q(z −1 ) = D(z)D(z −1 ) (2.83)

e che le condizioni di simmetria e antisimmetria implicano le:

P (z −1 ) = z N P (z) Q(z −1 ) = −z N Q(z). (2.84)

La (2.83) diviene quindi P 2 (z) − Q2 (z) = z −N D(z)D(z −1 ) che può riscriversi


come:

[P (z) + Q(z)] [P (z) − Q(z)] = D(z)D̂(z), (2.85)


relazione che lega gli zeri dei polinomi P (z) + Q(z) e P (z) − Q(z) a quelli
(reciproci rispetto al cerchio di raggio unitario) del polinomio D(z) D̂(z).
Dalle (2.84) risulta: P (z) + Q(z) = z −N [P (z −1 ) − Q(z −1 )], per cui gli zeri del
polinomio a coefficienti reali P (z)+Q(z) sono reciproci di quelli di P (z)−Q(z)
e possiamo, quindi, limitarci a considerare quali fra gli zeri di D(z) D̂(z) siano
zeri di P (z) + Q(z).
Ora D(z) ha tutti gli zeri entro al cerchio di raggio unitario e quindi P (z)+Q(z)
non può avere zeri sul cerchio. Sia N 1 il numero di zeri di P (z) + Q(z) entro
al cerchio: raccogliamoli nel polinomio monico D 1 (z) = 1 + n d1n z −n , che
P

risulta un fattore di D(z)D̂(z); sia N2 = N − N1 il numero degli zeri di P (z) +


Q(z) esterni al cerchio: raccogliamoli nel polinomio D̂2 (z) con reciprocato,
D2 (z), monico.
Si ha:

D(z) = D1 (z)D2 (z) (2.86)


P (z) + Q(z) = αD1 (z)D̂2 (z) (2.87)
54 2.7 Una classe di realizzazioni a piccola sensibilità.

con α costante reale, e quindi:


1
P (z) − Q(z) = D̂1 (z)D2 (z) (2.88)
α
Per quanto riguarda α dalla:
P (1) + Q(1) = αD1 (1)D̂2 (1) = P (1) − Q(1) = D̂1 (1)D2 (1)/α
si ha α2 = 1 e non è limitativo scegliere α = 1.
Dividendo le (2.87) e (2.88) per D(z) = D 1 (z)D2 (z) si ottiene

P (z) + Q(z) D̂2 (z)


H(z) + G(z) = = = H2 (z) (2.89)
D(z) D2 (z)
P (z) − Q(z) D̂1 (z)
H(z) − G(z) = = = H1 (z) (2.90)
D(z) D1 (z)
con H1 (z) e H2 (z) f.d.t. passatutto a guadagno unitario di grado N 1 e N −N1 ,
rispettivamente, e si conclude la dimostrazione (si osservi che la (2.89) implica
la |H(ejθ )+G(ejθ )| = 1). 2

Se, fermo il resto, si fa l’ipotesi che P (z) che Q(z) siano entrambi polinomi
simmetrici, la (2.85) diviene:
[P (z) + jQ(z)] [P (z) − jQ(z)] = D(z)D̂(z) (2.91)
In questo caso si ha
P (z) ± jQ(z) = z −N (P (z −1 ± jQ(z −1 )
e quindi entrambi i polinomi a coefficienti complessi P (z) + jQ(z) e P (z) −
jQ(z) hanno zeri reciproci, e si può escludere la presenza di zeri reali (se
P (z1 ) + jQ(z1 ) = 0, z1 ∈ R → P (z1 ) = Q(z1 ) = 0, contro l’ipotesi che P e Q
non abbiano fattori comuni con D(z) e quindi, in base alla (2.83), tra loro).
Quindi D(z) non può avere zeri reali e deve avere ordine pari. Inoltre gli zeri
di P (z) + jQ(z) sono i coniugati di quelli di P (z) − jQ(z) e quindi ad ogni
coppia di zeri (zk , 1/zk ) dell’uno corrisponde la coppia (z k∗ , 1/zk∗ ) dell’altro. In
questo caso, il polinomio D1 (z) può essere costruito prendendo un solo zero
di ogni coppia di zeri complessi coniugati (z k , zk∗ ) di D(z). Similmente si può
operare per D2 (z). In definitiva si arriva alle

M
Y z −1 − zk
H(z) + jG(z) = β = H2 (z) (2.92)
k=1
1 − zk∗ z −1
M

Y z −1 − zk∗
H(z) − jG(z) = β = H1 (z) (2.93)
k=1
1 − zk z −1
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 55

con M = N/2, |β| = 1 e H1 (z) e H2 (z) f.d.t. passatutto a coefficienti comp-


lessi. Quindi

1
H(z) = [H1 (z) + H2 (z)] (2.94)
2
1
G(z) = [H1 (z) − H2 (z)] (2.95)
2j

in cui i coefficienti (complessi) della f.d.t. H 1 (z) sono i coniugati dei coefficienti
di H2 (z).

2.7.3 Filtri di Butterworth, Chebychev e Cauer


Nel seguito ci riferiamo ai soli filtri di Cauer (o ellittici), ma è immediato
verificare che le stesse conclusioni valgono anche per quelli di Butterworth e
Chebychev.

1 1

0.9 0.9

|H(f)|2 |H(f)|
2
0.8 2 0.8 2
|G(f)| |G(f)|

0.7 0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
a) f/Fc b) f/Fc

Figura 2.14 Andamento delle funzioni modulo quadro di f.d.t. complementari in


potenza.

La Fig. 2.14 a) mostra l’andamento tipico della funzione modulo quadro di


un filtro passa-basso ellittico di ordine dispari (N = 5 nella figura). La f.d.t.
H(z) = P (z)/D(z) corrispondente ha tutti gli zeri sul cerchio e il numera-
tore P (z), essendo P (1) 6= 0, risulta simmetrico. In figura è anche riportato
l’andamento del modulo quadro della f.d.t. G(z) complementare in potenza:
|G(ejθ )|2 = 1 − |H(ejθ )|2 . La G(z) = Q(z)/D(z) corrispondente ha gli N zeri
sul cerchio, uno dei quali si trova in z = 1. Quindi il numeratore Q(z) risulta
antisimmetrico e H(z) e G(z) soddisfano alle condizioni del teorema riportato
nel paragrafo precedente. Inoltre le caratteristiche di equioscillazione in banda
passante e attenuata di |G(ejθ )|2 fanno sı̀ che anche G(z) sia un filtro ellittico.
56 2.7 Una classe di realizzazioni a piccola sensibilità.

Si può quindi concludere che ogni passa basso/alto ellittico di ordine dis-
pari può sempre essere realizzato come il parallelo di due f.d.t. passatutto a
coefficienti reali.
In fig. 2.14 b) è riportato l’analogo andamento della funzione modulo
quadro per N pari. In questo caso i numeratori di H(z) e G(z) risultano
entrambi simmetrici, e quindi nel caso N pari si può sempre ricorrere alla
realizzazione di H(z) e G(z) tramite il parallelo di due f.d.t. passatutto a
coefficienti complessi secondo la (2.95).
La cosa rimane vera anche per i filtri passabanda (o elimina banda). Uti-
lizzando, infatti, la trasformazione:

z −1 − α
z −1 → −z −1
1 − αz −1

con |α| < 1, che trasforma una f.d.t. passa-basso H(z) in una f.d.t. passa-
banda L(z), si verifica che, se H(z) ha grado N dispari e quindi numeratore
simmetrico, L(z) ha numeratore antisimmetrico di grado M = 2N (lo zero in
−1 va in −1 e +1), mentre il complementare in potenza di L(z) ha numeratore
simmetrico. Se invece H(z) ha ordine N pari, entrambi i numeratori di L(z)
e del complementare in potenza risultano simmetrici.
Pertanto filtri ellittici passa banda (o eliminabanda) di ordine M = 2N con N
dispari possono essere realizzati secondo la (2.7.1), mentre se N è pari possono
essere realizzati secondo la (2.95).

Si osserva che, in generale, data una f.d.t. passa basso H(z) = P (z)/D(z),
la costruzione delle f.d.t. H1 (z) e H2 (z) richiede nel caso N dispari la deter-
minazione di Q(z) tramite la (2.83), ed il calcolo degli zeri di P (z) + Q(z).
Gli zeri interni al cerchio di raggio unitario determinano il polinomio D 1 (z) e
quindi H1 (z), mentre quelli esterni determinano D̂2 (z) e quindi H2 (z).
Nel caso di f.d.t. di tipo ellittico esiste una procedimento più semplice che
richiede la sola conoscenza dei poli di H(z), cioè degli zeri di D(z): se p 1 , p2 , p3 , · · ·
sono gli zeri di D(z) ordinati in modo che 0 < arg(p 1 ) < arg(p2 ) < · · · < π,
i poli di H2 (z) sono dati dai poli p2k e p∗2k e quelli di H1 (z) dai poli p2k+1 e
p∗2k+1 [18]. Quindi, in questo caso, i poli di H 1 (z) e H2 (z) si ”interlacciano” e
possono essere direttamente dedotti da quelli di D(z).

Esempio 1. Per illustrare le proprietà di bassa sensibilità in banda passante


dei filtri realizzabili come parallelo di f.d.t. passa-tutto, consideriamo un filtro
ellittico di ordine N = 5 e specifiche: ondulazione (DBR) 0.12 dB in banda
passante [0, 200 Hz], attenuazione 58 dB in banda attenuata [400, 4000 Hz] e
frequenza di campionamento 8 kHz.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 57

Gli zeri e i poli della f.d.t. corrispondente, H(z), sono:

poli 0.9139, (0.9314 ± j0.1057), (0.9659 ± j0.1631),


(2.96)
zeri −1., (0.9507 ± j0.3100), (0.8854 ± j0.4648)

e il guadagno b0 (si veda la (2.22) risulta 0.840373 · 10 −3 . Si osserva che i poli


cadono nell’intorno di z = 1, quindi in posizione critica.
La decomposizione (2.7.1) porta alle f.d.t. passatutto H 1 (z) e H2 (z) di ordini
3 e 2, rispettivamente, aventi poli:

H1 (z) 0.9139, (0.9659 ± j0.1631),


(2.97)
H2 (z) (0.9314 ± j0.1057),

in accordo con la osservazione fatta alla fine del paragrafo precedente, e zeri
in posizione reciproca.

Banda Passante Banda Attenuata


4 2
Fase H1, H2 (rad)

Fase H , H (rad)

2
0
2

0
1

−2
−2

−4 −4
0 50 100 150 200 1000 2000 3000 4000
a) b)
1.8 −50
1.6 −60
1.4 −70
|H| (dB)

|H| (dB)

−80
1.2
−90
1 −100
0.8 −110
0.6 −120
0 50 100 150 200 1000 2000 3000 4000
c) d)
0 −50
−0.2 −60
−0.4 −70
|H| (dB)
|H| (dB)

−80
−0.6
−90
−0.8 −100
−1 −110
−1.2 −120
0 50 100 150 200 1000 2000 3000 4000
e) f (Hz) f) f (Hz)

Figura 2.15 Per l’esempio 1.

In Fig. 2.15 a) e b) sono riportati gli andamenti delle fasi di H 1 (ejθ ) e


H2 (ejθ ) con θ = 2πf T : si nota che, al variare di f tra 0 e F c /2, le fasi di
58 2.7 Una classe di realizzazioni a piccola sensibilità.

H1 e H2 subiscono una variazione di 3π e π, rispettivamente, e sono quasi


coincidenti in banda passante (la discontinuità per f ' 170 Hz è dovuta alla
rappresentazione della fase modulo 2π), mentre differiscono di circa π in banda
attenuata.
Le Fig. 2.15 c), d) ed e), f) mostrano l’andamento della risposta in fre-
quenza corrispondente, rispettivamente, ad una realizzazione di H(z) come
cascata di celle del secondo ordine in forma diretta e come parallelo delle f.d.t.
H1 (z) e H2 (z) realizzate ancora come cascata di celle del secondo ordine in
forma diretta. I coefficienti sono stati quantizzati in entrambi i casi su 10 bit.
Si osserva che alla realizzazione cascata di H(z) rimane associato un ottimo
comportamento in banda attenuata (Fig. 2.15 d: attenuazione ' 57.5 dB)
e un cattivo comportamento in quella passante (Fig. 2.15 c: DBR ' 0.75
dB), mentre alla realizzazione parallelo di H 1 (z) e H2 (z) rimane associato un
ottimo comportamento in banda passante (Fig. 2.15 e: DBR ' 0.14 dB), se si
trascura la variazione di fp che è compensabile “predistorcendo” le specifiche,
ed un buon comportamento in quella attenuata (Fig. 2.15 f: attenuazione
' 54 dB).
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 59

2.7.4 Filtri numerici ad “onda”


Il procedimento comunemente seguito per la sintesi di un filtro numerico con
risposta in frequenza di tipo selettivo, consiste nel determinare una f.d.t. ana-
logica Ha (s) del tipo di Butterworth, Chebycev o Cauer, che soddisfi agli errori
di approssimazione ammessi nelle bande passante e attenuata, e nel trasfor-
marla, tramite la trasformazione bilineare s = (z − 1)/(z + 1), nella f.d.t.
H(z) = Ha ((z − 1)/(z + 1)) di un sistema lineare a tempo discreto. A questo
punto ci si pone il problema di individuare una realizzazione (un sistema di
equazioni lineari alle differenze finite) numericamente “robusta”.
In precedenza abbiamo visto che, nel caso di filtri analogici selettivi, la real-
izzazione con una rete (adattata) a scala costituita di induttanze e capacità,
possiede eccellenti proprietà di insensibilità alla variazione dei parametri. Que-
sta proprietà é legata al fatto che una tale realizzazione non é descritta comple-
tamente dalla sola equazione differenziale che lega l’ingresso alla uscita ( come
avverrebbe per una realizzazione in forma diretta mediante interconnessione
di integratori), ma è invece descritta da un sistema di equazioni differenziali
lineari la cui struttura corrisponde non solo alla f.d.t. H a (s) ma anche alla
topologia della rete [15]. La piccola sensibilità parametrica della rete a scala
é quindi dovuta al particolare sistema di equazioni che descrivono la realiz-
zazione.
Una volta accertato questo fatto, si può cercare di tradurre tale sistema di
equazioni differenziali in un sistema di equazioni alle differenze finite che ne
erediti le proprietà. Allo scopo dovremo tradurre le leggi costitutive degli ele-
menti che compongono la rete e le leggi di Kirkhoff, che rendono conto di come
questi elementi sono interconnessi, quindi della topologia del circuito. Inoltre,
dato che le f.d.t. a tempo–continuo e a tempo–discreto sono collegate dalla
trasformazione bilineare, é naturale utilizzare proprio tale trasformazione come
strumento per discretizzare il sistema di equazioni differenziali. Le difficoltà
nascono, però, proprio a questo punto.
Se, infatti, descriviamo la rete elettrica in termini di correnti e tensioni e
applichiamo la trasformazione bilineare alle corrispondenti equazioni, arrivi-
amo ad un grafo non computabile. (Merita ricordare che la nozione di grafo
computabile é nata proprio in questo contesto.)
Consideriamo, ad esempio, una induttanza L, descritta dalla: v = L di/dt →
V (s) = sLI(s). La corrispondente equazione alle differenze é:

v(n) + v(n − 1) = L (i(n) − i(n − 1))

nel cui grafo compare un cammino privo di elementi di ritardo che collega i
nodi associati alle variabili v(n) e i(n). La stessa proprietà vale per i grafi
associati agli altri elementi. Ne viene che la interconnessione dei vari elementi
del circuito porta inevitabilmente a cammini chiusi privi di elementi di ritardo
60 2.7 Una classe di realizzazioni a piccola sensibilità.

e quindi ad un grafo non computabile.


La soluzione del problema é data dalla descrizione degli elementi analogici
in termini di combinazioni lineari di tensioni e correnti. La soluzione classica
proposta da Fettweis [15] fa ricorso alla descrizione tramite le “onde di ten-
sione” o “ di corrente” [42], da cui il nome di filtri numerici ad onda (wave
digital filters: WDF).
In particolare, dato un bipolo di impedenza Z(s) = V (s)/I(s), la soluzione
basata sulle onde di tensione porta a caratterizzare il bipolo tramite le quan-
tità:
(
onda incidente: a = V + RI
onda riflessa: b = V − RI

dove R, che ha le dimensioni fisiche di una resistenza, è detta resistenza di


riferimento, ed il suo valore, che può essere una quantità positiva arbitraria,
è scelto in modo tale da semplificare la descrizione del bipolo. Considerando
l’onda incidente come causa e quella riflessa come effetto, possiamo rappre-
sentare il bipolo con il coefficiente di riflessione:

V − RI Z(s) − R
S̃ = = . (2.98)
V + RI Z(s) + R

Ad esempio, per una induttanza si ha:

sL − R
Z(s) = sL ⇒ S̃L = (2.99)
sL + R
che per R = L diviene
s−1
S̃L = .
s+1
Se quindi, applichiamo la trasformazione bilineare otteniamo:

SL (z) = −z −1

che non pone problemi di computabilità. Procedendo allo stesso modo si trova
che l’equivalente di una capacità per R = 1/C diviene S C (z) = z −1 e si trovano
gli equivalenti degli altri elementi di circuito. Per interconnettere questi bipoli,
caratterizzati da diversi valori di resistenza di riferimento, si ricorre ad adat-
tatori a 3 e 2 porte aventi come corrispondente analogico i circolatori della
teoria delle microonde. Purtroppo tali strutture portano a realizzazioni com-
plesse e costose dal punto di vista computazionale, in particolar modo ad un
elevato numero di sommatori. Naturalmente visto l’alto grado di flessibilità
si prestano alla realizzazione delle piú svariate applicazioni, come elencato in
[16]. Un approccio alternativo é quello suggerito in [12].
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 61

Nel seguito utilizzeremo il procedimento introdotto da Cucchi e Molo [13],


che considera la rete elettrica come interconnessione di doppi bipoli (anzichè
bipoli) e che, con una scelta accorta di onda incidente e riflessa, porta ad una
realizzazione numerica modulare ed efficiente.
Consideriamo dunque un filtro analogico, caratterizzato da una f.d.t. di
ordine N , realizzato mediante una struttura a scala come in Fig. 2.16, in cui
le Z2n+1 (s) sono le impedenze dei rami serie, le Y 2n (s) le ammettenze dei rami
parallelo, E(s) è il generatore di tensione e R G e RL , con RG = RL , sono la
resistenza interna del generatore e la resistenza di carico.

RG Z1 (s) Z 3 (s) Z N (s)


+ RL
Y2 (s) Y (s)
E(s) N-1

Figura 2.16 Rete a scala

Nel caso di filtri passivi e privi di perdite, ogni ramo puó quindi assumere
quattro configurazioni tipiche: induttanza, capacità, serie di induttanza e ca-
pacità e parallelo di induttanza e capacità, ed ognuna di esse verrà vista come
un doppio bipolo serie o parallelo. Inoltre, supponendo di avere un manuale
di filtri analogici, ad esempio [72], i valori dei componenti si possono supporre
noti.

Rappresentazione degli elementi fondamentali

Consideriamo il doppio bipolo di Fig. 2.17 (il verso di I 2 é opposto a quello


usuale per gli utilizzatori) e la sua rappresentazione equivalente in termini di
combinazioni di tensioni e correnti di porta: (a 1 , b1 ) e (a2 , b2 ) sono le onde
incidente e riflessa alle porte uno e due e R k é la resistenza di riferimento
della porta k = 1, 2. Il valore delle resistenze R k é a priori arbitrario, ma si
vedrà in seguito che una loro scelta opportuna semplificherà notevolemente la
realizzazione numerica.

I1 I2 a1
a
2
V1 Doppio bipolo V2 R1 Doppio bipolo R2
b1 b
2

Figura 2.17 Rappresentazioni di un doppio bipolo


62 2.7 Una classe di realizzazioni a piccola sensibilità.

Le onde riflesse dipendono dalle onde incidenti secondo la relazione:


       
 b1   S̃11 (s) S̃12 (s)   a   a1 
  1 
=   = S̃(s)
    
    
       
b2 S̃21 (s) S̃22 (s) a2 a2

La matrice S̃(s) è detta matrice di diffusione, ed é rappresentata dal grafo di


Fig.2.18.
Considerando la cascata di siffatte celle, risulta evidente che nella con-
troparte numerica ottenuta tramite la trasformazione bilineare, possono esserci
anelli chiusi privi di elementi di ritardo. Quindi per garantire la computabilità
del grafo imponiamo la condizione S 22 (z) = z −1 S22 0 (z), quindi che S (z) si
22
annulli all’infinito: S22 (∞) = 0. L’imporre uno zero per z → ∞ equivale ad
imporre su S̃22 (s) = S22 ((z − 1)/(z + 1)) la condizione:

S̃22 (s) = 0. (2.100)

s=1

Imposta tale condizione, si tratta ora di calcolare gli elementi della matrice
S̃(s) associata ai vari elementi circuitali. L’utilizzo della definizione usuale di
onda incidente e riflessa di tensione (o di corrente) porterebbe ad una matrice
piena, e quindi ad una struttura complessa; una idea che semplifica notevol-
mente tale struttura è stata sviluppata in [13] con una scelta opportuna della
definizione delle “onde”. Il criterio scelto è stato quello di imporre che un
elemento della matrice sia sempre nullo, ad esempio S̃11 (s):

b1

S̃11 (s) = =0 (2.101)
a1 a2 =0

Per poter soddisfare a tale vincolo, b 1 ed a2 devono essere definite opportuna-


mente, cioé in modo che quando a2 = 0 si abbia anche b1 = 0.
a b
1 ~ 2
S21
~ ~
S11 S22

b a
1 ~ 2
S12

Figura 2.18 Grafo associato alla matrice di diffusione


Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 63

Realizzazione del ramo serie

a1 b2
I1 I2
F (z)
V Z(s) V2 R R2 = R1 +Z(1)
1 1

β
-1
-b a2
1

Figura 2.19 Ramo serie e grafo equivalente in z

Consideriamo il doppio bipolo di Fig. 2.19 caratterizzato dai vincoli:


(
V2 = V1 − Z(s)I
. (2.102)
I = I 1 = I2

Le definizioni delle onde che soddisfano la (2.101) (a 2 = 0 implica b1 = 0),


diventano : 

 a1 = V 1 + R 1 I1

 b = R I
1 1 1
. (2.103)



b 2 = V 2 + R 2 I2

a2 = R 2 I2
Dalle definizioni degli elementi della matrice S̃(s) otteniamo:

b1 R1 I

S̃11 (s) = = =0
a1 a2 =0 V1 + R1 I I=0
b1 R1 I R1

S̃12 (s) = = =
a2 a1 =0 R2 I V1 =−R1 I R2
b2 V2 + R2 I2 V1 − Z(s) I

S̃21 (s) = = = =1
a1 a2 =0 V1 + R1 I1 I=0 V1
I=0
b2 V2 + R2 I2 R2 − R1 − Z(s)

S̃22 (s) = = = .
a2 a1 =0 R2 I2 V1 =−R1 I R2
Per la computabilità, imponiamo la condizione:

S̃22 (s) = 0 ⇒ R2 = R1 + Z(1) (2.104)

s=1
ottenendo un vincolo tra i valori delle due resistenze di riferimento R 1 e R2 .
Si ha quindi:
R1 Z(s)
  
S̃22 (s) = 1 − 1− (2.105)
R2 Z(1)
64 2.7 Una classe di realizzazioni a piccola sensibilità.

per cui:      
 b1   0 α   a1 
= (2.106)
     
    
     
b2 1 (1 − α)F̃ (s) a2

dove:
R1 R1 Z(s)
α= = F̃ (s) = 1 − (2.107)
R2 R1 + Z(1) Z(1)
Notiamo fin d’ora che essendo Z(1) > 0, si ha sempre R 2 > R1 e quindi risulta
0<α<1.
L’equazione matriciale (2.106) si mappa nel piano z nel grafo di Fig. 2.19, dove
ak e bk sono segnali a tempo discreto: dato che spesso α < 0.5 si é introdotto
il moltiplicatore β = 1 − α e, anticipando una esigenza sulla connessione tra
celle, si é introdotta una moltiplicazione per −1 su b 1 .
F (z) è ottenuta applicando la trasformazione bilineare a F̃ (s), la quale
dipende a sua volta dalla effettiva configurazione del ramo.
Consideriamo, ad esempio, una induttanza: si ha Z(s) = sL, e quindi

R1
α= (2.108)
R1 + L

sL bilin z −1
F̃ (s) = 1 − =1−s ⇒ F (z) = 2 (2.109)
L 1 + z −1
la cui equazione ingresso-uscita risulta:

y(n) = 2x(n − 1) − y(n − 1)

e il cui grafo di flusso é riportato in Fig. 2.20.


-1
z 2
x(n) y(n)
-1

Figura 2.20 Realizzazione della F (z) corrispondente a Z(s) = sL.

Realizzazione del ramo parallelo

Consideriamo il doppio bipolo di Fig. 2.21 a) caratterizzato dai vincoli:


(
V2 = V 1 = V
I2 = I1 − Y (s)V.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 65

Le definizioni delle onde che soddisfano la (2.101) diventano:




 a1 = V 1 + R 1 I1

 b1 = V 1

 a2 = V 2


b2 = V 2 + R 2 I2

e gli elementi della matrice di diffusione risultano:

b1 V


S̃11 (s) = = =0
a1 a2 =0 V + R1 I1 V =0
b1 V

S̃12 (s) = = =1
a2 a1 =0 V V =−R1 I
b2 V + R2 I2 R2 (I1 − Y (s) V ) R2

S̃21 (s) = = = =
a1 a2 =0 V + R1 I1 V =0 R1 I1
V =0 R1
b2 V + R2 I2 R1 − R2 − R1 R2 Y (s)

S̃22 (s) = = =
a2 a1 =0 V
V =−R1 I R1

Per la computabilità imponiamo la condizione:


R1
S̃22 (s) = 0 ⇒ R2 = , (2.110)

s=1 1 + R1 Y (1)

che introduce un vincolo sulle resistenze R 1 e R2 . Otteniamo:

R2 Y (s)
  
S̃22 (s) = 1 − 1− . (2.111)
R1 Y (1)

In conclusione si ha:
     
 b1   0 1   a1 
= (2.112)
     
    
     
b2 α (1 − α)F̃ (s) a2

I1 I2 1/ α
^a a1
1
V1 Y(s) V2
α
b^ 1 b1
a) b)

Figura 2.21 a) ramo parallelo e b) trasformazione


66 2.7 Una classe di realizzazioni a piccola sensibilità.

dove:

R2 1 Y (s)
α= = F̃ (s) = 1 − . (2.113)
R1 1 + R1 Y (1) Y (1)

Alla 2.112 corrisponde in z una struttura in cui compaiono due moltiplicazioni


più quella/e associate alla F (z). Se applichiamo alla (2.112) la trasformazione
riportata in Fig. 2.21 b):


 a1 = 1



α (2.114)

 b1 = 1



α
otteniamo una descrizione uguale a quella trovata per il ramo serie:
     
 b̂1   0 α   â1 
= (2.115)
     
    
     
b2 1 (1 − α)F̃ (s) a2

Si osserva che con la trasformazione applicata risulta b 1 (z)/a1 (z) = b̂1 (z)/â1 (z),
mentre si ha b2 (z)/â1 (z) = (1/α)b2 (z)/a1 (z). Quindi la f.d.t. complessiva che
verrà realizzata, risulterà pari ad 1/α volte la f.d.t. originale. Ritroveremo
tale trasformazione elementare nel Cap. 4 nella operazione di “messa in scala”
delle variabili nelle realizzazioni a traliccio e “ad onda”.
Consideriamo come esempio il caso di una ammettenza costituita dalla
serie di una induttanza e di una capacità: Y (s) = 1/(sL + 1/sC). Si ha

R2 (1 + LC)
α= = (2.116)
R1 1 + C(R1 + L)

sL
1+s2 LC bilin kz −1 + z −2
F̃ (s) = 1 − L
⇒ F (z) = 2 (2.117)
1+LC
1 + 2kz −1 + z −2

dove:
1 − LC
k= (2.118)
1 + LC
L’equazione alle differenze corrispondente alla F (z) risulta

y(n) = 2[x(n − 2) + kx(n − 1)] − y(n − 2) − 2ky(n − 1)

ed una realizzazione con il solo moltiplicatore k, che determina la frequenza


di risonanza, é riportata in Fig. 2.22.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 67

-1

z -1 z -1 2

x(n) k y(n)
-1

Figura 2.22 Realizzazione della F (z) corrispondente a Y (s) = 1/(sL + 1/sC).

I2 I’1

Z V2 V’1 Y

Figura 2.23 Collegamento serie–parallelo

Interconnessione tra le celle

Finora ci si é solo preoccupati di trovare la ”rappresentazione in z” di rami serie


e parallelo isolati. Nella rete a scala analogica essi sono collegati ed il collega-
mento introduce vincoli su tensione e corrente alle porte dei rami, vincoli di cui
é necessario rendere conto. Nel caso analogico, possiamo avere due situazioni:
connessione ramo serie–ramo parallelo e connessione ramo parallelo–ramo se-
rie.
Ad esempio in Fig. 2.23 è riportata la cascata di un ramo serie e di uno par-
allelo ( il risultato cui si arriverà, è lo stesso se si scambiano i rami). Il loro
collegamento implica: (
V2 = V10 = V
I2 = I10 = I
Inserendo tali vincoli nelle equazioni:
( (
a2 = R 2 I2 a01 = V10 + R10 I10
b2 = V 2 + R 2 I2 b01 = V10

si trovano le relazioni tra a2 , b2 e a01 , b01 . Tali relazioni si semplificano (non si


introducono moltiplicazioni), se si impone che sia

R2 = R10 , (2.119)

cioè che la resistenza di riferimento alla porta di ingresso del ramo derivato
sia pari alla resistenza di riferimento della porta di uscita del ramo serie. Tale
ipotesi si supporrà sempre verificata nel seguito. In corrispondenza si ottiene:
68 2.7 Una classe di realizzazioni a piccola sensibilità.

x(n) y(n)

F1 (z) F2 (z) F3 (z) θ

~ β β2 β3
y(n) -1 1 -1 -1
Z1 A Y2 A Z3

Figura 2.24 Realizzazione a scala

(
a01 = b2
(2.120)
a2 = b2 − b01

Il blocco “adattatore” assume la struttura associata ai due blocchi A di Fig.


2.24 relativa ad un prototipo a scala del terzo ordine con due rami serie, Z 1 (s)
e Z2 (s), ed un ramo parallelo, Y2 (s). Nelle tre sezioni corrispondenti si é
assorbita la moltiplicazione per −1 di b 1k associata agli adattatori A e si é
usato il parametro βk = 1 − αk .
Dalla figura si intuisce che la realizzazione numerica cui si arriverà sarà ancora
del tipo a scala.

Connessione col generatore e col carico

RG I
1 b=e(n)
+
a1
E V R11
a b1

Figura 2.25 La connessione col generatore

Dallo schema di Fig. 2.25, indicata con R 11 la resistenza di riferimento alla


porta 1 della prima cella e posto RG = R11 per semplificare le relazioni risul-
tanti, si deduce che le grandezze dal lato del generatore risultano:
(
b = V + RG I = E(s) = a1
(2.121)
a = RG I = b1 ,

dove le onde senza indice sono relative al generatore e quelle con l’indice sono
relative alla prima cella del filtro.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 69

IN =I L
aN y
Cella N VN =VL RL θ
bN

Figura 2.26 La connessione col carico

Quindi l’onda incidente il doppio bipolo, a 1 = b, che é quella che più ci inter-
essa, dipende solo dal generatore. É interessante osservare che l’onda riflessa
dal doppio bipolo, b1 = a, rappresenta la caduta di tensione su R G e quindi la
risposta in frequenza associata a b 1 (z)/a1 (z) risulta di tipo “complementare”
rispetto a quella realizzata dal filtro (passa–alto se il filtro é passa–basso).
Nel caso analogico, l’ultima cella puo’ essere: un ramo in parallelo al carico
o un un ramo in serie al carico. La connessione è illustrata in fig.2.26, la quale
implica i vincoli: 
 VN = V L
 = V
IN = I L = I (2.122)
 V
L = RL I

Corrispondentemente si ottiene la relazione tra le onde in uscita dal filtro:


bN

bN = V + R2N I =⇒ I=


R2N + RL



R2N


aN = R2N I = bN = ϑ b N ramo serie (2.123)
 R2N + RL
RL



 aN = V = bN = ϑ b N ramo parallelo


R2N + RL
dove R2N è la resistenza di riferimento in uscita dell’ultima cella del filtro.

Collegamento delle celle

x(n) y(n)

Cella A Cella A Cella


R11 1 R21 1,2 R12 2 N-1, R1N N R2N θ
N

Figura 2.27 Struttura di un filtro ad “onda”

In conclusione La struttura di un WDF é costituita da una cascata di celle


interconnesse come in Fig. 2.27, dove R i,j con i = 1, 2 indica la resistenza
70 2.7 Una classe di realizzazioni a piccola sensibilità.

L1 L3 L5
C2 C4
RG

L2 L4 RL
+

E(s)

Figura 2.28 Per l’esempio: rete a scala

della porta i della cella j. Ogni cella può avere una o due variabili di stato, a
seconda dell’impedenza F (z) a partire dalla quale è stata calcolata e quindi la
realizzazione risultante non risulta canonica nei ritardi (al pari del prototipo
analogico). Inoltre ad ogni cella rimangono associate una o due moltipli-
cazioni, sempre a seconda sempre della tipologia del ramo originale, e si ha
una moltiplicazione per ogni adattatore ed una associata al carico.
La Fig. 2.24 mostra piú in dettaglio la realizzazione corrispondente ad
una f.d..t. del terzo ordine nelle ipotesi R G = R11 , R21 = R12 e R22 =
R13 (nella figura non si é compensata la moltiplicazione per 1/α 2 associata
alla realizzazione della seconda cella). Si osserva che, tramite il principio di
trasposizione é possibile ottenere una realizzazione equivalente.

Esempio 1. Vediamo un esempio di realizzazione ad “onda” di filtro passa–


basso ellittico di ordine N = 5 di specifiche: f p = Fc /4 (θp = 2πfp /Fc = π/2),
ripple massimo ammesso in banda passante DBR = 0.2 dB e minima attenu-
azione in banda oscura A = 46 dB. Bisogna quindi progettare un filtro ana-
logico ellittico avente: ωp = tan(π(fp /Fc )) = 1 rad/s e ωs = tan(π(fs /Fc )) =
1.5243 rad/s. Dalle tabelle di un catalogo di filtri analogici [72] si trova un
filtro che, con le bande passante e attenuata assegnate, ha DBR = 0.18 dB e
A = 46.3 dB. La rete a scala corrispondente é riportata in Fig. 2.28.
Il valore dei componenti per RG = RL = 1Ω é:
• L1 = 1.18411 H

• L2 = 0.14706 H

• L3 = 1.77455 H

• L4 = 0.41894 H

• L5 = 0.97798 H

• C2 = 1.20241 F

• C4 = 0.95213 F
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 71

Le resistenze di porta risultano:

• RG = RL = 1Ω

• R11 = RG = 1Ω

• R12 = R21 = R11 + L1 = 2.18411Ω


R21 (1 + L2 C2 )
• R13 = R22 = = 0.675862Ω
1 + C2 (L2 + R21 )
• R14 = R23 = R22 + L3 = 2.45041Ω
R23 (1 + L4 C4 )
• R15 = R24 = = 0.918501Ω
1 + C4 (L4 + R23 )
• R25 = R24 + L5 = 1.89648Ω

e quindi i coefficienti moltiplicatori di cella risultano:

• α1 = R11 /R21 = 0.457852397

• α2 = R22 /R21 = 0.309445061

• α3 = R22 /R23 = 0.275815674

• α4 = R24 /R23 = 0.374835685

• α5 = R24 /R25 = 0.484318827

• k2 = (1 − L2 C2 )/(1 + L2 C2 ) = 0.699485986

• k4 = (1 − L4 C4 )/(1 + L4 C4 ) = 0.429709740

• θ = R25 /(1 + R25 ) = 0.65475358

da cui si ottengono immediatamente i coefficienti β i = 1 − αi che intervengono


in una realizzazione del tipo di Fig. 2.24. Merita osservare come la dispersione
dei valori dei coefficienti sia molto piccola.
La realizzazione richiede (3N − 1)/2 = 7 elementi di ritardo, (3N + 1)/2 = 8
moltiplicazioni e (9N − 3)/2 = 21 somme contro gli N = 5 elementi di ritardo,
2N + 1 = 11 moltiplicazioni e 2N = 10 somme richieste da una realizzazione
canonica.
La Fig. 2.29 riporta il modulo della risposta in frequenza (normalizzata
al valore massimo) corrispondente ad una quantizzazione per arrotondamento
dei coefficienti su 4, 6 e ≥ 8 bit segno escluso (i β i sono numeri positivi e
minori dell’unità)). Data la dipendenza tra i valori dei coefficienti, indotta dai
vincoli sulle resistenze di riferimento, si é quantizzato β 1 e, con la condizione
72 2.7 Una classe di realizzazioni a piccola sensibilità.

Banda passante Banda attenuata


0.05 −45

0
−50

−0.05
−55

−0.1

|H| dB
|H| dB

−60

−0.15

−65
−0.2

≥ 8 bit ≥ 8 bit
6 bit −70 6 bit
−0.25
4 bit 4 bit

−75
0 0.05 0.1 0.15 0.2 0.25 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5
f/Fc f/Fc

Figura 2.29 Per l’esempio: risposta in frequenza a coefficienti quantizzati

RG = R11 = 1 Ω, si é ricalcolata R21 utilizzando il valore quantizzato per β 1 ,


si é quindi quantizzato β2 e · · ·
Dall’esame della figura risulta palese come siano effettivamente mantenute le
“promesse” di piccola sensibilità parametrica della realizzazione. Una real-
izzazione come cascata di celle del secondo ordine richiederebbe una rappre-
sentazione dei coefficienti su 10 bit per ottenere le prestazioni del filtro ad
“onda” con coefficienti su 4 bit. Si osserva che la rappresentazione dei coef-
ficienti a 4 bit consente una realizzazione “senza moltiplicatore”, realizzando
ogni moltiplicazione con una sequenza “cablata” di operazioni di “shift and
add”.

Riduzione del cammino critico

La realizzazione a scala ottenuta é caratterizzata da un valore elevato della


lunghezza del cammino critico: se consideriamo come prevalente il costo delle
moltiplicazioni (il che é certamente vero se le moltiplicazioni sono realizzate
come sequenza cablata di “shift and add”), al cammino critico restano asso-
ciate N + 2 operazioni di moltiplicazione, con N ordine della f.d.t. Il motivo
risiede nel fatto che nella realizzazione si hanno due “linee” lungo le quali
si propagano, rispettivamente, l’onda incidente e la riflessa, ed i calcoli asso-
ciati all’onda riflessa non possono iniziare prima che l’onda incidente sia ar-
rivata all’uscita. Ad esempio, con riferimento alla Fig. 2.24, dalla conoscenza
dell’ingresso e delle uscite da F1 (z), F2 (z) e F3 (z) (variabili di stato) é possi-
bile calcolare l’uscita y(n) con una serie di somme e, in parallelo, il prodotto
per il coefficiente k che interviene nella F 2 (z); a questo punto calcolato il
prodotto θy(n), é possibile aggiornare le variabili di stato di F 3 (z), F2 (z) e
F1 (z) nell’ordine.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 73

Una soluzione per ridurre la lunghezza del cammino critico [13], consiste
proprio nel sezionare, con un taglio, la rete a scala analogica in due sezioni,
una alimentata dal generatore di tensione E 1 (s) = E(s) e resistenza interna
RG e l’altra alimentata da un generatore di tensione E 2 (s) = 0 e resistenza
interna RL (in corrispondenza il segnale di uscita viene cambiato di segno: si
veda (2.121)). Si realizzano, quindi, in modo indipendente le due sezioni con
il procedimento illustrato in precedenza e le si adatta in corrispondenza del
punto di taglio.

e 1=e b2s =a 1 a 2=b2d e 2=0

Sottorete Adattatore Sottorete


"sinistra" S-D "destra"
~
y 1=y a2s=b1 b2 =a2d y 2=y

Figura 2.30 Per la riduzione del cammino critico

Il procedimento é schematizzato in Fig. 2.30 nella quale, riferendoci al


filtro di Fig. 2.24, possiamo pensare che il blocco di sinistra corrisponda, ad
esempio, al generatore che alimenta la impedenza Z 1 (s) e quello di destra
corrisponda ad un generatore di tensione nulla e resistenza interna R L che
alimenta la impedenza Z3 (s) e la ammettenza Y2 (s). Ovviamente nel punto di
giunzione é necessario introdurre un adattatore il quale, nelle ipotesi attuali,
deve adattare la uscita dal ramo serie, Z 1 (s), con la uscita dal ramo parallelo,
Y2 (s).
Indichiamo con a2s e a2d , rispettivamente, le onde incidenti sulla struttura
a “sinistra” e a “destra” dell’adattatore, con b 2s e b2d le onde riflesse e con R2s e
R2d le resistenze di riferimento di uscita delle due strutture. Le definizioni delle
onde ai e bi incidente e riflessa alla porta i dell’adattatore, sono nell’ipotesi
R1 = R2s e R2 = R2d :


 a1 = V 1 + R 1 I1 = b2s

 b
1 = R 1 I1 = a2s

 a2 = V 2 + R 2 I2 = b2d


b2 = V2 = a2d .

Tramite i vincoli analogici:


(
V1 = V 2 = V
I1 = −I2 = I

si ottiene:
74 2.7 Una classe di realizzazioni a piccola sensibilità.

S11 = ab11 R1 I1 =R R


= 1 = ϑ1
a2 =0 V + R1 I V =R2 I 1 + R2

S12 = ab1 R1 I1 = R −R


= 1 = −ϑ1
2 a1 =0 V − R2 I V =−R1 I 1 + R2

S21 = ab21 V =R R


=
2 = ϑ2
a2 =0 V + R1 I V =R2 I 1 + R2

S22 = ab22 V =R R


=
1 = ϑ1
a1 =0 V − R2 I V =−R1 I 1 + R2

avendo definito :
Ri
ϑi = i = 1, 2 .
R1 + R 2
Si ottiene, quindi, la seguente matrice di diffusione per l’adattatore:
     
 b1   ϑ1 −ϑ1   a 
  1 
= 
  
   
     
b2 ϑ2 ϑ1 a2

da cui, essendo ϑ1 + ϑ2 = 1, si può ricavare una realizzazione con una sola


moltiplicazione e due somme, ad esempio, la:
(
b1 = ϑ1 (a1 − a2 )
b2 = a1 − ϑ1 (a1 − a2 ).

associata al blocco A0 di Fig. 2.31.


In definitiva la realizzazione della Fig. 2.24 si modifica come in Fig. 2.31.
In essa la moltiplicazione per β1 può avvenire in parallelo con le moltiplicazioni
per β20 e β30 associate al calcolo dell’uscita, e l’aggiornamento dello stato asso-
ciato a F1 (z) in parallelo con quello di F20 (z) e F30 (z). Ovviamente il guadagno
in termini di parallelismo sarebbe maggiore in una f.d.t. di ordine più elevato.

2.7.5 Un esempio
Concludiamo con un esempio in cui viene messa a confronto la sensibilità
parametrica di alcune realizzazioni.
Consideriamo la famiglia di filtri passa-basso ellittici con parametri: ordine
N = 5, ondulazione in banda passante: DBR = 0.2 dB e attenuazione in
banda attenuata: A ' 47 dB. Tutte le f.d.t. corrispondenti possono essere
dedotte dalla f.d.t. associata ad un valore arbitrario della banda passante,
tramite la trasformazione
z −1 − a
z −1 →
1 − az −1
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 75

x(n) -1 e (n)=0
2

θ1
F1 (z) F’(z)
2 F’(z)
3

~ β β ’2 β 3’
y(n) -1 1 -1 -1 -1 -y(n)
Z1 A’ Y2 A Z3

Figura 2.31 Esempio di riduzione del cammino critico

con |a| < 1.


Si considerano tre realizzazioni come parallelo di f.d.t. passatutto H 1 (z) e
H2 (z) (di secondo e terzo ordine):
a) realizzazione R1: H1 (z) e H2 (z) sono realizzate come cascata di celle del
primo e secondo ordine, in cui ad ogni cella è associata una struttura a traliccio
ad un moltiplicatore, normalizzata in norma L ∞ (paragrafo 4.1.6). Questa re-
alizzazione é stata presa in considerazione perché coincide con la realizzazione
“ad onda” di Tipo 2 di f.d.t. passatutto del primo e secondo ordine proposta in
[18]. Essendo una realizzazione ad onda ha potenzialmente piccola sensibilità
parametrica;
b) realizzazione R2: H1 (z) e H2 (z) sono realizzate con una struttura a traliccio
a quattro moltiplicatori;
c) realizzazione R3: H1 (z) e H2 (z) sono realizzate come cascata di celle del
primo e secondo ordine, in cui ogni cella è realizzata in forma diretta ad uscite
multiple dallo stato.
Si sono inoltre considerate la realizzazione R4 della f.d.t. H(z) come cascata
di celle del primo e secondo ordine ad uscite multiple dallo stato e la realiz-
zazione R5 come filtro numerico “ad onda”. Il prototipo analogico di R5 ha
la struttura di Fig. 2.28 e si é utilizzata la realizzazione a ridotto cammino
critico nella quale un blocco comprende il generatore, Z 1 (s) e Y2 (s), e l’altro
blocco comprende Z3 (s), Y4 (s), Z5 (s) ed il carico (le prestazioni sono le stesse
anche per la realizzazione originale).
Si è calcolata la lunghezza statistica di parola imponendo: DBR = 0.4
dB e A = 40 dB al variare della banda passante f p /Fc tra 0.05 e 0.45. Gli
andamenti corrispondenti sono riportati in Fig. 2.32 a) per la banda passante
e in Fig. 2.32 c) per la banda attenuata. Le fig. 2.32 b) e d) riportano i valori
effettivi di DBR e A corrispondenti ad una quantizzazione dei coefficienti su
nc + 1 = 8 bit.
Dalle figure si nota che, in ottimo accordo con le considerazioni svolte in
precedenza, nella banda passante la sensibilità alla quantizzazione dei coeffici-
76 2.7 Una classe di realizzazioni a piccola sensibilità.

enti della realizzazione R4 aumenta per valori molto piccoli e molto grandi di
fp /Fc (valori corrispondenti a configurazioni di poli molto prossimi a z = +1
e z = −1, rispettivamente). Al contrario, la sensibilità in banda attenuata di
R4 è molto piccola.
Considerazioni simmetriche valgono per le realizzazioni tramite passatutto:
R1, R2 e R3, nelle quali è molto piccola la sensibilità in banda passante e
relativamente elevata quella in banda attenuata.
La realizzazione R5, come ci si poteva aspettare, ha piccola sensibilità in en-
trambe le bande.
Considerando i valori effettivi di DBR e A corrispondenti ad una quantiz-
zazione dei coefficienti su 8 bit, si conclude che la realizzazione “ad onda” ha
prestazioni nettamente superiori alle altre realizzazioni considerate. In effetti
si trova che solo 4 bit (più segno) sono sufficienti ad ottenere variazioni di
entità trascurabile per tutti i valori di f p /Fc considerati. Quindi il comporta-
mento effettivo risulta migliore di quanto previsto sulla base della lunghezza
statistica di parola. Questo fatto può essere attribuito, almeno in parte, al
fatto che per quantizzare i coefficienti si é seguita la strategia illustrata a
proposito dell’esempio di Fig. 2.29. Nel par. 4.1.6 vedremo che R5 risulterà
anche robusta nei confronti della propagazione degli errori di calcolo.
Tra le altre realizzazioni, le realizzazioni tramite passatutto hanno prestazioni
uniformemente buone in banda passante per tutti i valori di f p /Fc , in partico-
lare nel caso di R1. Questa realizzazione, inoltre, ha un buon comportamento
anche in banda attenuata, comportamento che si discosta poco (al massimo 3
dB), ad eccezione che per Fp /Fc = 0.05, da quello di R4 e R5.
Fra le realizzazioni non “ad onda” considerate, la realizzazione R1 risulta la
realizzazione complessivamente migliore dal punto di vista della sensibilità alla
quantizzazione dei coefficienti. Tale conclusione sarà, purtroppo, solo parzial-
mente confermata nel par. 4.1.6 quando ne consideremo la robustezza agli
errori di calcolo.
Si osserva che il comportamento anomalo della realizzazione R2 in banda
passante (Fig. 2.32 b) può essere
q attribuito al fatto che dopo la quantizzazione
su 8 bit dei coefficienti ki e 1 − ki2 , la somma dei loro quadrati non è più
esattamente uguale a uno, e quindi le corrispondenti f.d.t. H 10 (z) e H20 (z)
risultano ”quasi” passa-tutto.
Capitolo 2. Effetti della quantizzazione dei coefficienti moltiplicatori 77

14 0.6
R1 R1
R2 R2
12 R3 0.5 R3
R4 R4
* *R5 * *R5
10 0.4

DBR
ns

*
8 0.3
*
*
6 * * 0.2 * * * * * * *
* *

0.05 0.15 0.25 0.35 0.45 0.05 0.15 0.25 0.35 0.45

a) b)

11 50

* * * * * * *
9 45

*
7 40
A (dB)
ns

*
5 35
* *

3 * * 30
* *

1 25
0.05 0.15 0.25 0.35 0.45 0.05 0.15 0.25 0.35 0.45
fp /FC fp /FC
c) d)

Figura 2.32 Per l’esempio


78 2.7 Una classe di realizzazioni a piccola sensibilità.
Capitolo 3
La quantizzazione nelle conversioni da segnale
analogico a numerico e da segnale numerico ad
analogico.

3.1 Modello deterministico.


La operazione di conversione di un segnale da analogico a numerico effettuata
da un convertitore A/D, può essere schematizzata, come in Fig. 3.1, con la
cascata di un campionatore ideale e di un quantizzatore uniforme Q i [x] (dal
punto di vista ingresso-uscita, è perfettamente equivalente un modello in cui
il quantizzatore precede il campionatore). La caratteristica del quantizzatore
è una di quelle riportate in Fig. 1.2 e 1.3. Il convertitore A/D è previsto per
un certo campo di variazione del segnale analogico d’ingresso (tipicamente ±5
V, 0 ÷ 10 V per segnali di tensione bipolari e unipolari, rispettivamente), cui
corrisponde il campo dei numeri di uscita, rappresentati con n i + 1 bit nella
notazione propria del convertitore. La risoluzione q del convertitore (o quanto)
risulta per segnali bipolari
2 Mx
q= = Mx 2−ni (3.1)
2ni +1
Ad esempio, in un convertitore A/D a 8, 10, 12 bit per segnali bipolari com-
presi tra ±5 V, risulta q ' 39, 10, 2.5 mV, rispettivamente. Si ricorda che se si
interpreta il numero (in virgola fissa) di uscita dal convertitore come un intero,
`, si ha: Qi [x(kT )] = ` · q, mentre se lo si interpreta come frazione, f , si ha:
Qi [x(kT )] = f · Mx . Il fattore di scala q (o Mx ) può essere ignorato in tutte le
successive elaborazioni numeriche. È invece necessario tenerne conto quando
si debba attribuire una unità di misura al risultato di una elaborazione, e
sempre all’atto della conversione da segnale numerico ad analogico, dato che
il ”guadagno” complessivo del sistema dipende, ovviamente, da detto fattore
e dall’analogo fattore del convertitore D/A.
È evidente che il segnale analogico deve essere opportunamente condizion-
ato, in modo che risulti compreso con alta probabilità entro ±M x (oppure
0 ÷ Mx ). Nel caso che il segnale analogico di ingresso esca dal campo nominale
del convertitore A/D, è necessario ricorrere ad opportuni accorgimenti. Nor-
malmente si ricorre ad una saturazione, e la caratteristica di quantizzazione
80 3.1 Modello deterministico.

R Z(T)

Qi

x(t) x(kT) Qi [x(kT)]

Figura 3.1 Modello del convertitore A/D.

Q(x)

Figura 3.2 Caratteristica di quantizzazione con saturazione.

diviene del tipo di Fig. 3.2, nella quale si distinguono la regione (”lineare”) di
normale funzionamento e la regione di saturazione corrispondente a condizioni
di sovraccarico.
La distorsione del segnale di ingresso x(kT ) introdotta dal quantizzatore,
determina una variazione del segnale di uscita dal sistema a valle rispetto al
caso di campionamento ideale (q = 0).
Tale variazione può essere valutata con riferimento alla Fig. 3.3 dove si è fatta
l’ipotesi che il sistema di elaborazione sia a tempo discreto, lineare e stabile,
anzichè numerico (ciò corrisponde, ad esempio, in Fig. 1.7 a trascurare l’effetto
delle altre non linearità). Da Fig. 3.3 si ricava per la risposta forzata:

k
X
y(k) = h(i)x(k − i) (3.2)
i=0
Xk
ŷ(k) = h(i)x̂(k − i) (3.3)
i=0
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 81
k
X
ey (k) = ŷ(k) − y(k) = h(i)e(k − i) (3.4)
i=0

dove: e(k) = x(k) − x̂(k) e, al solito, si è posto T = 1 per semplicità di


notazione. Dalla (3.4) risulta che, nota la sequenza e(k), è immediato calcolare
la corrispondente sequenza di uscita e y (k). Ad esempio, se il segnale x(t) di
ingresso al convertitore è un gradino, e(k) risulta costante e si ha:
k
X
ey (k) = e h(i)
i=0

e quindi il segnale di errore ey (k) coincide con la risposta forzata del sistema
ad un gradino di ampiezza e. In particolare per l’errore a regime risulta:

X
ey (∞) = e h(i) = e H(z)|z=1 = e H(1) (3.5)
i=0

Se h(k) ha lo stesso segno per ogni k (cioè se la risposta al gradino è monotona),


si ha |ey (k)| < |ey (∞)| e quindi |ey (∞)| porge anche lo scostamento massimo.

y(kT)
H(z)

x(t) x(kT) ey (kT)


+
-

Qi H(z)
^
y(kT)

Figura 3.3 Per il calcolo di ey (k).

A parte casi particolari (come quello appena considerato) la determinazione


del segnale di errore e(k) risulta praticamente impossibile, e si rende quindi
necessario adottare un modello per e(k). Se, ad esempio, si considera la classe
dei segnali di ingresso ai quali corrisponde la sequenza di errore e(k) che rende
massimo lo scostamento dell’uscita (metodo del caso peggiore), si arriva alla
relazione:
k
X k
X
|ey (k)| ≤ |h(i)x(k − i)| ≤ max |e(i)| |h(i)| (3.6)
i≤k
i=0 i=0
e quindi alla:

X
|ey (k)| ≤ max |e(k)| |h(i)|. (3.7)
k
i=0
82 3.1 Modello deterministico.

La (3.7) fornisce il valore del massimo scostamento possibile del segnale


di uscita in funzione della risposta impulsiva del sistema e dell’unica infor-
mazione certa sull’errore di quantizzazione, cioè del suo valore massimo (pari
a q/2 per un convertitore ad arrotondamento). Si osserva che il sistema lin-
eare determina la massima amplificazione di max |e(k)| attraverso l’indice di
stabilità BIBO, S = k |h(k)|, il quale risulta tanto maggiore quanto più il
P

sistema è prossimo alla instabilità, cioè i poli di H(z) prossimi al cerchio di


raggio unitario. Se la risposta al gradino è monotona, la (3.7) coincide con la
(3.5).

~ ~
x(kT) x(kT) y(t)
Qu Ha (f )

Z(T) R

Figura 3.4 Modello della conversione D/A

Per la operazione di conversione da segnale a tempo discreto a segnale


a tempo continuo, valgono considerazioni simili a quelle appena svolte. In
Fig. 3.4 è riportato il modello delle operazioni svolte da un convertitore D/A
a nu + 1 bit. Si osserva che tale modello è ottenibile, tramite il principio
di trasposizione, da quello della conversione A/D quando in quest’ultima si
includa il filtro passa basso antialiasing.
Il segnale x(kT ) viene quantizzato (previa eventuale saturazione) su n u +
1 bit con passo di quantizzazione qu = Mx 2−nu con Mx = max |x(kT )| e
applicato, tramite la trasformazione di dominio da Z(T ) a R, al filtro passa
basso analogico Ha (f ) di ricostruzione. Posto t = nT + τ con 0 ≤ τ < T ,
x̃(kT ) = x(kT ) + e(kT ) e supposto x(kT ) causale al pari di h a (t), l’errore
ey (t) indotto dalla quantizzazione di x(kT ) sul segnale ricostruito risulta

n
X
ey (t) = ey (nT + τ ) = T e(kT )ha (nT + τ − kT ). (3.8)
k=0

Per t → ∞ si ottiene che il valor massimo dell’errore di ricostruzione è dato


dalla relazione


!
X
|ey (t)| ≤ max |e(kT )| max T |ha (iT + τ )| . (3.9)
k 0≤τ <T
i=0
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 83

d.d.p. media varianza potenza


1 a
arrotondamento q rect( q ) 0 q 2 /12 q 2 /12
1 a
tronc. M S 2q rect( 2q ) 0 q 2 /3 q 2 /3
1 a+q/2
tronc. C2 q rect( q ) −q/2 q 2 /12 q 2 /3

Tabella 3.1

3.2 Modello statistico.


Un approccio diverso al problema è quello statistico, in cui il segnale di in-
gresso ed il corrispondente segnale di errore vengono considerati come processi
aleatori stazionari. In questo caso e(k) viene spesso detto ”rumore di quantiz-
zazione”.
Per rendere trattabile la analisi si fanno le ipotesi che e(k):
1) abbia densità di probabilità uniforme;
2) abbia (parte continua della) densità spettrale costante, cioè sia un ”rumore
bianco”;
3) sia incorrelato col processo di ingresso x(k) [30], [49].
La Tabella 3.1 riporta la densità di probabilità f e (a), la media me = E[e], la
varianza σe2 = E[(e − me )2 ] e la potenza P = E[e2 ] del processo aleatorio e(k)
in dipendenza dal tipo di quantizzatore.
Le ipotesi fatte semplificano drasticamente la analisi e risultano sufficiente-
mente verificate non appena il quanto q sia abbastanza più piccolo del campo
di variazione del segnale di ingresso, il segnale di ingresso vari ”abbastanza”
(rispetto a q) da campione a campione e la probabilità di sovraccarico sia
trascurabile. In ogni caso esse consentono di ricavare delle relazioni che si
sono dimostrate fondamentali dal punto di vista applicativo.
Nel seguito verificheremo la liceità delle ipotesi 1 ÷ 3 riferendoci, per sem-
plicità, al caso del quantizzatore uniforme ad arrotondamento e supponendo
trascurabile la probabilità di sovraccarico. In questo caso l’errore di quan-
tizzazione dipende dal segnale tramite la relazione: e(x) = Q(x) − x con
Q(x) = `q = round(x/q) · q, con ` intero. La funzione e(x) risulta periodica
con periodo q: per ogni a con |a| ≤ q/2, tutti i valori di x che soddisfano la
equazione: x = −a + `q danno quindi luogo al medesimo valore dall’errore
(e(−a + `q) = a).
Detta fx (a) la d.d.p. di x, si ha

a X
fe (a) = rect( ) fx (−a + `q). (3.10)
q `=−∞

dove rect(t) = 1 per |t| ≤ 1/2 e rect(t) = 0 per |t| > 1/2. La f e (a) risulta
84 3.2 Modello statistico.

quindi la restrizione all’intervallo [−q/2, q/2] della ripetizione periodica con


periodo q della fx (−a). Se ne deduce che fe (a) = rect( aq )/q per tutte le
fx (a) la cui ripetizione periodica con periodo q è costante (e pari a 1/q):
esempi possibili sono fx (a) uniforme, triangolare e costante su ogni intervallo
[(` − 1/2)q, (` + 1/2)q). Quest’ultimo esempio ci garantisce che la f e (a) tende
alla densità uniforme per q → 0, se la f x (a) è continua o, al più, possiede
discontinuità di prima specie (ogni tal funzione si puó infatti approssimare
con una funzione “costante a tratti”).
La presenza dell’operatore di ripetizione periodica nella (3.10) suggerisce,
inoltre, di analizzare la relazione tra f x (a) e fe (a) nel dominio della trasformata
di Fourier. Allo scopo consideriamo la funzione caratteristica di e (coniugata
della trasformata di Fourier di fe (a)) che risulta:

k
Ce (u) = E[ej2πue ] = Cx∗ ( )sinc(uq − k)
X
(3.11)
k=−∞
q

dove (·)∗ indica il coniugato dell’argomento, sinc(u) = (sin πu)/(πu) e C x (u) =


E[ej2πux ] è la funzione caratteristica di x.
Dalla (3.11) si deduce che Ce (u) ' sinc(uq), quindi fe (a) ' rect(a/q)/q, non
appena sia Cx (k/q) ' 0 per k 6= 0, condizione soddisfatta, come anticipato a
proposito della (3.10), se fx (a) non contiene “righe” ed il quanto q è sufficien-
temente piccolo.
Si osserva che la (3.10) o la (3.11) consentono di concludere che f e (a) =
rect(a/q)/q sse la funzione fx (a) appartiene alla classe di Nyquist relativa-
mente al passo di campionamento q.
Tale condizione è soddisfatta esattamente da molte densità e, in particolare,
è soddisfatta se x = x1 + x2 , x1 e x2 sono indipendenti e fx1 (a) e/o fx2 (a)
appartengono alla classe di Nyquist. In tal caso, infatti, la indipendenza com-
porta che si abbia: Cx (u) = Cx1 (u)Cx2 (u) ed è sufficiente che uno dei due
fattori si annulli per u = k/q con k 6= 0 per garantire che si annulli anche
Cx (u). Questa condizione è alla base della tecnica di “dithering”, cui si accen-
nerà nel seguito, nella quale al segnale utile da convertire x 1 viene sommato
(prima della conversione) un segnale pseudo–aleatorio x 2 con densitá (tipica-
mente) uniforme in [−q/2, q/2].

A titolo di esercizio, verifichiamo direttamente che, se f x (a) è sufficiente-


mente “regolare”, il valor medio dell’errore di quantizzazione è circa nullo e
che la sua varianza è circa q 2 /12.
Per il valore medio dell’errore e(x) = Q(x) − x si ha
Z ∞ XZ
E[e] = (Q(a) − a) fx (a) da ' (yk − a)fx (a) da (3.12)
−∞ k Ik
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 85

dove yk = kq indica il punto di mezzo dell’intervallo I k , [yk −q/2, yk +q/2), ed il


segno di circa dipende dall’avere trascurato l’errore di sovraccarico (ipotesi che
utilizzeremo anche nel seguito). Approssimando f x (a) su Ik con la: fx (a) '
fx (yk ) + fx0 (yk )(a − yk ), si ottiene

q2 X 0 q2
E[e] ' − fx (yk )q ' − (fx (Mx ) − fx (−Mx )), (3.13)
12 k 12

confondendo la somma con l’integrale di f x0 (a) ed indicando con Mx = 2ni q


il valore di fondo scala del quantizzatore. Si ha quindi che il valor medio è
almeno un infinitesimo del secondo ordine rispetto al quanto q. In effetti, esso
è esattamente nullo se la fx (a) è simmetrica.
Per la potenza statistica si ha, applicando il teorema della media,

Z ∞ XZ
E[e2 ] = (Q(a) − a)2 fx (a) da ' (yk − a)2 fx (a) da
−∞ k Ik

q2 q2
Z
(yk − a)2 da =
X X
= fx (ξk ) fx (ξk )q ' (3.14)
k Ik 12 k
12

con ξk ∈ Ik , e dove l’approssimazione finale dipende dall’aver approssimato la


somma con l’integrale. Quindi la varianza risulta

q2
σe2 = E[e2 ] − E 2 [e] ' . (3.15)
12

Per la statistica del secondo ordine dell’errore di quantizzazione, posto


x1 = x(n) e x2 = x(m), m 6= n, si ha, analogamente alla (3.10) e sempre
trascurando la probabilitá di sovraccarico,
X
fe1 e2 (a, b) = fx1 x2 (−a + mq, −b + nq) |a|, |b| ≤ q/2 (3.16)
mn

da cui risulta fe1 e2 (a, b) = fe1 (a)fe2 (b) = 1/q 2 per |a|, |b| ≤ q/2, se fx1 x2 (a, b)
è costante su ogni quadrato Im × In . Se ne deduce che per q sufficientemente
piccolo e(m) ed e(n), m 6= n, risultano statisticamente indipendenti (quindi
incorrelati).
Per la correlazione tra errore e(n) e segnale x(n) si ha, tramite la approssi-
mazione lineare di fx (a) su Ik usata per il calcolo di E[e],

XZ q2
E[e(x)x] ' (yk − a)afx (a) da ' − = −E[e2 ] (3.17)
k Ik 12
86 3.2 Modello statistico.

ed il corrispondente coefficiente di cross–correlazione risulta


E[e(n)x(n)] σe 1 q
ρex (0) = '− = −√ (3.18)
σe σx σx 12 σx
e quindi risulta ρex ' 0 per σx  q. In modo analogo si dimostra che
E[e(x(n))x(k)]/(σe σx ) ' 0 per ogni n e k.
Infine si ha
E[e(x)Q(x)] = E[e(x)(x + e(x))] = E[e(x)x] + E[e 2 ] ' 0 (3.19)

In definitiva, per piccoli valori di q e per valori trascurabili della probabilità


di sovraccarico e quindi per un elevato numero di bit, la media dell’errore
è molto più piccola della sua deviazione standard e può ritenersi nulla, la
sua funzione di autocorrelazione soddisfa la r e (k) ' δ(k)q 2 /12, e l’errore è
incorrelato col processo di uscita Q(x) e quasi incorrelato con quello di ingresso
x.
Merita osservare che, se fx (a) e fx1 x2 (a, b) sono sufficientemente regolari, tali
proprietá sono ben soddisfatte fino a valori di q dell’ordine di σ x . Ad esempio,
la Fig. 3.5 a) riporta, nel caso di una variabile gaussiana, l’andamento di
σe2 /σx2 in funzione di q/σx (linea continua) e l’andamento (q/σ x )2 /12 previsto
per piccoli valori di q (linea punteggiata). La Fig. 3.5 b) riporta, sempre
in funzione di q/σx , il valore di ρex (0) = E[e(n)x(n)]/(σe σx ). Dalle figure,
ottenute per simulazione e in assenza di errore di sovraccarico, risulta che
(forse inaspettatamente) σe2 ' q 2 /12 e ρex (0) ' 0 fino a valori di q pari a circa
2σx . (Perchè σe2 → σx2 e ρex (0) → −1 per q → ∞ ?)
3 0.4

0.2
2.5

0
2

−0.2
ρex(0)
2
σe/σx

1.5
2

−0.4

1
−0.6

0.5
−0.8

0 −1
0 1 2 3 4 5 6 0 1 2 3 4 5 6
q/σx q/σx

Figura 3.5 Andamento di σe2 /σx2 e ρex (0) in funzione di q/σx nel caso di variabile
gaussiana.

Sulla base di tali proprietà il modello del quantizzatore diviene il modello


realmente additivo di Fig. 3.6, nel quale e(kT ) si suppone non correlato con
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 87

x(kT ), ed è quindi possibile applicare il principio di sovrapposizione delle


potenze. Il rapporto segnale/rumore di quantizzazione all’ingresso di H(z),
SN Ri , fornisce una indicazione dell’errore relativo ”medio” introdotto dalla
quantizzazione, ed è dato da:
Px
SN Ri = 10 log 10 (dB) (3.20)
Pe
dove Px è la potenza del segnale utile di ingresso x(kT ) e P e quella del rumore
di quantizzazione e(kT ).

e(kT)

^
x(kT) + y(kT)
H(z)
+

Figura 3.6 Modello dell’errore di quantizzazione.

Dalla Tab. 3.1 risulta: Pe = cq 2 con c = 1/12 o 1/3, e la (3.20) diviene:

SN Ri = 10 log 10 Px − 20 log 10 q − 10 log 10 c (dB) (3.21)

che mostra una dipendenza lineare di SN R i da log 10 Px e da log10 q.


Dalla (3.21) risulta che:
1) a pari potenza Px del segnale di ingresso, il rapporto SN R i aumenta di 6 dB
per ogni bit addizionale introdotto nella conversione A/D (in corrispondenza q
dimezza). Il limite inferiore a q è posto non solo da limiti tecnologici, ma anche
dalla ampiezza dei disturbi inevitabilmente sovrapposti al segnale analogico
d’ingresso x(t);
2) a pari numero di bit, il rapporto SN R i cresce di 6 dB ad ogni raddoppio
della dinamica del segnale di ingresso (in corrispondenza P x quadruplica),
almeno finchè non interviene la saturazione del quantizzatore (Fig. 3.2), in
corrispondenza della quale la (3.21) perde di validità.
Per valutare il rapporto segnale/errore, SN R i , tramite la (3.21) occorre
conoscere la statistica del segnale di ingresso, il fondo scala del convertitore e
la legge di quantizzazione, che nel seguito supporremo ad arrotondamento:
a) l’ingresso sia sinusoidale: x(kT ) = Xsen(2πf kT + φ) con φ uniformemente
distribuita tra 0 e 2π e X = Mx . Dato che Px = X 2 /2 e q = Mx 2−ni , si ha:

SN Ri = 1.8 + 6(ni + 1); (3.22)

b) l’ingresso abbia d.d.p. uniforme in [−M x , Mx ]. Si ha Px = Mx2 /3 e quindi:

SN Ri = 6(ni + 1); (3.23)


88 3.2 Modello statistico.

c) l’ingresso sia gaussiano, quindi non limitato nelle ampiezze, ma la proba-


bilità di sovraccarico sia trascurabile. Sia, ad esempio, 4σ x = Mx , cui cor-
risponde una probabilità di overflow pari a circa 6.3 · 10 −5 e quindi una prob-
abilità di avere in media un overflow su 6 campioni ogni 10 secondi di segnale
campionato con Fc = 10 kHz. Essendo Px ' σx2 = Mx2 /16, si ha:

SN Ri = −7.3 + 6(ni + 1). (3.24)


A pari numero di bit si ha, quindi, un peggioramento di circa 7 dB rispetto
al caso precedente (equivalente all’impiego di un bit in più, a pari SN R i ),
dovuto al fatto che in b) è maggiore la probabilità che il segnale di ingresso
sia prossimo al fondo scala.
Si osserva che la (3.24) è valida finchè la varianza σ q2 = q 2 /12 è molto maggiore
del contributo associato alla regione di sovraccarico:
" #

r
2 −m2 /2
Z
σo2 =2 2
(a − Mx ) fx (a) da = σx2 2
2(1 + m )Q(m) − e
Mx π
R∞ √
con m = Mx /σx e Q(m) = m exp(−a2 /2) da/ 2π. Ad esempio, la σq2 /σo2 ≥
10 è soddisfatta per m = 4 se q/σx ≤ 2.7 · 10−2 , quindi solo per ni + 1 ≤ 8 bit.
Per rendere la (3.24) valida fino a circa 17 bit è necessario porre m = 6, cioè
porre Mx = 6σx . In corrispondenza, nella (3.24) l’addendo −7.3 diviene −10.8.

Le relazioni trovate mostrano esplicitamente che il rapporto SN R i è dato


dalla somma di un termine, 6(ni + 1), proporzionale al numero di bit, n i + 1, e
di un termine dipendente solo dalle caratteristiche del segnale di ingresso, che
però perde di importanza al crescere di n i . Esse consentono di determinare
il minimo numero di bit, ni + 1, necessario ad ottenere un certo valore del
rapporto tra la potenza del segnale e la potenza dell’errore di quantizzazione
nell’ipotesi la probabilità di sovraccarico del convertitore sia trascurabile.
Ad esempio, in base alla (3.24) si ha che sono necessari circa: n i + 1 = 11
e 16 bit, rispettivamente, per ottenere un rapporto segnale/rumore di quan-
tizzazione pari a 60 e 90 dB. In quest’ultimo caso la risoluzione richiesta al
convertitore è pari a 2−15 Mx , e con Mx = 5 V risulta q ' 155 µV. Affinchè
una tale risoluzione abbia ”senso” occorre che i disturbi sovrapposti al segnale
di ingresso x(kT ) abbiamo una varianza σ n2 per cui, ad esempio, 3σn < q/2,
e di conseguenza che il valore del rapporto segnale/disturbo del segnale ana-
logico di ingresso sia maggiore di 90 dB (valore difficilmente ottenibile). In
caso contrario i bit meno significativi del numero in uscita dal convertitore
risentiranno del disturbo di ingresso, e varieranno ”a caso” (proprietà che si
troverà utile per assicurare la assenza di cicli limite di piccola ampiezza nella
realizzazione della f.d.t. H(z) in ambiente in virgola fissa: si veda par. 4.1.8).
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 89

3.3 Propagazione del rumore di quantizzazione.


Si consideri ora la propagazione del rumore di quantizzazione all’uscita del
sistema lineare di Fig. 3.6. Risulta:
k
X k
X
y(k) = h(i)x(k − i) + h(i)e(k − i) (3.25)
i=0 i=0

e, quindi, per la distorsione (o rumore) di uscita, e y (k) si ha:


k
X
ey (k) = h(i)e(k − i) (3.26)
i=o

Dalla (3.26) si può ricavare la media e la varianza del processo aleatorio e y (k).
Risulta:

k
X
mey (k) = me h(i) (3.27)
i=0
k
2
(k) = σe2 h2 (i)
X
σey (3.28)
i=0

Per k → ∞ (nel caso di un sistema IIR e k > N − 1 nel caso di un FIR di


ordine N −1) il processo ey (k) risulta (asintoticamente) stazionario con media,
varianza e potenza:

X
mey = me h(i) = me H(1) (3.29)
i=0

σe2 2π 2
Z
2
= σe2 h2 (i) = H(ejθ ) dθ
X
σey

i=0
2π 0
2
σe
I
dz
= H(z)H(z −1 ) (3.30)
2πj C z
2 2
Pey = mey + σey (3.31)

dove C è la circonferenza |z| = 1 orientata in verso antiorario.


Si definisce il guadagno di rumore di quantizzazione come:
Pey
Gq = (3.32)
Pe
che, nel caso mx = me = 0, diviene:
2 ∞ Z 2π
σey 2
2 dθ
H(ejθ )
X
Gq = 2 = h (i) = (3.33)

σe i=0 0 2π
90 3.3 Propagazione del rumore di quantizzazione.

Per ottenere una relazione di tipo probabilistico analoga alla (3.7), è neces-
sario conoscere la d.d.p. di ey . Il calcolo esatto (tramite la (3.26) e con ipotesi
aggiuntive su e(i)) è tutt’altro che agevole. Spesso, tuttavia, è possibile ap-
prossimare tale d.d.p. con una gaussiana di pari media e varianza. In tal caso
si ha: q
|ey − mey | < 3σey = 0.87q Gq (3.34)

con probabilità pari a (circa) il 99.%. Si osserva che, nel caso di sistema stabile,
la variabile ey ha, in base alla (3.7), un intervallo di variazione limitato, e
quindi non può essere gaussiana. La approssimazione tende però a migliorare
quanto più la f.d.t. H(z) è del tipo a banda stretta, e quindi con risposta
impulsiva poco smorzata.
Le (3.29÷3.31) consentono di valutare il rapporto segnale/rumore all’uscita
di H(z). Infatti, considerata l’uscita utile: y(k) corrispondente al segnale
x(k), e indicate con mx e Rxc (ejθ ) la media e la (parte continua della) densità
spettrale di x(k) si ha:

my = mx H(1) (3.35)
Z 2π 2
σy2 = Rxc (ejθ ) H(ejθ ) dθ/2π (3.36)

0
Py = m2y 2
+ σey (3.37)

Il rapporto segnale/disturbo in uscita da H(z), SN R u , risulta nel caso mx =


me = 0:
σy2
SN Ru = 10 log 10 2 (3.38)
σey

Si osserva che il rapporto SN Ru può risultare maggiore, uguale o minore di


SN Ri a seconda delle caratteristiche di H(z) e di R x (z). In particolare, se
x(k) è un rumore bianco (come e(k)) oppure se |H(e jθ )| è costante, risulta
ovviamente SN Ru = SN Ri .

Concludiamo il paragrafo considerando la propagazione del rumore di quan-


tizzazione nella operazione di conversione del segnale da digitale ad analogico
(Fig. 3.4).
Dalla (3.8) si ricava che asintoticamente (t → ∞), e y (t) risulta ciclostazionario.
Nella ipotesi di quantizzazione ad arrotondamento la sua media è nulla e la
sua varianza risulta

2
(τ ) = σe2 T 2 h2a (iT + τ )
X
σey (3.39)
i=0

con 0 ≤ τ < T e σe2 = qu2 /12.


Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 91

Per la varianza media si trova quindi la espressione


1
Z T Z ∞
σ 2ey = 2
σey (τ ) dτ = σe2 T h2a (t) dt. (3.40)
T 0 0
In particolare, se Ha (f ) è una buona approssimazione di un passa basso ideale
(|H (f )| ' 1 per
R ∞a 2 R∞
|f | ≤ fp ' Fc /2 e |Ha (f )| ' 0 per |f | ≥ fs ' Fc /2) si ha
h (t) dt = 2
0 a −∞ |Ha (f )| df ' Fc e quindi

σ 2ey ' σe2 . (3.41)


In ogni caso, nota la σ 2ey , è possibile calcolare il rapporto tra la potenza del
segnale utile ricostruito e la potenza del rumore di quantizzazione associato
alla conversione D/A, in perfetta analogia a quanto fatto in (3.38).

Esempio. Si consideri il sistema di Fig.1.1 in cui H(z) = b/(1 − az −1 ) e


b = 1 − |a|. Si supponga mx = me = 0, e la densità spettrale Rx (z) del
processo x(k) di ingresso sia:
α2
Rx (z) = (3.42)
(1 − px z −1 )(1 − px z)
cui corrisponde per z = ejθ uno spettro di tipo passa-basso (passa-alto) se
1 > px > 0 (−1 < px < 0). Nel seguito, per semplicità, si suppone p x 6= a.
La varianza σx2 è data da:
1 dz α2 z dz α2
I I
σx2 = Rx (z) = = (3.43)
2πj C z 2πj C (z − px )(1 − px z) z 1 − p2x
dove C è la circonferenza |z| = 1 orientata in senso antiorario e per il calcolo
del corrispondente integrale è conveniente utilizzare il metodo dei residui. Il
valore di α è scelto in modo che la probabilità di sovraccarico del convertitore
A/D sia trascurabile (ad esempio, 4σ x ' Mx ).
In base alla (3.36) la varianza di y(k) risulta:
1 dz
I
σy2 = Rx (z)H(z)H(z −1 ) (3.44)
2πj C z
2
b α 2 I
z 2 dz
=
2πj C (z − a)(z − px )(1 − az)(1 − px z) z
1 + apx
= b2 σx2 (3.45)
(1 − apx )(1 − a2 )
Dalla (3.30) si ha per la varianza del rumore di quantizzazione all’uscita:
σe2 dz σ2 b2 z dz
I I
2
σey = H(z)H(z −1 ) = e
2πj C z 2πj C (z − a)(1 − az) z
2
σe b 2
= (3.46)
1 − a2
92 3.4 Convertitori a sovracampionamento.

Quindi:
σy2 σx2 1 + apx
2
= (3.47)
σey σe2 1 − apx
e si conclude che:
SN Ru > SN Ri apx > 0, → sign(a) = sign(px )
SN Ru < SN Ri apx < 0, → sign(a) = −sign(px )
SN Ru = SN Ri apx = 0, → a = 0 e/o px = 0
(3.48)
In conclusione SN Ru risulta maggiore di SN Ri se la risposta frequenziale
H(ejθ ) è dello stesso ”tipo” della densità spettrale di ingresso, cioè se entrambe
sono tipo passa-basso o passa-alto. Risulta SN R u = SN Ri se a = 0 e quindi
H(z) =cost., oppure se Rx (z) =cost., cioè l’ingresso è un rumore bianco.
Se, ad esempio, a = 0.9 e px ' 0.9, risulta: (1 + apx )/(1 − apx ) ' 9.5, e
dalla (3.47) si ottiene: SN Ru = SN Ri + 9.8 dB, e quindi il segnale di uscita è
meno affetto dal rumore di quantizzazione di quello di ingresso: tutto va come
se il convertitore di ingresso avesse 1.5 bit in più rispetto al valore reale. Se
viene prefissato SN Ru > 60 dB, deve risultare SN Ri ≥ 60 − 9.8 = 50.2 dB e
nell’ipotesi di validità della (3.24) risulta n i + 1 > 9 bit.
Per ottenere una stima dell’ordine di grandezza dell’errore di quantizzazione
in uscita, si può ricorrere alla (3.34), che tramite la (3.46) fornisce la:
s
b2 q 2 q
|ey | ≤ 3σey = 3 '
1 − a2 12 5
che ancora mostra che l’errore massimo all’uscita è più che dimezzato rispetto
al valore q/2 dell’errore massimo da cui è affetto l’ingresso per effetto della
conversione A/D.
La possibilità di ridurre con un filtraggio per via numerica il rumore di
quantizzazione è fondamentale. Il prossimo paragrafo illustra la applicazione
che (forse) per prima ha sfruttato tale possibilità.

3.4 Convertitori a sovracampionamento.


3.4.1 Convertitori A/D
Si vuole convertire in forma numerica con frequenza di campionamento F c
il segnale x(t), avendo a disposizione un convertitore analogico-numerico con
ni + 1 bit.
La struttura “naturale” del sistema è quella di Fig. 3.7 a). In essa il segnale
viene limitato in banda con un filtro passa-basso analogico, che ha banda pas-
sante [0, fp ] e banda attenuata [fs , ∞] con fs ' Fc /2. La attenuazione in banda
attenuata del filtro passa basso controlla la entità dell’aliasing introdotto dal
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 93
n +1
i

^
x(t) Ha (s) Q1 x(kT)

R Z(T)

a)
n i +1

^
u(t) u(kT’) v^ (kT’) ^
x(t) Ha’(s) Q1 H(z) y(kT)

R Z(T’) Z(T)

b)

Figura 3.7 Conversione A/D: a) sistema convenzionale e b) sistema a sovracampi-


onamento.

campionamento e la deviazione dall’unità in banda passante controlla la fedeltà


di riproduzione della parte “utile” dello spettro. La complessità (numero di
componenti attivi e/o passivi) ed il costo del filtro crescono, a parità di errori
di approssimazione in banda passante ed attenuata, al diminuire della banda
di transizione: (fs − fp)/fp . Non è inoltre banale realizzare un filtro analogico
avente fase quasi-lineare in banda passante, e si ha quindi, quasi inevitabil-
mente, distorsione di fase se non si introduce un equalizzatore di fase analogico
o numerico. Il segnale di uscita x̂(kT ) = x(kT ) + e(kT ) risulta affetto dal ru-
more di quantizzazione, e(kT ), corrispondente al numero di bit, n i + 1, del
convertitore impiegato.
Si consideri ora il sistema di Fig. 3.7 b), detto a sovracampionamento. In
esso il segnale è convertito in forma numerica ancora su n i + 1 bit, ma con
frequenza di campionamento Fc0 = M Fc maggiore di Fc (M intero; M = 4
in Fig. 3.8), dopo esser stato limitato in banda con un filtro passa basso di
specifiche: fp0 ' Fc /2 e fs0 ' Fc0 − Fc /2 (Fig. 3.8 a, b, c). Il segnale numerico
cosı̀ ottenuto, u(kT 0 ), viene filtrato e limitato in banda a f s00 ' fp00 ' Fc /2
tramite il filtro passa-basso numerico H(z), e viene decimato nel rapporto
M : 1 (Fig.3.8 f). Si arriva, in tal modo, ancora ad un segnale campionato
a Fc = Fc0 /M . In condizioni ideali, cioè con filtri e convertitori ideali, i due
sistemi sono perfettamente equivalenti. La differenza si manifesta quando se
ne analizzi il comportamento in presenza di filtri e convertitori reali.
A tale proposito si osserva che il filtro antialiasing analogico di ingresso di
Fig. 3.7 b) può avere una banda di transizione (f s0 − fp0 )/fp0 molto maggiore di
quella richiesta al filtro antialiasing di Fig. 3.7 a), e quindi può essere molto
94 3.4 Convertitori a sovracampionamento.

|X| a)

f
1
|H’a | b)

fp’ =~ Fc /2 f s’ f

|U| c)

f
^
|U| d)

Re

F c’
1
|H| e)

f p" f s " F c’
|Y’|
^
|Y| f)

Re’

Fc 2F c 3F c 4F c

Figura 3.8 Per il convertitore a sovracampionamento.

più semplice e meno costoso e, al limite, ridursi ad un semplice partitore a


resistenza e capacità.
Infatti l’aliasing che viene introdotto nel segnale u(kT 0 ) dal filtro analogico
(andamento a tratteggio di Fig. 3.8 d) per F c /2 < f < Fc0 − Fc /2), viene
eliminato dal filtro numerico H(z). Da questo punto di vista il sistema a
sovracampionamento risulta preferibile, se il costo complessivo associato alle
preelaborazioni analogica e numerica è inferiore a quello della sola preelabo-
razione analogica del sistema ”diretto” di Fig. 3.7 a). Questo è quanto accade
con i bassi costi della moderna tecnologia digitale. Si osserva, inoltre, che se
H(z) è un FIR a fase lineare, non c’è praticamente distorsione di fase nella
operazione di campionamento.
Il sistema a sovracampionamento presenta un’altra e ancora più impor-
tante proprietà nei confronti degli errori di quantizzazione. Infatti, il segnale
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 95

û(kT 0 ) = u(kT 0 ) + e0 (kT 0 ) a valle del convertitore è affetto, al pari di x̂(kT )


di Fig. 3.7 a), dall’errore di quantizzazione e 0 (kT 0 ), che possiamo supporre
0
bianco con densità spettrale Re (ej2πf T ) = σe20 T 0 e varianza σe20 = σe2 = q 2 /12
con q = 2−ni Mx .
Se la attenuazione in banda attenuata di H(z) è abbastanza elevata, la potenza
di rumore da cui è affetto il segnale di uscita: v̂(kT 0 ) = v(kT 0 )+ev (kT 0 ) risulta
inferiore a σe2 . Infatti solo la densità spettrale di potenza del rumore di quan-
tizzazione che cade nella banda passante di H(z), contribuisce alla potenza di
rumore di uscita e si ha :
Fc0 /2 fp00 Fc 2 σ2
Z Z
0
2
σev = σe2 T 0 |H(ej2πf T )|2 df ' σe2 T 0 df ' 0
σe = e (3.49)
−Fc0 /2 −fp00 Fc M

dove si è supposto fp00 ' Fc /2. Il rumore di quantizzazione associato al segnale


2 = σ 2 ' σ 2 /M
di uscita dal sistema: ŷ(kT ) = y(kT ) + e y (kT ), ha potenza σey ev e
e quindi nel sistema di Fig. 3.7 b) tutto va come se si fosse utilizzato un
convertitore analogico-digitale più preciso.
In particolare, se M = 4 come in Fig. 3.8, σ ey 2 ' σ 2 /4, e quindi tutto va
e
come se si fosse effettuata la conversione con un convertitore avente n i + 2 bit
anzichè ni + 1. Se M = 42 = 16, si ottengono due bit in più di precisione, e se
M = 4m , si ottengono m bit addizionali.
In conclusione, ad ogni quadruplicazione della frequenza di campionamento
corrisponde un aumento di precisione pari ad un bit. Al limite, se il semplice
modello additivo del rumore di quantizzazione fosse valido anche per un con-
vertitore ad un bit, sarebbe possibile utilizzare un convertitore ad un solo bit
operante a frequenza molto elevata, F c0 , per ottenere tramite filtraggio passa-
basso e decimazione un ”convertitore equivalente” a frequenza F c = Fc0 /4m
avente un numero di ”bit equivalenti” pari a m + 1. Ad esempio, per ottenere
m + 1 = 8 bit a Fc = 1 kHz sarebbe necessario campionare ad un bit alla
frequenza Fc0 = 47 Fc = 214 Fc = 16 MHz. Nel paragrafo successivo vedremo
uno schema adatto allo scopo.
È importante osservare che i ”bit guadagnati” dipendono strettamente
dalla aderenza alla realtà del modello assunto per il rumore di quantizzazione.
In applicazioni nelle quali i segnali da convertire non garantiscano di per sè
la validità del modello (si pensi, ad esempio, ad un segnale periodico in cui
l’errore di quantizzazione è anch’esso periodico) si rende necessario ”aiutare” la
realtà, aggiungendo ad esempio, al segnale analogico da convertire un rumore
a media nulla, bianco e indipendente dal segnale (”dither noise”) uniforme-
mente distribuito tra −q/2 e q/2. In tal caso si può dimostrare che il rumore
di quantizzazione obbedisce a tutte le ipotesi fatte nel par. 3.2 [59, 19, 37].

Per quanto riguarda il filtro H(z) di Fig. 3.7 b), esso può essere sia FIR
a fase lineare che IIR. La scelta di un filtro FIR porta a ordini molto più
96 3.4 Convertitori a sovracampionamento.

elevati di quelli corrispondenti ad un filtro IIR; tuttavia la presenza del deci-


matore all’uscita del filtro fa sı̀ che nel caso FIR sia sufficiente calcolare solo
un campione ogni M (quali sono le riduzioni possibili nel caso di un filtro IIR
realizzato in forma diretta, cascata o parallelo?). Indicata con N la lunghezza
della risposta impulsiva di H(z) e assunta come operazione elementare una
moltiplicazione e una somma, il numero di operazioni al secondo risulta quindi
pari a (N/M ) Fc0 op/s. Se si utilizza la realizzazione a ”pre-moltiplicazione”,
si verifica facilmente che anche la dimensione del vettore di stato può essere
portata a d(N − 1)/M e, dove dxe indica il minimo intero non inferiore a x.

u(kT ’) u1 (2kT ’) y(kT)


H1 (z) H2 (z)

Z(T’) Z(2T’) Z(4T’)=Z(T)

Figura 3.9 Decimazione a due passi.

A questo proposito si ricorda, inoltre, che per M = 4 (o in generale per


M = 4m ) è conveniente, nel caso si utilizzino filtri FIR, effettuare la deci-
mazione in due (o più) passi: M = 2 · 2, passando da F c0 a Fc0 /2 e da Fc0 /2 a
Fc0 /4 = Fc , come illustrato in Fig. 3.9 e Fig. 3.10.
Si osserva, infatti, che nel primo passo è sufficiente che il filtro H 1 (z), che
0
lavora alla frequenza Fc0 , attenui solo le componenti di U (ej2πf T ) che cadono
nella banda: 3Fc /2 < f < 5Fc /2, dato che le componenti spettrali che cadono
nella regione: Fc /2 < f < 3Fc /2 verranno comunque filtrate da H2 (z), e si può
quindi accettare la introduzione di aliasing in detta regione. Il filtro H 1 (z) ha
quindi banda di transizione normalizzata grande (f s1 −fp1 )/Fc0 ' Fc /Fc0 = 1/4,
e la lunghezza corrispondente, N1 , risulta piccola. Il filtro antialiasing che
interviene nel secondo passo, H2 (z), ha banda di transizione: fs1 − fp1 pari a
quella che avrebbe il filtro H(z) nella procedura ad un passo. Tenuto conto
che H2 (z) lavora alla frequenza Fc0 /2, e dette N e N2 le lunghezze di H(z) e
H2 (z), rispettivamente, si ha N2 ' N/2 e, in generale, risulta N2  N1 .
In definitiva, passando dalla decimazione ad un passo alla decimazione a due
passi, il numero di variabili di stato passa da N − 1 a (N 1 − 1) + (N2 − 1) '
(N −1)/2, e la complessità di calcolo passa da N F c0 /4 op/s a N1 Fc0 /2+N2 Fc0 /4
op/s. Entrambe tali quantità, quindi, circa dimezzano se, come avviene gen-
eralmente, N1 è abbastanza più piccolo di N2 e N2 ' N/2.
Se, inoltre, le lunghezze N1 e N2 sono dispari, le bande di transizione di H 1 (z)
e H2 (z) vengono scelte simmetriche rispetto ad un quarto della frequenza di
campionamento (cioè rispetto a Fc0 /4 e Fc0 /8, rispettivamente) e si impongono
errori eguali in banda passante e attenuata (δ pi = δsi , i = 1, 2), i filtri FIR
corrispondenti godono della notevole proprietà di avere circa metà coefficienti
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 97

nulli, precisamente si ha: h(n0 + 2k) = 0, n0 = (N − 1)/2 e k 6= 0. Si ha


quindi un dimezzamento ulteriore della complessità di calcolo. I filtri FIR
corrispondenti vengono detti ”half-band”.
Si osserva che non è difficile dimostrare che la decimazione a due passi è
equivalente ad una decimazione ad un passo nella quale la f.d.t. H(z) venga
vincolata alla forma H(z) = H1 (z 2 )H2 (z) e quindi H(z) sia la f.d.t. di un
filtro IFIR (cap. 2).

|U|

2F c 4Fc =Fc ’
1
|H1 |

fp1 =~ Fc /2 f s1=~ 3Fc /2 4F c

|U1 |

Fc /2 2F c 4F c
1
|H2 |

f f 2F c 4F c
p2 s2

|Y|

Fc 2F c 3F c 4F c

Figura 3.10 Per la decimazione in due passi.

La tecnica del sovracampionamento è stata originariamente introdotta


negli anni ’80 dai ricercatori dei laboratori Philips proprio per guadagnare un
bit di precisione nella conversione A/D associata alla registrazione dei CD[9].
Il valore desiderato era di 16 bit a F c = 44.1 kHz, e la precisione massima dei
convertitori realizzabili a quell’epoca (ma le cose non sono molto cambiate)
era di 14 bit. Con il sovracampionamento con M = 4 si è riusciti ad arrivare
a 15 bit con Fc0 ' 176 kHz. (La utilizzazione del valore M = 16 avrebbe
fatto guadagnare due bit, ma dato che il FIR passa-basso, H(z), aveva ordine
98 3.4 Convertitori a sovracampionamento.

del centinaio, si sarebbe ottenuto un numero di op/s superiore alle capacità


tecnologiche del momento).
È importante ricordare come è stato ottenuto il bit mancante per arrivare
a 16 bit, dato che il corrispondente principio, detto di colorazione del rumore
di quantizzazione (”noise shaping”), ha trovato svariate applicazioni (ad es-
empio, nei convertitori ”sigma-delta” [19, 1, 25] cui si accennerà nel paragrafo
successivo; si veda inoltre l’esempio 2 del par. 4.1.2).
A tale scopo il segnale u(t) di Fig. 3.7 b) veniva fatto passare attraverso
un integratore analogico. La distorsione introdotta dalla operazione di in-
tegrazione analogica (U (f ) → U 0 (f ) = U (f )/(j2πf )), veniva compensata
”derivando” il segnale numerico u0 (kT 0 ), cioè costruendo il segnale: w(kT 0 ) =
u0 (kT 0 ) − u0 (kT 0 − T 0 ). Tale operazione compensa quasi esattamente la oper-
azione analogica di integrazione, almeno per |f | < F c /2, ed ha l’importante
effetto di sagomare lo spettro del rumore, confinando in alta frequenza la
maggior parte della sua potenza. Dato che la porzione di spettro sopra F c /2
viene rimossa dal filtro H(z), si ha una riduzione della potenza di rumore ”in
banda”, cioè per |f | < Fc /2, che, come dimostrato nel successivo paragrafo,
dà luogo ad un guadagno complessivo di due bit.

3.4.2 Convertitori sigma-delta


Come accennato in precedenza, è possibile ricondursi ad un convertitore A/D
ad un bit operante a frequenza molto elevata. In effetti nei convertitori cor-
rispondenti (detti sigma-delta) si utilizza anche la tecnica di colorazione del
rumore di quantizzazione. Questo fatto consente di aumentare il guadagno in
bit corrispondente ad un certo rapporto F c0 /Fc e quindi di limitare il valore di
Fc0 necessario ad ottenere un certo valore del numero di bit equivalenti ad una
data Fc .
Lo schema di principio di un convertitore sigma-delta (del primo ordine) è
illustrato in Fig. 3.11 a).
Il sistema a reazione schematizzato alla sinistra della linea tratteggiata è un
modulatore sigma-delta: esso è realizzato con la tecnica delle capacità com-
mutate (”switched capacitor”) come sistema analogico a dati campionati e
quindi, ad esempio, x(nT 0 ) indica il valore del segnale x(t) all’istante nT 0 (a
meno delle imprecisioni associate alla realizzazione dell’interruttore analogico,
che si suppongono modellabili come un rumore additivo a banda larga). Il
sistema di filtraggio e decimazione alla destra della linea tratteggiata è invece
numerico.
Il quantizzatore è ad un bit: per semplicità di rappresentazione, in figura si
è supposto che esso restituisca un livello M x per valori positivi e −Mx per
valori negativi dell’ingresso u(nT 0 ), con Mx fondo scala di |x(nT 0 )|, anzichè
due valori (0 e 1) convertiti nel segnale di reazione analogico, M x o −Mx , da
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 99
Z(T’) Z(T)

x(nT ’) + + u(nT ’) y(nT)


-1
z Q H(z)
- +

w(nT ’)

a)

x(nT ’) + u(nT ’) w(nT ’)


z-1 Q
-
-
v(nT ’) +

b)

Figura 3.11 Convertitore sigma–delta.

un convertitore D/A ad un bit. La relazione ingresso–uscita corrispondente è


quindi w(nT 0 ) = Mx sign[u(nT 0 )].
In assenza della nonlinearità associata al quantizzatore, è immediato veri-
ficare che il sistema a reazione a sinistra della linea a tratteggio è equivalente
ad un ritardo z −1 . Tuttavia, per dare una interpretazione semplice del suo
funzionamento in presenza del quantizzatore, è utile osservare che la presenza
dell’accumulatore z −1 /(1 − z −1 ) nella catena diretta, lo rende un regolatore di
tipo 1 e quindi con errore a regime nullo ad un ingresso costante. La presenza
del quantizzatore forza il segnale di reazione w(nT 0 ) ad assumere solo i valori
Mx e −Mx e l’errore a regime risulta nullo solo per un ingresso x(nT 0 ) pari a
Mx o −Mx . Per ogni altro valore dell’ingresso, costante o variabile lentamente
rispetto a T 0 , il segnale di reazione a regime risulta costituito da sequenze di
valori Mx e −Mx , tali che il loro valor medio su un tempo sufficientemente
lungo sia pari a x(nT 0 ). Ad esempio, per x = Mx /2 i 3/4 dei valori di w(nT 0 )
sono pari a Mx e 1/4 dei valori pari a −Mx . Mediando quindi su un nu-
mero grande di valori consecutivi di w(nT 0 ) è possibile approssimare il valore
dell’ingresso. La semplice operazione di media può essere sostituita da un fil-
tro passa-basso, H(z), di migliori caratteristiche, che consente di ricostruire
una migliore approssimazione del segnale di ingresso a pari valore del fattore
di sovracampionamento Fc0 /Fc .
È utile ridisegnare il sistema di Fig. 3.11 a) come in Fig. 3.11 b), da cui
risulta che in sostanza si è dotato il quantizzatore di “memoria”, rendendo
il valore attuale quantizzato w(nT 0 ) dipendente anche dall’errore commesso
all’istante precedente, (n − 1)T 0 .
100 3.4 Convertitori a sovracampionamento.

Si ha

v(nT 0 ) = w(nT 0 ) − u(nT 0 )


u(nT 0 ) = x((n − 1)T 0 ) − v((n − 1)T 0 )
w(nT 0 ) = Q u(nT 0 ) = x((n − 1)T 0 ) + v(nT 0 ) − v((n − 1)T 0 ) (3.50)
 

e quindi l’uscita w(nT 0 ) risulta pari a x((n − 1)T 0 ) a meno della differenza tra
gli errori associati alla quantizzazione di u(nT 0 ) e u((n − 1)T 0 ).
Se si ammette valido anche in questo caso il modello additivo dell’errore di
quantizzazione (v(nT 0 ) = e(nT 0 ) con e incorrelato con l’ingresso u del quan-
tizzatore), si trova

w(nT 0 ) = x((n − 1)T 0 ) + ew (nT 0 ) (3.51)


0 0 0
ew (nT ) = e(nT ) − e((n − 1)T ) (3.52)

e si conclude che mentre la f.d.t associata al segnale x(nT 0 ) risulta un ritardo,


quella associata all’errore di quantizzazione risulta 1 − z −1 .
Il rumore di quantizzazione ew (nT 0 ) ha varianza doppia di quella di e(nT 0 ),
ma non è più bianco, bensı̀ “passa–alto”: si ha
0 0
Rew (ej2πf T ) = σe2 T 0 |1 − e−j2πf T |2 = 2σe2 T 0 (1 − cos(2πf T 0 ))

e la operazione di ”derivazione” confina la maggior parte della potenza di


rumore alle alte frequenze, cioè nell’intorno di F c0 /2, e quindi in una regione
disgiunta da quella associata al segnale utile x(nT 0 ). Se |f | ≤ fp ' Fc /2 è
la banda passante del filtro passabasso H(z), la varianza del rumore da cui è
affetto il segnale decimato y(nT ) risulta
Fc0 /2 fp
j2πf T 0 2
Z Z
2 j2πf T 0 2 0
σey = Rew (e ) H(e ) df ' 2σe T (1 − cos(2πf T 0 )) df

−Fc0 /2 −fp
2
= σe2 (θp − sin θp ) (3.53)
π
dove θp = 2πfp T 0 ' πFc /Fc0 . Per valori piccoli dell’angolo si ha sin x ' x−x 3 /6
e la (3.53) diviene:
2  F 3
2 2 π c
σey ' σe (3.54)
3 Fc0
da cui risulta che la varianza del rumore di quantizzazione si riduce ad un
ottavo ad ogni raddoppio della frequenza di campionamento F c0 rispetto a Fc .
Esprimendo tale guadagno in dB si ha:
2
σey Fc
G = 10 log 10 ' 5.2 + 30 log 10 0 (3.55)
σe2 Fc
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 101

e quindi ad ogni raddoppio di Fc0 rispetto a Fc corrisponde un guadagno di 9


dB, cioè un guadagno pari a 1.5 bit.
Si osserva che già in corrispondenza al valore F c0 /Fc = 4, la (3.55) risulta valida
ed in corrispondenza si ha che la azione combinata di sovracampionamento e
colorazione del rumore comporta un guadagno di circa 13 dB, pari quindi a due
bit di precisione (come anticipato alla fine della sezione precedente). Al valore
Fc0 /Fc = 2048 corrisponde invece un guadagno di circa 95 dB, equivalente a
circa 15 bit: in corrispondenza la conversione a un bit effettuata alla frequenza
di campionamento Fc0 = 2048 Fc risulta equivalente ad una conversione a 16
bit effettuata alla frequenza di campionamento F c .
Per aumentare i guadagni ottenibili e quindi ottenere valori ragionevoli
della frequenza Fc0 per una data Fc , sono possibili molte varianti: si può uti-
lizzare nello schema di Fig. 3.11 a) un quantizzatore a più bit (in genere 2
o 3 bit); si possono mettere in cascata convertitori del primo ordine; si può
ricorrere a schemi in cui la f.d.t vista dal rumore di quantizzazione è del tipo
(1 − z −1 )n e si parla allora di convertitori sigma-delta di ordine n (in pratica
n = 2 o 3) [1].
In [19],[25] sono illustrati i principali effetti indotti dalla nonlinearità del
quantizzatore, cioè le deviazioni di comportamento rispetto alle previsioni fatte
in base al modello semplificato utilizzato in precedenza. Resta il fatto che le
previsioni fatte sulla base della (3.53) sono in pratica sufficientemente ben
verificate.

3.4.3 Convertitori D/A


Da ultimo osserviamo che se si applica il principio di trasposizione ai sistemi
di Fig. 3.7 a) e b), e si sostituisce ogni decimatore con una trasformazione
ideale del dominio temporale da Z(T ) a Z(T /M ), si ottengono due sistemi di
conversione numerico-analogica. Il duale del sistema di Fig. 3.7 b) diviene
un sistema in cui il segnale di uscita a frequenza F c viene interpolato di un
fattore M prima di essere inviato al convertitore D/A, che lavora a frequenza
Fc0 = M Fc . In entrambi i sistemi i filtri analogici giocano il ruolo di filtri di
ricostruzione.
Al confronto fra i due sistemi cosı̀ ottenuti si applicano le considerazioni
fatte a proposito dei sistemi di Fig. 3.7 a) e b). Si conclude ancora che la
struttura a sovracampionamento (o, meglio, a interpolazione) duale di quella di
Fig. 3.7 b), risulta vantaggiosa perchè richiede un filtro di ricostruzione tanto
più semplice quanto più elevato è il fattore di interpolazione M . (Questa
proprietà è importante se il dispositivo deve essere prodotto in massa, cioè
appartiene alla fascia ”consumer” come è il caso dei lettori di CD, nei quali tale
tecnica è stata forse per la prima volta impiegata). Si ha ancora un guadagno
nella precisione della conversione numerico-analogica, dato che solo la frazione
102 3.4 Convertitori a sovracampionamento.

della potenza del rumore di quantizzazione introdotto dal convertitore D/A


che corrisponde alla banda del segnale analogico ricostruito, contribuisce al
rapporto segnale/rumore di quantizzazione.
Z(T) Z(T’) R
n u +1

^
y(kT ’) + y(kT’)
H(z) Qu Ha (s)
+
+

z-1

a)

+
e(kT’) e y (kT’) eey (kT’)=e(kT’)-e((k-1)T’)
+

+ ^
y(kT’) y(kT’)
z-1 +

b) c)

Figura 3.12 Conversione D/A con quantizzatore con memoria.

È interessante osservare che anche nella conversione D/A è possibile uti-


lizzare la tecnica di colorazione del rumore di quantizzazione. Si consideri il
sistema di Fig. 3.12 a), duale del sistema di Fig. 3.7 b). In esso, anzichè quan-
tizzare su nu + 1 bit l’uscita y(kT 0 ) del filtro passa basso H(z), si memorizza
l’errore di quantizzazione ey (kT 0 ) = ŷ(kT 0 ) − y(kT 0 ), lo si somma all’uscita
di H(z) con un ritardo pari a T 0 , si quantizza il segnale cosı̀ ottenuto e lo
si applica al convertitore D/A. In questo modo il quantizzatore diviene un
quantizzatore con ”memoria” pari ad un quanto temporale T 0 .
Utilizzando il modello additivo per l’errore di quantizzazione, e(kT 0 ), as-
sociato a Qu , si ottiene il modello di Fig. 3.12 b), da cui risulta che la f.d.t.
dell’errore di quantizzazione è la G(z) = 1 − z −1 , mentre si deduce immediata-
mente dal grafo che quella relativa a y(kT 0 ) è unitaria. Quindi, analogamente
a quanto visto nel paragrafo precedente, il segnale utile rimane inalterato,
mentre il rumore subisce una operazione di ”derivazione”, e tutto va come
se il rumore di quantizzazione avesse, anzichè spettro bianco, spettro di tipo
passa-alto:
0
Rey (z) = σe2 T 0 (1 − z −1 )(1 − z) → Rey (ej2πf T ) = 2σe2 T 0 (1 − cos(2πf T 0 )),
con σe2 = qu2 /12.
In conclusione, la maggior parte della potenza di rumore: σ ey 2 = 2σ 2 viene
e
confinata fuori dalla banda-passante di H a (s), cioè fuori dalla banda del seg-
Capitolo 3. La quantizzazione nelle conversioni da segnale analogico a numerico e da segnale numerico
ad analogico. 103

nale, e per M = T 0 /T = 4 il rapporto segnale/rumore di quantizzazione


migliora di circa 13 dB, cioè tutto va come se il convertitore D/A avesse
(nu + 1) + 2 = nu + 3 bit.
Si osserva che si può aumentare il guadagno migliorando la azione filtrante
del rumore. Ad esempio, se in Fig. 3.12 a) si sostituisce il ritardo z −1 con la
f.d.t. 2z −1 −z −2 , la f.d.t. vista da e(kT 0 ) diviene 1−(2z −1 −z −2 ) = (1−z −1 )2 ,
con un aumento della attenuazione nell’intorno di f = 0.
104 3.4 Convertitori a sovracampionamento.
Capitolo 4
Valutazione degli errori di calcolo.

4.1 Il caso della aritmetica a virgola fissa


4.1.1 Modello deterministico.
L’operazione fondamentale nella realizzazione di una f.d.t. è la operazione di
accumulo di prodotti tra coefficienti e variabili:
N
X
s(k) = ci xi (k), (4.1)
i=1

In aritmetica a virgola fissa la (4.1) può essere calcolata nei seguenti due modi:

N
X
s1 (k) = Qa [ ci xi (k)] (4.2)
i=1
N
X
s2 (k) = Qa [ci xi (k)], (4.3)
i=1

che corrispondono a ridurre la lunghezza di parola dei prodotti c i xi (k) a


quella associata alle variabili xi (k) e s(k), rispettivamente, dopo o prima
dell’operazione di somma.
Se la lunghezza di parola di xi (k) e s(k) è na + 1 bit, l’errore introdotto dalla
quantizzazione 1 ha un valore massimo, max |e|, pari a q a nel caso di tronca-
mento e qa /2 nel caso di arrotondamento, e si ha:

|s1 − s| ≤ max |e| (4.4)


|s2 − s| ≤ N · max |e| (4.5)

Le (4.4) e (4.5) forniscono il massimo assoluto dell’errore dovuto alla quantiz-


zazione della somma di prodotti o dei prodotti, ed indicano che è preferibile
(quando possibile) effettuare la somma utilizzando un accumulatore con nu-
mero di bit pari a quello di uscita del moltiplicatore. Tale possibilità è comune
1
Quanto detto vale relativamente ai coefficienti moltiplicatori che non sono numeri interi.
106 4.1 Il caso della aritmetica a virgola fissa

a tutti i microprocessori per elaborazione numerica dei segnali disponibili sul


mercato.
In generale nella realizzazione di una H(z) vi sono più operazioni del tipo
(4.1) ed ha interesse valutare l’effetto complessivo degli errori dovuti ai quan-
tizzatori Qai sulla uscita del sistema (Fig. 4.1). Si ha:

ŷ(k) = y(k) + ey (k) (4.6)


dove y(k) è l’uscita che si otterrebbe in assenza di errori di calcolo in base alla
(3.2).
Nella ipotesi che non si verifichino overflow, e quindi che le variabili interne
siano state opportunamente normalizzate (vedi par. 4.1.3), l’errore sulla uscita
può essere espresso mediante la:
L X
X k
ey (k) = e[xi (j)]gi (k − j) (4.7)
i=1 j=0

dove L è il numero di quantizzatori Q a e gi (k) è la risposta impulsiva tra


l’uscita del quantizzatore i-esimo e l’uscita del sistema.
Maggiorando la (4.7), si ottiene:
L
X ∞
X
|ey (k)| ≤ max|ei | |gi (k)| = Ka qa (4.8)
i=1 k=0

e g (k)
i
i
xi xi +
Qa
+

^ ^
x(k) y(k) x(k) y(k)
R R

a) b)

Figura 4.1 Per la propagazione degli errori di calcolo.

Ogni risposta impulsiva gi (k) che compare nella (4.8) è una combinazione
lineare di modi del sistema: di conseguenza quanto più i poli sono prossimi
al cerchio di raggio unitario, tanto maggiori risultano le quantità k |gi (k)| e
P

quindi max |ey |.


Ciò significa che, a parità di errore massimo ammesso, tanto più prossimi al
Capitolo 4. Valutazione degli errori di calcolo. 107

cerchio di raggio unitario sono i poli della f.d.t. tanto più elevato risulta il
numero di bit necessario per la aritmetica interna (oltre che per la rappresen-
tazione dei coefficienti della realizzazione secondo quanto illustrato nel cap.2).
Come si vedrà nel par. 4.1.3, tale esigenza è associata anche alla operazione
di messa in scala delle variabili.
Si osservi che il secondo membro della (4.8) porge una stima generalmente
molto pessimistica di max |ey (k)|. Esso risulta, infatti, dato dalla somma
dei valori che max |ey (k)| assumerebbe nel caso peggiore se ogni sorgente di
errore agisse singolarmente, cioè per x i (k) (e quindi x(k)) tale che e[xi (j)] =
max |e|·sign[gi (k −j)] per 0 ≤ j ≤ k e k → ∞. Quindi, il segno di uguaglianza
nella (4.8) vale solo per la classe (in genere molto ristretta e al limite vuota)
dei segnali di ingresso per i quali risulta applicabile la ”sovrapposizione dei
casi peggiori”.

Esempio 1. Si consideri il sistema del primo ordine di Fig. 4.2. Nella ipotesi
di quantizzare dopo la somma dei due prodotti: b x(k) e a y(k − 1), si ha
L = 1 e risulta:
g1 (k) = ak δ−1 (k) (4.9)
Per a = 0.9 e b = 0.1 si ottiene:
(
1 5qa arrotondamento
|ey (k)| ≤ max |e| (4.10)
1−a 10qa troncamento

e(n)
Qa [.]
x(k) b ^
y(k) x(k) b ^
y(k)
-1
a z a z -1

Figura 4.2 Per l’esempio 1.

La (4.10) può essere interpretata dicendo che, indipendentemente dalla


lunghezza di parola, gli errori di calcolo influiscono al massimo sui 3 bit meno
significativi nel caso di arrotondamento e 4 bit nel caso di troncamento. Il
massimo si verifica per un ingresso a gradino x(k) = U δ −1 (k) per a > O,
oppure per un segnale del tipo x(k) = U (−1) k δ−1 (k) di ampiezza opportuna,
per a < 0.
Ad esempio, se si desidera che l’errore sia inferiore all’ 1% del valore di fondo
scala (pari a 1, adottando la convenzione dei numeri frazionari) risulta: 5q a <
0.01, cioè: qa < 2 · 10−3 e quindi na + 1 ≥ 10 bit. Si rifletta sul fatto che la
precisione dell’1% è garantita solo sul valore di fondo scala!
108 4.1 Il caso della aritmetica a virgola fissa

Esempio 2. Si consideri il sistema del secondo ordine:

y(k) = a1 y(k − 1) + a2 y(k − 2) + x(k) (4.11)

realizzato in forma diretta (Fig. 4.3). Nel caso di quantizzazione dopo la


somma si ha L = 1 e risulta:
1  
g1 (k) = h(k) = pk+1 − p k+1
k≥0 (4.12)
p1 − p 2 1 2

con h(k) risposta impulsiva di (4.11) e con p 1 e p2 poli della f.d.t. corrispon-
dente. Dalla (4.12) risulta:

X
|ey (k)| ≤ max |e| |h(k)| (4.13)
k=0

e(n)
Qa [. ]
^ ^
x(k) y(k) x(k) y(k)
-1 -1
a1 z a1 z

a2 z -1 a2 z -1

Figura 4.3 Per l’esempio 2.

Si osservi che k |h(k)| rimane invariata se entrambi i poli cambiano di


P

segno, cioè se si considera la coppia (−p 1 , −p2 ), cui corrispondono i coefficienti


−a1 e a2 .
Nel caso di poli reali non è difficile dimostrare [38] che risulta:
1
|ey (k)| ≤ max |e| (4.14)
1 − |a1 | − a2

Nel caso di poli complessi e coniugati: p 1,2 = re±jθ0 , non è possibile esprimere
la (4.13) in forma chiusa, per cui essa deve essere calcolata numericamente,
limitando l’estremo superiore della sommatoria, ad esempio, a quattro volte la
”costante di tempo equivalente” dei poli, cioè a 4/(1 − r) per r ' 1. Tuttavia
per una stima di max |ey | è possibile utilizzare le seguenti due maggiorazioni:
1

∞ ∞ k

r sin(k + 1)θ0

| sin θ0 |(1 − r)
X X 
|h(k)| = ≤ (4.15)


sin θ0  4
k=0 k=0 
2
π| sin θ0 |(1 − r )

Capitolo 4. Valutazione degli errori di calcolo. 109

r = 0.8 r = 0.9 r = 0.95


θ0 (a) (b) (c) (a) (b) (c) (a) (b) (c)
π/18 8. 14.4 10.2 18.1 28.8 19.3 37. 57. 37.6
π/12 6.1 8.6 6.8 12.6 19.3 12.9 24.9 38.7 25.2
π/6 3.8 5. 3.6 6.5 10. 6.7 12.7 20. 13.1
π/4 2.3 3.2 2.5 4.5 7. 4.7 8.8 14.1 9.3
π/3 1.8 2.9 2.1 3.5 5.8 3.9 6.8 11.5 7.6
π/2 1.4 2.5 1.8 2.6 5. 3.3 5.2 10. 6.6

Tabella 4.1 Per l’Esempio 2: stime di max |ey |/qa

La prima delle (4.15) è di immediata derivazione, mentre per la seconda si


rimanda a [66]. Si noti che 1 − r è la distanza dei poli dal cerchio di raggio
unitario, per cui per r → 1 il valore fornito dalle (4.15) diverge (analoga
considerazione vale per la (4.14) per |p 1 | e/o |p2 | → 1).
Nelle colonne a, b e c di Tab. 4.1.1 sono riportate, rispettivamente, le stime
di max |ey |/qa ottenute tramite la (4.13) e la prima e la seconda delle (4.15) per
poli complessi (r = 0.8, 0.9, 0.95) nel caso di arrotondamento (max |e| = q a /2).
Si osserva che il massimo di |ey | aumenta all’aumentare di r da 0.8 a 0.95 (a
pari θ0 ) e per |θ0 | → 0 (a pari r). Si noti, inoltre, la buona corrispondenza
fra il valore vero calcolato tramite la (4.13) e la maggiorazione fornita dalla
seconda delle (4.15).

4.1.2 Modello statistico.


Analogamente a quanto fatto per la quantizzazione del segnale di ingresso x(k),
è possibile adottare un modello statistico dell’errore anche per la operazione
di riduzione della lunghezza di parola associata ai quantizzatori Q a . In questo
caso si aggiunge la ipotesi che le sequenze di errore e i (k) siano mutuamente non
correlate, cioè E[ei (k)en (m)] = 0 per i 6= n. Gli errori ei (k) vengono spesso
denominati ”rumori” di calcolo (nella letteratura inglese si parla di ”round-off-
errors” indipendentemente dal fatto che si usi troncamento o arrotondamento).
L’effetto totale delle varie sorgenti di rumore (bianco) e i (k) sulla uscita è dato
dalla:
L X
X k
ey (k) = ei (k − j)gi (j) (4.16)
i=1 j=0

sempre nell’ipotesi di assenza di overflow. Si noti che, avendo supposto e i (k)


non correlato con xi (k) e con en (k) con n 6= i, il modello di Fig. 4.1 b)
diviene ”realmente” additivo. La (4.16) esprime, quindi, una relazione con-
110 4.1 Il caso della aritmetica a virgola fissa

cettualmente molto diversa dalla (4.7). Dalla (4.16) si ha a regime (cioè per
k → ∞):

L
X ∞
X L
X
mey = mei gi (k) = mei Gi (1) (4.17)
i=1 k=0 i=1
L ∞ L 2
σei dz
I
2 2
gi2 (k) Gi (z)Gi (z −1 )
X X X
σey = σei = (4.18)
i=1 k=0 i=1
2πj c z

2 sono la media
dove Gi (z) è la f.d.t. tra la sorgente ei (k) e l’uscita, e mei e σei
e la varianza di ei (k).
Si osserva che in questo caso le variabili aleatorie e i (k) risultano discrete
nelle ampiezze. Tuttavia se, come generalmente avviene, la riduzione della
lunghezza di parola interessa un numero di bit abbastanza grande (≥ 4 bit),
si possono ancora utilizzare per mei e σei 2 i valori riportati in Tab. 1 del Cap.

3. Per una stima del valore massimo di |e y | si può ancora ricorrere alla (3.34)
utilizzando le (4.17) e (4.18).
La potenza totale del rumore di calcolo di uscita dovuto alle sorgenti e i (k)
è data da:
Pey = m2ey + σey 2
(4.19)
2 = σ 2 = q 2 /12,
Nel caso di arrotondamento alla stessa lunghezza di parola: σ ei e a
la (4.19) diviene
Pey = Ga σe2 (4.20)

con Ga guadagno di rumore di calcolo, quantità che non dipende dal segnale
di ingresso. Risulta inoltre per il rapporto segnale/errore di calcolo:

Py
SN Ru = 10 log 10 = 10 log 10 Py − 10 log 10 Ga + 6(na + 1) + 4.8 (dB)
Pey
(4.21)
dove Py è la potenza del segnale di uscita in assenza di errori di calcolo e n a +1
è il numero di bit usati per la aritmetica. Si osservi che per la (4.21) valgono
le considerazioni svolte a proposito della (3.21) (in particolare anche per la
(4.21) vale la legge dei ”6 dB/bit”), alle quali si deve aggiungere l’effetto del
guadagno di rumore Ga , che dipende dalla realizzazione.
Un criterio per dimensionare la aritmetica interna consiste nello scegliere
na + 1 in modo che la potenza del rumore di calcolo di uscita non superi quella
associata alla quantizzazione dell’ingresso data dalla (3.31) e che, quindi, la
incertezza sul segnale di uscita dovuta agli errori di calcolo non superi la
incertezza intrinseca da cui è affetta l’uscita stessa per effetto degli errori di
quantizzazione da cui è affetto il segnale di ingresso.
Capitolo 4. Valutazione degli errori di calcolo. 111

Esempio 1. Si consideri ancora il sistema di Fig. 4.2, e si valuti l’effetto


dell’errore associato alla quantizzazione della somma dei due prodotti, errore
considerato come variabile aleatoria. Nell’ipotesi di arrotondamento risulta:

2 2 σe2
= σe2 h2 (i) = > σe2
X
σey = σe1y (4.22)
i=0
1 − a2
La varianza del rumore di calcolo aumenta per |a| → 1 in accordo con le con-
2 = 5σ 2 e |e | < 3σ
siderazioni svolte in 4.1. Per |a| = 0.9, risulta: σ ey e y ey ' 2qa .
L’errore di calcolo cosı̀ valutato influenza al massimo i 2 bit meno significativi,
anzichè i 3 bit come risulta dalla stima del caso peggiore data dalla (4.10).

Esempio 2: quantizzatore con memoria. Con riferimento al semplice esempio


di Fig. 4.2 illustriamo una tecnica, detta di reazione del rumore di quantiz-
zazione (”error feedback”), che risulta molto efficace per ridurre il rumore di
calcolo nelle realizzazioni in forma diretta di f.d.t. ricorsive del primo e sec-
ondo ordine [3,4]. La tecnica, che è stata già vista alla fine del par. 3.3, ha la
caratteristica essenziale di sostituire il quantizzatore ”istantaneo” dei risultati
intermedi con un quantizzatore con ”memoria”.

z -1
e(k)
β -
+

x(k) b ^
y(k)
Qa [.]
-1
z

Figura 4.4 Esempio di quantizzatore con memoria

La Fig. 4.4 illustra il principio relativamente alla f.d.t. H(z) = b/(1 −


az −1 ): il segnale di errore e(k), anzichè venir semplicemente scartato, viene
utilizzato per influenzare l’ingresso del quantizzatore all’istante successivo. Il
coefficiente moltiplicatore β, che interviene nell’anello di reazione dell’errore,
è un numero intero (perchè?). Posto ŷ(k) = Q[v(k)] + e(k), è immediato
verificare che risulta
ŷ(k) = aŷ(k − 1) + e(k) + βe(k − 1) + bx(k) (4.23)
La f.d.t. G1 (z) associata alla propagazione dell’errore e(k) è
1 + βz −1
G(z) =
1 − az −1
112 4.1 Il caso della aritmetica a virgola fissa

e la varianza del rumore di uscita risulta:


2 1 + 2aβ + β 2 2
σey = σe = G0a σe2 (4.24)
1 − a2
Il numeratore: 1 + 2aβ + β 2 rappresenta il guadagno, G0a /Ga , in termini di
guadagno di rumore rispetto al caso β = 0 considerato nell’Esempio 1.
È facile verificare che i valori ottimi di β sono: β = 0 per |a| ≤ 0.5, β = −1
per 0.5 < a < 1 e β = 1 per −1 < a < 0, e che il rapporto G 0a /Ga aumenta
per |a| → 1, cioè proprio nelle situazioni più critiche. Per |a| ' 1 risulta
G0a ' 1 e quindi tutto va come se l’uscita del sistema al tempo k risentisse
solo dell’errore commesso al tempo k stesso, cioè non risentisse degli errori
commessi negli istanti precedenti. (Se |a| = 0.9 come nel precedente esempio,
si ha G0a = Ga /5 ' 1.05.)
L’equazione della f.d.t. dell’errore mostra che essa è uguale a quella che
si avrebbe con β = 0 moltiplicata per 1 + βz −1 . Si può quindi dire che la
reazione dell’errore di quantizzazione ”sagoma” lo spettro del rumore stesso,
trasformandolo da bianco a colorato con densità spettrale: (1 + βz −1 )(1 +
βz)σe2 . Ad esempio, per β = −1 l’errore ”colorato” ha spettro 2(1 − cos θ)σ e2 ,
che è di tipo ”passa-alto”, e vede la f.d.t. 1/(1 − az −1 ), che è invece di tipo
”passa-basso” se a > 0. La riduzione della potenza rumore di calcolo è proprio
dovuta al fatto che la potenza di rumore di quantizzazione è per la maggior
parte confinata nella ”banda attenuata” di 1/|1 − ae −jθ |2 .

Esempio 3. Si riconsideri l’esempio di fig. 4.3 a); nella ipotesi di arrotonda-


mento dopo la somma si ha:
y(k) = QR [a1 y(k−1)+a2 y(k−2)+x(k)] = a1 y(k−1)+a2 y(k−2)+x(k)+e1 (k).
La f.d.t. tra la sorgente di rumore e 1 (k) e l’uscita è uguale alla f.d.t. del
sistema (fig. 4.3 b), per cui risulta:

2 2
= σe2 h2 (i)
X
σey = σe1y (4.25)
i=0

Per poli complessi-coniugati p1,2 = re±jθ0 con r ' 1 si ha:



1 dz 1 + r2 1
I
2
H(z)H(z −1 )
X
h (i) = = ·
i=0
2πj c z 1 − r 1 − 2r cos 2θ0 + r 4
2 2

1
' 2 (4.26)
4 sin θ0 (1 − r)
e la (4.25) diviene con σe2 = qa2 /12:

2 qa2 1
σey ' · 2 (4.27)
48 sin θ0 (1 − r)
Capitolo 4. Valutazione degli errori di calcolo. 113

r=0.8 r=0.9 r=0.95


θ0 2 /σ 2
σey 3σey /qa 2 /σ 2
σey 3σey /qa 2 /σ 2
σey 3σey /qa
e e e
π/18 22. 2.8 71. 5.2 165. 7.8
π/12 15.1 2.4 37.6 3.8 77.5 5.4
π/6 5.9 1.4 11.3 2. 21.4 2.8
π/4 3.2 1.1 5.7 1.5 10.8 2.
π/3 2.2 0.9 3.9 1.2 7.2 1.6
π/2 1.8 0.6 1.5 0.8 2.2 1.

Tabella 4.2 Per l’Esempio 3

Ancora una volta risulta che σey 2 aumenta per r → 1. Inoltre, nella realiz-

zazione in forma diretta considerata, σ ey 2 aumenta per θ → 0 e per θ → π,


0 0
come illustrato in Tab. 4.2 per r = 0.8, 0.9, 0.95, analogamente a quanto visto
nel par. 2.4 per la sensibilità alla quantizzazione dei coefficienti. Confrontando
questi risultati con quelli riportati nella Tab. 4.1.1, risulta che (come nell’Esempio
1) il modello statistico fornisce per max |e y | valori abbastanza minori di quelli
ottenuti col metodo del ”caso peggiore” (circa due bit di meno nell’esempio
per r = 0.9). A questo proposito si ricorda che quanto più ampia è la dinamica
dei segnali in gioco e quanto più i segnali variano da campione a campione,
tanto più sono verificate le ipotesi su cui si basa il modello statistico.

4.1.3 Normalizzazione delle variabili.


Nell’operazione di somma tra variabili in virgola fissa non sono presenti errori
di arrotondamento (o troncamento), ma vi è la possibilità di overflow cui
corrisponde un errore multiplo del fondo scala. In complemento a due, ad
esempio, assunto un fondo scala unitario si ha:
x1 = 0.75 + → 0.110 +
x2 = 0.50 = → 0.100 = (4.28)
s = 1.25 1.010 → ŝ = −0.75
e quindi si ha un errore s − ŝ = 2 cioè pari al doppio del fondo scala. In questo
esempio, in assenza di altre informazioni su x 1 e x2 è sufficiente introdurre un
fattore di scala pari a 1/2 per x1 e x2 , cioè considerare x01 = x1 /2 e x02 = x2 /2
in modo da garantire |s0 | = |x01 + x02 | ≤ 1. Ovviamente s0 = s/2 e del fattore
di scala 1/2 si dovrà tener conto nei calcoli successivi.
Nella realizzazione di una f.d.t. questo metodo può essere generalizzato, in-
troducendo opportuni fattori di scala in maniera da ridurre il livello dei segnali
in alcuni nodi della realizzazione e assicurare che non si verifichi overflow (op-
pure che si verifichi raramente) nel risultato finale di ogni somma, nell’ipotesi
114 4.1 Il caso della aritmetica a virgola fissa

di aritmetica in complemento a due (Appendice A). 2 All’operazione relativa


viene spesso dato il nome di ”normalizzazione” o ”messa in scala” (“scaling”)
delle variabili associate alla realizzazione.
I fattori di scala devono essere scelti in modo da assicurare la minima
probabilità di overflow compatibilmente con un valore elevato del rapporto
SN Ru dovuto agli errori di calcolo.
Si osserva che la scelta dei fattori di scala e la loro dislocazione nella strut-
tura possono essere fatte in più modi in dipendenza dalla particolare appli-
cazione. In ogni caso per la determinazione dei fattori di scala è necessario
stimare i valori massimi che possono essere assunti dalle variabili di uscita, y i ,
dei vari sommatori. Se è noto l’andamento “tipico” del segnale di ingresso,
i valori massimi possono essere determinati mediante simulazione. In alter-
nativa, se sono note solo alcune caratteristiche del segnale di ingresso, si può
ricorrere ai metodi che verranno descritti nel seguito. Tali metodi consentono
di rendersi conto di come e quanto la realizzazione influisca sui valori mas-
simi delle variabili (analogamente a quanto avviene per la propagazione degli
errori).
I vari metodi che verranno illustrati si basano sulle ipotesi che la realiz-
zazione sia lineare, cioè che nella determinazione di max |y i (k)| possa essere
trascurato l’effetto degli errori di calcolo, e che l’ingresso venga applicato a
partire dallo stato zero.
Sotto tali ipotesi, la risposta forzata associata al segnale di uscita, y i (k), dal
sommatore i-esimo può essere calcolata mediante la:
k
X
yi (k) = x(k − j)fi (j) (4.29)
j=0

dove fi (j) è la risposta impulsiva tra l’ingresso del sistema e l’uscita del som-
matore i–esimo.
Dalla (4.29) si ricava:

X
|yi (k)| ≤ max |x(k)| |fi (k)| (4.30)
k=0

e quindi condizione sufficiente affinchè |y i (k)| ≤ 1 per ogni ingresso x(k) (cioè
non si verifichi mai overflow al nodo i–esimo) è che:

X
max |x(k)| |fi (k)| ≤ 1 (4.31)
k=0
2
In effetti tale condizione è sovrabbondante, essendo sufficiente garantire che non vadano
in overflow le variabili che devono essere moltiplicate per coefficienti che non sono numeri
interi: si vedano gli esempi 2 e 4 del par. 4.1.4.
Capitolo 4. Valutazione degli errori di calcolo. 115

cioè:
1 1
max |x(k)| ≤ P∞ = (4.32)
j=0 |fi (j)| si
Si osserva che la condizione è anche necessaria, nel senso che esiste un segnale
di ingresso per il quale la (4.32) è verificata col segno di uguaglianza. Infatti al
segnale: x(j) = sign[fi (k−j)]Mx , j = 0, 1, · · · , k, (k → ∞) che assume sempre
valori pari in valore assoluto al fondo scala e segno uguale a quello della risposta
impulsiva, corrisponde all’istante k proprio la uscita y i (k) = Mx kj=0 |fi (j)|.
P

x(k) x ’(k) y ’(k) y(k)


1/s H(z) s

Figura 4.5 Normalizzazione concentrata all’ingresso.

Ricordiamo che la norma p-esima di una sequenza f (k) è definita dalla



|f (k)|p )1/p ,
X
`p (f ) = ( (4.33)
k=0

e che le norme `p (f ) soddisfano la relazione d’ordine:

`∞ (f ) = max |f (k)| ≤ · · · ≤ `p (f ) ≤ `p−1 (f ) ≤ · · · ≤ `1 (f ). (4.34)

La (4.30) può quindi essere riscritta come:

`∞ (yi ) = `∞ (x)`1 (fi ). (4.35)

e la messa in scala delle variabili interne e di uscita secondo la (4.30) viene


anche detta messa in scala secondo la norma ` 1 di fi (k).
Affinchè la (4.32) sia soddisfatta per tutti i nodi della struttura, è sufficiente
”attenuare” il segnale di ingresso, introducendo all’ingresso un fattore di scala
1/s con s dato dalla:

X
s = max(si ) = max( |fi (j)|) (4.36)
j=0

il quale garantisce |yi (k)| ≤ 1 in ogni sommatore (normalizzazione ”concen-


trata” all’ingresso).
Ovviamente, come illustrato in Fig. 4.5, per ottenere la H(z) originale
è necessario post-moltiplicare per s. Se, come quasi sempre avviene, risulta
s > 1, il fattore s risulta un moltiplicatore implicito dei risultati calcolati in
virgola fissa, e può essere associato alla conversione D/A.
116 4.1 Il caso della aritmetica a virgola fissa

In pratica, può risultare conveniente approssimare s con la potenza 2 m im-


mediatamente superiore al valore dato dalla (4.36). Il segnale di ingresso
x(k) è fornito come parola binaria di n i + 1 bit in virgola fissa e la molti-
plicazione per 1/s = 2−m corrisponde all’operazione di shift a destra di m
bit (con propagazione del segno). Si osserva quindi che, se si vuole conser-
vare la risoluzione, ni + 1, del segnale di ingresso, è necessario impiegare per
l’aritmetica (cioè per x0 (k) = x(k)/s e le altre variabili interne) una lunghezza
di parola na + 1 > na + m + 1 bit.
La parola binaria che rappresenta x 0 (k) ha quindi la struttura schematiz-
zata in Fig.6.6, dove si è impiegata una lunghezza di parola pari a n a + 1 =
ni + 1 + m + ` bit. In Fig. 4.6 compaiono nella parte meno significativa
della parola ` bit, necessari per ”assorbire” gli errori di calcolo introdotti dalle
elaborazioni associate alla realizzazione scelta per la H(z).

n +1
a

m ni l

segno overf low |x(k)| errori di calcolo

Figura 4.6 Organizzazione della parola.

La normalizzazione delle variabili mediante la (4.36) consente di ”con-


centrare” all’ingresso la attenuazione necessaria per evitare overflow in tutti
i sommatori, senza modificare la struttura. Tale metodo ha il pregio della
semplicità e il difetto di basare la attenuazione del segnale di ingresso sul
sommatore ”peggiore”, cioè sulla variabile cui è associata la massima am-
plificazione. Si supponga, ad esempio, che in una realizzazione si abbiano
quattro nodi sommatori e che dalla (4.32) risulti: s i = (1.2, 7, 1.8, 0.5). In
base alla (4.36) l’ingresso deve essere attenuato di 1/8 = 2 −3 e di conseguenza
max |yi0 | = (1.2/8, 7/8, 1.8/8, 1/16); quindi, per le variabili y 10 , y30 e y40 riman-
gono ”inutilizzati”, rispettivamente, i 3, 2 e 4 bit più significativi della rap-
presentazione. Il rapporto segnale/errore di calcolo da cui è affetta y 20 è il
massimo ottenibile senza overflow, mentre per y 10 , y30 e y40 esso peggiora in
quanto, a pari errore di calcolo (fissato dalla lunghezza di parola), i segnali y 10 ,
y30 e y40 risultano molto più piccoli del fondo scala.
Un metodo alternativo a quello indicato dalla (4.36) consiste nell’associare
Capitolo 4. Valutazione degli errori di calcolo. 117

un fattore di scala si ad ogni singolo sommatore, modificando la realizzazione


come illustrato in Fig. 4.7 (normalizzazione ”distribuita”). In questo caso la
struttura viene modificata nel senso che le risposte impulsive f i (k) divengono
le
fi0 (k) = fi (k)/si (4.37)
che soddisfano alla condizione

|fi0 (k)| = 1
X
(4.38)
k=0

Contemporaneamente ogni risposta impulsiva g i (k) tra l’uscita del sommatore


i-esimo e l’uscita del sistema, diventa:

gi0 (k) = si gi (k) (4.39)

in modo che la f.d.t. complessiva H(z) rimanga inalterata. 3

x1 c1 x1 c 1’
si
yi y i’
c2 c 2’
x2 x2
ei ei

c3 c 3’
x3 x3
c ’=c/s i

Figura 4.7 Normalizzazione distribuita.

Si ha, quindi, che l’operazione di ”normalizzazione” modifica le f.d.t. fra


le sorgenti di rumore (ei di Fig. 4.7) e l’uscita. Di conseguenza il rumore
di calcolo di uscita va calcolato utilizzando nella (4.18) le risposte impulsive
gi0 (k) della realizzazione ”scalata” date dalla (4.39), cioè tramite la:
L X
∞ L ∞
2 2
= σe2 g 0 i (k) = σe2 s2i gi2 (k)
X X X
σey (4.40)
i=1 k=0 i=1 k=0

la quale porge il guadagno di rumore della realizzazione, in cui le variabili


siano state messe in scala, in termini di quantità calcolabili sulla realizzazione
originale.
A questo proposito è importante osservare lo stretto legame che esiste in
una realizzazione in cui le variabili sono state normalizzate, tra il rumore
3
Dalla Fig. 4.7 appare inoltre che se, ad esempio, c1 = 1, per effetto della normalizzazione
compare una moltiplicazione in più per c01 = 1/si . Se la quantizzazione avviene dopo ogni
prodotto c0i xi , lo scalamento introduce una nuova sorgente di errore di calcolo.
118 4.1 Il caso della aritmetica a virgola fissa

di calcolo associato ad un moltiplicatore (ad esempio, c i di Fig. 4.7) e la


sensibilità ∂H/∂ci , data dalla (2.12), della f.d.t. H(z) rispetto al coefficiente
stesso. Infatti il rumore di calcolo dipende dalla f.d.t. G 0i (z) = si Gi (z) e
quindi dipende, attraverso il fattore di scala s i , dalla f.d.t. Fi (z) dall’ingresso,
X(z), all’ingresso del moltiplicatore e, attraverso G i (z), dalla f.d.t. dal nodo
di uscita del moltiplicatore (dove è iniettata la sorgente di rumore) all’uscita
della realizzazione. Se ne deriva la importante conclusione che le realizzazioni
a piccola sensibilità alle variazioni dei coefficienti sono anche numericamente
robuste, cioè presentano piccoli valori del guadagno di rumore di calcolo, e
viceversa [27, 57]. Nel paragrafo 4.1.7 troveremo una relazione esplicita che
lega un indice di sensibilità al guadagno di rumore.

Altre tecniche di messa in scala.

L’impiego dei fattori di scala si dati dalla (4.30), se da un lato assicura la


assenza di overflow (nella risposta forzata), dall’altro provoca attenuazioni
che risultano eccessive nel normale funzionamento del sistema. La (4.30),
infatti, utilizza l’unica informazione certa sul segnale di ingresso, data dalla
max |x(k)| ≤ Mx , e conseguentemente porge la stima del ”caso peggiore” per
la dinamica delle variabili.

Per tale motivo spesso si utilizzano metodi alternativi di stima dei fattori
di scala si [29]. Tali metodi presuppongono la disponibilità di informazioni
ulteriori sulla classe dei segnali di ingresso.
Ricordando la
1 1
k dz dz
I I
yi (k) = Yi (z)z = Fi (z)X(z)z k (4.41)
2πj c z 2πj c z
e valutando gli integrali sul cerchio di raggio unitario z = e jθ , si ha:
Z 2π dθ
|yi (k)| ≤ |Fi (ejθ )X(ejθ )| . (4.42)
0 2π
Da (4.42) si ricavano facilmente le due maggiorazioni:
Z
dθ 2π

|yi (k)| ≤ max |X(e )| |Fi (ejθ )|
= L∞ (X) · L1 (Fi ) (4.43)
θ 0 2π
Z 2π

|yi (k)| ≤ max |Fi (ejθ )| |X(ejθ )| = L∞ (Fi ) · L1 (X), (4.44)
θ 0 2π
dove si è indicata con Lp (F ) la norma p–esima della funzione F (e jθ ):
2π 1/p
p dθ
Z

Lp (F ) = |F (e )| (4.45)
0 2π
Capitolo 4. Valutazione degli errori di calcolo. 119

e si ha limp→∞ Lp (F ) = L∞ (F ) = max |F (ejθ )|.


Si ricorda che tra le norme Lp intercorre la relazione d’ordine:

L1 (F ) ≤ · · · ≤ Lp−1 (F ) ≤ Lp (F ) ≤ · · · L∞ (F ) (4.46)

e, indicata con f (k) la antitrasformata di F (e jθ ), si ha il seguente legame tra


norme `p e Lp :

`∞ (f ) = max |f (k)| ≤ `2 (f ) = L2 (F ) ≤ L∞ (F ) = max |F (ejθ )| ≤ `1 (f ).


k θ
(4.47)
In alternativa alle (4.43) e (4.44), applicando la disuguaglianza di Schwarz alla
(4.42), si ottiene la maggiorazione:

2π 1/2 Z 2π 1/2
dθ dθ
Z
|yi (k)| ≤ |X(ejθ )|2 |Fi (ejθ )|2 = L2 (X) · L2 (Fi )
0 2π 0 2π

!1/2 ∞
!1/2
2
fi2 (k)
X X
= x (k) . (4.48)
k=0 k=0

Si osserva che la (4.48) utilizza come misura della amplificazione tra l’ingresso
ed il nodo i–esimo la norma L2 , cioè la stessa norma da cui dipende la potenza
dell’errore di calcolo all’uscita dalla realizzazione, e corrisponde, quindi, all’impiego
della stessa metrica per misurare sia gli errori di calcolo che i fattori di scala.
Le (4.43) e (4.44) sono utilizzabili quando è disponibile una stima, rispet-
tivamente, del valore massimo e del valore medio del modulo della trasformata
dell’ingresso, mentre la (4.48) richiede la conoscenza dell’energia del segnale di
ingresso. In ogni caso è utile aver presente che, in pratica, nel caso di una f.d.t.
H(z) la cui risposta in frequenza sia del tipo costante a tratti (|H(e jθ )| ' 1
o ' 0), si trova sperimentalmente che le norme associate alle f.d.t. F i (z),
che intervengono nelle (4.30), (4.43), (4.44) e (4.48), soddisfano alle seguenti
relazioni approssimate

`1 (fi ) ' 2L∞ (Fi ) ' 4L2 (Fi ) → L∞ (Fi ) ' 2L2 (Fi ). (4.49)

Condizione sufficiente affinchè si abbia |y i0 (k)| ≤ 1 per ogni k, è che le f.d.t.


Fi (z) vengano modificate (analogamente alla (4.38)) introducendo dei fattori
di scala secondo la Fi0 (z) = Fi (z)/si , in modo che sia soddisfatta una delle
relazioni:

max |yi0 (k)| = L∞ (X)L1 (Fi0 ) = 1 (4.50)


max |yi0 (k)| = L1 (X)L∞ (Fi0 ) = 1 (4.51)
max |yi0 (k)| = L2 (X)L2 (Fi0 ) = 1 (4.52)
120 4.1 Il caso della aritmetica a virgola fissa

In particolare, se l’ingresso è un segnale sinusoidale: x(k) = X sin(kθ + φ)


con X ≤ 1, o, più in generale, un segnale a banda stretta, la (4.44) consente
di valutare il valore massimo a regime di y i (k):

|yi (k)| ≤ max |Fi (ejθ )| · X (4.53)


θ

Lo scalamento corrispondente alla (4.51) porta ad avere max |F i0 (ejθ )| = 1, e,


pur essendo in base alla (4.47) il più conservativo dopo quello in norma ` 1 ,
rende conto solo del comportamento in regime permanente. È buona norma,
a tale proposito, aumentare il fattore di scala corrispondente per garantire
un comportamento corretto anche in transitorio (ad esempio, in realizzazioni
cascata e parallelo di celle del secondo ordine è buona regola garantire la
max |Fi0 (ejθ )| ≤ 1/2).
Se l’ingresso può essere modellato come un processo aleatorio di cui è nota
la densità spettrale di potenza Rx (ejθ ), la varianza σyi
2 di y (k) risulta:
i

Z 2π dθ
2
σyi = |Fi (ejθ )|2 Rx (ejθ ) . (4.54)
0 2π
La (4.54) consente di stimare max |y i (k)| come (3÷4)σyi e, quindi, di introdurre
un fattore di scala che renda la deviazione standard del segnale y i0 (k) pari ad
una frazione del fondo scala. In particolare, nel caso il processo di ingresso sia
bianco (o a banda larga) con varianza σ x2 e gaussiano (o approssimativamente
tale) troncato al valore di fondo scala, si ha:
Z 2π dθ
2
σyi = σx2 |Fi (ejθ )|2 = σx2 · L22 (Fi ) (4.55)
0 2π
Le f.d.t. Fi (z) possono essere modificate in modo che risulti

L2 (Fi0 ) = 1. (4.56)

Corrispondentemente si ha
σy20 i = σx2 (4.57)
e la dinamica di tutte le variabili interne y i0 (k) risulta uguale a quella dell’ingresso.
Il controllo dell’overflow è ricondotto ad una corretta messa in scala del solo
ingresso e, assicurando che sia

σx = 1/m m > 1, (4.58)

si ottiene di rendere uguali le probabilità di overflow dell’ingresso e di tutte


le variabili interne (è semplice, se necessario, modificare la procedura in modo
da assicurare probabilità di overflow diverse).
Per quanto riguarda la scelta di m si osserva che non è sensato scegliere un
Capitolo 4. Valutazione degli errori di calcolo. 121

valore troppo elevato, dato che si rischierebbe di introdurre fattori di scala


superiori a quelli corrispondenti alla stima del ”caso peggiore”, cioè all’impiego
della (4.38), vanificando i miglioramenti di SN R u ottenibili con una scelta
dei fattori di scala che utilizzi l’informazione a priori sul segnale di ingresso.
Generalmente è sufficiente utilizzare un valore di m pari a quattro (σ x = 1/4).
In conclusione una volta messe in scala le variabili, il guadagno di rumore
di calcolo dato dalla (4.40) dipende dal quadrato della norma L 2 delle f.d.t.
Gi (z) e dal quadrato della norma utilizzata per calcolare i fattori di scala s i
associati alle f.d.t. Fi (z). In particolare, se si utilizza la (4.48) o (4.56), cioè
per si = L2 (Fi ), si ha:
L
L22 (Fi )L22 (Gi )
X
Ga = (4.59)
i=1

da cui si deduce che il guadagno di rumore della realizzazione coincide con


quello della realizzazione ”trasposta”.
Corrispondentemente alla adozione delle leggi di scalamento (4.43) (quasi
mai usata), (4.53) e (4.58) si ha una certa probabilità di overflow. Come già
osservato, il verificarsi di un overflow ad un certo istante k 0 corrisponde alla
introduzione di un errore di calcolo di valore elevato (multiplo del fondo scala,
si veda l’esempio all’inizio del paragrafo), il cui effetto è equivalente alla intro-
duzione di un impulso Aδ(k − k0 ) di pari ampiezza nel nodo corrispondente.
L’effetto di un overflow in una realizzazione ricorsiva, quindi, si propaga nel
tempo anche ai valori successivi, e può provocare altri overflow e, in con-
dizioni particolari, oscillazioni permanenti (cicli limite da overflow autonomi
o in regime forzato, si veda par. 4.1.8) che rendono inutilizzabile il sistema,
dato che in tale situazione l’unico modo per ripristinarne il funzionamento è
azzerare le variabili di stato.
x1
c1

y’ y
x2 c2

c3
x3

Figura 4.8 Aritmetica a saturazione.

Per evitare questi fenomeni si ricorre alla aritmetica a saturazione, nella


quale il risultato dell’operazione di somma viene sottoposto ad una operazione
122 4.1 Il caso della aritmetica a virgola fissa

di saturazione al valore massimo positivo o minimo negativo, a seconda del


segno del risultato corretto, come schematicamente illustrato in Fig. 4.8. In
questo caso è desiderabile applicare la saturazione al solo risultato finale y 0 ,
in modo da sfruttare la capacità della notazione in C2 di ”assorbire” gli
overflow parziali, almeno finchè il risultato finale appartiene alla rappresen-
tazione. Allo scopo si possono prevedere dei bit di guardia contro l’overflow
nell’accumulatore (sempre presenti nei moderni DSP) o, più semplicemente,
contare il numero di overflow parziali e distinguere se si tratta di un overflow
parziale che porta da un risultato parziale il cui segno corretto sarebbe pos-
itivo, ad un risultato negativo, o viceversa (soluzione adottata alcuni anni fa
in un DSP della Fujitsu).

Esempio 1. Si consideri il sistema di Fig. 4.2 con a > 0 e b = 1 − a. In questo


caso vi è un unico sommatore la cui uscita è anche l’uscita del sistema. Dalla
(4.30) risulta:

bak = max |x(k)|
X
|y(k)| ≤ max |x(k)|
k=0
e quindi la premoltiplicazione per b = 1 − a rende impossibile l’overflow per
ogni ingresso. Se l’ingresso può essere approssimato con un rumore bianco con
densità di probabilità uniforme in [−1, 1) si ha:
1+a
σx2 = 1/3; σy2 = σx2 .
1−a
In base alla (4.22) il rapporto segnale/rumore di calcolo risulta:
σy2 2 σy
2

2
= (1 − a )
σey σe2
Nelle ipotesi fatte per x(k) si ha che per l’uscita vale la
q
max |y(k)| ' 4σy = (16/3)(1 − a)/(1 + a) ' 0.4 per a = 0.9
Risulta quindi che il modulo dell’uscita non è quasi mai superiore al 40% del
fondo scala e quindi per alimentare il convertitore D/A si può scartare il bit
più significativo (saturando quando necessario). Si calcoli il rapporto SN R u
nell’ipotesi di segnale di ingresso sinusoidale.

Esempio 2. La Fig. 4.9 riporta un esempio degli andamenti del rapporto


segnale/errore di calcolo, SN Ru , in funzione di σx nel caso di scalamento in
norma L2 secondo le (4.57) e (4.58), per aritmetica a saturazione e non.
I risultati si riferiscono alla simulazione in ambiente a virgola fissa (coef-
ficienti, ingresso, uscita e stato su 16 bit, accumulatore di 32 bit ed arroton-
damento dopo l’accumulo) di un filtro passa-basso ellittico del quarto ordine,
Capitolo 4. Valutazione degli errori di calcolo. 123

C2
80 saturazione

60

(dB)

40

20

0
0.1 0.2 0.3 0.4
σx

Figura 4.9 SN Ru in funzione di σx con aritmetica C2 e a saturazione.

realizzato come parallelo di due celle del secondo ordine del tipo a minimo ru-
more di calcolo (si veda il paragrafo 4.1.7). Le specifiche sono: B.P. : [0, 250]
Hz con DBR ' 0.2 dB; B.A. : [300, 4000] Hz con A ≥ 40 dB; F c = 8 kHz.
La simulazione è stata condotta inviando lo stesso segnale all’ingresso di due
realizzazioni aventi gli stessi coefficienti, ma operanti l’una in virgola fissa
e l’altra in float doppia precisione. Si è calcolata la differenza delle uscite
ey (k) = y(k) − ŷ(k), e si è stimata la potenza del segnale di uscita con la
σy2 ' k y 2 (k)/N e la varianza del rumore di calcolo con la σ ey 2 ' P e2 (k)/N
P
k y
con N = 104 , scartando i campioni corrispondenti al transitorio iniziale. Il
segnale di ingresso era costituito da campioni generati da un generatore di
numeri pseudo-gaussiani incorrelati di varianza unitaria, che venivano molti-
plicati per 1/m (ottenendo un segnale di varianza 1/m 2 ), saturati a −1 e
1 − 2−15 e quantizzati su 16 bit.
La Fig. 4.9 mostra chiaramente che al variare del fattore di scala 1/m la
realizzazione in virgola fissa presenta due regimi di funzionamento:
a) per ”piccoli” valori di σx (minori di ' 1/3) il rapporto SN Ru cresce con σx
e quindi con la potenza del segnale di ingresso e di uscita (σ y2 ' (2fp /Fc )σx2 =
250/4000σx2 ), in ottimo accordo con quanto previsto dalla teoria (SN R u au-
menta di 6 dB per ogni raddoppio di σx ). Non si nota nessuna differenza fra i
due tipi di aritmetica e, in effetti, per σ x < 1/4 non si è avuto nessun overflow;
b) per valori ”elevati” di σx (maggiori di ' 1/3) il numero di overflow di-
124 4.1 Il caso della aritmetica a virgola fissa

viene via via più rilevante e cosı̀ il loro effetto, che ha come conseguenza una
drastica riduzione del valore di SN R u . In questo caso si lascia apprezzare la
maggiore insensibilità agli overflow della aritmetica a saturazione, che presenta
un passaggio meno brusco fra i due regimi di funzionamento.

4.1.4 Normalizzazione dell’uscita.


Si consideri il sistema rappresentato in Fig. 4.10 a) dove V F S AD e V F SDA
sono i valori della tensione di fondo scala del convertitore A/D e D/A, rispet-
tivamente. Lo schema a blocchi è riportato in Fig. 4.10 b). La presenza di
Qu è legata al fatto che il convertitore D/A accetta in ingresso un numero
in virgola fissa con un numero finito di bit n u + 1, mentre la parte di elab-
orazione utilizza in genere una lunghezza di parola maggiore. In particolare
se l’aritmetica è del tipo a virgola mobile, il segnale y(kT ) da convertire in
segnale analogico, può essere spesso considerato a ”precisione infinita”.
^ ~
x(t) x(kT) y(kT) y(t)
A/D H(z) D/A

VFS AD VFS DA
a)

x(t) ^ ^ ~
x(kT) x(kT) y(kT) y(kT) y(t)
Qi H(z) Qu H0 (s)

b)

Figura 4.10 Per la normalizzazione dell’uscita.

Il segnale x̂(kT ) (si veda il par. 3.1) è un segnale numerico che può essere
espresso come frazione fx (kT ) del fondo scala V F SAD del convertitore A/D
(non si confonda fx (kT ) con il simbolo usato per indicare la risposta impulsiva
fi (k) nel par. 4.1.3)

x̂(kT ) = fx (kT ) · V F SAD |fx (kT )| ≤ 1, (4.60)

e il segnale y(kT ) è dato da:

y(kT ) = x ∗ h(kT ) = fx ∗ h(kT ) · V F SAD (4.61)

dove ∗ indica l’operazione di convoluzione, e può essere espresso come:


>
y(kT ) = fy (kT ) · V F SAD |fy (kT )| ≤ 1 (4.62)
Capitolo 4. Valutazione degli errori di calcolo. 125

con fy (kT ) numero puro risultato della elaborazione secondo H(z) di f x (kT ).
Risulta:
max |y(kT )| = max |fy (kT )| · V F SAD (4.63)
Se si desidera che il comportamento dell’intero sistema sia lineare (trascurando
le nonlinearità associate alla realizzazione della f.d.t.) anche per ”grandi seg-
nali”, è necessario che il convertitore di uscita sia in grado di fornire il valore:
max |ỹ(t)| = max |fy (kT )| V F SAD ≤ V F SDA (4.64)
dove V F SDA è la tensione di fondo scala del convertitore D/A. Poichè per
le tensioni di fondo scala dei convertitori (A/D e D/A) commerciali ven-
gono usualmente impiegati valori fissi (ad esempio 1, 5, 10 V), se max |ỹ(t)| >
V F SDA , è necessario introdurre un amplificatore analogico a valle del con-
vertitore D/A. In ogni caso, per soddisfare la (4.64) è necessario stimare
max |fy (kT )| e ciò può essere fatto con uno dei metodi precedentemente il-
lustrati nel par. 4.1.3, oppure mediante simulazione. In alcuni casi, tuttavia,
è conveniente accettare che il sistema si comporti in maniera non-lineare per
”grandi segnali”, ricorrendo ad una saturazione sull’uscita, analogamente a
quanto illustrato precedentemente per il convertitore A/D.

fy (k)
0 0
fx (k) 0 0
segno 0 0 1 0
1 1 0 1 ~
x(t) 0 0 1 0 y(t)
A/D D/A
1 1 aritmetica 0 1
1 1 0 0
n i+1 0 1 n u+1
VFS 1 0 0 VFS 2
a)

n a+1
0
0
1 0
0 1
1 1 b)
0 1
0 1
1 n u+1
0
n a+1

Figura 4.11 Organizzazione delle parole di ingresso, dell’unità di calcolo e di uscita.

Si sottolinea che il problema ora considerato è indipendente dal tipo di ar-


itmetica adottato per la realizzazione, essendo dovuto solo alla ”amplificazione
126 4.1 Il caso della aritmetica a virgola fissa

dinamica” tra l’ingresso e l’uscita di H(z). In particolare se l’aritmetica è del


tipo a virgola mobile (precisione quasi infinita), l’uscita è l’unica variabile da
normalizzare.
La fig. 4.11 a) mostra le varie lunghezze di parola n i + 1, na + 1 e nu + 1 in
un esempio nel quale l’aritmetica è del tipo a virgola fissa. La lunghezza della
parola impiegata per l’aritmetica è maggiore di quella del convertitore A/D
secondo quanto illustrato in 4.1.3. Si è supposto di aver scelto n u (4 bit in
fig.4.11 a) sulla base della risoluzione richiesta nell’operazione di conversione
D/A.
A titolo di esempio, si supponga max |ỹ(t)| = 1.6 · V F S AD per cui il reg-
istro del convertitore D/A va ”allineato” come in Fig.6.11 a), cioè un bit
al di ”sopra” della posizione in fy (kT ) del bit più significativo della parola
di ingresso fx (kT ). Il valore massimo di |ỹ(t)| può essere ottenuto ponendo
V F SDA = 2 V F Sad , oppure con V F SDA = V F SAD introducendo però un
amplificatore di guadagno 2. La disposizione di fig.4.11 a) può essere adottata
finchè V F SAD < max |ỹ(t)| < 2 V F SDA .
Nell’esempio di fig.6.11 a) vi sono due bit di guardia per l’overflow nell’aritmetica,
mentre è sufficiente un solo bit per l’uscita. Poichè tre bit di f y (kT ) sono scar-
tati nella operazione di conversione, l’uscita viene quantizzata con passo di
quantizzazione pari a 2−nu ( per quanto riguarda l’errore dovuto a Q u valgono
le considerazioni svolte per gli altri quantizzatori).
Se si verifica solo raramente che |ỹ(t)| sia pari a 1.6 V F S AD (come, ad
esempio, avviene stimando max |ỹ|(t) con il criterio del caso peggiore), il bit
più significativo risulta scarsamente utilizzato, ed è conveniente ricorrere ad
una saturazione dell’uscita come indicato schematicamente in fig. 4.11 b).
Il registro del convertitore D/A va ”allineato” (nell’esempio) su quello del
convertitore A/D di ingresso nell’ipotesi V F S AD = V F SDA . Ciò corrisponde
a forzare max |ỹ(t)| = V F SAD .
Il sistema di fig. 4.11 a) è tipico dei regolatori numerici dove l’ingresso
è l’errore della catena di controllo e l’uscita analogica è la grandezza agente
sul processo da controllare. In molte applicazioni però il segnale numerico
di uscita non deve essere convertito in segnale analogico (ad esempio in un
sistema di comunicazione numerica). Anche in questi casi può essere necessario
quantizzare l’uscita se la lunghezza di parola di f y (k) è maggiore di quella con
la quale deve essere rappresentato il segnale numerico di uscita. In questi casi
è ovviamente necessario che max |f y (k)| possa essere rappresentato in virgola
fissa con nu + 1 bit a meno di un eventuale fattore di scala.

Esempio 1. Si consideri l’esempio di fig. 4.2. Poichè risulta, per b = 1 −


a, |y(k)| ≤ max |x(k)| = 1, nella realizzazione considerata non è necessario
normalizzare l’uscita.
Dall’analisi svolta nell’esempio del par. 4.1.3 risulta che, nell’ipotesi che
Capitolo 4. Valutazione degli errori di calcolo. 127

x(k) sia un rumore bianco a d.d.p. uniforme in [−1, +1), l’intervallo di vari-
azione dell’uscita è circa ±0.4 per a = 0.9, e quindi può risultare conve-
niente non considerare il bit più significativo (del modulo) dell’uscita. In
questo caso, se l’uscita deve essere convertita in segnale analogico si può porre
V F SDA = V F SAD /2 oppure V F SDA = V F SAD , introducendo un amplifica-
tore di guadagno 0.5.

Esempio 2. Si consideri la seguente f.d.t., corrispondente ad un filtro passa–


basso ellittico del secondo ordine con f p /Fc = 0.05 e fs /Fc = 0.1:

1 − 1.34z −1 + z −2
H(z) = 0.133
1 − 1.63z −1 + 0.732z −2
la cui risposta in frequenza e il cui diagramma zeri–poli sono riportati in fig.
4.12.

−5

−10

−15
|H| (dB)

−20

−25

−30

−35

−40
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
f/Fc −1 0 1

Figura 4.12 Per l’esempio 2.

La fig. 4.13 a) mostra la realizzazione della H(z) nella forma canonica di


controllo (o ad uscite multiple dallo stato) nella quale il guadagno A = 0.133
è stato conglobato nel numeratore.
Una simulazione della realizzazione di fig. 4.13 a) con x(k) = δ(k) porge le
pP
`2 (f1 ) = |f (k)|2 ' 4.3;
P k 1
`1 (f1 ) = k |f1 (k)| ' 15;
2
pP q (4.65)
`2 (g1 ) = `2 (h) = k |h(k)| ' 2fp /Fc ' 0.35;
`1 (g1 ) = `1 (h) = k |h(k)| ' 1.23.
P

Si osservi che risulta `1 (f1 ) ' 4`2 (f1 ), relazione in generale ben verificata in
tutti i filtri con risposta in frequenza del tipo ”costante a tratti”. La realiz-
zazione normalizzata è riportata in fig. 4.13 b), dove b 0i = bi s1 /s2 .
128 4.1 Il caso della aritmetica a virgola fissa

Utilizzando i fattori di scala si = `1 (fi ), risulta s2 = 1.23. Tale fattore può


scriversi come 0.625 · 2 e il fattore 2 può essere associato al convertitore D/A.
In alternativa, dato che si è utilizzata la norma del ”caso peggiore” per de-
terminare i fattori di scala e che s2 ' 1, si può evitare la normalizzazione
associata al nodo 2, saturando però il risultato della somma corrispondente in
caso di overflow (l’errore introdotto dalla saturazione è raro e ”istantaneo”,
cioè non si propaga ai valori successivi).

x(k) 1 A 2 y(k) x(k) 1/s 1 1 b’ y(k)


0 2

Ab b’
a1 z -1 1
e a1 z -1 1
e
1 2

A b’
2
z -1
a2 a2 -1
a) z b)

Figura 4.13 Per l’esempio 2.

In questa ipotesi, il guadagno di rumore risulta nel caso di arrotondamento


dopo la somma:
∞ ∞
g102 (k) = s21 g12 (k) ' 28.
X X
Ga =
k=0 k=0

Si ha 3σey ' 4.6qa e quindi gli errori di calcolo interessano i tre bit meno signi-
ficativi del segnale di uscita. Affinchè la potenza di rumore di calcolo G a qa2 /12
non superi la potenza di rumore dovuta alla quantizzazione dell’ingresso,
P 2 2 2
k h (k)qi /12 ' 0.35qi /12, deve essere qa ≤ qi /10 e quindi na ≥ n1 + (3 ÷ 4).
La Fig. 4.14 a) riporta la realizzazione in forma canonica di osservazione
(o a ingressi multipli nello stato), trasposta della realizzazione di Fig. 4.13 a).
Si osserva che in C2 gli eventuali overflow nell’aggiornamento delle variabili
di stato non hanno effetto sulla variabile associata al nodo 1, cioè sull’uscita,
se si garantisce |y1 (k)| = |y(k)| ≤ 1. Pertanto è sufficiente considerare il solo
nodo 1.
Utilizzando ancora la norma `1 , si ha s1 = k |h(k)| ' 1.23, la realiz-
P

zazione diviene come in Fig. 4.14 b) e la moltiplicazione per s 1 può essere


effettuata come 0.615 · 2, come fatto relativamente a Fig. 4.13 b). In questo
caso, anche quantizzando dopo ogni operazione di somma, si hanno tre sor-
genti di errore che vedono le f.d.t. z −i /(1 − a1 z −1 − a2 z −2 ), i = 0, 1, 2, e il
guadagno di rumore risulta:


3s21 g12 (k) + 1 · 4 ' 89,
X
Ga =
k=0
Capitolo 4. Valutazione degli errori di calcolo. 129

valore maggiore (in questo esempio) di quello della realizzazione di Fig. 4.13
b).
x(k) A 1 y(k) x(k) b’0 1 s1 y(k)

b’1
Ab 1 z -1 a1 z -1 a1

2 a2 2 a2
A -1
b’2 -1
z a) z b)
b’ =Ab / s
1 i 1
3 3

Figura 4.14 Per l’esempio 2.

Si verifica facilmente che il guadagno sarebbe maggiore anche se si rinun-


ciasse al fattore di scala s1 , introducendo una saturazione nel calcolo di y 1 (k).
È importante osservare che, in questo caso, un errore dovuto alla saturazione
non rimarrebbe isolato come in Fig. 6.13b, ma si propagherebbe alle variabili
di stato e quindi ai valori successivi.
I valori di Ga calcolati in questo esempio sono molto maggiori dei valori
che si incontreranno negli esempi del par. 4.1.5, pur relativi a f.d.t. di ordine
maggiore. Il motivo risiede nella diversa legge di messa in scala delle variabili
adottata: qui si è usata la norma `1 , mentre negli esempi del par. 4.1.5 si
userà la norma `2 . Se si tiene conto che, generalmente, per filtri con risposta
in frequenza costante a tratti si ha ` 1 (f ) ' 4`2 (f ) e che nel caso della norma
`2 è necessario condizionare l’ingresso in modo che sia σ x ≤ 1/4, si ha che
un confronto fatto sulla base del rapporto segnale/errore di calcolo porta a
concludere che il valore di SN Ru corrispondente a questo esempio risulta,
come ci si aspetta, maggiore di quello corrispondente agli esempi di par. 4.1.5
a parità di numero di bit assegnati alla aritmetica.

Esempio 3. Si considerino le realizzazioni dirette (a ”pre” e a ”postmoltipli-


cazione”) di un filtro F IR di ordine N − 1 a fase lineare (Fig. 4.15). Per la
normalizzazione della realizzazione di Fig. 4.15 a) è necessario considerare il
nodo di uscita per cui si ha:
N
X −1
y(k) = h(i)x(k − i)
i=0

ed i nodi di somma dove vengono calcolate le: y i (k) = x(k−i)+x(k−N −1−i).


Utilizzando la norma `1 , si ha,
N
X −1
sy = |h(k)|, si = 2.
k=0
130 4.1 Il caso della aritmetica a virgola fissa

x(k) -1
z z -1 x(k)

1 h(2) h(1)
-1 h(o)
-1 -1 -1 z
z z e3 z

h(o) h(1) h(2) 1 e2


e1
y(k) -1 -1
z z
y(k)
e1 e2 e3

Figura 4.15 Realizzazione di un FIR: a) a postmoltiplicazione e b) a premoltipli-


cazione.

In questo caso è conveniente ricorrere ad una normalizzazione concentrata


all’ingresso, introducendo un moltiplicatore 1/s con s = max{s y , 2}. Per filtri
F IR con risposta in frequenza (quasi) costante a tratti (|H(e jθ )| ' 1 o ' 0)
si ha generalmente: 1 < sy < 2, e quindi s = 2.
Per la realizzazione di Fig. 4.15 b) è sufficiente prevenire l’overflow nella
sola somma finale associata a y(k), dato che gli altri nodi di somma rappre-
sentano somme parziali, e quindi si ha s = s y . Arrotondando sy alla potenza
di due immediatamente superiore, si ha ancora, in genere, s = 2.
Nella ipotesi di riduzione della lunghezza di parola dopo ogni moltipli-
cazione, per la struttura di Fig. 4.15 a) si ottiene:

N +1 2 N +1 2
mey = s me , σey = s2 σe (4.66)
2 2
mentre per quella di Fig. 4.15 b) si ha:
2
mey = s N me , σey = s2 N σe2 (4.67)

Indipendentemente dalla f.d.t. realizzata, la struttura a ”premoltiplicazione”


presenta una media e una varianza del rumore di calcolo di uscita circa doppie
di quella a ”postmoltiplicazione”. Di conseguenza, nel caso di arrotondamento
essa richiede ”1/2 bit” in più per la lunghezza di parola dell’aritmetica, a pari
errore di uscita. Si ripeta il confronto nel caso di troncamento.
Il confronto fra le due strutture diviene ancora più svantaggioso per la
realizzazione di Fig. 4.15 b), se si suppone di quantizzare dopo la somma
dei risultati parziali, come avviene in tutti i DSP in commercio. In tal caso,
nell’ipotesi di arrotondamento, si ha σ ey 2 = s2 σ 2 per la realizzazione a post
e
moltiplicazione. Nella struttura di Fig. 4.15 b), invece, tale possibilità non è di
nessuna utilità e quindi continua a valere la (4.67), a meno di non utilizzare per
le variabili di stato un numero di bit pari a quello di uscita dal moltiplicatore
anzichè a quello (inferiore) associato all’ingresso.
Capitolo 4. Valutazione degli errori di calcolo. 131

Esempio 4: F IR a media mobile. Sia data la risposta impulsiva FIR: h(k) =


1/N , k = 0, ..N − 1, cui corrisponde la
k
1 X
y(k) = x(i).
N i=k−N +1

La corrispondente f.d.t. risulta:

1 NX
−1
1 1 − z −N
H(z) = z −k =
N k=0 N 1 − z −1

e la forma razionale della H(z) suggerisce la realizzazione ricorsiva:

s(k) = s(k − 1) + N1 x(k)


(4.68)
y(k) = s(k) − s(k − N )

che risulta più vantaggiosa dal punto di vista del numero di operazioni di
quella non ricorsiva.
In ambiente in virgola fissa si pone il problema della messa in scala delle
variabili e, se si applicasse ciecamente la procedura finora illustrata, si tro-
verebbe che il calcolo della variabile s(k) (cioè la realizzazione della f.d.t.
dell’accumulatore, 1/(1 − z −1 )) richiederebbe un fattore di scala infinito. Si
nota, però, che l’uscita y(k) è una ”pura” somma dei valori (scalati) dell’ingresso
e, quindi, si conclude che con aritmetica modulare è possibile trascurare gli
overflow dell’accumulatore, se si garantisce che l’uscita non vada in overflow.
Allo scopo è sufficiente inserire (come fatto) all’ingresso il fattore di scala
1/s = 1/ k |h(k)| = 1/N , cioè il guadagno della f.d.t..
P

4.1.5 Realizzazioni cascata e parallelo


Realizzazioni cascata.
In Fig. 4.16 a) è riportata, per una f.d.t. del quarto ordine, la realizzazione
in cascata: H(z) = A · H1 (z) · H2 (z) con:

1 + b1i z −1 + b2i z −2
Hi (z) = i = 1, 2 (4.69)
1 − a1i z −1 − a2i z −2
ed A = H(∞) guadagno. La realizzazione di ogni cella è del tipo ad uscite
multiple dallo stato. Per quanto riguarda il fattore A, esso può essere applicato
all’uscita, all’ingresso, distribuito tra le celle del secondo ordine o associato alla
parte non ricorsiva dell’ultima cella (come indicato in Fig. 4.16).
In generale è necessario procedere ad una normalizzazione delle variabili
yi (k) associate ai nodi sommatori 1, 2, 3 e 4, e dell’uscita y(k).
132 4.1 Il caso della aritmetica a virgola fissa

F (z)=H(z)
4

F (z)
3

F (z)
2
F1(z)
H (z) H (z)
1 2

1 2 3 b 4
x(k) 02 y(k)

a11 z
-1 b11 a12 z
-1 b12

a21 -1
b21 a22 -1
b22
z z a)

=
2=3
1/s 1 1 b’01 b’02 4 s4
x(k) y(k)

a11 z -1 b’11 a12 z -1 b’12

a21 -1
b’21 a22 b’22
z z -1 b)

1/s’1 1 2 s’/s’
1 2 3 b02 4 s’2
x(k) y(k)

a11 z -1 b11 a12 z -1 b12

a21 -1
b21 a22 -1
b22
z z c)

Figura 4.16 Realizzazione cascata: messa in scala delle variabili e calcolo del
guadagno di rumore di calcolo.

Per la stima dei valori massimi delle variabili y i (k) è necessario considerare
le funzioni di trasferimento Fi (z) tra l’ingresso e il nodo i–esimo ed applicare
i fattori di scala corrispondenti secondo quanto illustrato nel par. 4.1.3. In
particolare per i nodi 2 e 3 si osserva che è sufficiente normalizzare y 3 (k), dato
che gli eventuali overflow di y2 (k) non provocano errori nel risultato finale
y3 (k).
La struttura normalizzata è riportata in Fig. 4.16 b) dove:

b01i = b1i s1 /s3 , b02i = b2i s3 /s4 i = 0, 1, 2 (4.70)

La struttura di Fig. 4.16 b) introduce un nuovo coefficiente moltiplicatore


b00i per cella (ne vengono introdotti due se gli zeri sono sul cerchio di raggio
unitario, e quindi se b0i = b2i = 1).
In alternativa si può impiegare la struttura di Fig. 4.16 c), nella quale i
Capitolo 4. Valutazione degli errori di calcolo. 133

coefficienti delle singole celle rimangono invariati ed i fattori di scala s 01 e s02


sono scelti sulla base di:
s01 = max(s1 , s2 ), s02 = max(s3 , s4 ) (4.71)
La struttura di Fig. 4.16 c) comporta l’introduzione di un coefficiente molti-
plicatore: (s01 /s02 ) tra le celle, e impone l’assenza di overflow nel nodo 2, non
strettamente necessaria.
Per quanto riguarda gli errori di calcolo, in Fig. 4.16 b) e c) sono indicate
le sorgenti di errore di calcolo, nella ipotesi di ridurre la lunghezza di parola
dopo la operazione di accumulo dei prodotti.
Per la valutazione dell’effetto degli errori di calcolo sull’uscita è necessario con-
siderare le funzioni di trasferimento G 0i (z) tra i vari nodi di somma e l’uscita.
La normalizzazione delle variabili comporta, come già osservato, una modifica
delle f.d.t.: ad esempio in Fig. 4.16 b) si ha G 01 (z) = s1 G1 (z). D’altra parte i
fattori di scala dipendono sia dall’ordine delle celle sia da come sono stati ac-
coppiati i due poli ed i due zeri di ogni cella. (Fanno eccezione le f.d.t. passat-
utto nelle quali gli errori di calcolo dipendono unicamente dall’accoppiamento
zeri-poli, se si normalizzano le variabili utilizzando una norma L p ).
In generale, quindi, data una H(z) da realizzare come cascata di f.d.t.
del secondo ordine, si pone il problema di scegliere sia le coppie di poli e
zeri di ogni cella che l’ordine delle celle, in modo da rendere minimo l’effetto
degli errori di calcolo sull’uscita. L’accoppiamento e l’ordinamento migliori
dipendono dal tipo di realizzazione scelta per le celle del secondo ordine, dalla
legge di scalamento adottata e dalla misura scelta per il rumore di calcolo di
uscita: potenza o massimo della densità spettrale [29]. Le ”regole” date nel
seguito valgono per la minimizzazione della potenza di rumore relativamente
alla realizzazione di Fig. 4.16 e per le leggi di scalamento (4.52) o (4.53).
Per quanto riguarda l’accoppiamento zeri-poli si trova che è conveniente
costruire ogni cella del secondo ordine con poli e zeri tra loro vicini. Ciò può
essere spiegato osservando che con tale scelta si tende a ridurre la ”ampli-
ficazione” di ogni cella e a filtrare il rumore di calcolo generato nella parte
ricorsiva.
Per quanto riguarda l’ordine delle singole celle, in genere risulta conveniente
porre all’inizio le celle con i poli più prossimi al cerchio di raggio unitario,
in modo da rendere massima la azione di filtraggio del rumore di calcolo in
esse generato da parte delle celle seguenti. In ogni caso risulta che l’ordine
delle celle non è molto critico, nel senso che esistono molti più ordinamenti
che danno luogo ad una potenza di rumore di calcolo prossima al minimo, che
non al massimo [14].

Esempio 1. In Fig. 4.17 è riportata la risposta in frequenza ed il diagramma dei


poli e degli zeri di un filtro ellittico passa banda di ordine 6, la cui realizzazione
134 4.1 Il caso della aritmetica a virgola fissa

zeri/poli 1a cella 2a cella 3a cella Ga


zi /pi 1/1 2/2 3/3 1.5 (5.5)
zi /pi 2/2 1/1 3/3 1.6 (5.5)
zi /pi 2/3 3/2 1/1 1.7 (5.9)
zi /pi 1/3 2/2 3/1 2.6 (6.3)
zi /pi 3/3 2/2 1/1 1.6 (6.4)
zi /pi 1/2 2/3 3/1 4.8 (21.)
zi /pi 2/1 3/3 1/2 5.5 (25.)
zi /pi 1/2 3/3 2/1 6.4 (28.)

Tabella 4.3 Per l’esempio 1: accoppiamenti zeri/poli, ordinamenti delle celle del
secondo ordine e guadagni di rumore di calcolo corrispondenti.

in cascata comprende tre celle del secondo ordine. Gli zeri e i poli associati ai
tre fattori del secondo ordine, il modulo dei poli (r) e il guadagno (A) hanno
i valori:

i zeri poli r A
1 (−0.039, ±0.999) (0.186, ±0.936) 0.954
2 (0.619, ±0.786) (0.433, ±0.855) 0.958 0.0185
3 (±1., 0.) (0.297, ±0.847) 0.897

−5

−10

−15
1
−20
|H| (dB)

2
−25 1
3 2
−30

−35

−40

−45

3 3
−50
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
f/F_c −1 0 1

Figura 4.17 Per l’esempio 1.

La normalizzazione delle variabili fa riferimento alla struttura di Fig. 4.16


b): i fattori di scala sono stati calcolati secondo la (4.52) e il guadagno A è
stato conglobato nella parte non ricorsiva dell’ultima cella. Per determinare
l’accoppiamento zeri-poli di ogni cella e l’ordine delle celle che danno luogo al
minimo guadagno di rumore di calcolo, si è utilizzata una versione corretta del
Capitolo 4. Valutazione degli errori di calcolo. 135

programma riportato in [52]. La Tab. 4.3 riporta il guadagno di rumore, G a ,


per alcune combinazioni delle celle del secondo ordine che forniscono i valori
minori e maggiori del guadagno di rumore, nel caso di quantizzazione dopo la
somma e dopo ogni prodotto (valore tra parentesi).
Dai risultati di Tab. 4.3 risulta che le migliori combinazioni di zeri e poli sono
quelle nelle quali vengono accoppiati i poli e gli zeri più vicini tra loro, e gli
ordinamenti migliori quelli nei quali nelle prime celle vi sono i poli più prossimi
al cerchio unitario.
Si osservi che, in questo esempio, la differenza tra il caso peggiore ed il caso
migliore non è trascurabile: infatti, a pari SN R u , la configurazione peggiore
delle celle (Ga ' 6.4) richiede un bit in più per l’aritmetica rispetto alla
configurazione migliore (Ga ' 1.5).

Esempio 2. In Fig. 4.18 è riportata la risposta in frequenza e la posizione dei


poli e degli zeri di un filtro ellittico passa basso di ordine 5, la cui realizzazione
in cascata comprende 2 celle del secondo ordine ed una del primo ordine. Gli
zeri e i poli associati ai tre fattori del secondo e primo ordine, il modulo dei
poli (r) e il guadagno (A) hanno i valori:

i zeri poli r A
1 (0.843, ±0.538) (0.895, ±0.376) 0.971
2 (0.685, ±0.728) (0.859, ±0.251) 0.895 0.007
3 (−1., 0.) (0.840, 0.) 0.840

−10

−20
|H| (dB)

−30
2

−40 1

1
−50 2

3 3
−60
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
f/F_c −1 0 1

Figura 4.18 Per l’esempio 2.

Operando come indicato per l’Esempio 1 si ottengono i risultati riportati


in Tab. 4.4. Dalla Tab. 4.4 risulta che la combinazione e l’ordine migliori
sono in buon accordo con quanto illustrato precedentemente. Il rapporto
max Ga / min Ga vale circa 9.6 e corrisponde ad una differenza di circa “un
136 4.1 Il caso della aritmetica a virgola fissa

zeri/poli 1a cella 2a cella 3a cella Ga


zi /pi 1/2 2/1 3/3 8.3 (34.)
zi /pi 2/2 1/1 3/3 8.6 (36.)
zi /pi 2/2 3/3 1/1 2.5 (41.)
zi /pi 1/1 2/2 3/3 13.5 (53.)
zi /pi 1/3 2/2 3/1 15.9 (80.)
zi /pi 3/1 2/2 1/3 24.2 (108.)

Tabella 4.4 Per l’esempio 2: accoppiamento zeri/poli, ordinamento delle celle del
secondo ordine e guadagno di rumore di calcolo corrispondente.

bit e mezzo” tra le lunghezze di parola necessarie per ottenere lo stesso SN R u


nella peggiore e nella migliore configurazione.
Vale la pena di osservare che Ga assume valori che sono circa due, tre volte
quelli trovati nell’esempio precedente, anche se l’ordine del filtro è circa lo
stesso, come pure la distanza dei poli dal cerchio di raggio unitario. Questo
fatto può essere spiegato osservando che, in questo esempio, i poli sono in
posizione più vicina al punto z = 1, per cui tendono ad aumentare (vedi (4.27)
e Tab. 4.2 del paragrafo 4.1.2) sia il rumore di calcolo generato nelle parti
ricorsive delle celle che i fattori di scala ad esse associati.

Realizzazioni parallelo.
In Fig. 4.20 a) è riportata la realizzazione in parallelo di una f.d.t. del quarto
ordine: H(z) = A0 + H1 (z) + H2 (z), in cui le due f.d.t.

c0i + c1i z −1
Hi (z) = (4.72)
1 − a1i z −1 − a2i z −2
sono realizzate in forma diretta ad uscite multiple dallo stato.
È necessario procedere ad una normalizzazione delle variabili y i (k) associate
ai nodi 1 e 2 e all’uscita (nodo 5). La Fig. 4.20 b) riporta la corrispondente
struttura normalizzata.
Si osserva che il rumore di calcolo di uscita è la somma di quelli generati
dalle singole celle che quindi, a differenza della realizzazione cascata, possono
essere trattate separatamente.
Generalmente, come mostrato nell’ Esempio successivo, la realizzazione paral-
lelo si comporta almeno come la migliore realizzazione in cascata dal punto di
vista del rumore di calcolo in uscita. Per la sensibilità alla quantizzazione dei
coefficienti moltiplicatori nel caso gli zeri abbiano modulo unitario, valgono le
considerazioni a suo tempo svolte.
Capitolo 4. Valutazione degli errori di calcolo. 137

40

35

30 Cascata
G
a Parallelo
25
(dB)
20

15

10

0
0 0.1 0.2 0.3 0.4 0.5
fp / Fc

Figura 4.19 Guadagno di rumore di calcolo in funzione della banda passante per
realizzazioni cascata e parallelo con celle del secondo ordine ad uscite multiple dallo
stato.

Esempio. Si consideri la famiglia di filtri passabasso ellittici di ordine N = 6,


ondulazione in banda passante: DBR = 0.2 dB e attenuazione: A = 46.3 dB,
ottenuta variando la banda passante tra i valori f p /Fc = 10−2 e fp /Fc = 0.490.
La Fig. 4.19 riporta l’andamento di 10 log 10 Ga in funzione della banda
passante per le realizzazioni cascata e parallelo di celle del secondo ordine ad
uscite multiple dallo stato con messa in scala delle variabili in norma L 2 .
Dalla figura risulta che la realizzazione parallelo ha valori del guadagno
di rumore di calcolo, Gap , che sono inferiori a quelli della cascata, G ac , e che
la quantità 10 log 10 (Gac /Gap ) cresce da circa 2 dB a circa 12 dB al crescere
di fp /Fc . Si osserva inoltre l’andamento a 00 U 00 di Gap e Gac in funzione
della banda passante, con un minimo per f p /Fc ' 1/4 e valori crescenti per
fp /Fc → 0 e fp /Fc → 0.5. Tale andamento è caratteristico delle realizzazioni
in forma diretta utilizzate per le celle del secondo ordine.
138 4.1 Il caso della aritmetica a virgola fissa

A’

1 c 01 3

a11 z -1
c 11
x(k) 5
y(k)
a21 z -1

2 c 02 4

a12 z -1
c 12
a)
a22 z -1

A’/s 5

1 c’01 3
1/s 1
-1
e1 a11 z
c’11
5 s5
x(k) y(k)
a21 -1
z
e5
1/s 2
2 c’02 4

-1
e2 a12 z
c’12
b)
a22 -1
z

Figura 4.20 Realizzazione parallelo: messa in scala delle variabili e calcolo del
guadagno di rumore di calcolo.
Capitolo 4. Valutazione degli errori di calcolo. 139

4.1.6 Realizzazioni a traliccio.


La realizzazione a traliccio [20, 21] di una generica f.d.t. stabile
M
bi z −i
X

i=0 B(z)
H(z) = N
=
A(z)
ai z −i
X

i=0

con A(z) e B(z) primi, a0 = 1 e M ≤ N , prende le mosse dalla realizzazione


della f.d.t. passatutto costruita con i poli di H(z):
ÂN (z)
HN (z) = (4.73)
AN (z)
dove AN (z) = A(z) e ÂN (z) = z −N AN (1/z) è il polinomio ”reciprocato” di
AN (z).
La realizzazione di H(z) è costruita, come illustrato nel seguito, come com-
binazione lineare di M + 1 variabili linearmente indipendenti estratte dalla
realizzazione di HN (z) (ad esempio, le variabili di stato “future”: ingressi
degli elementi di ritardo, o le variabili di stato: uscite dagli elementi di ri-
tardo).
Nel caso particolare in cui H(z) sia rappresentabile come somma o differenza
di due f.d.t. passatutto: H(z) = [H1 (z) + H2 (z)]/2 (vedi par. 2.7.2), quanto
detto per HN (z) può essere applicato sia a H1 (z) che a H2 (z).

Il caso delle f.d.t. passatutto


La realizzazione a traliccio di HN (z) si basa sulla decomposizione già vista a
proposito dei filtri FIR (Appendice C) e data dalle:
(
An (z) = An−1 (z) + kn z −1 Ân−1 (z)
(4.74)
Ân (z) = kn An−1 (z) + z −1 Ân−1 (z)
che per n = N, N − 1, · · · , 1 genera, a partire da A N (z) = A(z), le famiglie di
polinomi An (z) = ni=0 an,i z −i e Ân−1 (z) (con an,0 = 1 e A0 (z) = Â0 (z) = 1
P

se aN,0 = 1), e la successione di coefficienti k n , detti coefficienti di riflessione.


Risolvendo le (4.74) si ottiene:
 a


 kn = an,n n,0
n = N, N − 1, · · · , 1
1 

 

An−1 (z) = An (z) − kn Ân (z)
1 − kn2
1

  
 z −1 Ân−1 (z) =

−k A (z) + Â (z)

n n n
1 − kn2

(4.75)
140 4.1 Il caso della aritmetica a virgola fissa

Yn Yn-1 Y’n kn Y’n-1

- kn -1
H (z) Hn-1 (z)
n-1

kn

z -1 z
-1

~ ~ ~ ~
Yn Yn-1 Y’n Y’n-1
a) b)

Y’n kn -1 Y’n-1 Y’n 1-k 2n Y’n-1

Hn-1 (z) kn - kn Hn-1 (z)

z -1 z -1
~ ~ ~ 1-k 2 ~
Y’n Y’n-1 Y’n n Y’n-1
c) d)

Figura 4.21 Realizzazioni a traliccio: tipi di cella.

con |kn | < 1 e An (z) polinomi a fase minima ∀n, nell’ipotesi A N (z) abbia tutti
gli zeri interni al cerchio di raggio unitario (Appendice C).
In base alla (4.73), alla decomposizione (4.74) rimane associata la relazione
tra le f.d.t. passatutto Hn (z) = Ân (z)/An (z)

Ân kn An−1 + z −1 Ân−1 kn + z −1 Hn−1


Hn = = = (4.76)
An An−1 + kn z −1 Ân−1 1 + kn z −1 Hn−1

con n = N, N − 1, · · · , 1 e H0 = 1. Nella (4.76), per semplicità, non si è


indicata esplicitamente la dipendenza di H n , An e Ân dalla variabile z.
Si osservi che dalla (4.76) risulta

kn = Hn (∞) = Hn−1 (0). (4.77)

Cella a due moltiplicatori


In base alla (4.76), la f.d.t. passatutto H n (z) = Ỹn (z)/Yn (z) di ordine n può
essere realizzata come illustrato in Fig. 4.21 a) 4 , cioè come una cella a
4
Si realizzi la f.d.t. corrispondente al solo denominatore, 1/(1 + kn z −1 Hn−1 (z)), e si
costruisca il numeratore come kn /(1 + kn z −1 Hn−1 (z)) + z −1 Hn−1 (z)/(1 + kn z −1 Hn−1 (z)).
Capitolo 4. Valutazione degli errori di calcolo. 141

due moltiplicatori la quale ha due ingressi, Y n (z) e z −1 Ỹn−1 (z), e due uscite,
Yn−1 (z) e Ỹn (z), e vede come ”carico” la f.d.t. passa-tutto di ordine n − 1
z −1 Ỹn−1 (z)
z −1 Hn−1 (z) = .
Yn−1 (z)
Quindi HN (z) può essere realizzata come la cascata di N celle, come illustrato
in Fig. 4.22.
È utile osservare che gli elementi di ritardo, z −1 , possono seguire le trasferenze
Hn−1 (z) (come in Fig. 4.21 a) e in Fig. 4.22) e quindi comparire nella linea
di ”ritorno” che collega le varie celle, ma nulla cambierebbe se li si facesse
precedere le Hn−1 (z) e, quindi, se fossero introdotti nella linea di ”andata”
che collega le celle di Fig. 4.22. Questa osservazione è utile per collegare le
proprietà della realizzazione a quelle della realizzazione trasposta.
X X
AN
kN k N-1 k1

z-1 z-1 z-1


^
AN
AN X

Figura 4.22 Realizzazione a traliccio.

Le equazioni associate alla cella di Fig. 4.21 a) sono:



 Yn−1
 = Yn − kn z −1 Ỹn−1
Ỹn = kn Yn−1 + z −1 Ỹn−1 (4.78)


Ỹn−1 = Hn−1 Yn−1
Si verifica facilmente che
Yn (z) An−1 (z)
Yn−1 (z) = −1
= Yn (z),
1 + kn z Hn−1 (z) An (z)
da cui, tenendo conto che l’ingresso X(z) di Fig. 4.22 soddisfa la X(z) =
YN (z), risulta:
Yn (z) An (z) Ỹn (z) Ân (z)
= Fn (z) = , = F̃n (z) = (4.79)
X(z) AN (z) X(z) AN (z)
con Fn (z) f.d.t. a fase minima e F̃n (z) f.d.t. a fase massima corrispondente,
quindi |Fn (ejθ )| = |F̃n (ejθ )|. In particolare si ha:
1
FN (z) = 1, F̃N (z) = HN (z), F0 (z) = F̃0 (z) =
AN (z)
(4.80)
142 4.1 Il caso della aritmetica a virgola fissa

e, quindi, accanto all’uscita passatutto, H N (z)X(z), esiste l’uscita X(z)/AN (z)


corrispondente alla f.d.t a ”soli poli” 1/A N (z).

Le risposte impulsive f˜n (k) godono della notevole proprietà di essere or-
togonali (Appendice C):

f˜m (k)f˜n (k) = 0
X
0 ≤ m 6= n ≤ N (4.81)
k=0

e le risposte impulsive fn (k) soddisfano la



X ∞
X
fm (k)fn (k) = fn (k)f0 (k) 0 ≤ m ≤ n ≤ N, (4.82)
k=0 k=0

mentre vale ovviamente la relazione


∞ ∞
f˜m
2 2
X X
(k) = fm (k) (4.83)
k=0 k=0

Poichè |F̃n (z)| = |Fn (z)| per |z| = 1, le norme Lp , p = 1, 2, · · · , ∞, delle


risposte impulsive associate a Yn , Ỹn e z −1 Ỹn sono uguali.
In particolare per p = 2 le norme corrispondenti possono essere calcolate in
forma chiusa. Allo scopo basta ricordare ( Appendice C) che i quadrati delle
norme `2 = L2 delle risposte impulsive f˜n2 (k) possono essere calcolati con la:
N
α2n+1
α2n = L22 (F̃n ) = L22 (z −1 F̃n ) = L22 (Fn ) = (1 − ki2 )−1 =
Y
2 (4.84)
i=n+1
1 − kn+1

partendo da α2N = L22 (F̃N ) = 1 e facendo correre l’indice n da N − 1 a 0. Si


ha

N
2 −1/2
(1 − ki2 )−1/2 (4.85)
Y
L2 (F̃N ) = 1, L2 (F̃N −1 ) = (1 − kN ) , · · · , L2 (F̃0 ) =
i=1

e si può concludere che, essendo |k i | < 1, la dinamica delle variabili della


realizzazione di Fig. 4.22 va crescendo in modo monotono con n che va da
n = N a n = 0, cioè man mano che ci si allontana dalla cella N cui è applicato
l’ingresso X e ci si avvicina all’uscita della f.d.t a soli poli, Y 0 = Ỹ0 = F̃0 X.
Non è difficile inoltre verificare che il rapporto max / min di tali norme, cioè
L2 (F0 )/L2 (FN ), aumenta quanto più i poli di H(z) si avvicinano al cerchio di
raggio unitario (basta ricordare la |k N | = N i=1 |pN,i | con pN,i poli di HN (z)).
Q

La messa in scala delle variabili può essere effettuata in modo ”distribuito”,


inserendo una coppia di moltiplicatori, c n e 1/cn , sulle linee della porta di
Capitolo 4. Valutazione degli errori di calcolo. 143

ingresso della cella n-esima (come in Fig. 2.21 b) o in modo ”concentrato”


introducendo un fattore di scala all’ingresso della realizzazione. Generalmente
si preferisce la seconda modalità, mentre la prima viene utilizzata, come fatto
nel seguito, solo per ricavare realizzazioni equivalenti della cella.
Per il calcolo del guadagno di rumore di calcolo associato alla realiz-
zazione di HN (z) e quindi all’uscita ỸN (z), conviene riferirsi alla realizzazione
trasposta. Con questo procedimento non è difficile dimostrare che i guadagni
di rumore associati ai due moltiplicatori +k n e −kn della celle ennesima di
Fig. 4.21 a) risultano:
N
(1 − ki2 )
Y
Ga (+kn ) = Ga (−kn ) = (4.86)
i=n+1

con n = 1, 2, ..N − 1 e Ga (±kN ) = 1.

Celle ad un moltiplicatore
Riprendiamo le relazioni ingresso-uscita (4.78). Sostituendo Y n−1 nella sec-
onda equazione, otteniamo:
(
Yn−1 = Yn − kn z −1 Ỹn−1
(4.87)
Ỹn = kn Yn + (1 − kn2 )z −1 Ỹn−1

Le equazioni (4.87) portano ad una realizzazione della cella a tre moltiplicatori


(detta di Kelly-Lochbaum) e sono il punto di partenza per derivare la cella ad
un moltiplicatore e quella normalizzata o a quattro moltiplicatori.
Allo scopo, ricordiamo le: Yn = (An /AN )X e Ỹn = (Ân /AN )X e alteriamo
i polinomi monici An (z) moltiplicandoli per i coefficienti c n (per il momento
arbitrari) ad eccezione di AN (z), cioè consideriamo i polinomi A 0n = cn An e
Â0n = cn Ân (A0N = cN AN con cN = 1). Corrispondentemente la (4.76) diventa

kn A0n−1 (z) + z −1 Â0n−1 (z)


Hn0 (z) = = Hn (z) (4.88)
A0n−1 (z) + kn z −1 Â0n−1 (z)
e quindi la operazione fatta non altera le f.d.t. passa–tutto H n (z) nè la f.d.t.
HN (z).5
Posto Yn0 = cn Yn e Ỹn0 = cn Ỹn , le equazioni della generica cella divengono:

 Y0
cn−1 0
n−1 = Y − kn z −1 Ỹn−1
0
cn n (4.89)
 Ỹ 0 = cn z −1 Ỹ 0
kn Yn0 + (1 − kn2 ) cn−1
n n−1
5
Si osserva che l’operazione fatta sui polinomi An corrisponde ad inserire la coppia di
moltiplicatori cn , 1/cn sulle linee della porta di ingresso della cella n-esima, e le manipo-
lazioni successive che portano alle (4.89) corrispondono a conglobare detti moltiplicatori
nella cella stessa.
144 4.1 Il caso della aritmetica a virgola fissa

Se poniamo
cn−1
= 1 + kn (cN = 1), (4.90)
cn
il moltiplicatore di z −1 Ỹn−1
0 nella seconda delle (4.89) diviene 1 − k n e una
semplice manipolazione delle (4.89) porta alla cella ad un moltiplicatore (e 3
somme) di Fig. 4.21 b).
Analogamente, se poniamo
cn−1
= 1 − kn (cN = 1), (4.91)
cn

otteniamo la cella ad un moltiplicatore (e 3 somme) di Fig. 4.21 c).


Si osserva che, a seconda del segno di k n , le scelte (4.90) e (4.91) alterano la
dinamica di Yn0 in modo diverso: si ha infatti Yn0 /X = A0n /AN = cn An /AN . È
inoltre sempre possibile costruire una realizzazione in cui compaiano sia celle
del tipo di Fig. 4.21 b) che celle del tipo di Fig. 4.21 c). Questa possibilità
può essere utilmente sfruttata per la messa in scala delle variabili.
Allo scopo indichiamo, per semplicità di notazione, con 1 e 2 le “porte”
di ingresso e di uscita, con a1 e a2 , rispettivamente, i segnali entranti in un
generico istante dalla porta di ingresso e uscita della cella di Fig. 4.21 b) e
con b1 e b2 i corrispondenti segnali uscenti. Si ha
(
b1 = a2 + kn (a1 − a2 )
(4.92)
b2 = a1 + kn (a1 − a2 ).

In regime sinusoidale la natura passa–tutto di H n (z) e Hn−1 (z) implica: |a1 (k)| =
|A1 exp(jθk)| = |b1 (k)| e |a2 (k)| = |b2 (k)|. Applicando la disuguaglianza tri-
angolare: |a ± b| ≥ |a| − |b| alla prima delle (4.92), si ottiene se k n ≤ 0:

|a1 | = |b1 | = |a2 (1 + |kn |) − a1 |kn || ≥ |a2 |(1 + |kn |) − |a1 ||kn | (4.93)

da cui risulta |a2 | ≤ |a1 |. Se ne deduce che in regime sinusoidale, se k n ≤ 0, la


cella di Fig. 4.21 b) non “amplifica”.
Dato che b1 e b2 sono calcolati secondo le (4.92), per calcolare correttamente il
prodotto kn (a1 −a2 ) è però necessario disporre del valore corretto di a 1 −a2 , che
soddisfa la |a1 − a2 | ≤ 2|a1 |, e quindi è necessario aggiungere un bit ”in testa”
alla rappresentazione di a1 e a2 durante la somma e la moltiplicazione. Tale
bit può essere ignorato dopo la moltiplicazione dato che si sa che il risultato
delle somme ai + kn (a1 − a2 ) sta nella rappresentazione.
Se kn > 0, si arriva alle medesime conclusioni riferendosi alla cella di Fig. 4.21
c)6 .
6
Ringrazio Paola Donati, Massimo Pegorer e Debora Pelillo, A.A. 1997/98, per aver
segnalato un errore in una precedente dimostrazione.
Capitolo 4. Valutazione degli errori di calcolo. 145

In definitiva, realizzando la cella n-esima come in Fig. 4.21 b), se k n < 0,


e come in Fig. 4.21 c), se kn > 0, si ottiene una realizzazione a traliccio con
celle ad un moltiplicatore che in regime sinusoidale non amplifica e quindi è già
”scalata”, cioè è normalizzata relativamente alla norma L ∞ , che è la norma più
restrittiva dopo la norma `1 . Per assicurare un corretto funzionamento anche
in transitorio e, in generale, in qualsiasi condizione è sufficiente aggiungere
alla rappresentazione dell’ingresso un ulteriore bit di guardia per l’overflow
e/o utilizzare aritmetica a saturazione.
É interessante osservare che nel caso N = 1 e N = 2 le realizzazioni ottenute
coincidono con i filtri numerici d’onda (di “tipo 1”) presentati in [18].

Cella a quattro moltiplicatori


Esiste un’altra utile scelta dei moltiplicatori c n . Precisamente, possiamo
scegliere i coefficienti cn in modo da rendere unitarie le energie delle risposte
impulsive associate a Fn0 = A0n /AN e F̃n0 = Â0n /AN . 7 Allo scopo deve essere:

A0n Â0 An Ân q


L2 ( ) = L 2 ( n ) = c n L2 ( ) = c n L2 ( ) = cn α2n = 1 (4.94)
AN AN AN AN
con α2n dato dalla (4.84). In conclusione, si trova che deve essere:
cn−1 q
= 1 − kn2 (cN = 1) (4.95)
cn
e corrispondentemente le (4.89) divengono:
(
0 1 − kn2 Yn0 − p kn z −1 Ỹn−1
0
p
Yn−1 =
0 (4.96)
Ỹn = kn Yn0 + 1 − kn2 z −1 Ỹn−1
0

Alle (4.96) corrisponde la cella di Fig. 4.21 d), in cui compaiono quattro molti-
plicazioni e due somme. La realizzazione corrispondente viene detta normaliz-
zata (o di Gray-Markel [21]) dato che in essa tutte le variabili sono normalizzate
in norma L2 .
Si osserva che la matrice associata a (4.96) è una matrice ortonormale e
quindi corrisponde ad una rotazione (sin φ n = kn , cos φn = (1 − kn2 )1/2 ): in
ogni istante i vettori costruiti con i segnali di uscita e di ingresso hanno la
stessa lunghezza:
02
yn−1 (k) + ỹn02 (k) = yn02 (k) + ỹn−1
02
(k − 1) (4.97)

proprietà che talora viene espressa dicendo che la cella normalizzata è ”non
dissipativa”.
7
Tale scelta corrisponde a rendere i polinomi Ã0n (z), n = 1, 2, ..., N − 1, ortonormali sul
cerchio di raggio unitario rispetto alla funzione peso 1/|AN (ejθ )|2 . Si veda la Appendice C
146 4.1 Il caso della aritmetica a virgola fissa

Una conseguenza notevole di questo fatto la si ha nella corrispondente


descrizione a variabili di stato. Infatti, posto y(k) = ỹ N 0 (k) e scelte come
0
variabili di stato sn (k) le uscite dagli elementi di ritardo (s n (k) = ỹn−1 (k − 1)
e s(k) = [s1 (k), · · · , sN (k)]), si ha
" # " # " #
s(k + 1) s(k) A b
=R R= (4.98)
y(k) x(k) c d
con A,b, c matrici N × N , N × 1, 1 × N , rispettivamente, e d scalare.
In forza delle (4.96) la matrice R di aggiornamento dello stato e dell’uscita
risulta ortonormale:
RRt = Rt R = I, (4.99)
proprietà alla quale, come noto dall’Analisi Numerica [10], [63], restano asso-
ciate ottime caratteristiche di robustezza numerica, cioè di non amplificazione
degli errori di calcolo. In effetti, nel par. 4.1.7 vedremo che la realizzazione a
traliccio a quattro moltiplicatori è ”quasi” a minimo rumore di calcolo.
La (4.99) implica le:
AAt + bbt = I At A + ct c = I
cct + d2 = 1 bbt + d2 = 1
Act + db = 0 At b + dct = 0 (4.100)
da cui risulta che la matrice I − AAt è definita positiva (proprietà da cui non
è difficile dedurre che la corrispondente realizzazione è priva di cicli limite au-
tonomi da overflow e da granularità della caratteristica di quantizzazione, se si
quantizza dopo la somma e si usa un quantizzatore a troncamento simmetrico;
si veda il par. 4.1.8).

Per quanto riguarda la propagazione degli errori di calcolo nella realiz-


zazione a traliccio con cella a quattro moltiplicatori, è necessario calcolare le
f.d.t. dai nodi di somma interni alle celle di Fig. 4.22 all’uscita y(k) = ỹ N (k).
Allo scopo è conveniente riferirsi alla realizzazione trasposta, che risulta co-
incidere con la realizzazione originale, a parte lo spostamento inessenziale dei
ritardi dalla linea di ”ritorno” a quella di ”andata”. Ne viene che anch’essa è
normalizzata in norma L2 e si ha il notevole risultato che tutte le sorgenti di
errore danno lo stesso contributo al guadagno di rumore totale, che risulta:
Ga = 2N (4.101)
nel caso di arrotondamento dopo la somma. Quindi il guadagno di rumore di
calcolo dipende solo dall’ordine N della f.d.t. passatutto, e non dalla partico-
lare f.d.t. realizzata, proprietà che accomuna la realizzazione a traliccio con
celle normalizzate di una f.d.t. passatutto alle realizzazioni a variabili di stato
a minimo rumore di calcolo (par. 4.1.7).
Capitolo 4. Valutazione degli errori di calcolo. 147

Il caso generale
La realizzazione di una generica f.d.t. H(z) può essere ottenuta come combi-
nazione lineare delle variabili Ỹn (z) o Ỹn0 (z) (variabili di stato ”future”), cioè
come
M M
B(z) Ân (z) Â0 (z)
d0n n
X X
H(z) = = dn = (4.102)
A(z) n=0 AN (z) n=0 AN (z)
con M ≤ N grado di B(z) e con d0n = dn /cn , e quindi il numeratore risulta
espresso come combinazione lineare dei polinomi Ân (z) o Â0n (z). Sono possibili
varianti, ad esempio, l’uso di Yn (z) anzichè Ỹn (z), che non mutano però le
proprietà della realizzazione risultante.
Per il calcolo dei coefficienti dn , si ha che deve essere:
M
X
B(z) = dn Ân (z).
n=0

Eguagliando i coefficienti di z −n , n = 0, 1, .., M , ad ambo i membri dell’equazione,


si ottiene un sistema lineare di M + 1 equazioni nelle M + 1 incognite d n . La
struttura triangolare del sistema rende semplice la sua soluzione, che (ricor-
dando la ân,n = 1) può essere espressa tramite la

BM = dM ÂM + BM −1 → dM = bM,M
BM −1 = BM − dM ÂM = dM −1 ÂM −1 + BM −2 → dM −1 = bM −1,M −1
..
.
B0 = B1 − d1 Â1 = d0 Â0 → d0 = b0,0
(4.103)
dove BM (z) = B(z) e Bn (z) = ni=0 bn,i z −i .
P

Anche nel caso generale si trova che le realizzazioni a traliccio con cella a
quattro moltiplicatori hanno ottime prestazioni per quanto riguarda il guadagno
di rumore di calcolo [57], [41].

Esempio. Si calcolano le prestazioni in termini di guadagno di rumore di


calcolo delle realizzazioni della famiglia di f.d.t. di tipo ellittico di ordine
N = 5, utilizzate nell’esempio del par. 2.7.5. Le realizzazioni considerate
fanno riferimento al parallelo di due f.d.t. passatutto (R1,R2 e R3), alla
cascata di f.d.t. del primo e secondo ordine ad uscite multiple dallo stato (R4)
e ad una realizzazione “ad onda” (R5).
Per le f.d.t. passatutto il fattore 1/2 é stato associato al calcolo dell’uscita
e si sono utilizzate:
a) la realizzazione a traliccio a quattro moltiplicatori (R2);
b) la realizzazione cascata di f.d.t. (passatutto) del primo e secondo ordine
(R1 e R3). In R3 le f.d.t. passatutto sono state realizzate in forma diretta
148 4.1 Il caso della aritmetica a virgola fissa

25
R1
R2

20 * R3
R4
Ga * * R5 *

15 *

*
*
10

0.05 0.15 0.25 0.35 0.45

f p /Fc

Figura 4.23 Per l’esempio: guadagno di rumore di calcolo in funzione della banda
passante.

ad uscite multiple dallo stato, mentre in R1 si è utilizzata la realizzazione a


traliccio ad un moltiplicatore normalizzata in norma L ∞ (ogni f.d.t. è stata,
quindi, realizzata tramite una o due celle, ciascuna del tipo di Fig. 4.21 b) o
c) a seconda del segno di kn ).
Le realizzazioni R2, R3 e R4 sono state normalizzate adottando la norma
L2 , mentre per le realizzazioni R1 e R5 si è adottata la norma L ∞ . Nel calcolo
del guadagno di rumore non si è tenuto conto del contributo associato al nodo
di uscita (peraltro di valore unitario in tutte le realizzazioni). I risultati sono
riportati in Fig. 4.23 in funzione della banda passante f p /Fc .
Nel caso di R3 e R4 si osserva la caratteristica forma a ”U” della dipen-
denza di Ga dalla banda passante, già vista in Fig. 4.19 e dovuta alla realiz-
zazione in forma diretta delle celle del secondo ordine. Tuttavia, lo stesso tipo
di dipendenza vale anche per la realizzazione R1 che per piccoli e grandi valori
di fp /Fc presenta valori molto grandi del guadagno di rumore (G a = 449 e 66
per fp /Fc = 0.05 e 0.1, rispettivamente, e Ga = 65 e 447 per fp /Fc = 0.4 e
0.45, rispettivamente). Si osserva, inoltre, la costanza di G a = (2N )/4 = 2.5
per la realizzazione a traliccio a quattro moltiplicatori R2 (si veda la (4.101)).
Va ricordato che un confronto corretto della robustezza numerica delle
realizzazioni considerate richiede che si adotti la stessa legge di messa in scala
Capitolo 4. Valutazione degli errori di calcolo. 149

delle variabili interne. In caso contrario, come è nell’esempio considerato, è


necessario riferirsi al medesimo segnale di ingresso (o alla medesima classe di
segnali di ingresso) e assicurare il medesimo utilizzo della dinamica disponibile
(quindi la stessa probabilità di overflow) nelle realizzazioni messe a confronto.
Nel caso attuale si può applicare un ingresso sinusoidale con ampiezza pari
al fondo scala (trascurando il transitorio) nel caso di R1 e R5, mentre, in
base alla (4.49), lo stesso ingresso va attenuato di un fattore pari a circa 2 nel
caso di R2, R3 e R4. Se si tiene in conto questo fatto, i valori del guadagno
di rumore di R2, R3 e R4 riportati in figura vanno moltiplicati per almeno
4. Anche con questa correzione la realizzazione R2 risulta la realizzazione a
minimo guadagno di rumore, seguita dalla R5 la quale, a confronto, perde
circa 1/2 bit (Ga (R5) ≤ 2Ga (R2)) per valori di fp /Fc ≤ 0.3 e circa 1 bit per
valori di fp /Fc prossimi a 0.5.
Se mettiamo in conto, però, anche la sensibilità parametrica e ricordiamo (par.
2.7.5) che le prestazioni ottenibili da R5 con coefficienti quantizzati a 4 bit sono
ottenibili da R2 con coefficienti quantizzati su 10÷16 bit, possiamo concludere
che la realizzazione “ad onda” R5 risulta complessivamente la migliore, almeno
in un ambiente in cui il progettista possa dimensionare sia la lunghezza di
parola dei coefficienti che quella delle variabili di stato.

4.1.7 Realizzazioni a variabili di stato a minimo rumore di calcolo


É noto da Teoria dei Sistemi che ad una f.d.t. H(z) razionale é possibile asso-
ciare una descrizione a variabili di stato, nella quale la f.d.t. é realizzata come
un sistema con un ingresso, una uscita ed un insieme di variabili interne, dette
variabili di stato, che riassumono tutto il passato del sistema. Le equazioni
che governano il sistema sono:

s(k + 1) = As(k) + bx(k)


(4.104)
y(k) = cs(k) + dx(k).

Lo stato é il vettore s(k) = [s1 (k), · · · , sN (k)]t e ha dimensione N , l’ingresso


é x(k) e l’uscita é y(k). La matrice A di dimensioni N × N rappresenta il
legame tra lo stato al tempo k + 1 (“stato futuro”) e lo stato al tempo k. I
vettori colonna e riga b e c di dimensione N rappresentano rispettivamente
il legame fra lo stato al tempo k + 1 e l’ingresso al tempo k e fra l’uscita al
tempo k e lo stato al tempo k. Lo scalare d rappresenta il legame diretto fra
ingresso e uscita. Nel seguito supporremo che la f.d.t. (stabile) H(z) sia un
rapporto di polinomi primi tra loro e che la descrizione di stato corrispondente
sia minima, quindi controllabile ed osservabile [17].
La Fig. 4.24 rappresenta graficamente le relazioni (4.104). Si osserva che la
realizzazione ha una lunghezza del cammino critico piccola e quindi un elevato
grado di parallelismo.
150 4.1 Il caso della aritmetica a virgola fissa

e1 (k) A e2 (k)

b c
x(k) y(k)
s(k+1) s(k)

Figura 4.24 Realizzazione a variabili di stato.

Indicati con fi (k) la risposta impulsiva tra l’ingresso e la variabile di stato


si (k) e con f (k) = [f1 (k), · · · , fN (k)]t il corrispondente vettore delle risposte
impulsive, dalla (4.104) si ricava facilmente
(
Ak−1 b k>0
f (k) = (4.105)
0 k ≤ 0.

Indicati con gi (k) la risposta impulsiva tra variabile di stato “futura” s i (k + 1)


e l’uscita e con g(k) = [g1 (k), · · · , gN (k)] il corrispondente vettore (riga) delle
risposte impulsive, dalla (4.104) (o dal sistema duale) si trova:
(
cAk−1 k>0
g(k) = (4.106)
0 k ≤ 0.

Infine per la risposta impulsiva del sistema si ha:



k−1 b k>0
 cA

h(k) = d k=0 (4.107)
 0

k<0

cui corrisponde la f.d.t.

H(z) = c(zI − A)−1 b + d. (4.108)

per |z| > | max(λi )| con λi , i = 1, · · · , N , autovalori di A (poli di H(z).

Una importante proprietà del modello a variabili di stato é data dalla possi-
bilità di modificare la descrizione associata alle matrici A, b e c semplicemente
cambiando la base dello spazio di stato. Detta T una matrice di dimensioni
N × N non singolare, con la posizione

q(k) = T−1 s(k) (4.109)


Capitolo 4. Valutazione degli errori di calcolo. 151

le equazioni di stato diventano

q(k + 1) = T−1 ATq(k) + T−1 bx(k)


y(k) = cTq(k) + dx(k)

Si verifica facilmente che le f.d.t. H(z) dei due sistemi coincidono e che quindi
la trasformazione porta ad un sistema simile, cui rimane associata una diversa
descrizione:
(A, b, c, d) ⇐⇒ (T−1 AT, T−1 b, cT, d). (4.110)
Il fatto che, senza alterare la f.d.t. ingresso–uscita H(z), sia possibile modifi-
care sia le relazioni che intercorrono tra l’ingresso e le variabili di stato (cioé la
f.d.t. F(z), trasformata di f (k)) che le relazioni tra il vettore di stato e l’uscita
(cioé la f.d.t. G(z), trasformata di g(k)), é fondamentale per la costruzione di
realizzazioni nelle quali é minimizzata la propagazione degli errori di calcolo.
Allo scopo osserviamo che nel caso attuale gli errori di calcolo (schematizzati
in Fig. 4.24 come sorgenti additive) sono associati al calcolo di s(k + 1), la cui
equazione diviene

ŝ(k + 1) = Q(Aŝ(k) + bx(k)) = Aŝ(k) + bx(k) + e1 (k)

dove Q(·) indica la operazione di quantizzazione (componente per componente)


e si suppone di quantizzare dopo la somma, ed al calcolo della uscita, la cui
equazione diviene

ŷ(k) = Q(cŝ(k) + dx(k)) = cŝ(k) + dx(k) + e 2 (k).

Prima di procedere al calcolo della varianza dell’errore di calcolo di uscita,


é necessario mettere in scala le variabili associate ai nodi di somma, che nel
caso in esame sono le variabili di stato s i (k + 1) (o equivalentemente le si (k))
e l’uscita. Dato che utilizzeremo la norma ` 2 e ci riferiremo a risposte in
frequenza che soddisfano la |H(ejθ )| ≤ 1, la condizione `2 (h) < 1 risulta
garantita. Rimane quindi da condizionare solo le variabili di stato. Messe in
scala le si (k) in modo che sia garantita la condizione:

`22 (fi0 ) = fi02 (k) = 1,
X

k=0

la varianza del rumore di calcolo all’uscita assume la espressione (4.59) qui


riprodotta per comodità:
N N
2
= σe2 ( `22 (gi0 ) + 1) = σe2 ( `22 (fi )`22 (gi ) + 1)
X X
σey (4.111)
i=1 i=1
152 4.1 Il caso della aritmetica a virgola fissa

in cui il primo contributo é associato alle variabili di stato e dipende dalla


descrizione (A, b, c), mentre il secondo é associato all’uscita ed é indipendente
dalla descrizione. Quando applichiamo una trasformazione T, cambiano sia
le fi (k) che le gi (k) e, quindi, sia la dinamica delle variabili di stato che la
varianza del rumore di calcolo ad esse associato. Uno strumento efficiente per
tener traccia di questi cambiamenti é dato dalle cosiddette matrici K e W
[46, 57].

Le matrici K e W
Poiché fi (k) é la i–esima componente del vettore f (k), gli elementi della di-
agonale principale della matrice f (k)f t (k) sono proprio le quantità fi2 (k). Se
definiamo la matrice N × N
∞ ∞
t
Ak b(Ak b)t ,
X X
K= f (k)f (k) = (4.112)
k=0 k=0

otteniamo che gli elementi Kii di K sono proprio le norme `2 al quadrato delle
f.d.t. dall’ingresso ai nodi associati alle variabili di stato:

fi2 (k) = `22 (fi ).
X
Kii = (4.113)
i=0

La matrice (simmetrica) K é la matrice di Gram associata agli N vettori


[fi (0), fi (1), fi (2) · · ·]t , i = 1, · · · , N , che nella ipotesi di sistema controllabile
risulta definita positiva. É interessante osservare che la matrice K può inter-
pretarsi come la matrice covarianza degli stati E[s(k)s(k) t ] corrispondente ad
un ingresso bianco di varianza unitaria. Con questa interpretazione é agevole
verificare che essa soddisfa la equazione:

K = AKAt + bbt (4.114)

la quale, a partire da A e b, consente di calcolare gli elementi di K risolvendo


un sistema lineare in N (N + 1)/2 incognite, anziché ricorrere ad una simu-
lazione e sommare un numero sufficientemente grande di prodotti f m (k)fn (k).
In modo analogo, si definisce la matrice
∞ ∞
gt (k)g(k) = (cAk )t cAk ,
X X
W= (4.115)
k=0 k=0

i cui elementi diagonali sono:



gi2 (k) = `22 (gi ).
X
Wii = (4.116)
k=0
Capitolo 4. Valutazione degli errori di calcolo. 153

e rendono conto della propagazione del rumore di calcolo. La matrice (sim-


metrica) W é una matrice di Gram, che risulta definita positiva nel caso di
sistema osservabile. Essa soddisfa la equazione:
W = At WA + ct c, (4.117)
che, come la (4.114), porge uno strumento per calcolare gli elementi di W
risolvendo un sistema lineare di N (N + 1)/2 equazioni.
Non é difficile verificare attraverso le (4.114) e (4.117) che K e W, a seguito
della trasformazione (4.109), divengono
(K, W) =⇒ (T−1 KT−t , Tt WT) (4.118)
e quindi
KW =⇒ T−1 (KW)T. (4.119)
Ne viene che gli autovalori di KW risultano invarianti rispetto ad ogni trasfor-
mazione lineare e risultano quindi dipendere solo dalla f.d.t. realizzata. Essi
determineranno il minimo errore di calcolo ottenibile.

La messa in scala
Per mettere in scala le variabili di stato associate ad una realizzazione de-
scritta da (A, B, c, K, W) possiamo ricorrere ad una trasformazione diagonale,
T = diag(t1 , · · · , tN ). Una tale trasformazione modifica le matrici K e W nel
seguente modo:
K = [Kmn ] =⇒ K0 = [Kmn /(tm tn )]
W = [Wmn ] =⇒ W0 = [Wmn tm tn )].
Se quindi si pone p p
T = diag[ K11 , · · · , KN N ], (4.120)
si arriva ad una realizzazione con elementi unitari sulla diagonale principale
della matrice K0 e con elementi Kii Wii su quella di W0 . É facile verificare che
l’effetto della trasformazione T é esattamente lo stesso che si sarebbe ottenuto
applicando alle variabili del grafo di Fig. 4.24 il procedimento di Fig. 4.7, cioé
una normalizzazione distribuita con fattori di scala pari a t i .
In definitiva, il guadagno di rumore di calcolo associato all’aggiornamento
delle variabili di stato, si lascia scrivere come:
N
X
Gas = Kii Wii (4.121)
i=1

che esprime il guadagno di rumore della realizzazione “scalata” in termini degli


elementi diagonali delle matrici K e W associate alla realizzazione originale.
É banale verificare, ma importante ricordare che il guadagno fornito dalla
(4.121) é invariante per ogni trasformazione diagonale.
154 4.1 Il caso della aritmetica a virgola fissa

Realizzazioni a minimo rumore


Il problema della minimizzazione del guadagno di rumore può essere formulato
nei seguenti termini: data una realizzazione iniziale (A, b, c, d), trovare una
descrizione equivalente che minimizzi N
P
i=1 Kii Wii .
Mullis e Roberts [46] hanno dimostrato che vale la sequente disuguaglianza:
N
1 X
Kii Wii ≥ ρ2 (4.122)
N i=1

dove
N
1 X
ρ= µi (4.123)
N i=1

e i µ2i sono gli autovalori di KW, che prendono il nome di modi del secondo
ordine della f.d.t. Quindi il minimo guadagno di rumore é il quadrato della
media aritmetica dei µi , cioé delle radici quadrate dei modi del secondo ordine.
Si dimostra inoltre che la (4.122) vale col segno di uguaglianza, quindi la
realizzazione corrispondente é una realizzazione a minimo rumore, se e solo
se le matrici K e W soddisfano le condizioni:

1. K = DWD per qualche matrice diagonale D definita positiva;

2. Kii Wii = Kjj Wjj ∀i 6= j.

Si osserva che le condizioni precedenti non sono alterate da una trasfor-


mazione diagonale e quindi é possibile prima cercare una realizzazione che le
soddisfi e poi “scalarla”. Mullis e Roberts hanno anche presentato un procedi-
mento che, a partire da una descrizione arbitraria, costruisce una realizzazione
che soddisfa tali condizioni, dimostrando quindi la esistenza di una soluzione
a minimo rumore.
Per una realizzazione “scalata” le condizioni 1) e 2) implicano che il rumore
di calcolo sia minimo se e solo se

W 0 = ρ 2 K0 , Kii0 = 1, i = 1, · · · , N. (4.124)

In conclusione per una tale realizzazione si ha W ii0 = ρ2 e tutte le sorgenti di


errore danno lo stesso contributo alla varianza del rumore di uscita. Talora,
ad una tale realizzazione si dà il nome di ”bilanciata”, dato che essa soddisfa
le condizioni Kii0 = cost e Wii0 = cost.
Merita osservare che, in generale, la realizzazione a minimo rumore non
é unica (si escludono casi banali, ad esempio, b → −b e c → −c o la real-
izzazione ottenuta per trasposizione), anzi esiste una famiglia di tali realiz-
zazioni, possibilità studiata in [4].
Capitolo 4. Valutazione degli errori di calcolo. 155

Un esempio interessante di questo fatto é dato dalla realizzazione di una f.d.t.


passatutto. Nel precedente paragrafo abbiamo dedotto dalla realizzazione a
traliccio con celle a quattro moltiplicatori che, per una tale f.d.t., esiste la
realizzazione a variabili di stato (4.98) con matrice R ortonormale (non é dif-
ficile dimostrare che vale anche il viceversa, cioé che ad ogni realizzazione a
variabili di stato con matrice R ortonormale corrisponde una f.d.t. passat-
utto). Dalle prime due delle condizioni (4.100), che esprimono le condizioni
di ortonormalità di R, si deduce immediatamente che le corrispondenti ma-
trici K e W soddisfano la condizione K = W = I, quindi la realizzazione a
variabili di stato con matrice R ortonormale é “scalata” e soddisfa la (4.124)
con ρ2 = 1: essa é quindi a minimo rumore di calcolo e G as = N con N
ordine della f.d.t. passatutto (si ricordi che per la realizzazione a traliccio si
ha G = 2N ). Se a tale realizzazione si applica una qualsiasi trasformazione T
ortonormale e si ricorda la (4.118), si trova che anche la nuova realizzazione
soddisfa la K = W = I. Essa e’ ancora a minimo rumore e in definitiva
abbiamo verificato che, in questo caso, esiste una famiglia di realizzazioni a
minimo rumore di calcolo.

Se la costruzione di una realizzazione a minimo rumore viene applicata ad


una f.d.t. di ordine N , si arriva ad una realizzazione ottima dal punto di vista
della robustezza numerica, ma caratterizzata da matrici A, b, c “piene”. La
complessità di calcolo associata (pari a N 2 + 1 moltiplicazioni e N 2 somme)
risulta più elevata di quella di una realizzazione convenzionale. Ne viene che
occorre valutare, caso per caso, se l’aumento di complessità sia giustificato
dalla riduzione del rumore di calcolo.
Un modo per ridurre il numero di operazioni consiste nell’applicare la pro-
cedura di minimizzazione ad una realizzazione del tipo “a decimazione dello
stato”,
√ nella quale il vettore di stato viene aggiornato ogni L > 1 passi: per
L ' 2N la complessità di calcolo é minima e pari a circa 3.4N operazioni di
somma e moltiplicazione per campione di uscita (il guadagno medio di rumore
si riduce di 1/L [57, 39]).
Un’altra soluzione fa ricorso ad una realizzazione di tipo parallelo o cascata di
celle del secondo ordine (eventualmente, ancora “a decimazione dello stato”
[39]). In√questo caso, il numero di moltiplicazioni scende da N 2√+ 1 a 4N (a
2N + 2 N se si ricorre alla “decimazione dello stato” e L ' 2 N) e fortu-
natamente, in pratica, non si incorre in perdite significative di prestazioni.
Nel caso parallelo quanto detto continua a valere per ogni singola cella
senza modifiche: il guadagno di rumore totale risulta la somma dei guadagni
di rumore associati alle singole f.d.t. del secondo ordine. Nel caso della cas-
cata, invece, nasce qualche complicazione. Infatti, l’ingresso di una cella che
non sia la prima, non é più l’ingresso x(k) dell’intero sistema, ma l’uscita dalla
cella precedente e, inoltre, il rumore generato da una cella viene filtrato dalle
156 4.1 Il caso della aritmetica a virgola fissa

celle a valle ed esistono, inoltre, variabili “non di stato” (le uscite dalle celle)
che devono essere messe in scala e sorgenti di rumore non associate a vari-
abili di stato che é necessario mettere in conto. In [44, 57] é presentato un
procedimento efficiente per la soluzione del problema. Vedremo, comunque,
su un esempio che il rumore generato in una realizzazione cascata non é mai
inferiore a quello generato in una realizzazione parallelo ed é quindi utile parti-
colarizzare il metodo generale al caso delle f.d.t. del secondo ordine “isolate”,
riferendosi implicitamente al caso parallelo.

Effetto delle trasformazioni di frequenza


Una proprietà fondamentale delle realizzazioni a minimo rumore di calcolo é
l’invarianza dei modi del secondo ordine rispetto alle trasformazioni di fre-
quenza.
Se applichiamo alla f.d.t. H(z) la trasformazione:
M
Y z − a∗i
z −→ F (z) = ±
i=1
1 − ai z

con |ai | < 1, otteniamo la f.d.t. H 0 (z) = H(F (z)). Si dimostra [47] che
ogni modo del secondo ordine µ2i di H(z) diviene un modo del secondo ordine
µ02 2 0
i = µi di molteplicità M di H (z).
In particolare, se applichiamo la trasformazione F (z) = (z − a)/(1 − az),
il minimo guadagno di rumore associato a H(z) risulta lo stesso di quello di
H 0 (z). Questo fatto vale indipendentemente dal valore della banda passante
e costituisce un comportamento significativamente differente da quello che si
riscontra nelle realizzazioni in forma diretta nelle quali, invece, il guadagno
di rumore tende a divergere per valori della banda passante prossimi a zero
e a metà della frequenza di campionamento (si veda la Fig. 4.19). Questa
proprietà rende le realizzazioni a minimo rumore indispensabili nel caso di
filtri a banda stretta.

Relazione tra sensibilità parametrica e guadagno di rumore


Ricordiamo che le sensibilità alle variazioni dei coefficienti moltiplicatori in
una realizzazione a variabili di stato sono date dalle (2.14) e (2.15):

∂H
Saij (z) = = Gi (z)Fj (z)
∂aij
∂H
Sbi (z) = = Gi (z)
∂bi
∂H
Sci (z) = = Fi (z). (4.125)
∂ci
Capitolo 4. Valutazione degli errori di calcolo. 157

Definite le quantità (z = ejθ ):

|Sbi (z)|2 )1/2


X
Nb (z) = (
i
|Sci (z)|2 )1/2
X
Nc (z) = (
i
|Saij (z)|2 )1/2 = Nb (z)Nc (z)
XX
NA (z) = ( (4.126)
i j

assumiamo come indici di sensibilità le quantità:

MA = L22 [Nb ] L22 [Nc ] = tr(K)tr(W)


Mb = L22 [Nb ] = tr(W)
Mc = L22 [Nc ] = tr(K), (4.127)

dove tr(·) indica la traccia della matrice in argomento ed il secondo segno di


uguaglianza discende dal teorema di Parseval tramite le (4.125) e la definizione
delle matrici K e W.
Osserviamo che in base alla disuguaglianza di Schwartz:
1//2
L1 [Nb Nc ] ≤ L2 [Nb ] L2 [Nc ] = MA

e quindi la quantità MA porge il massimo di L21 [NA ]. A questo punto possiamo


definire l’indice di sensibilità “globale”

M = MA + Mb + Mc = tr(K)tr(W) + tr(K) + tr(W). (4.128)

Se applichiamo la (4.128) ad una realizzazione nella


√ quale le variabili di
stato siano state normalizzate in modo che ` 2 (fi ) = Kii = 1, troviamo

M = (N + 1) tr(W) + N (4.129)

e la minimizzazione di M si riduce alla minimizzazione di tr(W), quindi del


guadagno di rumore di calcolo [64].
In conclusione, le realizzazioni a variabili di stato a minimo rumore di
calcolo sono anche a minima sensibilità, dove “minima sensibilità” va inteso
nel senso che minimizzano l’indice di sensibilità dato dalla (4.128). A questo
proposito merita anche osservare che risulta L 21 (Saij ) ≤ Wii e quindi in tali
realizzazioni, essendo Wii = cost, le norme L1 delle sensibilità alle variazioni
degli elementi aij sono equilimitate superiormente.
Conseguenza importante del legame tra sensibilità e guadagno di rumore é
che, nel caso di filtri selettivi, la sensibilità é, al pari del guadagno di rumore,
indipendente dalla banda del filtro.
158 4.1 Il caso della aritmetica a virgola fissa

Il caso delle f.d.t. del secondo ordine


Particolarizziamo la (4.124) al caso di una f.d.t. del secondo ordine. Posto
" #
0 1
M= ,
1 0

la (4.124) si può scrivere [28] come

W0 = ρ2 MK0 M (4.130)

poiché W0 e K0 sono simmetriche e hanno uguali gli elementi sulla diagonale


principale. Tramite la (4.117), la (4.130) diviene

ρ2 MK0 M = ρ2 At MK0 MA + ct c (4.131)

da cui, tramite la (4.114), si ottiene la equazione:

1
(MAt M)K0 (MAM) + Mct cM = AK0 At + bbt . (4.132)
ρ2

Una condizione sufficiente affinchè sia soddisfatta la (4.132) e quindi la (4.130)


é che sia:

MAt M = A −→ a11 = a22 (4.133)


t
Mc = ρb −→ b1 c1 = b2 c2 (4.134)

Nel caso di una coppia poli complessi coniugati

p1,2 = r e±jθ0 = r cos θ0 ± r sin θ0 = α ± jβ

a partire da tali condizioni é possibile costruire la realizzazione a minimo ru-


more. Allo scopo si può partire dalla osservazione (già fatta più volte) che
le condizioni di minimo rumore non sono inflenzate da una trasformazione
diagonale (quindi da un cambio di scala). Si può quindi costruire una realiz-
zazione che soddisfi le (4.133) e (4.134) e, successivamente, mettere in scala
le variabili di stato. La (4.133) implica a 11 = a22 = α (a11 + a22 = p1 + p2 ),
ed é soddisfatta da una realizzazione in “forma accoppiata” con A data dalla
(2.39) (A = r R con R matrice che rappresenta una rotazione pari a θ 0 ).
La (4.134) implica arctan(b2 /b1 ) = 1/ arctan(c2 /c1 ) e può essere soddisfatta
trasformando la descrizione di stato con una matrice T di rotazione, che nel
caso attuale, N = 2, lascia inalterata la matrice A. A questo punto si cal-
colano K11 e K22 e si mettono in scala le variabili di stato.
Capitolo 4. Valutazione degli errori di calcolo. 159

Nel seguito riportiamo la soluzione in forma chiusa proposta da Barnes [3].


Sia
q0 + q1 z −1 + q2−2 q10 z −1 + q20 z −2
H(z) = = q 0 + . (4.135)
1 − a1 z −1 − a2 z −2 1 − a1 z −1 − a2 z −2
Quindi d = q0 ed é sufficiente costruire la realizzazione a minimo rumore di
G(z) = H(z) − q0 che sviluppiamo in frazioni parziali:

q10 z −1 + q20 z −2 s s∗
G(z) = −1 −2 = z − p + z − p∗ (4.136)
1 − a 1 z − a2 z 1 1

dove p1 = α + jβ con β > 0 ed il residuo s

s = sr + jsi . (4.137)

Definiamo i tre parametri reali P, Q, R


|s| s
P = R + jQ = . (4.138)
1 − r2 1 − p21
dove r = |p1 |. La realizzazione di G(z) scalata e a minimo rumore risulta:

" # " # " #


α kβ b1 t c1
A= b= c = (4.139)
−β/k α b2 c2

dove s
P +Q
k= (4.140)
P −Q
s s
|s| − si |s| + si
b1 = b2 = − sign(sr ) (4.141)
P −Q P +Q
sr sr
c1 = c2 = (4.142)
b1 b2
dove, nel caso sr = 0, le espressioni per c1 e c2 vanno intese come limite per
sr → 0.
0 = K 0 = 1, W 0 = W 0 = P 2 − Q2
La realizzazione soddisfa le condizioni K 11 22 11 22
ed il guadagno di rumore associato all’aggiornamento dello stato, risulta:

Gas = 2 [P 2 − Q2 ]. (4.143)

Per avere il guadagno totale, Ga , ad esso va aggiunto il contributo unitario


associato al calcolo dell’uscita.
In precedenza, si é accennato al fatto che, in generale, la realizzazione a
minimo rumore non é unica. Nel caso N = 2 le cose stanno in questi termini 8 :
8
La dimostrazione é dovuta a Renzo Grancara, A.A. 1991/92.
160 4.1 Il caso della aritmetica a virgola fissa

a) esistono infinite soluzioni se e solo se nella (4.124) K 0 = I; in tal caso le


matrici K0 = I e W0 = ρ2 I risultano invarianti rispetto ad ogni trasformazione
ortonormale (T −1 = T t ) ed é ancora a minimo rumore ogni realizzazione
ottenuta da una realizzazione a minimo rumore tramite una trasformazione
ortogonale. La condizione é soddisfatta se e solo se lo zero di G(z) soddisfa
la z1 = (1 + p1 p2 )/(p1 + p2 ) con p1 e p2 poli della f.d.t. (in particolare, la
condizione é soddisfatta dalla H(z) = q(1 − z −2 )/(1 − a1 z −1 − a2 z −2 ) e da una
H(z) passa–tutto);
b) per ogni altra f.d.t. la soluzione é unica, e la matrice A della realizzazione
a minimo rumore ricade in uno due casi: a 11 = a22 (é il caso considerato in
precedenza) oppure a12 = a21 .

Esempio 1. Consideriamo un filtro ellittico del secondo ordine con banda


passante fp /Fc = 1/100, ondulazione in banda DBR = 0.2 dB e attenuazione
A = 30 dB.
La corrispondente f.d.t. é data dalla

H(z) = 0.031935 1 − 1.72999z −1 + z −2


1 − 1.87901z −1 + 0.887834z −2
−1 −2
= 0.031935 + 10−2 0.47589z −1+ 0.35818z −2
1 − 1.87901z + 0.887834z
e possiede una coppia di modulo 0.942 e anomalia prossima a zero.
La realizzazione a minimo rumore di calcolo ha la realizzazione d = b 0 :
" # " # " #
0.939505 0.108948 −0.012906 t−0.184362
A= b= c =
−0.047398 0.939505 −0.401113 −0.005932
(4.144)
ed ha un guadagno di rumore associato all’aggiornamento dello stato, G as , pari
a 0.42 (la varianza corrispondente é inferiore a σ e2 !) e guadagno totale, Ga ,
pari a 1.42, invariante rispetto ad una trasformazione di frequenza. Per contro,
il guadagno di rumore della realizzazione ad uscite multiple dallo stato é pari
a 12.5 con una perdita di circa 1.5 bit. Se si quantizzano i coefficienti delle
due realizzazioni, si trova che per avere variazioni trascurabili della risposta
in frequenza sono sufficienti 12 bit per la realizzazione a minimo rumore e 16
bit per quella ad uscite multiple dallo stato.

Esempio 2. Riprendiamo la famiglia di filtri ellittici del sesto ordine introdotta


nell’esempio del paragrafo 4.1.5.
In una realizzazione parallelo a minimo rumore, il guadagno di rumore G as
associato all’aggiornamento dello stato delle tre celle del secondo ordine vale
1.77 e quello totale, Ga , vale 2.77, indipendentemente dalla banda passante.
In una realizzazione cascata a minimo rumore, il guadagno di rumore as-
sociato alle variabili di stato delle tre celle risulta 1.97, indipendentemente
Capitolo 4. Valutazione degli errori di calcolo. 161

dalla banda passante, mentre quello totale cresce (poco) con la banda pas-
sante e varia da 3 per fp /Fc = 10−2 a 4.7 per fp /Fc = 0.49, risultando sempre
maggiore di quello del parallelo (la perdita massima é inferiore a 1/2 bit).

40

35

30 Cascata
R
Parallelo
25
(dB)
20

15

10

0
0 0.1 0.2 0.3 0.4 0.5
fp / Fc

Figura 4.25 Per l’esempio: rapporto R tra i guadagni di rumore di realizzazioni


parallelo e cascata ad uscite multiple dallo stato ed a minimo rumore.

La Fig. 4.25 riporta il rapporto (in dB) tra i guadagni di rumore delle
realizzazioni parallelo ad uscite multiple dallo stato (si veda la Fig. 4.19) ed
a minimo rumore, e l’analogo rapporto per la cascata. Dalla figura é appar-
ente il guadagno associato alle realizzazioni a minimo rumore, guadagno che
raggiunge circa 4 ÷ 5 bit per valori molto piccoli e molto grandi di f p /Fc .
Anche le aspettative sulla sensibilità parametrica sono ben soddisfatte: per
avere variazioni trascurabili nella risposta in frequenza sono sufficienti 12 bit
per i coefficienti delle realizzazioni a minimo rumore, indipendentemente dalla
banda passante, mentre per le realizzazioni ad uscite multiple sono sufficienti
12 bit per fp /Fc ' 1/4 e almeno 16 bit per valori molto piccoli e molto grandi
di fp /Fc .
Se si confrontano le prestazioni delle realizzazioni a minimo rumore con
quelle delle realizzazioni “ad onda” (si veda l’esempio relativo a Fig. 4.23 cor-
rispondente a specifiche confrontabili con quelle dell’esempio attuale), si trova
che quest’ultime sono superiori se si considera sia la sensibilità parametrica che
il guadagno di rumore (ma non il grado di parallelismo). A questo proposito
va, però, osservato che, mentre le realizzazioni “ad onda” sono adatte a sinte-
tizzare solo f.d.t. cui corrisponde una risposta in frequenza di tipo selettivo,
162 4.1 Il caso della aritmetica a virgola fissa

le realizzazioni a minimo rumore di calcolo sono realizzazioni di tipo generale,


quindi adatte a qualsiasi f.d.t.

4.1.8 Cicli limite


La analisi della propagazione degli errori di calcolo finora effettuata, si basa sul
modello statistico assunto per gli errori di calcolo, in particolare sulla ipotesi
che gli errori siano incorrelati. Tale ipotesi, valida per una larga classe di
segnali, può cadere in difetto per segnali di ingresso di ampiezza molto piccola
rispetto al fondo scala o per segnali periodici, per i quali, a regime, gli errori
di calcolo risultano correlati.
Un caso estremo é quello di ingresso nullo (o costante) e stato diverso da
zero. In questo caso, mentre nel prototipo lineare (stabile) l’uscita tende a
zero (o ad un valore costante), nella realizzazione in ambiente a virgola fissa la
nonlinearità associata alla operazione di quantizzazione, può portare, in real-
izzazioni ricorsive, ad un comportamento oscillatorio che interessa i bit meno
significativi della rappresentazione (cicli limite di piccola ampiezza). Tale com-
portamento oscillatorio, in assenza di ingresso, é indesiderabile in tutte le ap-
plicazioni, ed i metodi per evitarlo consistono nell’impiegare abbastanza bit
per la aritmetica in modo che tali cicli non interessino il convertitore D/A (é
la soluzione più costosa) o nel sommare al segnale proveniente dal convertitore
A/D un rumore bianco di piccola ampiezza (“dither noise”) o nell’utilizzare
realizzazioni e leggi di quantizzazione che garantiscano la assenza del fenomeno
(é la soluzione più intelligente). A questo proposito, ci si può aspettare che,
se il prototipo lineare é stabile, la introduzione nei rami di reazione di non-
linearità che “non amplifichino”, come la quantizzazione a troncamento sim-
metrico, preservi la stabilità. Vedremo che questa aspettativa è, in molti casi,
ben posta. Accanto a questo tipo di oscillazioni autonome, ne esiste un al-
tro tipo, molto più pericoloso, associato alla nonlinearità dell’overflow. Le
oscillazioni corrispondenti sono dette oscillazioni da overflow o cicli limite di
grande ampiezza. La loro possibilità é ancora legata alla realizzazione ed alla
caratteristica del sommatore (complemento a due o saturazione).

Un semplice esempio di possibilità/impossibilità di cicli limite (di piccola


ampiezza) é offerto dalla equazione

y(k) = Q[ay(k − 1) + x(k)] (4.145)

dove Q[·] denota la operazione di quantizzazione e |a| < 1.


Se assumiamo per x e y la convenzione dei numeri interi (cioé un quanto
qa unitario), per x(k) = 0 per k ≥ 0, a = 0.9 e y(−1) = 10, nel caso di
arrotondamento si ha: y(k) = 10, 9, 8, 7, 6, 5, 5, · · · per k ≥ −1 e quindi l’uscita
non tende a zero ma si assesta su un valore pari a 5 quanti, che interessa i
Capitolo 4. Valutazione degli errori di calcolo. 163

tre bit meno significativi. Si verifica, inoltre, che per ogni valore di y(−1)
compreso tra −5 e 5 si ha y(k) = y(−1) per k ≥ 0 e che ogni tale valore
K (ad esempio, y(k) = 4) é ottenibile solo a partire da y(−1) = K. I cicli
corrispondenti vengono detti non raggiungibili ed i cicli 5, 5, · · · e −5, −5, · · ·
raggiungibili. (Si estenda il risultato al caso x(k) = cost, k ≥ 0.)
Se a = −0.9, y(k) cambia segno ad ogni k e si ottengono cicli K, −K con
−5 ≥ K ≤ 5.
L’esistenza di cicli limite é legata alla esistenza di soluzioni non nulle della
equazione:
|y| = QR [|ay|] |a| < 1 (4.146)
dove QR [·] indica la quantizzazione per arrotondamento. Dalla equazione
equivalente
1 1
|y| − ≤ |ay| < |y| + (4.147)
2 2
si trova che, per |a| ≥ 0.5, i cicli possibili appartengono all’intervallo [−M, M ]
con
1
 
M = int (4.148)
2(1 − |a|)
dove int[·] denota la parte intera dell’argomento, e quindi la loro ampiezza
massima cresce per |a| → 1. Se |a| < 0.5, non si hanno mai cicli limite (y(k)
va a zero a partire da qualsiasi condizione iniziale).
Procedendo allo stesso modo, si verifica facilmente che se si usa tronca-
mento simmetrico (caratterizzato dalla |Q T s (x)| ≤ |x|), non si hanno mai cicli
limite, mentre se si usa troncamento in complemento a due, si hanno sempre
cicli per a > 0 e non si hanno mai cicli per a < 0.

Il caso di una realizzazione in forma diretta di una f.d.t. del secondo ordine
é piú complicato. Per x(k) = 0 si hanno due casi:

y(k) = Q[a1 y(k − 1)] + Q[a2 y(k − 2)] (4.149)


y(k) = Q[a1 y(k − 1) + a2 y(k − 2)] (4.150)

legati alla quantizzazione prima o dopo dell’operazione di somma, e tre casi


legati al tipo di quantizzazione, per un totale di sei casi diversi [6, 35].
Per le (4.150) non é difficile trovare una condizione necessaria per la raggiun-
gibilità dello stato zero e, quindi, una condizione sufficiente per l’esistenza di
cicli limite. Infatti, se vogliamo che y(k) sia nulla da un certo istante in poi,
ad esempio, per k ≥ −1, la equazione y(−1) = 0 ammette sempre soluzioni
non nulle: y(−2) e y(−3), qualsiasi siano a 1 e a2 . Ci si riduce quindi, per
entrambe le (4.150) alla equazione:

0 = y(0) = Q[a2 y(−2)]) (4.151)


164 4.1 Il caso della aritmetica a virgola fissa

Nel caso di arrotondamento, la (4.151) ha soluzione y(−2) non nulla se |a 2 | <


0.5, che diviene condizione necessaria per la raggiungibilità dello stato zero.
Ne viene che, se |a2 | ≥ 0.5, si va sempre in ciclo limite. Nel caso di tronca-
mento simmetrico la (4.151) ha soluzione y(−2) non nulla se |a 2 | < 1 e quindi
esistono condizioni iniziali (non nulle) che portano allo stato zero qualsiasi sia
la f.d.t. (stabile) del prototipo lineare (ovviamente questo non garantisce che
si converga allo stato zero a partire da qualsiasi coppia di condizioni iniziali,
ma fa solo “ben sperare”).
In [35] sono riportate, per le (4.150) e per le tre leggi di quantizzazione, le
regioni del triangolo di stabilità nel piano (a 1 , a2 ) nelle quali non sono possibili
cicli limite, quelle in cui si hanno sempre cicli limite e quelle in cui il fatto che
si vada o meno in ciclo limite dipende dalle condizioni iniziali.
Nel caso i cicli limite siano possibili, ha interesse determinarne l’ampiezza
massima ed eventualmente il periodo. Con l’eccezione dei cicli costanti K, K,
K, · · · o del tipo K, −K, K, −K, · · ·, l’unico strumento sicuro é dato da una
simulazione. Allo scopo si può procedere nel seguente modo: si determina
tramite la (4.8) il valore massimo M y che |y(k)| può assumere per effetto degli
errori di quantizzazione, si effettua una simulazione partendo da ogni coppia
di interi (y(−1), y(−2)) con |y(−1)|, |y(−2)| ≤ M y (per leggi di quantizzazione
simmetriche é possibile ridurre ad un quarto il numero di condizioni iniziali da
considerare [35]) e si tiene traccia del ciclo di ampiezza massima. Ad esempio,
alla equazione

y(k) = QR [0.7716y(k − 1)] − QR [0.83y(k − 2)]

corrispondono i due cicli di valor massimo 2 e periodo 6 raggiungibili “dall’esterno”:


{2, 2, 0, −2, −2, 0} e {1, 2, 1, −1, −2, −1}, e il ciclo non raggiungibile di valor
massimo 1 e periodo 6: {1, 1, 0, −1, −1, 0}.
La determinazione dei cicli costanti o di segno alterno é, invece, una sem-
plice estensione del metodo utilizzato per l’equazione del primo ordine. Cer-
chiamo, ad esempio, dove é possibile avere un ciclo costante di ampiezza K
nell’ipotesi di quantizzazione dopo la somma:

K = Q[a1 K + a2 K]. (4.152)


Tale equazione é soddisfatta dove:
1 1
K− ≤ (a1 + a2 )K < K + arrotondamento (4.153)
2 2
K ≤ (a1 + a2 )K < K + 1 (K > 0)tronc. simmetrico, (4.154)

e, ponendo K = ±1, ±2, · · ·, si trova la regione del piano (a 1 , a2 ) in cui sono


possibili cicli costanti di ampiezza 1 quanto, 2 quanti,· · · Nel caso di arroton-
damento, la regione corrispondente é una striscia di larghezza 1/|K| centrata
Capitolo 4. Valutazione degli errori di calcolo. 165

sulla retta a1 + a2 = 1, che delimita il triangolo di stabilità. Nel caso di tron-


camento simmetrico, tale striscia é esterna al triangolo di stabilità e quindi
non sono possibili cicli limite costanti. Allo stesso modo si verifica che non
sono possibili neanche cicli K, −K, · · ·.
Consideriamo, ora la possibilità che si verifichino cicli (autonomi) da over-
flow e, per semplificare la analisi, trascuriamo la quantizzazione e assumiamo
unitario il fondo scala.
La controparte della (4.150) diventa:

y(k) = S[a1 y(k − 1) + a2 y(k − 2)] (4.155)

dove S[x] rappresenta la caratteristica ingresso–uscita del sommatore. Sup-


poniamo di usare il sommatore proprio della aritmetica complemento a due (si
veda la Appenndice A). Non si hanno problemi se |a 1 y(k − 1) + a2 y(k − 2)| < 1
per ogni |y(k − 1)|, |y(k − 2)| < 1, condizione soddisfatta se |a 1 | + |a2 | < 1,
quindi solo in una piccola porzione del triangolo di stabilità. In caso contrario,
verifichiamo la possibilità di un ciclo limite di tipo costante:

U = S[a1 U + a2 U ]. (4.156)

Dato che per 1 < x < 3 si ha S[x] = x−2 e per −3 < x < −1 si ha S[x] = x+2,
troviamo che la (4.156) é soddisfatta per
±2
U= . (4.157)
1 − (a1 + a2 )

Ad esempio, per a1 = −1 e a2 = −0.75 si ottiene U = ±8/11, quindi un ciclo


limite costante di valore pari a 8/11 del fondo scala, che si merita il nome di
ciclo limite di grande ampiezza!
Se si introduce una saturazione (S[x] = 1 per x ≥ 1 e S[x] = −1 per x ≤ −1),
si può verificare che un tale comportamento non é più possibile.

Vediamo ora una realizzazione di f.d.t. del secondo ordine che può essere
resa priva di cicli di piccola e grande ampiezza. Riconsideriamo la realizzazione
a variabili di stato “in forma accoppiata” (2.39). Se si tiene conto della pos-
sibilità di overflow, l’equazione di evoluzione libera dello stato diviene:

s(k + 1) = S[As(k)]. (4.158)

Se consideriamo la lunghezza (al quadrato) del vettore di stato: s t s = s21 + s22 ,


la proprietà di “non amplificazione“ di S[x]: |S[a i1 s1 + ai2 s2 ]| ≤ |ai1 s1 + ai2 s2 |
e la struttura della matrice A (At A = r 2 I), consentono di ricavare la:

st (k + 1)s(k + 1) ≤ st (k)At As(k) = r 2 st (k)s(k) < st (k)s(k) (4.159)


166 4.2 Il caso della aritmetica a virgola mobile.

essendo r < 1. Quindi, qualsiasi sia la caratteristica del sommatore, lo stato


del sistema si porta al valore (0, 0), indipendentemente dal fatto che ci siano
overflow. Si può, inoltre, dimostrare che, se si usa un sommatore a saturazione,
risulta stabile anche la risposta forzata [61]. Si osserva che la (4.159) si applica
anche al caso della quantizzazione, se si sostituisce S[·] con la caratteristica
di quantizzazione a troncamento simmetrico, Q T s [·], e si quantizza dopo la
somma.

Concludiamo il paragrafo con una condizione sufficiente per la assenza di


cicli limite da overflow [57, 70], che generalizza la (4.159). Analogamente a
quanto appena trovato per la realizzazione “in forma accoppiata”, la stessa
condizione assicura la assenza di cicli limite di piccola ampiezza, se si utilizza
la quantizzazione a troncamento simmetrico dopo la somma.
Data una realizzazione a variabili di stato con matrice di aggiornamento
dello stato A, non sono possibili cicli limite da overflow, se esiste una matrice
diagonale D, definita positiva, tale che la matrice D − A t DA sia semidefinita
positiva .
Tale condizione é soddisfatta dalle realizzazioni a minimo rumore di calcolo
e, su sue varianti, é basata la dimostrazione della assenza di cicli limite nelle
realizzazioni a traliccio e “ad onda” [6, 55].

4.2 Il caso della aritmetica a virgola mobile.


Da quanto esposto nei paragrafi precedenti è evidente che il campo dinam-
ico limitato della aritmetica a virgola fissa richiede una particolare cura nella
messa in scala delle variabili di una realizzazione. Tale necessità è essenzial-
mente eliminata dall’impiego della aritmetica a virgola mobile (Appendice A).
Tuttavia in questo caso (anche trascurando la possibilità di overflow) vengono
introdotti errori sia nella operazione di moltiplicazione che di somma, errori
la cui entità è strettamente legata a quella del segnale.
Assumiamo per i numeri rappresentabili una notazione del tipo f 2 e con f
mantissa di n + 1 bit (1/2 ≤ |f | < 1) ed e esponente di m + 1 bit, supponiamo
che il risultato di una operazione venga arrotondato al numero rappresentabile
più vicino e indichiamo con f l(·) il numero risultante. Allora il risultato di
una somma e di una moltiplicazione risultano

f l(x + y) = (x + y)(1 + ) f l(xy) = xy(1 + ) (4.160)

dove l’errore relativo  soddisfa alla

−2−n ≤  ≤ 2−n (4.161)

con n + 1 numero di bit associati alla mantissa.


Capitolo 4. Valutazione degli errori di calcolo. 167

La variabile  viene generalmente modellata come un processo bianco con


d.d.p. uniforme in [−2−n , 2−n ] (per un modello più accurato si veda [45]).
Quindi gli errori assoluti di calcolo si possono rappresentare come e = z ·, cioè
come il prodotto del risultato esatto z per una variabile aleatoria  associata
all’errore relativo e si dice che il “rumore” di calcolo è di tipo moltiplicativo.
Questo fatto rende, in generale, la analisi della propagazione degli errori di
calcolo molto piú complicata che nel caso di aritmetica a virgola fissa [63].
Infatti l’errore assoluto in una operazione è intrinsecamente legato al valore
esatto z e, se z è il risultato di altre operazioni, all’errore introdotto su z dalle
operazioni precedenti.
Nel seguito considereremo la propagazione degli errori nel calcolo di un
prodotto interno (quindi nella realizzazione in forma diretta di un F IR) e,
successivamente, illustreremo un metodo approssimato per la analisi di real-
izzazione ricorsive. Tale metodo consente di “linearizzare” il problema e di
collegare lo studio della propagazione degli errori ad una analisi di sensibilità
alle variazioni dei parametri moltiplicatori della realizzazione.

4.2.1 Realizzazioni non–ricorsive


Consideriamo a titolo di esempio il calcolo del prodotto interno

y = c t x = c 0 x0 + c 1 x1 + c 2 x2 + c 3 x3 (4.162)

con ct = [c0 , · · · , c3 ] e xt = [x0 , · · · , x3 ].


Come verificheremo tra poco, l’errore nel calcolo di y dipende dall’ordine in
cui sono effettuate le somme. Allo scopo consideriamo due schemi di calcolo:
nel primo y è calcolata accumulando i risultati delle moltiplicazioni (y = y +
ci xi con condizione iniziale y = c0 x0 ), mentre nel secondo (adatto al calcolo
parallelo) i prodotti vengono sommati a due a due (s 1 = c0 x0 + c1 x1 e s2 =
c2 x2 + c3 x3 ), le somme parziali ancora sommate a due a due (s 1 + s2 ) fino a
ottenere il risultato finale.
Al primo schema corrisponde il risultato:

ỹ = f l{f l[f l(f l(c0 x0 ) + f l(c1 x1 )) + f l(c2 x2 )] + f l(c3 x3 )}


= {[(c0 x0 (1 + 0 ) + c1 x1 (1 + 1 ))(1 + δ1 ) + c2 x2 (1 + 2 )](1 + δ2 )
+c3 x3 (1 + 3 )}(1 + δ3 )
' c0 x0 (1 + 0 + δ1 + δ2 + δ3 ) + c1 x1 (1 + 1 + δ1 + δ2 + δ3 )
+c2 x2 (1 + 2 + δ2 + δ3 ) + c3 x3 (1 + 3 + δ3 )
= (c + ∆c)t x (4.163)

dove si è supposto ci 6= 2−ni , gli i ed i δi indicano gli errori relativi nella i–


esima moltiplicazione e somma, rispettivamente, e si sono trascurati i termini
168 4.2 Il caso della aritmetica a virgola mobile.

di errore del secondo ordine.


Una importante conclusione che si trae dalla (4.163) è che il risultato ỹ coincide
con il risultato esatto che si sarebbe ottenuto moltiplicando x per il vettore
perturbato c + ∆c, dove, ad esempio, ∆c 0 = c0 (0 + δ1 + δ2 + δ3 ) e ∆c3 =
c3 (3 + δ3 ).
Per l’errore ef y = ỹ − y si ha

ef y = ỹ − y
= c0 x0 (0 + δ1 + δ2 + δ3 ) + c1 x1 (1 + δ1 + δ2 + δ3 ) (4.164)
+c2 x2 (2 + δ2 + δ3 ) + c3 x3 (3 + δ3 )

e quindi ef y dipende dall’ordine col quale sono accumulati i prodotti: in par-


ticolare, per minimizzare max |ef y | sarebbe desiderabile sommare i prodotti
ci xi ordinati in valore assoluto non decrescente. Nella realizzazione in forma
diretta di un F IR: y(k) = N i=0 h(i)x(k − i), tale regola si traduce nella
P

“ricetta” che è conveniente (in media) effettuare per prime le moltiplicazioni


per i coefficienti h(i) di modulo minore e per ultime quelle per i coefficienti di
modulo maggiore.
Per dare una misura statistica dell’errore e f y , supponiamo gli xi processi
stazionari e supponiamo che, come gli errori assoluti nel caso di aritmetica a
virgola fissa, gli errori relativi  i e δi siano processi stazionari bianchi (media
nulla e varianza σe2 = 2−2n /3), incorrelati tra loro e con gli x i . Nel seguito ve-
dremo che per rendere trattabili i risultati della analisi ci servirà una ulteriore
ipotesi.
Si verifica subito che anche ef y ha media nulla. Per esprimere la varianza di
ef y è conveniente scrivere ef y nella forma

ef y = ∆at x (4.165)

con
∆a = Da D = diag[di ] (4.166)
dove di indica la somma degli errori associati al prodotto i–esimo c i xi . Nell’esempio
(4.163) si ha, ad esempio, d0 = 0 + δ1 + δ2 + δ3 e d3 = 3 + δ3 . Si osserva
che le variabili di hanno media nulla e varianza E[d2i ] = mii σe2 , dove mii è il
numero di sorgenti di errore i e δi che definiscono di e σe2 la loro varianza.
Esse non sono mutuamente incorrelate e si ha E[d i dj ] = mij σe2 con mij intero
positivo pari al numero di sorgenti di errore  i e δi che intervengono sia in di
che in dj . Ad esempio, nell’esempio (4.163) si ha E[d 20 ] = 4σe2 , E[d23 ] = 2σe2 e
E[d0 d3 ] = σe2 .
Dalle (4.165) e (4.166) si ha
2
σey = E[e2f y ] = at E[Dxxt D]a (4.167)
Capitolo 4. Valutazione degli errori di calcolo. 169

e l’elemento generico (i, j) della matrice Dxx t D risulta di xi dj xj . Se supponi-


amo incorrelate le due variabili prodotto: d i dj e xi xj , si ha E[di dj xi xj ] =
E[di dj ]E[xi xj ] con E[di dj ] = mij σe2 . La (4.167) si può quindi scrivere nella
forma:
2
σey = σe2 at (R • M)a (4.168)

dove R = [rij ] = [E(xi xj )], M = [mij ] e il simbolo • indica il prodotto


elemento per elemento delle matrici R e M (l’elemento di posto (i, j) della
matrice prodotto è dato da rij mij ).
Si osserva che la matrice M dipende dallo schema adottato per calcolare
il prodotto interno. Nell’esempio (4.163) risulta
 
4 3 2 1
 3 4 2 1 
M= (4.169)
 
2 2 3 1

 
1 1 1 2

Applicando lo schema (4.163) alla realizzazione in forma diretta a postmolti-


plicazione di un F IR di ordine N e risposta impulsiva h(k), la (4.168) diviene

N
2
σe2 t
σe2
X
σey = h (Rx • M)h = rx (0) h(i)h(j)ρx (i − j) (4.170)
i,j=0

con Rx = [E(x(k − i)x(k − j))] = [rx (i − j)], i, j = 0, · · · , N , matrice di


correlazione dell’ingresso x(k), ρ x (i) = rx (i)/rx (0) e ht = [h(0), · · · , h(N )].
Dalla (4.171) risulta che, diversamente dal caso di aritmetica a virgola
fissa, nel caso attuale la varianza dell’errore assoluto di calcolo dipende dal
processo di ingresso attraverso rx (i) con i = 0, · · · , N , in particolare risulta
proporzionale alla potenza rx (0) a parità di valori della correlazione normal-
izzata ρx (i), i = 1, · · · , N .
Si osserva che questo fatto, che di per sè complica il calcolo della propagazione
degli errori, è conseguenza diretta della desiderabile proprietà della aritmetica
a virgola mobile di garantire che gli errori relativi siano limitati, anzi uniforme-
mente distribuiti in [−2−n , 2−n ] nelle ipotesi attuali.
Nel caso l’ingresso sia un processo bianco a media nulla (o approssimati-
vamente tale: |rx (i)|  rx (0) = σx2 per i 6= 0) si ha Rx = diag[σx2 , · · · , σx2 ] e la
(4.170) si semplifica nella

2 N N −1 2
σey = (N + 1)σe2 σx2 [h2 (0) + h2 (1) + 2
N +1 h (2) + N h (3)+ (4.171)
· · · + N 2+1 h2 (N )],

cui corrisponde il rapporto Na /S tra la potenza del “rumore” di calcolo e


170 4.2 Il caso della aritmetica a virgola mobile.

quella del segnale σy2


N
X k−1 2
2
h2 (0) + (1 − )h (k)
σey k=1
N +1
= (N + 1)σe2 < (N + 1)σe2 (4.172)
σy2 N
2
X
h (k)
k=0

Dalle (4.171) e (4.172) si può concludere, in accordo con quanto detto in


precedenza, che nello schema di calcolo del prodotto interno esemplificato
dalla (4.163) è conveniente ordinare le moltiplicazioni in modo da effettuare le
moltiplicazioni secondo coefficienti non decrescenti in modulo.
Si osserva, inoltre, che, mentre i rapporti S/N a calcolati in precedenza nel
caso di virgola fissa (si veda la (4.21)) dipendevano strettamente dal livello del
segnale di uscita e quindi di ingresso, nel caso di aritmetica a virgola mobile il
rapporto (4.172) risulta indipendente dal livello del segnale di ingresso almeno
finchè si può assumere nulla la probabilità di overflow. Si ripeta il calcolo nel
caso di processo x(k) = XM sen(kθ0 + φ) con φ uniformemente distribuita in
[0, 2π).

Consideriamo ora lo schema alternativo di calcolo di (4.162) (talora detto


“piramidale” o “parallelo”)
ỹ 0 = f l{f l[f l(c0 x0 ) + f l(c1 x1 )] + f l[f l(c2 x2 ) + f l(c3 x3 )]}
= {[c0 x0 (1 + 0 ) + c1 x1 (1 + 1 )](1 + δ1 ) + [c2 x2 (1 + 2 )
+c3 x3 (1 + 3 )](1 + δ2 )}(1 + δ3 )
' c0 x0 (1 + 0 + δ1 + δ3 ) + c1 x1 (1 + 1 + δ1 + δ3 )
+c3 x3 (1 + 2 + δ2 + δ3 ) + c4 x4 (1 + 3 + δ2 + δ3 ). (4.173)
Ad esso corrisponde l’errore assoluto
e0f y = ỹ 0 − y
= c0 x0 (0 + δ1 + δ3 ) + c1 x1 (1 + δ1 + δ3 ) + c3 x3 (2 + δ2 + δ3 )
+c4 x4 (3 + δ2 + δ3 )
(4.174)
0
il cui valor assoluto massimo, max |e f y |, è indipendente dall’ordine in cui sono
effettuate le somme ed è inferiore al valore associato alla (4.164).
Ragionando come per la (4.164) si trova per la varianza di e 0f y una espres-
sione analoga alla (4.168), ma con la matrice M data dalla
 
3 2 1 1
 2 3 1 1 
M= (4.175)
 
1 1 3 2

 
1 1 2 3
Capitolo 4. Valutazione degli errori di calcolo. 171

Applicando lo schema di calcolo ad un F IR di ordine N , si trova che, nella


ipotesi di ingresso bianco, la varianza del rumore di calcolo all’uscita ed il
rapporto Na /S risultano, rispettivamente,

σe20 y ' σe2 σx2 (log 2 (N + 1) + 1) (4.176)


σe20 y
' σe2 (log2 (N + 1) + 1) (4.177)
σy2

quantità molto più piccole delle (4.171) e (4.172), rispettivamente, almeno per
elevati valori di N .

4.2.2 Realizzazioni ricorsive


Nel caso di realizzazioni ricorsive, gli errori commessi nel calcolo delle variabili
di stato si propagano ai valori successivi e, in generale, il calcolo degli effetti di
tale propagazione è difficile e può essere effettuato solo in modo approssimato
[63].
Allo scopo riconsideriamo la Fig. 2.1 che schematizza una realizzazione in
cui l’ingresso x(k) è applicato al nodo 1, la uscita y(k) è associata al nodo
2 e nella quale è messo in evidenza un generico coefficiente moltiplicatore c,
connesso tra i nodi 3 e 4 (c = c34 ).
In presenza di errori di calcolo, vale la relazione

x̃4 (k) = f l[cỹ3 (k)] = cỹ3 (k)(1 + (k)) = cỹ3 (k) + c(k)ỹ3 (k). (4.178)

Indichiamo con xi (k) e yi (k) e con x̃i (k) e ỹi (k), rispettivamente, i valori
assunti dalle variabili in assenza e in presenza di errori di calcolo nella molti-
plicazione e indichiamo con ∆xi (k) e ∆yi (k) le corrispondenti variazioni. Si
ha
∆x4 (k) = c∆y3 (k) + c(k)ỹ3 (k) (4.179)
da cui risulta che la variazione ∆x4 (k) può essere attribuita ad una variazione
∆c(k) = c(k) del coefficiente c. Se c(k) è sufficientemente piccolo, si può
confondere ∆x4 (k) col differenziale di x4 (k) = cy3 (k) e riscrivere la (4.179)
come
∆x4 (k) ' c∆y3 (k) + y3 (k)∆c(k) (4.180)
Secondo la (4.179) gli effetti degli errori di calcolo sulla uscita y(k) = y 2 (k)
sono calcolabili come il segnale di uscita ∆y(k) = ∆y 2 (k) corrispondente al
segnale y3 (k)∆c(k) iniettato nel nodo 4. Si osserva che il segnale y 3 (k) che
moltiplica ∆c(k) è il segnale che si avrebbe in assenza di errori, e quindi la
approssimazione offerta dalla (4.180) corrisponde a supporre che gli errori di
calcolo siano sufficientemente piccoli da non alterare sensibilmente i risultati
172 4.2 Il caso della aritmetica a virgola mobile.

intermedi: y3 (k) ' ỹ3 (k). (Alla fine dell’esempio 1 vedremo una situazione in
cui questa ipotesi non è valida.)
Se si indica con hij (k) la risposta impulsiva tra il nodo i e il nodo j, si
trova
∆y(k) ' h42 ∗ ∆w(k) (4.181)
con

∆w(k) = y3 (k) · ∆c(k) = c · y3 (k) · (k)


y3 (k) = h13 ∗ x(k). (4.182)

Quindi la variazione ∆y(k) del segnale di uscita dovuta alla variazione ∆c(k) =
c(k) dipende da un lato dall’ingresso x(k) e dall’altro dalle due risposte im-
pulsive h13 (k) e h42 (k) che determinano la sensibilità della risposta impulsiva
h(k) = h12 (k) rispetto al moltiplicatore c = c 34 .
Posto ef y (k) = ∆y(k), si verifica facilmente che, nelle solite ipotesi, il valore
medio di ef y è nullo, mentre per il calcolo della varianza è utile osservare che,
se y3 (k)y3 (k + i) è incorrelato con (k)(k + i), ∆w(k) risulta un processo
bianco perchè tale è per ipotesi il processo di errore (k). Infatti

r∆w (i) = c2 E[y3 (k)y3 (k + i)(k)(k + i)] = c2 ry3 (i) r (i) = 0 k=


6 0.
(4.183)
In definitiva si ha
∞ 2π dθ
Z
2 2
h242 (k) = σ∆w
2
|H42 (ejθ )|2
X
σey = σ∆w (4.184)
k=0 0 2π
Z 2π dθ
2
σ∆w = c2 E[y32 ]σe2 = σe2 c2 |H13 (ejθ )|2 Rx (ejθ ) (4.185)
0 2π
e quindi, come già osservato a proposito della (4.170), in virgola mobile la
varianza dell’errore di calcolo risulta proporzionale alla potenza dell’ingresso
rx (0) e al valor medio della densità spettrale normalizzata R x (ejθ )/rx (0) pe-
sata secondo |H13 (ejθ )|2 .
Se si calcola la varianza di ∆y3 (k) = h43 ∗ ∆w(k), è possibile valutare
la affidabilità della approssimazione fatta nella (4.180), affidabilità che risulta
tanto maggiore quanto più è verificata la σ ∆y3  σy3 . Si osservi che in base alla
(2.19) è proprio la H43 (ejθ ) a determinare, assieme alle H13 (ejθ ) e H42 (ejθ ),
le sensibilità ∂ n H/∂cn di ordine superiore al primo.
Le relazioni si semplificano se x(k) è un processo bianco (o con densità
spettrale avete piccola dinamica). In tal caso si ha
∞ ∞
2
σe2 σx2 h213 (k) h242 (k) = σe2 σx2 `22 (h13 ) `22 (h42 )
X X
σey = · (4.186)
k=0 k=0
Capitolo 4. Valutazione degli errori di calcolo. 173

e si può concludere che, nei limiti di validità delle ipotesi fatte, una realiz-
zazione che presenti piccola sensibilità alle variazioni dei coefficienti moltipli-
catori risulta anche robusta nei confronti degli errori di calcolo.
Il rapporto Na /S risulta
2
σey 2 2
2 `2 (h13 ) `2 (h42 )
= σ e (4.187)
σy2 `22 (h12 )
ed è indipendente da σx2 .
Quanto detto per gli errori di calcolo in una moltiplicazione, può essere
facilmente esteso agli errori in una somma. Allo scopo è sufficiente associare
alla uscita dal nodo di somma un moltiplicatore fittizio di valore unitario, sup-
porre la somma esatta e attribuire l’errore alla moltiplicazione.

La (4.180) può essere perfezionata per rendere conto di una somma di


prodotti associata ad un generico nodo della realizzazione. Sia
X
wi (k) = cji xj (k) (4.188)
j∈Ii

la equazione associata al nodo i–esimo. In presenza di errori di calcolo si


possono applicare i risultati ottenuti per il calcolo di un prodotto interno e
attribuire al coefficiente cji la variazione ∆cji (k) = cji dji (k) con dji (k) somma
delle sorgenti di errore che risultano associate al prodotto c ji xj (k).
La variazione corrispondente dell’uscita risulta
∆y (i) (k) ' hi2 ∗ ∆wi (k) (4.189)
con
X X
∆wi (k) = yj (k) · ∆cji (k) = cji yj (k)dji (k) (4.190)
j∈Ii j∈Ii
yj (k) = h1j ∗ x(k) (4.191)
e si dimostra facilmente che anche in questo caso ∆w i (k) è un processo bianco
la cui varianza ha una espressione analoga alla (4.170) e data da
2
σ∆w i
= σe2 cti (Ri • Mi )ci . (4.192)
con ci vettore dei coefficienti cji , Ri = [E(y1p (k)y1q (k))] e Mi = [mpq ] con mpq
numero di sorgenti di errore comuni ai prodotti c pi y1p (k) e cqi y1q (k), p, q ∈ Ii .
Nel caso di ingresso bianco di varianza σ x2 la (4.192) si semplifica nella

2 2
h2i2 (k)
X
σey = σ∆w i
(4.193)
k=0

!
2
σe2 σx2
X X
σ∆w i
= mpq cpi cqi h1p (k)h1q (k) (4.194)
p,q∈Ii k=0
174 4.2 Il caso della aritmetica a virgola mobile.

È interessante confrontare le (4.193) e (4.194) con la varianza del rumore di


calcolo (associata alla relazione (4.59) con L = 1) che si avrebbe in virgola fissa
nel caso la variabile wi (k) venisse normalizzata utilizzando la norma ` 2 . Indi-
cate come nel par. 4.1.3 con fi (k) e gi (k), rispettivamente, le risposte impulsive
P
tra l’ingresso ed il nodo i e tra il nodo i e l’uscita, risulta f i (k) = j cji h1j (k) e
gi (k) = hi2 (k) e si riconosce facilmente che, a pari σ e2 , la principale differenza
tra le due espressioni è data dal fatto che la varianza data dalla (4.193) è
proporzionale a σx2 . (Questa è anche l’unica differenza se m pq = cost o se le
risposte impulsive h1j (k) sono ortogonali. Si veda l’esempio 1.)
In presenza di più sorgenti di errore del tipo della (4.189) si ha
∆y (i) (k)
X
∆y(k) ' (4.195)
i
e la varianza risulta data dalla somma delle varianze associate ai singoli ad-
dendi ∆y (i) (k), se, come avviene quasi sempre, non ci sono moltiplicatori o
somme parziali comuni a due o più prodotti interni.
Le relazioni ricavate si applicano a qualsiasi realizzazione e, come già osser-
vato, hanno il merito di instaurare un legame tra la sensibilità alle variazioni
dei parametri e la robustezza numerica di una realizzazione. Spesso, almeno
per realizzazioni la cui descrizione sia sufficientemente semplice, anzichè usare
le (4.193), (4.194) e (4.195) è più semplice applicare direttamente il proced-
imento di “linearizzazione” alle equazioni che descrivono la realizzazione ed
ottenere la equazione ricorsiva cui obbedisce l’errore ∆y(k). Il metodo è es-
emplificato negli esempi seguenti.

Esempio 1. Si consideri la propagazione degli errori di calcolo nella equazione:


y(k) = ay(k − 1) + bx(k).
La equazione effettivamente utilizzata è
ỹ(k) = f l[f l(aỹ(k − 1)) + f l(bx(k))] (4.196)
che si può riscrivere come
ỹ(k) = [aỹ(k − 1)(1 + a (k)) + bx(k)(1 + b (k))](1 + δ)
' a(1 + a (k) + δ(k))ỹ(k − 1) + bx(k)(1 + b (k) + δ(k)) (4.197)
Posto ∆y(k) = ỹ(k) − y(k), da (k) = a (k) + δ(k) e db (k) = b (k) + δ(k) si ha
∆y(k) = a∆y(k − 1) + ada (k)ỹ(k − 1) + bdb (k)x(k). (4.198)
Se si suppongono gli errori sufficientemente piccoli da poter confondere ỹ(k−1)
con y(k − 1), la (4.198) diviene
∆y(k) ' a∆y(k − 1) + ada (k)y(k − 1) + bdb (k)x(k)
= a∆y(k − 1) + ∆w(k) (4.199)
Capitolo 4. Valutazione degli errori di calcolo. 175

Nella (4.199) ∆w(k) agisce come un ingresso equivalente ed è costituito dalla


somma di un addendo dato dall’ingresso “vero” x(k) pesato per ∆b(k) = bd b (k)
e di un addendo dato dal valore y(k − 1) che si avrebbe in assenza di errori,
pesato per ∆a(k) = ada (k).
Nelle solite ipotesi sugli errori  a (k), b (k) e δ(k), ∆w(k) risulta bianco a media
nulla e varianza

2
σ∆w = a2 E[d2a ]Py + b2 E[d2b ]Px + 2abE[y(k − 1)x(k)]E[da (k)db (k)]
= σe2 (2a2 Py + 2b2 Px + 2abE[y(k − 1)x(k)]) (4.200)

con σe2 varianza degli . e δ, Px potenza dell’ingresso e Py potenza della uscita


in assenza di errori di calcolo.
Se x(k) è bianco, risulta E[y(k − 1)x(k)] = 0 e σ y2 = σx2 b2 /(1 − a2 ) e si ha

2 1 + a2
σ∆w = 2σe2 σx2 = 2σe2 σy2 (1 + a2 )
1 − a2
2
2σ∆w 2
2 2 2 1+a
σey = = 2σ e σ y (4.201)
1 − a2 1 − a2

e quindi il rapporto
2
σef 2
21 + a
= 2σ e (4.202)
σy2 1 − a2

risulta indipendente dal livello del segnale di uscita (e di ingresso). Si osservi


che, anche nel caso di virgola mobile, la propagazione degli errori è tanto più
critica quanto più il polo è prossimo al cerchio di raggio unitario. Per |a| ' 1
si ha
2
σef 2σe2
' (4.203)
σy2 1 − |a|

e quindi, ad esempio, per 1 − |a| = 2−5 tale rapporto risulta circa 26 σe2 =
2−2(n−3) /3 e si ha una perdita di precisione nella mantissa pari a 3 bit (circa
una cifra decimale).
La (4.202) consente di valutare la validità della approssimazione associ-
ata alla (4.199): la bontà della approssimazione ỹ(k) ' y(k) risulta infatti
direttamente legata, in questo esempio, alla σ ef  σy e quindi al rapporto
Na /S.
Concludiamo l’esempio, mostrando che il modello perturbativo adottato
può condurre, in certe condizioni, a conclusioni errate. Se infatti nella (4.197)
supponiamo x(k) = 0 per k ≥ 0 e y(−1) 6= 0, si ha con approssimazione che
176 4.2 Il caso della aritmetica a virgola mobile.

dipende solo dall’aver trascurato i prodotti di errori:

ỹ(0) = f l[ay(−1)] = ay(−1)(1 + a (0))


ỹ(1) = f l[aỹ(0)] ' ay(0)(1 + a (0) + a (1))
·
· (4.204)
k
X
ỹ(k) = f l[aỹ(k − 1)] ' ay(k − 1)(1 + a (i))
i=0

Quindi si ha
k
X
∆y(k) ' ay(k − 1) a (i)
i=0

e l’errore diverge, contrariamente a quanto si otterrebbe con una applicazione


“cieca” del modello perturbativo secondo il quale si avrebbe ∆y(k) ' ay(k −
1)a (k). In questo caso, infatti, l’ipotesi che sta alla base della (4.199) non è
verificata per k grande.

Esempio 2 Consideriamo la realizzazione in forma diretta associata alla equazione

N
X M
X
y(k) = ai y(k − i) + bi x(k − i).
i=1 i=0

Procedendo come nell’esercizio precedente o come per la (4.189) si trova

N
X
∆y(k) = ai ∆y(k − i) + ∆w(k)
i=1
XN M
X
∆w(k) ' y(k − i)∆ai (k) + x(k − i)∆bi (k) (4.205)
i=1 i=0

dove ∆ai (k) = ai dai (k) e ∆bi (k) = bi dbi (k) e i dai (k) e dbi (k) tengono conto
dello schema adottato per il calcolo del prodotto interno che definisce y(k).
Il processo ∆w(k) risulta bianco con varianza data dalla (4.192) (si calcoli
la matrice Ri nella ipotesi che anche x(k) sia un processo bianco). Quindi
il processo errore ∆y(k) risulta un processo autoregressivo (a soli poli) di
varianza
Z 2π 1 dθ
2 2
σey = σw (4.206)
0 |A(ejθ )|2 2π
PN −i .
dove A(z) = 1 − i=1 ai z
Capitolo 4. Valutazione degli errori di calcolo. 177

Si ripeta il calcolo per la realizzazione (canonica nei ritardi) ad uscite


multiple dallo stato, descritta dalle equazioni (M ≤ N )
N

 X
 s(k) = ai s(k − i) + x(k)



i=1 (4.207)
 XM
 y(k) = bi s(k − i).



i=0

Esempio 3. Consideriamo una realizzazione a variabili di stato


(
s(k + 1) = As(k) + bx(k)
(4.208)
y(k) = cs(k) + dx(k)

con A, b, c matrici N × N , N × 1 e 1 × N e d scalare. Nella solita ipotesi di


piccoli errori di calcolo associati alla valutazione degli N + 1 prodotti interni
corrispondenti alla (4.208) si ottiene per ∆s = s̃ − s e ∆y = ỹ − y la coppia di
equazioni
(
∆s(k + 1) ' A∆s(k) + ∆A(k)s(k) + ∆b(k)x(k)
(4.209)
∆y(k) ' c∆s(k) + ∆c(k)s(k) + ∆d(k)x(k)

con ∆A(k) = A • DA (k) e ∆c(k) = c • Dc (k) e ∆d(k) = d dd (k) matrici che


rendono conto dello schema adottato per il calcolo dei prodotti interni. Sec-
ondo le (4.209) il sistema che descrive le perturbazioni dello stato e dell’uscita
diviene un sistema a N + 1 ingressi, costituiti dal vettore s(k) e da x(k), e ad
una uscita. Si calcoli la varianza di ∆y(k) nella ipotesi di ingresso bianco.
178 4.2 Il caso della aritmetica a virgola mobile.
Appendice A
Rappresentazione in virgola fissa e mobile

A.1 Rappresentazione in virgola fissa.


Nella rappresentazione in virgola fissa ogni numero viene rappresentato con
una stringa di n + 1 cifre bn bn−1 · · · b0 con bn e b0 cifra più significativa e meno
significativa, rispettivamente, e dove il peso della cifra b i dipende dalla base
usata.
Limitando l’analisi al caso binario (base B = 2 e b i = 1 o 0) le notazioni
più comuni sono: modulo e segno e complemento a due. La scelta del tipo
di notazione dipende dai vantaggi legati alla realizzazione in hardware, ed ha
portato all’impiego quasi generale della notazione in complemento a due per
il trattamento dei numeri interi nelle unità aritmetiche.

A.1.1 Notazione modulo e segno (MS).


La prima cifra binaria bn indica il segno (in genere 0 per numeri positivi e 1
per i negativi). Considerando i numeri come interi si ha:

x = (±)bn−1 2n−1 + bn−2 2n−2 + · · · + b0 20 . (A.1)

Ad esempio, le stringhe di 4 bit (0101) M S e (1101)M S rappresentano i numeri


interi: ±(1 · 22 + 0 · 21 + 1 · 20 ) = ±5. Considerando i numeri come frazionari
si ha:

x = (±)bn−1 2−1 + bn−2 2−2 + · · · + b0 2−n ,

valore che si ottiene dal precedente mediante divisione per 2 n . Il campo


dei numeri interi rappresentabili è compreso tra ±(2 n − 1) o ±(1 − 2−n ), a
seconda della convenzione. Esistono due diverse rappresentazioni dello zero:
0000 e 1000.
L’operazione di moltiplicazione risulta particolarmente semplice (dato che
il segno del risultato è l’or-esclusivo dei bit di segno), mentre tutt’altro che sem-
plici sono le operazioni di somma e differenza, che vengono sempre effettuate
in complemento a due (previa conversione da modulo e segno a complemento
a due) [23, 24].
180 A.1 Rappresentazione in virgola fissa.

A.1.2 Notazione in complemento a due (C2).


Si associ ad ogni intero, x, il resto non negativo, r, della divisione per 2 n+1 :

x = q2n+1 + r, q∈Z r = 0, 1, · · · , 2n − 1, (A.2)


cioè si instauri la corrispondenza x → r ≡ x (mod 2 n+1 ). In tal modo gli
interi vengono divisi in 2n+1 classi di equivalenza: ad esempio, per n + 1 = 2
si ottengono le quattro classi {0 : x = 4q}, {1 : x = 4q + 1}, {2 : x = 4q + 2} e
{3 : x = 4q + 3}.
La rappresentazione in binario su n + 1 bit dell’intero non negativo r ≡
x (mod 2n+1 ) costituisce la rappresentazione di x in complemento alla base
due.
È evidente che, mentre ogni intero x ha una unica rappresentazione r, ogni
intero r ∈ [0, 2n−1 ] è la rappresentazione in complemento a due degli infiniti
interi che divisi per 2n+1 danno resto r. La corrispondenza, tuttavia, diviene
univoca se l’insieme dei numeri da rappresentare è costituito da 2 n+1 interi,
uno per ogni classe di equivalenza. In pratica si conviene di rappresentare
univocamente gli interi compresi tra −2 n e 2n − 1, (o le frazioni tra −1 e
1 − 2−n ) per i quali si ha:
(
q = 0 0 ≤ x ≤ 2n − 1
x = q2n+1 + r (A.3)
q = −1 −2n ≤ x < 0.

Per 0 ≤ x ≤ 2n − 1 la rappresentazione in complemento a due, r = n−1 i


i=0 bi 2 ,
P

coincide con quella modulo e segno (b n = 0), mentre per −2n ≤ x < 0 essa
coincide con quella del numero (positivo) r = x + 2 n+1 (bn = 1). In questo
caso si ha:

x = −2n+1 + r = −2n+1 + bn 2n + · · · + b0 20
= −bn 2n + bn−1 2n−1 + · · · + b0 20 .

In definitiva, si può sempre passare dalla rappresentazione (b n bn−1 · · · b0 )c2 di


x a x tramite la:

x = −bn 2n + bn−1 2n−1 + · · · + b0 20 . (A.4)

Il bit bn viene spesso denominato ”bit di segno”; si osserva però che ad esso è
associato il peso negativo, −2n , cioè esso non ha solo la funzione di individuare
il segno come nella notazione M S. Ad esempio, le stringhe di 4 bit: (0101) c2
e (1101)c2 corrispondono, rispettivamente, ai numeri interi:

x = −0 · 23 + 1 · 22 + 0 · 21 + 1 · 20 = +5
(A.5)
x = −1 · 23 + 1 · 22 + 0 · 21 + 1 · 20 = −3
Appendice A. Rappresentazione in virgola fissa e mobile 181

oppure ai numeri frazionari +5/8 e −3/8.


L’opposto, −x, di x è il numero che soddisfa la: x+(−x) ≡ 0 (mod 2 n+1 ).
Si verifica facilmente che −x ≡ 2n+1 − x (mod 2n+1 ). Infatti

x + (2n+1 − x) = 2n+1 → 2n+1 ≡ 0 (mod 2n+1 ).


Pn
Poichè −x = bn 2n − bn−1 2n−1 − · · · − b0 20 e 2n+1 = i=0 2i + 1, l’opposto di
x si può scrivere come:
n n
−x = −(1 − bn )2n + (1 − bi )2n−i + 1 = −b̃n 2n + b̃i 2n−i ,
X X

i=1 i=1

da cui risulta che è semplice ottenere la rappresentazione in C2 dell’opposto di


x (quindi ricondurre ad una somma la operazione di sottrazione): si aggiunge
la cifra 1 al complemento ad 1 del codice di x, oppure si scandisce il codice
di x dal bit meno significativo al più significativo e si complementano ad uno
tutti i bit alla sinistra del primo bit uguale ad uno incontrato.
Ad esempio: n+1 = 4, x = 6 → r(6) = (0110) c2 → r(−6) = (1001+0001)c2 =
(1010)c2 .
I principali vantaggi della notazione C2 sono:
1– rappresentazione unica dello zero;
2– semplicità della conversione dalla notazione C2 ad n bit a quella ad m > n
bit, che si effettua con una propagazione del bit di segno. ( È sufficiente osser-
vare la identità −2n = (−2 + 1)2n = −2n+1 + 2n per passare dalla rappresen-
tazione su n + 1 bit a quella su n + 2 e quindi al caso generale con m > n.)
Ad esempio, (1010)c2 diviene a 6 bit: (111010)c2 , e (0110)c2 diviene a 6 bit:
(000110)c2 .
La conversione da n a m bit con m < n è possibile, senza errore, se il numero
è compreso tra −2m e 2m − 1 e si effettua conservando solo gli m bit meno
significativi degli n originali;
3– semplicità della operazione di somma (differenza) di due numeri, che viene
effettuata modulo 2n+1 , cioè sommando bit per bit le loro rappresentazioni
in C2 e trascurando il riporto eventuale alla sinistra del bit più significativo.
Quindi il risultato S 0 della somma in complemento a due coincide con la somma
ordinaria S, se −2n ≤ S ≤ 2n − 1; in caso contrario si ha overflow e S ≡ S 0
(mod 2n+1 ). Questa situazione si può verificare nella somma di due numeri
dello stesso segno, ed è segnalata dal fatto che il risultato ha ”segno” diverso
da quello degli addendi;
4–modularità della operazione di somma. Sia S = i xi la somma (ordinaria)
P

degli xi , sia ri la rappresentazione in C2 di xi e sia S 0 ≡ i ri (mod 2n+1 ); si


P
182 A.1 Rappresentazione in virgola fissa.

ha
S ≡ S 0 (mod 2n+1 ).
La caratteristica ingresso–uscita y = S 0 (x) di un sommatore in complemento a
due è quindi periodica con periodo 2 n+1 : in Fig. A.1a) è riportato l’andamento
nel caso n + 1 = 3, e in Fig. A.1b) ne è data una rappresentazione equivalente
in cui i valori S 0 (x) sono associati a punti equispaziati su un cerchio.

S’(x)
-4
3
-3 3
2

1
-2 2
-7 -6 -5 -4 -3 -2 -1 1 2 3 4 5 6 7 8 x
-1

-2 -1 1
-3
0
-4

Figura A.1 Caratteristica di overflow in complemento a due (n + 1 = 3 bit).

È facile dimostrare la seguente fondamentale proprietà : se il risultato


finale della somma, S, appartiene all’insieme dei numeri univocamente rap-
presentabili, cioè se S ∈ [−2n , +2n − 1], gli eventuali overflow nelle somme
parziali non hanno effetto sulla correttezza del risultato finale e quindi S 0 = S
.
Ad esempio, si consideri la somma di tre addendi in notazione C2 con n+1 = 4,
cui corrispondono gli interi appartenenti all’intervallo [−8, 7]. Sia S = 7 + 5 −
6 = 6 e si calcoli la somma nell’ordine ((7 + 5) − 6). Si ha:

0111+
0101 =
S10 1100+ (A.6)
1010 =
S20 0110

Si osserva che il risultato finale S20 è corretto, anche se si è verificato overflow in


entrambe le somme. Una semplice giustificazione di questo fatto è la seguente:
per rappresentare correttamente il risultato intermedio (7 + 5) = 12 sarebbe
necessario estendere la rappresentazione degli addendi su 5 bit. Se cosı̀ si
facesse, non ci sarebbe overflow in nessuna delle due somme parziali, e si
otterrebbe il risultato finale, 6, su 5 bit, i primi due dei quali sarebbero però
uguali. Si conclude quindi che é inutile estendere la rappresentazione su 5 bit
degli operandi.
Appendice A. Rappresentazione in virgola fissa e mobile 183

Dato che la moltiplicazione per un intero è equivalente ad una somma


ripetuta (2x1 + x2 + x3 = x1 + x1 + x2 + x3 ) questa proprietà vale ovviamente
P
anche per l’operazione S = i ci · xi , se i ci sono interi (rappresentati su n + 1
bit, o m + 1 bit con m ≤ n), i prodotti ci · xi sono calcolati modulo 2n+1 e se è
noto che il risultato finale appartiene al campo dei numeri rappresentabili con
n + 1 bit.
La stessa considerazione vale anche per la operazione (fondamentale nei
filtri numerici) S = i ci · xi dove le variabili xi sono interi su n + 1 bit (o
P

frazioni) e i coefficienti moltiplicatori c i sono, in generale, numeri su m + 1 bit


aventi tutti la ”virgola” nella medesima posizione, cioè lo stesso numero, m f ,
di bit associato alla parte frazionaria.
In una realizzazione in cui le variabili siano state opportunamente normaliz-
zate si ha |S| ≤ max |xi |, cioè la parte intera di S è rappresentabile ancora
su n + 1 bit, come le variabili xi , ed è quindi ancora possibile trascurare gli
overflow parziali.
In questo caso, però, non è possibile calcolare i prodotti c i · xi modulo 2n+1
come fatto nell’esempio precedente (coefficienti c i interi), ma è necessario cal-
colarli modulo 2n+m+2 , cioè come prodotti ”ordinari” di due interi su n+m+2
bit (quindi estendendo la rappresentazione dei fattori su tale numero di bit).
Se è SQ = i Q[ci xi ] ' S con Q operatore di quantizzazione, i prodotti
P

parziali possono essere riportati a n + 1 bit ed accumulati, scartando gli m f


bit meno significativi di ogni prodotto e conservando solo gli n + 1 bit alla
sinistra della ”virgola”. Se, invece, è S Q = Q[S] = Q[ i ci xi ], è il risultato
P

dell’accumulo su n + m + 2 bit ad essere riportato su n + 1 bit con la procedura


illustrata per ogni singolo prodotto.
Si osservi però che se, ad esempio, x 1 = y1 + y2 e S = c1 x1 + · · · + cL xL con
c1 frazionario, mentre è possibile trascurare gli overflow parziali nel calcolo
di S, non è possibile trascurare quello eventuale nel calcolo di x 1 (mentre lo
sarebbe se c1 fosse un intero).

Se l’operazione di somma/sottrazione è particolarmente semplice, l’operazione


di moltiplicazione di due numeri su n+1 bit risulta meno semplice in notazione
C2 che in M S.
Infatti, il modo più semplice di calcolare il prodotto sarebbe quello di esten-
dere la rappresentazione degli operandi a 2n + 2 bit e farne il prodotto modulo
22n+2 , cioè con una sequenza di operazioni di ”shift and add” e quindi trat-
tando (come in M S) i numeri come positivi. Gli algoritmi proposti per la
moltiplicazione di numeri in C2 cercano, in pratica, di limitare al minimo, ad
ogni passo, la necessità di estendere il bit di segno e quindi il numero di bit
da sommare.
Un possibile algoritmo è il seguente. Dati x = (x n · · · x0 )c2 e y = (yn · · · y0 )c2 ,
184 A.1 Rappresentazione in virgola fissa.

il prodotto x · y, espresso in termini del peso dei bit x i e yi , risulta dato dalla:

n−1 n−1
i n
yi 2i )
X X
x · y = (−xn 2n + xi 2 ) · (−yn 2 +
i=0 i=0
n−1 n−1 n−1
X n−1
i n i
xk yi 2k 2i ,
X X X
= x n yn 22n − xn 2n yi 2 − y n 2 xi 2 +
i=0 i=0 k=0 i=0
(A.7)
dove il primo e quarto addendo rappresentano quantità positive, e il secondo
e il terzo negative. Il quarto addendo porge il risultato completo della molti-
plicazione quando sia x che y sono positivi e può essere calcolato, come in
M S, con una sequenza di ”shift and add”; gli altri sono termini ”correttivi”
da applicare quando almeno uno dei due fattori è negativo. In particolare il
primo è non nullo solo quando i due numeri sono entrambi negativi.
Un algoritmo di moltiplicazione ”regolare”, cioè che tratta tutti i bit allo
stesso modo, è noto come primo algoritmo di Booth ed è usato nella maggior
parte dei moltiplicatori hardware. L’algoritmo di Booth nasce dalla semplice
osservazione che ogni cifra binaria y i può essere scritta come: yi = 2yi − yi , e
quindi, ad esempio, y può essere scritto come

y = −yn 2n + yn−1 2n−1 + · · · + y1 21 + y0 20


= −yn 2n + (2yn−1 − yn−1 )2n−1 + · · · + (2y1 − y1 )2 + (2y0 − y0 )
n
(yi−1 − yi )2i
X
= con y−1 = 0
i=0
(A.8)
In tal modo la moltiplicazione x · y (con x e y in C2) diviene una sequenza
regolare di operazioni di shift di un bit del moltiplicando, x, e somma (se
yi−1 = 1 e yi = 0) o sottrazione (se yi−1 = 0 e y1 = 1) al /dall’accumulatore,
o di solo shift di un bit del moltiplicando x (se y i−1 = yi = 0). Si osserva
che detto algoritmo è strettamente legato alla notazione SDC descritta nel
seguito.

A.1.3 Eccesso 2n .
Una notazione a n + 1 bit molto simile a C2 è quella denominata ”eccesso
2n ” generalmente impiegata nella rappresentazione dell’esponente nella no-
tazione in virgola mobile e spesso impiegata con il nome di ”offset binary” nei
convertitori A/D e D/A.
In tale notazione l’intero x (−2n ≤ x ≤ 2n − 1) viene rappresentato medi-
ante il codice binario naturale di: x+2 n e ciò equivale ad associare lo zero della
rappresentazione al numero più negativo. Si verifica che il codice risultante
differisce da quello C2 solo per l’inversione del bit più significativo b n .
Appendice A. Rappresentazione in virgola fissa e mobile 185

A.1.4 Notazione CSDC (Canonical Signed Digit Code).


Nelle realizzazioni di filtri numerici lineari l’operazione di moltiplicazione avviene
tra un segnale ed un coefficiente costante. In questo caso per ridurre il numero
di somme (sottrazioni) e, quindi, diminuire il tempo di esecuzione della molti-
plicazione, se effettuata in software (in assenza di un moltiplicatore hardware)
o in hardware dedicato come sequenza cablata di operazioni elementari, è con-
veniente ricorrere per i coefficienti alla notazione SDC (Signed Digit Code)
nella quale un numero x viene rappresentato dalla stringa: c n cn−1 · · · c0 con
ci = +1, 0, −1 [52]. Nel seguito −1 verrà indicato con il simbolo 1̄. Nel caso
di numeri interi si ha:
x = cn 2n + cn−1 2n−1 + · · · + c0 20 ci = (1, 0, 1̄) (A.9)
Risulta quindi che il numero viene rappresentato come combinazione lineare
a coefficienti positivi e negativi di potenze di 2. Si osserva che l’uso di un
alfabeto ternario rende il campo dei numeri rappresentabili con n + 1 cifre
pari a ±(2n+1 − 1), cioè circa il doppio di M S e C2.
È facile verificare che la rappresentazione di un numero non è unica. Ad
esempio, il numero −5 può essere rappresentato in SDC nei seguenti modi:
−8 +2 +1 → 1̄011 (coincidente con la notazione C2)
−4 −2 +1 → 01̄1̄1 (A.10)
−4 −1 → 01̄01̄
Se la moltiplicazione tra c in SDC ed x (ad esempio, in C2) viene eseguita
mediante una sequenza fissa di operazioni di shift a sinistra e di somme o
sottrazioni, risulta evidente l’interesse a rappresentare c con il massimo numero
di zeri.
La notazione CSDC (Canonical SDC) ha la proprietà di avere il minimo nu-
mero di cifre pari a 1 o 1̄ per ogni numero da rappresentare, ed è caratterizzata
dalla assenza di sequenze: 11, 11̄, 1̄1, 1̄1̄. Essa permette una rappresentazione
univoca dei numeri con un numero medio di zeri pari a 2(n + 1)/3 per parola,
contro (n + 1)/2 per le notazioni C2 e M S.
Il campo dei numeri interi rappresentabili in CSDC con n + 1 cifre è
±(2n+2 − 1)/3, se n + 1 è dispari, e ±(2n+2 − 2)/3, se n + 1 è pari, con un
incremento di circa 1/3 rispetto a quello corrispondente in C2 e M S.
Per passare dalla notazione M S a quella CSDC si possono applicare iterati-
vamente le seguenti regole al modulo del numero (n bit):
1) ogni sequenza di 1 consecutivi:
· · · 0111 · · · 10 · · · (· · · 2i + 2i−1 · · · + 2i−s · · · = · · · 2i+1 − 2i−s + · · ·)
diviene:
· · · 1000 · · · 1̄0 · · ·
(A.11)
186 A.2 Rappresentazione in virgola mobile.

2) ogni sequenza:

· · · 1̄1 · · · (· · · − 2i + 2i−1 · · · = · · · − 2i−1 · · ·)


diviene: · · · 01̄ · · ·
(A.12)
Se il numero è positivo, la sua rappresentazione è quella del modulo, mentre, se
il numero è negativo, la sua rappresentazione si ottiene da quella del modulo,
cambiando di segno tutti i coefficienti (cioè 1 → 1̄ e viceversa).
Se il numero è in notazione C2, si possono applicare le stesse regole ricor-
dando che il bit di ”segno” (avendo peso negativo) è già 1̄. Si consideri ad
esempio il numero c in C2:

c = (1.01110110)c2 = (−138/256)10

che diviene:
1̄01110110 → 1̄1001̄101̄0 → 01̄0001̄01̄0
Come detto, la notazione CSDC (o SDC) risulta interessante quando si deve
eseguire la moltiplicazione di una costante c per un numero variabile, x, e
non si dispone di un moltiplicatore hardware. In tale situazione l’operazione
di moltiplicazione viene realizzata con una sequenza di shift e somme (o sot-
trazioni) effettuate su x. Ad esempio, nella moltiplicazione della costante
c = −138/256 per la variabile x in software o in hardware dedicato, le oper-
azioni elementari sono: 3 shift e 3 sottrazioni, se c è rappresentato in CSDC,
e 6 shift e 5 addizioni ed una sottrazione, con c in C2.
La Tab. A.1 seguente riporta la codifica nelle varie notazioni a n + 1 = 4
bit (n.r. significa che il numero non appartiene al campo dei numeri rappre-
sentabili.)

A.2 Rappresentazione in virgola mobile.


Nella notazione in virgola mobile, i numeri vengono rappresentati come:

x̂ = f · B e (A.13)

dove f è la parte frazionaria (o mantissa), espressa di solito in notazione


modulo e segno con n cifre in base B più un bit di segno, ed e è l’esponente (o
caratteristica), espresso con m + 1 bit (segno compreso) di solito in notazione
eccesso 2m (o eccesso 2m − 1).
La parola che rappresenta x̂ è formata dalla giustapposizione di due stringhe
di cifre che rappresentano e ed f in virgola fissa. Poichè la base B è implicita
(tipici valori usati 2 e 16 per cifre binarie ed esadecimali, rispettivamente),
la parola che rappresenta x̂ contiene complessivamente n cifre in base B più
m + 2 bit. Nel caso B = 2, n + 1 rappresenta il numero di bit necessari alla
Appendice A. Rappresentazione in virgola fissa e mobile 187

dec. dec. MS C2 offset CSDC


interi frazioni binary
−10 −10/8 n.r. n.r. n.r. 1̄01̄0
−9 −9/8 n.r. n.r. n.r. 1̄001̄
−8 −1 n.r. 1000 0000 1̄000
−7 −7/8 1111 1001 0001 1̄001
−6 −6/8 1110 1010 0010 1̄010
−5 −5/8 1101 1011 0011 01̄01̄
−4 −4/8 1100 1100 0100 01̄00
−3 −3/8 1011 1101 0101 01̄01
−2 −2/8 1010 1110 0110 001̄0
−1 −1/8 1001 1111 0111 0001̄
0 0 1000 0000 1000 0000
0000
+1 +1/8 0001 0001 1001 0001
+2 +2/8 0010 0010 1010 0010
+3 +3/8 0011 0011 1011 0101̄
+4 +4/8 0100 0100 1100 0100
+5 +5/8 0101 0101 1101 0101
+6 +6/8 0110 0110 1110 101̄0
+7 +7/8 0111 0111 1111 1001̄
+8 +1 n.r. n.r. n.r. 1000
+9 +9/8 n.r. n.r. n.r. 1001
+10 +10/8 n.r. n.r. n.r. 1010

Tabella A.1
188 A.2 Rappresentazione in virgola mobile.

rappresentazione di f , per un totale di m + n + 2 bit, mentre per B = 16 il


numero di bit corrispondente risulta pari a 4n + 1, per un totale di 4n + m + 2
bit.
La mantissa è di regola normalizzata, nel senso che l’esponente e viene
di volta in volta calcolato in modo da rendere diversa da zero la cifra più
significativa di f : in questo modo B −1 ≤ |f | < 1. Ordinati i numeri x̂ per
valore crescente, ciascun numero differisce dal precedente della quantità B e−n ,
che rappresenta il passo di quantizzazione e che dipende dall’esponente e. Dato
il numero reale x = fx · B e (B −1 ≤ fx < 1), nell’ipotesi di rappresentazione
della mantissa fx per arrotondamento l’errore assoluto massimo associato alla
rappresentazione x̂ di x soddisfa alla relazione:

1 e−n
|x̂ − x| ≤ B
2
e risulta costante per tutti gli x che sono rappresentati con lo stesso valore
dell’esponente (decade nel caso decimale, ottava nel caso binario). L’errore
relativo è:
x̂ − x
er = (A.14)
x
e risulta massimo in valore assoluto quando |f | è minima, cioè per |x| = B e−1 ,
da cui:
1
|er | ≤ B 1−n (A.15)
2
Quindi l’errore relativo assoluto massimo è limitato, indipendente dall’esponente,
e risulta tanto minore quanto maggiori sono B e n. Si può scrivere:

x̂ = x + er · x = x · (1 + er ). (A.16)

Ad esempio, per B = 2, f espressa da n + 1 = 12 bit ed esponente e rapp-


resentato da m + 1 = 4 bit, la lunghezza di parola risulta di 16 cifre binarie,
e l’errore relativo è inferiore a 2 −11 , cioè 0.05%. Il minimo numero rappre-
sentabile è 2−8 e quello massimo (1 − 2−11 )27 ' 128.
In realtà la lunghezza di parola impiegata è maggiore: 32 o 64 bit per rapp-
resentazione a semplice (24 bit di mantissa e 8 bit di caratteristica) e doppia
precisione (48 bit di mantissa e 8 bit di caratteristica), rispettivamente. Ad
esempio, B = 16, n = 6 cifre esadecimali per cui |e r | ≤ 0.5 · 16−5 ' 0.5 · 10−6 .
A fronte di questa utilissima caratteristica della rappresentazione a virgola
mobile vi è da considerare il maggior costo dell’hardware e la minor velocità
nell’esecuzione delle operazioni [23, 24].
Inoltre, anche trascurando la eventualità di overflow nelle operazioni arit-
metiche, la aritmetica in virgola mobile non è “chiusa” rispetto alle operazioni
di moltiplicazione e somma (e divisione), nel senso che il risultato di una
Appendice A. Rappresentazione in virgola fissa e mobile 189

operazione aritmetica in generale non appartiene all’insieme dei numeri rap-


presentabili e deve quindi essere approssimato con un numero appartenente
alla notazione.
Per quanto riguarda il prodotto tra x̂ 1 = f1 B e1 e x̂2 = f2 B e2 risulta:

x̂1 · x̂2 = f1 f2 B e1 +e2 (A.17)

e la parte frazionaria del prodotto risulta il prodotto di due numeri in virgola


fissa. Essa deve essere ricondotta alla lunghezza di parola standard mediante
troncamento o arrotondamento, previo riaggiustamento della virgola, se |f 1 ·
f2 | < B −1 , e quindi dell’esponente. L’errore corrispondente si può interpretare
come una quantizzazione del risultato esatto con passo B e−n .
Si ha quindi

f l(x̂1 · x̂2 ) = x̂1 · x̂2 (1 + ) (A.18)


dove f l(·) indica il risultato in virgola mobile. L’errore relativo  è dato da

Q[f1 f2 ] − f1 f2 ep
= = (A.19)
f1 f2 fp
dove ep è l’errore nel prodotto delle mantisse introdotto, ad esempio, dall’arrotondamento
del risultato esatto fp su n cifre in base B. Tale errore si può ritenere uni-
formemente distribuito tra −B −n /2 e B −n /2 per B −1 ≤ fp < 1 e tra −B −n /4
e B −n /4 per B −1 /2 ≤ fp < B −1 . Ammettendo la indipendenza di ep , f1 e f2
ed una distribuzione uniforme anche per f 1 e f2 si trova [45] che  ha media
nulla e varianza

B −2n
σ2 = 0.1799 B −2n ' 2.2 , (A.20)
12
circa doppia di quella associata ad una variabile uniforme in [−B −n /2, B −n /2].
Nella somma di due numeri x̂1 = f1 B e1 e x̂2 = f2 B e2 in virgola mobile la
mantissa del più piccolo (in modulo) viene divisa per B fino a portare i due
numeri con lo stesso esponente. Quindi le mantisse vengono sommate ed il
risultato, che può superare l’unità, riportato a n cifre. Supposto e 1 ≤ e2 si ha:

x̂1 + x̂2 = (f10 + f2 )B e2

con f10 = f1 /B (e2 −e1 ) e |f10 + f2 | < 2. Il risultato si può scrivere come

f l(x̂1 + x̂2 ) = (x̂1 + x̂2 )(1 + δ) (A.21)

e l’errore relativo δ risulta


Q[f10 + f2 ] − (f10 + f2 ) es
δ= = (A.22)
f10 + f2 fs
190 A.2 Rappresentazione in virgola mobile.

dove es indica l’errore associato all’arrotondamento (o troncamento) del risul-


tato esatto f10 + f2 su n cifre. Si osservi che se |x̂1 | è sufficientemente piccolo
rispetto a |x̂2 |, può risultare f l(x̂1 + x̂2 ) = x̂2 .
Nell’ipotesi di arrotondamento e che f 10 , f2 e es siano indipendenti e uniforme-
mente distribuite, si dimostra [45] che δ ha media nulla e varianza:

B −2n
σδ2 = 0.1765 B −2n ' 2. (A.23)
12
che risulta, anche in questo caso, circa doppia di quella associata ad una
distribuzione uniforme in [−B −n /2, B −n /2].
In conclusione nella rappresentazione dei numeri in virgola mobile, fissata
la base B, il valore di m determina il campo dei numeri rappresentabili, mentre
(a pari B) n determina l’errore relativo.
Ad esempio, lo Standard IEEE per l’aritmetica Floating point specifica per
la rappresentazione in precisione semplice (32 bit) di un numero x̂ il seguente
formato :
x̂ = f · 2e = (−1)s 2E−127 1.F → sEF
dove s è il bit di segno, E è un numero (positivo) di 8 bit che determina
l’esponente e = E − 127, e F è un numero (positivo) di 23 bit che determina la
parte frazionaria di f . Infatti, la adozione della base 2 comporta che il primo
bit della mantissa sia sempre uno, che è quindi assunto come implicito nella
rappresentazione. La mantissa f è normalizzata in modo che: 1 ≤ |f | < 2, e
risulta rappresentata con 23 + 1 = 24 bit. L’esponente E assume i valori da 1
a 255, per cui il minimo numero positivo rappresentabile è (1.0 · · · 0) M S · 2−126
ed il massimo è (1.1 · · · 1)M S · 2127 ' 2128 . I valori E = 0 e E = 126 designano
operandi speciali: E = F = 0 designa lo zero e E = 256 designa l’”infinito”
macchina [11].
Appendice B
Funzioni di trasferimento passatutto.

Una f.d.t. stabile si dice passatutto se la corrispondente risposta in frequenza


ha modulo costante, cioè se soddisfa la:

|H(ejθ )| = d ∀θ. (B.1)

Conseguentemente si ha:

H(ejθ ) = d ejφ(θ) (B.2)

e H(ejθ ) risulta funzione solo della fase φ(θ) e del valore d. Nel seguito ci
riferiremo a funzioni passatutto a guadagno unitario, cioè con d = 1.
La (B.1) è equivalente alla condizione: |H(e jθ )|2 = H(ejθ )H ∗ (ejθ ) = 1, che
per prolungamento analitico diviene:

H(z)H ∗ (1/z ∗ ) = 1 (B.3)

dove, se H(z) = n h(n)z −n per |z| > R− con R− < 1, risulta H ∗ (1/z ∗ ) =
P
P ∗ n ∗ ∗
n h (n)z per |z| < 1/R− , cioè H (1/z ) è la funzione analitica in |z| < 1/R −
ottenuta coniugando i coefficienti h(n) e sostituendo z con 1/z. Se gli h(n)
sono reali, la H(z) diviene hermitiana e si ha H ∗ (1/z ∗ ) = H(1/z). (Perchè
non si può considerare H ∗ (z) come prolungamento analitico di H ∗ (ejθ )?).
Da (B.3) si ricava per d = 1 che

1
H(z) = (B.4)
H ∗ (1/z ∗ )
e H(z) assume valori reciproci e coniugati nei punti reciproci e coniugati z e
1/z ∗ . Ne viene che ad ogni polo pi = rejθi corrisponde uno zero reciproco e
coniugato zi = 1/p∗i = ejθi /r.
Quindi le f.d.t. passatutto non sono a fase minima, ad eccezione dell’ esempio
elementare H(z) = z L . Un esempio più significativo è dato dalla f.d.t. del
primo ordine:

−a∗ + z −1 z −1 (1 − a∗ z) z −1 D ∗ (1/z∗)
H(z) = = = (B.5)
1 − az −1 1 − az −1 D(z)
192

con a = rejθ0 e r < 1, cui corrisponde la:

H(ejθ ) = ejφ(θ) (B.6)


r sin(θ − θ0 )
φ(θ) = −θ + 2 arctan (B.7)
r cos(θ − θ0 ) − 1

−1
0.3

−2 0.6
arg[H(f)] (rad)

0.9
−3

−4

−0.3

−5
−0.6

a=−0.9
−6

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1


f/Fc

Figura B.1 Andamento della fase di una f.d.t. passatutto del primo ordine con polo
reale.

La Fig. B.1 riporta alcuni andamenti di φ(θ) per a reale. 1


La forma generale di una f.d.t. passatutto razionale (stabile e causale) è:

N
−p∗i − z −1
H(z) = z −L
Y
|pi | < 1 (B.8)
i=1
1 − pi z −1

e la fase corrispondente risulta data dalla somma delle fasi associate ai singoli
fattori e quindi dalla somma di termini del tipo della (B.7).
Nel caso usuale di f.d.t. a coefficienti reali, la rappresentazione in forma di-
retta risulta:
1
La configurazione polo-zero associata alla (B.5) si può dedurre dal teorema di Apollonio,
secondo il quale il luogo dei punti le cui distanze da due punti dati stanno in un rapporto
prefissato, diverso da uno, è una circonferenza: detti P1 e P1∗ i punti associati ad a e 1/a∗ ,
|z| = 1 è il luogo dei punti le cui distanze da P1 e P1∗ stanno nel rapporto costante |a| : 1.
Appendice B. Funzioni di trasferimento passatutto. 193

aN + aN −1 z −1 + · · · + z −N D̂(z)
H(z) = z −L = z −L (B.9)
1 + a1 z −1 + · · · + aN z −N D(z)
con D̂(z) = z −N D(1/z) polinomio “reciprocatò” di D(z).
Proprietà importanti delle f.d.t. passatutto (stabili e causali) sono:

a) se Rx (ejθ ) è la densità spettrale di potenza del processo di ingresso, si ha


Ry (ejθ ) = Rx (ejθ ), cioè la densità spettrale e la funzione di autocorrelazione
di un processo sono invarianti rispetto ad un filtraggio passatutto (verificare
che rh (n) = i h(i)h(i + n) = δ(n));
P

b) una f.d.t. passatutto è ”non dissipativa” nel senso che l’energia della
risposta forzata, n yf2 (n), è uguale a quella del segnale di ingresso, n x2 (n);
P P

c) il modulo di H(z) soddisfa le:



 <1
 |z| > 1
|H(z)| =1 |z| = 1 (B.10)
 <1

|z| < 1
La prima delle (B.10) è conseguenza della seconda tramite il teorema del mas-
simo modulo (H(z) è analitica per |z| ≥ 1) e la terza è conseguenza della
(B.4);

d) la fase φ(θ) è una funzione monotona decrescente. Infatti la derivata della


φ(θ) data dalla (B.7) risulta negativa (r < 1):
φ(θ) r2 − 1 r2 − 1
= 2 = < 0 (B.11)
dθ r + 1 − 2r cos(θ − θ0 ) (r − 1)2 + 2r(1 − cos(θ − θ0 ))
e quindi tale risulta la fase associata alla f.d.t. (B.8). (Cosa si può dire se
tutti i poli sono esterni al cerchio di raggio unitario?).
Utilizzando il teorema dell’indicatore logaritmico (o, più semplicemente,
analizzando il diagramma zeri–poli) si ha inoltre che, quando θ varia di 2π,
la corrispondente variazione di fase ∆φ è pari a −2π volte il numero di poli
interni al cerchio |z| = 1, cioè con riferimento alla (B.8) si ha:
φ(2π) − φ(0) = −2π(N + L). (B.12)
Se H(z) ha coefficienti reali e L = 0, si ha φ(0) = 0, φ(π) = −πN e φ(2π) =
−2πN . (Si veda la Fig. B.1 in cui N = 1).
Si ricava quindi che il ritardo di gruppo τ (θ) = −dφ(θ)/dθ è positivo e
soddisfa la:
1 π
Z
τ (θ)dθ = N (B.13)
π 0
194

cioè ha valor medio (positivo) pari all’ordine della funzione passatutto. Se la


f.d.t. passatutto H(z) viene utilizzata come equalizzatore di fase di una G(z)
con ritardo di gruppo τG (θ), cioè se si vuole τG (θ) + τH (θ) ' cost = n0 , la
(B.12) consente una stima di prima approssimazione dell’ordine necessario per
H(z): Z π

N ' n0 − τG (θ) > 0. (B.14)
0 π
Si determini il contributo dell’integrale di τ G (θ) quando G(z) è a fase minima.
Appendice C
Proprietà associate alla realizzazione a traliccio.

C.1 La decomposizione An (z) = An−1(z) + knz −1 Ân−1(z).


Dato il polinomio monico (AN (∞) = 1) di grado N a coefficienti reali

AN (z) = 1 + aN,1 z −1 + aN,2 z −2 + · · · + aN,N z −N , (C.1)

consideriamo il polinomio

ÂN (z) = z −N AN (1/z) = z −N + aN,1 z −N +1 + aN,2 z −N +2 + · · · + aN,N (C.2)

che è caratterizzato dalla proprietà di avere come zeri i reciproci degli zeri di
AN (z) (per tale motivo viene spesso detto il polinomio ”reciproco” o ”recip-
rocato” di AN (z)) e dalla condizione di normalizzazione A N (1) = ÂN (1).
Si vuole rappresentare AN (z) (e ÂN (z)) come combinazione lineare di un
opportuno polinomio AN −1 (z) di grado N − 1 e del suo reciprocato ÂN −1 (z)
moltiplicato per z −1 , secondo un coefficiente reale kN , spesso detto coefficiente
di riflessione,

AN (z) = AN −1 (z) + kN z −1 ÂN −1 (z)


(C.3)
ÂN (z) = kN AN −1 (z) + z −1 ÂN −1 (z).

Uguagliando i termini di ugual grado ad ambo i membri della prima (o sec-


onda) delle (C.3), si trova che anche A N −1 (z) deve essere monico e che deve
essere
kN = aN,N . (C.4)
Noto kN , le (C.3) possono essere interpretate come due equazioni lineari nelle
incognite AN −1 (z) e ÂN −1 (z).
2 , risulta diverso da zero e la
Se |kN | 6= 1, il determinante del sistema, 1 − k N
soluzione risulta:
2 )A
(1 − kN N −1 (z) = AN (z) − kN ÂN (z)
2 −1 (C.5)
(1 − kN )z ÂN −1 (z) = −kN AN (z) + ÂN (z)

Se invece kN = ±1, è facile verificare che, se AN (z) è un polinomio simmetrico


o antisimmetrico: AN (z) = kN ÂN (z), le (C.3) ammettono infinite soluzioni,
196 C.1 La decomposizione An (z) = An−1 (z) + kn z −1 Ân−1 (z).

cioè esistono infiniti polinomi AN −1 (z) che le soddisfano, mentre, in caso con-
trario, le (C.3) non ammettono soluzione.
Se si esclude, quindi, il caso |aN,N | = |kN | = 1, la soluzione di (C.3) è
unica. Riapplicando il procedimento al polinomio A N −1 (z) ed, eventualmente,
a AN −2 (z), · · · , A1 (z), al polinomio AN (z) risultano associati, se |kn | 6= 1
per n = 1, 2, · · · , N , gli N polinomi AN −1 (z), · · · , A1 (z) e gli N coefficienti
kN −1 , kN −2 , · · · , k1 . Sia i coefficienti kn che i polinomi An (z) godono di im-
portanti proprietà, alcune delle quali presentate nel seguito.
I coefficienti kn , n = 1, · · · , N , costituiscono una parametrizzazione al-
ternativa del polinomio AN (z) (alternativa a quella fornita, ad esempio, dai
coefficienti aN,i o dagli zeri di AN (z)), nel senso che la applicazione delle (C.3)
a partire dal polinomio A0 (z) = Â0 (z) = 1 consente, noti i kn , di ricostruire
univocamente i polinomi An (z) e quindi il polinomio AN (z).
La applicazione ripetuta della prima delle (C.3) porge la rappresentazione:

AN (z) = AN −1 (z) + kN z −1 ÂN −1 (z)


= AN −2 (z) + kN −1 z −1 ÂN −2 (z) + kN z −1 ÂN −1 (z) = · · ·
N (C.6)
kn z −1 Ân−1 (z),
X
= 1+
n=1

cui daremo un significato meno formale successivamente a proposito della


(C.67).
Si ha inoltre, ad esempio, per N = 3:

A0 (z) = 1
A1 (z) = −1
1 + k1 z Â0
A2 (z) = A1 + k2 z −1 Â1 = 1 + k1 (1 + k2 )z −1 + k2 z −2 (C.7)
A3 (z) = A2 + k3 z −1 Â2 = 1 + [k1 (1 + k2 ) + k2 k3 ]z −1
+[k1 (1 + k2 )k3 + k2 ]z −2 + k3 z −3

e quindi An (z) (quindi ogni coefficiente an,i di An (z)) è funzione lineare di


ciascuno dei coefficienti ki con i = 1, 2, · · · , n. Si ha, ad esempio,

An (z; k1 , k2 , · · · , kn ) = B(z; k2 , · · · , kn ) + k1 C(z; k2 , · · · , kn ),

relazione che consente di valutare esattamente i coefficienti del polinomio “sen-


sibilità” ∂An /∂k1 = C come rapporto di incrementi finiti:

∂An (z) An (z; k1 + ∆, k2 , · · · , kn ) − An (z; k1 , k2 , · · · , kn )


= , (C.8)
∂k1 ∆

mentre B può ottenersi come An (z; 0, k2 , · · · , kn ).


Appendice C. Proprietà associate alla realizzazione a traliccio. 197

C.2 Un test di stabilità.


La parametrizzazione fornita dai coefficienti di riflessione gode di una im-
portante proprietà relativamente alla dislocazione degli zeri di un polinomio.
Precisamente si ha il seguente:

Test di stabilità (Schur-Cohn-Marden-Jury). Il polinomio A N (z) è a fase min-


ima, cioè ha tutti gli zeri interni al cerchio di raggio unitario, |z| = 1, se e
solo se i coefficienti kn ad esso associati soddisfano la condizione: |k n | < 1 per
n = 1, 2, · · · , N .

Quindi l’ipercubo |kn | < 1, n = 1, 2, · · · , N , è l’immagine nello spazio dei co-


efficienti di riflessione delle N –ple di zeri interni al cerchio di raggio unitario.
La dimostrazione del test si basa sulla applicazione ripetuta del seguente
lemma.

Lemmma. Il polinomio AN (z) è a fase minima se e solo se |kN | < 1 e il


polinomio AN −1 (z) è a fase minima.

Per la sufficienza, indichiamo con zN,i uno zero di AN (z). Nella ipotesi che
AN −1 (z) sia a fase minima, AN −1 (z) e ÂN −1 (z) non possono annullarsi nello
stesso punto e si può scrivere

−1
0 = AN (zN,i ) = AN −1 (zN,i ) + kN zN,i ÂN −1 (zN,i ) (C.9)
" #
−1 ÂN −1 (zN,i )
= AN −1 (zN,i ) 1 + kN zN,i (C.10)
AN −1 (zN,i )

Quindi la f.d.t. passatutto stabile H N −1 (z) = z −1 ÂN −1 (z)/AN −1 (z) deve


soddisfare la condizione:

1
HN −1 (zN,i ) = − (C.11)
kN
con |kN | < 1, e la (B.10) di Appendice B consente di concludere che deve
essere |zN,i | < 1.
Una semplice dimostrazione alternativa si basa sulla applicazione del metodo
del luogo delle radici alla prima delle (C.3). Allo scopo consideriamo k N come
parametro e scriviamo il primo membro come A N (z; kN ): se per kN = a si ha
AN (z; a) = 0 per z = α, si verifica facilmente che si ha anche A N (1/α; 1/a) =
0, e quindi il luogo delle radici di A N (z; kN ) al variare di kN è simmetrico
rispetto a |z| = 1 e zeri reciproci corrispondono a valori reciproci di k N .
La osservazione elementare che gli zeri di A N (z; kN ) coincidono con quelli
198 C.2 Un test di stabilità.

di AN −1 (z) per kN = 0 e con quelli di z −1 ÂN −1 (z) per |kN | = ∞, permette di


concludere che AN −1 (z) a fase minima e |kN | < 1 implicano che anche AN (z)
sia a fase minima.
Per la necessità dalla |zN,i | < 1 si deduce

N
Y
|kN | = | (−zN,i )| < 1 (C.12)
i=1

e, per concludere che anche AN −1 (z) è a fase minima, basta riferirsi alla prima
delle (C.5) e ripetere il ragionamento fatto per la (C.10), o considerare il cor-
rispondente luogo delle radici. 2

Si osserva che il test di stabilità può essere reso più preciso, nel senso che
l’esame dei cambiamenti di segno della sequenza: 1−|k 1 |, 1−|k2 |, · · · , 1−|kN |,
e la analisi, per perturbazione, dei casi critici, |k n | = 1, consentono di calcolare
il numero di zeri di AN (z) interni, esterni e sulla circonferenza del cerchio di
raggio unitario [31], analogamente al test di Routh-Hurwitz relativamente alla
dislocazione degli zeri di un polinomio rispetto all’asse immaginario [34].
Dalla dimostrazione data è infatti facile dedurre che, ad esempio, se A N −1 (z)
è a fase minima e quindi |kn | < 1 per n = 1, 2, · · · , N − 1, ed è |kN | > 1, il
polinomio AN (z) è a fase massima.

Dato il polinomio AN (z) e costruiti il polinomio simmetrico, P + (z), ed il


polinomio antisimmetrico, P− (z),

1
P+ (z) = (AN (z) + z −1 ÂN (z))
2
1
P− (z) = (AN (z) − z −1 ÂN (z)) (C.13)
2
corrispondenti, rispettivamente, a porre k N +1 = 1 e kN +1 = −1, si ha

AN (z) = P+ (z) + P− (z). (C.14)

Non è difficile dimostrare che: AN (z) è a fase minima se e solo se tutti gli
zeri di P+ (z) e P− (z) sono semplici, hanno modulo unitario, si interlacciano
(ogni due zeri consecutivi di P+ (ejθ ) c’è uno zero di P− (ejθ ) e viceversa) e
sign[P+ (∞)] = sign[P− (∞)].
La dimostrazione può essere condotta direttamente nel piano z; è più sem-
plice osservare che, se alle (C.13) e (C.14) si applica la trasformazione bi-
lineare z = (1 + s)/(1 − s), si trova che alla decomposizione (C.14) di un
polinomio in z in un polinomio simmetrico e in uno antisimmetrico rispetto a
|z| = 1, corrisponde in s la decomposizione Ã(s) = E(s) + O(s) con E(s) =
Appendice C. Proprietà associate alla realizzazione a traliccio. 199

(Ã(s) + Ã(−s))/2 e O(s) = (Ã(s) − Ã(−s))/2, rispettivamente, parte simmet-


rica e antisimmetrica di Ã(s) rispetto s = jω. Quindi basta ricordare una ben
nota condizione di hurwitzianità di Ã(s) in termini degli zeri di E(s) e O(s)
per concludere [34].
Gli zeri di P+ (z) e P− (z) costituiscono una parametrizzazione alternativa di
un polinomio AN (z). Nell’ambito della codifica del segnale vocale tramite
predizione lineare (par. C.4) essi sono noti come “line spectrum pairs” (LSP)
e costituiscono la parametrizzazione attualmente ritenuta più efficiente del
filtro “sbiancante” AN (z) [60].
Osserviamo infine che sia il lemma che la proprietà di interlacciamento si
applicano alla relazione tra i polinomi A(z) e B(z) data dalla A(z) = B(z) +
kz −m B(z −1 ) con m ≥ 0.

C.3 Polinomi ortogonali sul cerchio di raggio unitario.


Se AN (z) è a fase minima, i polinomi a fase minima, A n (z), ed i polinomi a
fase massima, Ân (z), che ad esso restano associati tramite le (C.4) e (C.5), e
le f.d.t. Fn (z) = An (z)/AN (z) e F̃n (z) = Ân (z)/AN (z), con |z| > max |zN,i |,
che intervengono nella realizzazione a traliccio, godono di una importante
proprietà di ortogonalità.
Sia hA (k) la antitrasformata causale e stabile della f.d.t. a “solo poli”
1/AN (z) con |z| > max |zN,i | e siano s(k) e t(k) due sequenze reali e stabili di
trasformata S(z) e T (z), rispettivamente, applicate come ingresso alla f.d.t.
1/AN (z); siano ys (k) = hA ∗ s(k) e yt (k) = hA ∗ t(k) le corrispondenti risposte
forzate. Si ha:
X X
ys (k)yt (k) = s(k)t(i)rA (k − i)
k k,i
Z 2π

= S(ejθ )T (e−jθ )RA (ejθ )
0 2π
1 dz
I
= S(z)T (z −1 )RA (z) (C.15)
2πj c z
dove

X 1
rA (k) = hA (i)hA (i + k) ⇐⇒ RA (z) =
i=0
AN (z)AN (z −1 )

con max |zN,i | < |z| < 1/ max |zN,i |, sono la funzione di autocorrelazione di
hA (k) e la sua trasformata, e C è la circonferenza |z| = 1 orientata positiva-
mente.
La (C.15) si può interpretare come il prodotto interno tra i vettori reali
s = [· · · , s(k), · · ·]t e t = [· · · , t(k), · · ·]t rispetto alla funzione peso (semidefinita
200 C.3 Polinomi ortogonali sul cerchio di raggio unitario.

positiva) rA (k), o (attesa la ortogonalità della trasformata di Fourier) tra le


trasformate S(ejθ ) e T (ejθ ) rispetto alla funzione peso (positiva) R A (ejθ ). Nel
seguito verrà indicato con < s, t > o < S, T > dando per implicito il peso
rA (k) o RA (ejθ ).

Si verifica subito, infatti, che la (C.15) gode delle proprietà formali di un


prodotto interno: essa gode della proprietà di simmetria: < S, T > = < T, S >
( S(z) e T (z) sono hermitiane), di linearità: < a 1 S1 +a2 S2 , T >= a1 < S1 , T >
+a2 < S2 , T > e, inoltre, la < S, S > > 0 per ogni S(z) non identicamente
nulla, consente di definire la norma di S(z), k S k 2 =< S, S >, che risulta data
dalla energia, k ys2 (k), della risposta forzata ys (k) = hA ∗ s(k).
P

È immediato verificare che (con S e T hermitiane) tale prodotto interno


gode delle proprietà:
a) | < S(z), T (z) > |2 ≤ < S(z), S(z) > · < T (z), T (z) >;
b) < S(z), T (z) > = < z n S(z), z n T (z) > ∀n;
c) < S(z), T (z) > = < T (1/z), S(1/z) > = < S(1/z), T (1/z) >;
d) < S(z), T (z) > = < 1, S(1/z)T (z) > = < S(z)T (1/z), 1 >.
La proprietà a) è la disuguaglianza di Cauchy–Schwartz, soddisfatta da ogni
prodotto interno, mentre le b), c) e d) sono proprietà elementari associate alla
(C.15), utili per gli sviluppi successivi.
Due segnali aventi trasformata S(z) e T (z) si dicono ortogonali rispetto
alla RA (z), se risulta < S(z), T (z) >= 0.

Dato il polinomio AN (z) a fase minima, siano An (z) e Ân (z) i polinomi a
fase minima e massima ad esso associati tramite la applicazione ripetuta delle
(C.4) e (C.5). Vale allora il seguente teorema:

Teorema. Sul cerchio di raggio unitario, |z| = 1, i polinomi a fase massima


Ân (z), n = 1, 2, · · · , N , sono ortogonali alle potenze z −i per i = 0, 1, ..., n − 1,
ed i polinomi a fase minima An (z), n = 1, 2, · · · , N , sono ortogonali a z −i per
i = 1, 2, ..., n.

Osserviamo che per ogni i > 0 e quindi, in particolare, per 1 ≤ i ≤ N , si ha:

1 zi dz
I
< AN (z), z −i > = −1
= 0, (C.16)
2πj c AN (z ) z

dato che la funzione integranda è analitica su |z| = 1 e al suo interno o, se


si vuole, attesa la anticausalità della antitrasformata di {1/A N (z −1 ); |z| <
1/ max(|zN,i |)}.
Appendice C. Proprietà associate alla realizzazione a traliccio. 201

Per ÂN (z) dalla


c) b)
0 =< AN (z), z −i > = < AN (z −1 ), z +i > = < z −N AN (z −1 ), z −N +i >
(C.17)
valida ∀i > 0, si ricava la < ÂN (z), z −i > = 0 per ogni i < N (relazione
deducibile direttamente dalla definizione utilizzando la causalità di h A (k)),
quindi in particolare per 0 ≤ i ≤ N − 1.
La dimostrazione procede per induzione all’indietro. Ammessa vera la tesi
per un certo valore di n, la prima delle (C.5) porge per n − 1
1
< An−1 (z), z −i > = (< An (z), z −i > −kn · < Ân (z), z −i >) = 0,
1 − kn2
(C.18)
−i
valida per 1 ≤ i ≤ n − 1. La < An−1 (z), z > = < Ân−1 (z), z −n+i+1 >
assicura, poi, la < Ân−1 (z), z −i > = 0 per 0 ≤ i ≤ n − 2. 2

Si ha quindi che ogni polinomio Ân (z) è ortogonale ad ogni polinomio


Pm (z) = mi=0 pi z
−i di grado m inferiore a n:
P

m
pi < Ân , z −i > = 0
X
< Ân (z), Pm (z) > = 0 ≤ m < n ≤ N,
i=0

e che i polinomi Ân (z), n = 0, 1, ..., N , sono ortogonali, al pari dei polinomi
z −1 Ân (z) :

< Ân (z), Âm (z) > = < z −1 Ân (z), z −1 Âm (z) > = 0 0 ≤ m 6= n ≤ N
(C.19)
Per i polinomi An (z) si ha:
< An (z), Pm (z) > = p0 < An (z), 1 > n ≥ m
(C.20)
< An (z), Am (z) > = < An , 1 > n ≥ m.

Le proprietà di ortogonalità rispetto a R A (z) divengono proprietà di or-


togonalità delle f.d.t.: F̃n (z) = Ân (z)/AN (z) e Fn (z) = An (z)/AN (z), che
intervengono nella realizzazione a traliccio della f.d.t. passatutto H N (z) =
ÂN (z)/AN (z) (par. 4.1.6). Dette f˜n (k) e fn (k) le corrispondenti antitrasfor-
mate si ha:

f˜m (k)f˜n (k) = 0
X
< Âm (z), Ân (z) > = 0 ≤ m 6= n ≤ N (C.21)
k=0
X∞ ∞
X
< Am (z), An (z) > = fm (k)fn (k) = fn (k)f0 (k) (C.22)
k=0 k=0
0≤m≤n≤N
202 C.3 Polinomi ortogonali sul cerchio di raggio unitario.

Per il calcolo dei prodotti interni nel caso m = n, osserviamo che risulta:

α2n = < Ân (z), Ân (z) > = < An (z), An (z) > = < An (z), 1 > (C.23)
= < An−1 (z), 1 > + kn · < z −1 Ân−1 (z), 1 > (C.24)
= α2n−1 + kn · < z −1
Ân−1 (z), 1 > (C.25)

dove il primo segno di uguale discende dalle proprietà b) e c) (o direttamente


dal legame tra Fn e F̃n ), il secondo dalla (C.20) e il terzo dalla prima delle
(C.3).
Poichè z −1 Ân−1 (z) è un polinomio di grado n privo del termine noto, si ha

< An (z), z −1 Ân−1 (z) >= 0,

da cui, utilizzando la prima delle (C.3) per esprimere A n (z), si ottiene la


relazione

0 = < An (z), z −1 Ân−1 (z) > (C.26)


−1 −1 −1
= < An−1 (z), z Ân−1 (z) > +kn · < z Ân−1 (z), z Ân−1 (z)(C.27)
−1
= < 1, z An−1 (z) > + kn · α2n−1 (C.28)

e quindi:
< 1, z −1 Ân−1 (z) > = −kn · α2n−1 (C.29)
In definitiva da (C.25) e (C.29) si ha

α2n = < An (z), 1 > = α2n−1 − kn2 α2n−1 = α2n−1 (1 − kn2 ) (C.30)

che può essere utilizzata per il calcolo ricorsivo di α 2n partendo da

α2N =< AN (z), AN (z) >= 1.

In particolare si trova

α2N −1 = < ÂN −1 (z), ÂN −1 (z) > = < AN −1 (z), AN −1 (z) >
= 1 (C.31)
2
1 − kN

1 dz
I
α20 = < 1, 1 > = 1
−1
2πj c AN (z)AN (z ) z
= 1 (C.32)
N
kn2 )
Y
(1 −
n=1

Si osserva che la (C.32) consente di calcolare la energia della risposta impul-


siva, hA (k), associata alla f.d.t. 1/AN (z) a partire dalla conoscenza dei soli
Appendice C. Proprietà associate alla realizzazione a traliccio. 203

coefficienti di riflessione kn , quantità calcolabili con operazioni elementari sui


coefficienti di AN (z) (per tale motivo, in pratica, il calcolo dei k n e An (z)
tramite le (C.4) e (C.5) deve essere effettuato utilizzando una precisione su-
periore a quella usata per rappresentare i coefficienti di A N (z)).
La (C.32) può essere generalizzata al calcolo della energia della risposta
impulsiva h(k) associata alla f.d.t. razionale stabile H(z) = B M (z)/AN (z)
con M ≤ N . Allo scopo basta esprimere B M (z) come combinazione lineare
dei polinomi ortogonali Ân (z): BM (z) = M n=0 cn Ân (z). Si ottiene:
P


1 dz
I
2
H(z)H(z −1 )
X
h (k) = = < BM (z), BM (z) > (C.33)
k=0
2πj c z
M M M
c2n < Ân , Ân > (C.34)
X X X
= < cn Ân , cn Ân > =
n=0 n=0 n=0
M
c2n α2n
X
= (C.35)
n=0

Si osserva che si è dimostrata la ortogonalità dei polinomi A n (z) e Ân (z)


rispetto a z −i con funzione peso la RA (ejθ ) = 1/|AN (ejθ )|2 , dove AN (z) è il
polinomio a fase minima generatore degli A n (z) e Ân (z) tramite (C.4) e (C.5):
nel seguito, analizzando la condizione (C.49), verificheremo che la proprietà di
ortogonalità vale relativamente a qualsiasi funzione peso non negativa R(e jθ )
avente la stessa ”parte iniziale” dello sviluppo in serie di Fourier della R A (ejθ ).
I polinomi Ân (z) (ortogonali sul cerchio di raggio unitario rispetto ad una
funzione peso non-negativa) sono noti come i polinomi di Grenander-Szego
[22].

C.4 Polinomi ortogonali sul cerchio di raggio unitario e predi-


zione lineare.
Presentiamo, infine, una importante connessione tra i polinomi ortogonali su
|z| = 1 ed il problema del predittore lineare ottimo ad un passo di un processo
stazionario x(k). Per una trattazione completa ed elegante dell’argomento si
veda [53]; qui si è adattata la presentazione fatta in [41].
Allo scopo premettiamo la seguente osservazione. Se applichiamo il pro-
cesso stazionario x(k), che supponiamo a media nulla, a due sistemi lineari
stabili aventi risposta impulsiva s(k) e t(k) e calcoliamo la correlazione mutua
E[ys (k +n)yt (k)] delle corrispondenti risposte forzate, y s (k) e yt (k), per n = 0,
otteniamo una espressione perfettamente uguale alla (C.15), pur di sostituire
le rA (k) e RA (ejθ ), rispettivamente, con la autocorrelazione r x (k) e la densità
204 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

spettrale Rx (ejθ ) del processo:


X
E[ys (k)yt (k)] = s(k)t(i)rx (k − i)
Zk,i2π
dθ 1 dz
I
= S(ejθ )T (e−jθ )Rx (ejθ ) = S(z)T (z −1 )Rx (z)
0 2π 2πj c z
= < S(z), T (z) >
(C.36)
La (C.36) definisce ancora il prodotto interno di s(k) e t(k) o delle loro trasfor-
mate S(z) e T (z) rispetto alla funzione peso r x (k) o Rx (z), e la condizione di
ortogonalità < S, T >= 0, corrisponde alla E[y s (k)yt (k)] = 0, cioè alla ortogo-
nalità di yt (k) e ys (k) (e quindi alla loro incorrelazione se x(k) è a media nulla).

Ad esempio, per S(z) = z −m e T (z) = z −n si ha ys (k) = x(k − m) e


yt (k) = x(k − n) e quindi:

E[x(k − m)x(k − n)] = rx (m − n) = rx (n − m) = < z −m , z −n > (C.37)

e per S(z) = N −k e T (z) = z −n si ha y (k) = PN


k=0 s(k)z s(m)x(k − m) e
P
s m=0
yt (k) = x(k − n) e quindi:
N
X N
X
E[ s(m)x(k − m)x(k − n)] = s(m)rx (n − m)
m=0 m=0
1 dz
I
= S(z)Rx (z)z n = < S(z), z −n >
2πj c z
Consideriamo all’istante k una approssimazione, x + (k), di x(k) ottenuta
come combinazione lineare a coefficienti reali degli N valori precedenti, x(k −
1), x(k − 2), · · · , x(k − N ) (predizione causale o ”in avanti” o ”forward”):
N
x+ (k) = −
X
am x(k − m). (C.38)
m=1

Il processo
N
e+ +
X
N (k) = x(k) − x (k) = x(k) + am x(k − m) (C.39)
m=1

rappresenta l’errore associato alla predizione di x(k) tramite x + (k) e può pen-
sarsi ottenuto filtrando x(k) con il filtro FIR di f.d.t.
N
am z −m
X
AN (z) = 1 +
m=1
Appendice C. Proprietà associate alla realizzazione a traliccio. 205

Se misuriamo la qualità della predizione con la potenza dell’errore di predi-


zione, si ha posto a0 = 1:
N
E[e2N ] am x(k − m))2 ]
X
= E[(
m=0
N X
X N
= am an rx (m − n)
m=0 n=0
Z 2π

= |AN (ejθ )|2 Rx (ejθ )
0 2π
= < AN (z), AN (z) > (C.40)
ed è facile determinare i coefficienti a m del predittore in modo da rendere
minima tale potenza:
4
α2N = min E[e2N ] = min k AN k2 (C.41)
am am

Derivando rispetto ai coefficienti a m si trova:


1 ∂E[e2N ]
0 = (C.42)
2 ∂ai
= E[e+
N (k)x(k − i)] (C.43)
N
aopt
X
= rx (i) + m rx (i − m) (C.44)
m=1
= < Aopt
N (z), z
−i
> i = 1, 2, · · · , N (C.45)
e quindi, in base alla (C.43), in corrispondenza del minimo l’errore e + N (k)
è ortogonale ai dati x(k − i) per i = 1, 2, ..., N , condizione espressa in forma
esplicita in termini dei coefficienti a opt
m dalla (C.44). Essa si trasforma, tramite
la (C.38), nella condizione equivalente (C.45), in base alla quale la f.d.t. del
filtro FIR associato, Aopt N (z), risulta ortogonale su |z| = 1 alle potenze z
−i per

i = 1, 2, ..., N , rispetto alla funzione peso R x (ejθ ).


Il filtro Aopt
M (z) associato ai coefficienti del predittore ottimo, viene detto
”filtro sbiancante”. L’attributo ”sbiancante” è giustificato dal fatto che, come
si mostrerà tra poco, per N → ∞ il processo di errore e + N (k) diviene un rumore
bianco.
La potenza minima dell’errore di predizione risulta
4
α2N = min E[e2N ] = min < AN (z), AN (z) > (C.46)
am am
N
aopt
X
= rx (0) + m rx (m) (C.47)
m=1
= < Aopt
N (z), 1 > (C.48)
206 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

Nel seguito, per semplicità di notazione, indicheremo con A N (z) e am il filtro


sbiancante e il suo coefficiente generico.
Se si esclude il caso dei processi stazionari (detti puramente deterministici
[53]) i quali soddisfano una equazione del tipo
M
X
x(k) = − am x(k − m)
m=1

e che quindi sono esattamente predicibili a partire dalla sola conoscenza del
passato1 (α2N = 0 per N ≥ M ), si ha E[e2N ] > 0 per ogni scelta dei coefficienti
am e risulta α2N > 0.

In pratica, gli N coefficienti am del predittore lineare ottimo si trovano


risolvendo il sistema lineare di N equazioni (dette ”normali” o di Yule-Walker)
N
X
rx (i) + am rx (i − m) = 0 i = 1, 2, · · · , N (C.49)
m=1

La matrice del sistema (C.49) è di Töplitz (gli elementi sulla diagonale princi-
pale sono uguali come pure quelli sulle parallele) e simmetrica, ed è costruita
coi valori dell’autocorrelazione del processo: r x (0), rx (1), ·, rx (N − 1), quindi
risulta definita positiva. Il vettore dei termini noti è costituito dai valori
rx (1), rx (2), ... , rx (N ).
È importante osservare che la soluzione della (C.49) rimane inalterata se
si dividono tutti i valori rx (i), i = 0, 1, · · · , N , per rx (0) (o per una costante
arbitraria). Se ne deduce che il predittore ottimo di ordine N dipende solo dai
valori assunti dalla funzione di autocorrelazione normalizzata del processo,
ρx (i) = rx (i)/rx (0), per i = 1, 2, · · · , N . Ne viene che lo stesso predittore
ottimo è associato a tutti i processi con densità spettrali normalizzate rispetto
alla varianza (quindi a varianza unitaria)

Rx (ejθ )
Rx0 (ejθ ) =
X
=1+2 ρx (i) cos iθ
rx (0) i=1

che hanno la stessa ”parte iniziale” dello sviluppo in serie di Fourier, più pre-
cisamente che hanno uguali i coefficienti ρ x (i) per i = 1, · · · , N .
Si osserva che ad ogni N –pla di coefficienti ρ x (i), i = 1, 2, · · · , N , rimane asso-
ciato tramite le (C.49) un unico polinomio A N (z) il quale, come vedremo nel
seguito, risulta a fase minima. Vale anche il viceversa, nel senso che ad ogni
polinomio a fase minima rimane associata tramite il sistema (C.49) una unica
N –pla di coefficienti ρx (i).

1
PM
Gli zeri di AM (z) = 1+ m=1
am z −m sono tutti semplici e sul cerchio di raggio unitario.
Appendice C. Proprietà associate alla realizzazione a traliccio. 207

Per dare significato al reciprocato ÂN (z) di AN (z) consideriamo il prob-


lema della predizione di x(k) con un predittore lineare anticausale (detto anche
”all’indietro” o ”backward”):
N
x−
X
N (k) = − bm x(k + m) (C.50)
m=1

La ricerca del predittore ottimo corrispondente è equivalente alla ricerca del


+
predittore causale: yN (k) = − N m=1 am y(k − m) del processo y(k) = x(−k).
P

Per x(k) stazionario, la rx (k) = rx (−k) implica la ry (k) = rx (k) e quindi, in


base a (C.49), le f.d.t. dei corrispondenti filtri sbiancanti sono collegate dalla
relazione
N
bm z m = AN (z −1 )
X
BN (z) = 1 + (C.51)
m=1

cioè il filtro sbiancante associato all’errore di predizione all’indietro, B N (z),


è dato dalla versione anticausale, A N (z −1 ), del filtro sbiancante, AN (z), as-
sociato all’errore di predizione in avanti. Ovviamente la potenza dell’errore
di predizione all’indietro risulta uguale a quella associata alla predizione in
avanti:
2 4
βN =< BN (z), BN (z) > = < AN (z −1 ), AN (z −1 ) > = < AN (z), AN (z) > = α2N .
(C.52)
−1
Se rendiamo causale il predittore anticausale ottimo A N (z ) introducendo un
ritardo di N quanti temporali, otteniamo la f.d.t. del filtro sbiancante causale
associato all’errore ”all’indietro”: ÂN (z) = z −N A(z −1 ).
In corrispondenza, i processi di errore ”in avanti” e ”all’indietro” sono dati,
ad esempio, per N = 2 dalle

e+
2 (k) = x(k) + a1 x(k − 1) + a2 x(k − 2) → A2 (z) = 1 + a1 + a2 z
−2

e−
2 (k) = x(k − 2) + a1 x(k − 1) + a2 x(k) → Â2 (z) = a2 + a1 z
−1 + z −2 .

(C.53)
+
Quindi e2 (k) è l’errore relativo alla predizione in avanti di x(k) a partire da
x(k −1) e x(k −2) ed i coefficienti a1 e a2 rendono e+ 2 (k) ortogonale a x(k −1) e
x(k − 2), mentre e−2 (k) è l’errore relativo alla predizione all’indietro di x(k − 2)
a partire da x(k − 1) e x(k) ed i coefficienti a 1 e a2 rendono e− 2 (k) ortogonale
a x(k − 1) e x(k).
Se vogliamo che entrambe le predizioni siano riferite alle medesime osser-
vazioni, x(k − 1) e x(k − 2), dobbiamo introdurre un ritardo di un quanto nella
seconda delle (C.53):

e−
2 (k−1) = x(k−3)+a1 x(k−2)+a2 x(k−1) → z
−1
Â2 (z) = a2 z −1 +a1 z −2 +z −3
(C.54)
208 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

ed il processo e− 2 (k − 1) risulta ortogonale a x(k − 1) e x(k − 2) al pari di


e+
2 (k). Corrispondentemente si ottiene la f.d.t. z −1 Â2 (z), che si generalizza
nella z −1 ÂN (z).
La condizione di ortogonalità (C.45) si lascia riscrivere come

0 =< AN (z), z −i > = < z −N AN (z −1 ), z −N +i > i = 1, 2, · · · , N,

da cui discende che < ÂN (z), z −i > = 0 per i = 0, 1, · · · N − 1, quindi


< z −1 ÂN (z), z −i > = 0 per i = 1, 2, · · · , N , condizioni che esprimono la
ortogonalità ai dati di e− −
N (k) e di eN (k − 1), rispettivamente. Ovviamente, si
ha < ÂN , ÂN > = < z −1 ÂN , z −1 ÂN > = < AN , AN >.

C.4.1 Algoritmo di Levinson e realizzazione a traliccio del filtro sbiancante


Alle proprietà della matrice del sistema (C.49) e dei predittori in avanti e
all’indietro è legato un algoritmo veloce di calcolo dei coefficienti del predit-
tore ottimo. L’algoritmo è detto di Levinson o di Levinson–Durbin ed ha la
caratteristica essenziale di essere ricorsivo nell’ordine, cioè esso porge il predit-
tore ottimo di ordine N costruendo ricorsivamente i predittori ottimi di ordine
1, 2, · · · , N − 1 e N .
Per la sua presentazione indichiamo con
n
an,m z −m
X
An (z) = 1 +
m=1

la f.d.t del filtro sbiancante di ordine n e osserviamo che per n = 1 si ha

rx (1) E[x(k)x(k − 1)]


rx (1) + a1,1 rx (0) = 0 =⇒ a1,1 = − = (C.55)
rx (0) E[x2 (k)]
α21 = rx (0)(1 − a21,1 ) (C.56)

Sia An−1 (z) il filtro sbiancante associato al predittore ottimo di ordine n − 1,


che soddisfa la < An−1 , z −i > = 0 per i = 1, 2, · · · , n − 1, e z −1 Ân−1 (z) il filtro
sbiancante all’indietro ad esso ”allineato” nel senso della (C.54), che soddisfa
la < z −1 Ân−1 (z), z −i > = 0 per i = 1, 2, · · · , n − 1.
Sia inoltre α2n−1 la corrispondente varianza dell’errore di predizione:

n−1
α2n−1 = < An−1 , An−1 > = < An−1 , 1 > = rx (0) +
X
an−1,m rx (m)
m=1
(C.57)
Le proprietà di ortogonalità di A n−1 (z) e z −1 Â
n−1 (z) o dei processi di er-
rore corrispondenti (e+
n−1 (k) ed e −
n−1 (k − 1) sono ortogonali a x(k − i), i =
Appendice C. Proprietà associate alla realizzazione a traliccio. 209

1, 2, · · · , n − 1 ed e−
n−1 (k − 1) rappresenta la quotaparte di x(k − n) di cui
non rende conto la predizione lineare su n − 1 dati), suggeriscono di costru-
ire il filtro sbiancante di ordine n come loro combinazione lineare secondo un
coefficiente kn , cioè proprio secondo la (C.3), qui riprodotta per comodità,

An (z) = An−1 (z) + kn z −1 Ân−1 (z) (C.58)

Infatti il predittore ottimo di ordine n è caratterizzato dalla < A n (z), z −i >


= 0 per i = 1, 2, · · · , n, e tale condizione è soddisfatta dalla (C.58) per i =
1, 2, · · · , n − 1 qualsiasi sia il valore del parametro k n . La (C.58) porge quindi
il filtro sbiancante associato al predittore ottimo di ordine n, se k n è scelto in
modo da soddisfare la condizione:

0 = < An (z), z −n > = < An−1 (z), z −n > +kn · < z −1 Ân−1 (z), z −n > (C.59)

dove < z −1 Ân−1 (z), z −n > = < Ân−1 (z), z −(n−1) > = < An−1 (z), 1 > =
α2n−1 .
Quindi
n−1
X
an−1,i rx (n − i)
< An−1 (z), z −n >
kn = − = − i=0 . (C.60)
α2n−1 α2n−1
Per la varianza dell’errore di predizione si può ripetere il calcolo che ha portato
alla (C.30), ottenendo la relazione

α2n = < An (z), An (z) > = α2n−1 (1 − kn2 ), (C.61)

che lega la varianza dell’errore associato al predittore ottimo di ordine n a


quella del predittore ottimo di ordine n − 1 tramite il coefficiente di riflessione
kn : più prossimo ad uno è |kn | e tanto più piccola è α2n rispetto a α2n−1 .
Dalla (C.61) risulta che, essendo α 2n > 0 (per processi puramente non
deterministici [53] e per processi deterministici di ordine inferiore a n), il co-
efficiente di riflessione, kn , soddisfa la: |kn | < 1, e quindi, come anticipato, il
filtro sbiancante An (z) è a fase minima, il che implica che x(k) possa essere
ricostruito filtrando e+ n (k) con la f.d.t. a soli poli 1/A n (z), cioè

n
an,m x(k − m) + e+
X
x(k) = − n (k).
m=1

Si ha inoltre che (come deve essere) la varianza soddisfa la α 2n ≤ α2n−1 e risulta:

N
α2N = rx (0) (1 − kn2 )
Y
(C.62)
n=1
210 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

α20 = rx (0)
A0 (z) = Â0 (z) = 1
for n = 1, N
n−1
X
an−1,i rx (n − i)
i=0
kn = −
α2n−1
An (z) = An−1 (z) + kn z −1 Ân−1 (z)
Ân (z) = z −n An (z −1 )
α2n = α2n−1 (1 − kn2 )
end;

Tabella C.1 Algoritmo di Levinson

In definitiva l’algoritmo ricorsivo nell’ordine risulta come in Tab. C.1. La


complessità di calcolo è dell’ordine di N 2 e la memoria richiesta è dell’ordine di
N , contro una complessità ed una memoria dell’ordine di N 3 e N 2 , rispettiva-
mente, corrispondenti alla soluzione del sistema lineare (C.49) con un metodo
di tipo generale (ad esempio, il metodo di Cholesky, che sfrutta il fatto che la
matrice del sistema è definita positiva).
In effetti la sua più importante caratteristica è la ricorsività nell’ordine del
predittore, dato che in pratica il costo associato al calcolo della sequenza
rx (i), i = 0, 1, · · · , N , a partire dai dati, è sempre molto superiore a quello
della soluzione del sistema (C.49). Infatti il calcolo di una stima di r x (i) a
partire da un blocco di L dati, x(k), x(k + 1), · · · , x(k + L − 1), ha complessità
L·N che risulta molto maggiore di N 2 non appena sia, come è sempre, L  N .

L’algoritmo di Levinson e la realizzazione a traliccio del filtro sbiancante

L’algoritmo di Levinson è intimamente legato alla realizzazione a traliccio del


filtro sbiancante AN (z). Posto

n−1
e+
X
n−1 (k) = an−1,m x(k − m) (C.63)
m=0
n−1
e−
X
n−1 (k) = ân−1,m x(k − m) ân−1,m = an−1,n−1−m(C.64)
m=0
Appendice C. Proprietà associate alla realizzazione a traliccio. 211

con e+ −
0 (k) = e0 (k) = x(k), le equazioni di aggiornamento dei filtri sbiancanti
An (z) e Ân (z) divengono le equazioni di aggiornamento degli errori

e+
n (k) = e+ −
n−1 (k) + kn en−1 (k) n = 1, 2, · · · , N
e− +
n (k) = kn en−1 (k) + e−
n−1 (k)
(C.65)

Alle (C.65) va aggiunta la equazione per il calcolo di k n tramite (C.60). Poichè


z −1 Ân−1 (z) ha grado n ed ha nullo il coefficiente di z 0 e unitario quello di z −n ,
al numeratore della (C.60) si può dare la importante forma alternativa:

< An−1 (z), z −n > = < An−1 (z), z −1 Ân−1 (z) > = E[e+ −
n−1 (k)en−1 (k − 1)].
(C.66)
Quindi il coefficiente kn si può esprimere come:

E[e+ −
n−1 (k)en−1 (k − 1)]
kn = − (C.67)
α2n−1

secondo la quale kn risulta pari all’opposto del coefficiente di correlazione tra


e+ − 2
n−1 (k) ed en−1 (k − 1) . Se ne deduce ancora che |k n | ≤ 1, e che |kn | < 1 se il
processo di ingresso non é puramente deterministico, in particolare periodico.

In definitiva i filtri sbiancanti ottimi in avanti e all’indietro di ordine N ,


possono essere realizzati con la cascata di N celle a traliccio: gli errori e + n (k)
ed e−n (k), associati ai predittori ottimi di ordine n, sono ottenuti filtrando gli
+ −
errori en−1 (k) ed en−1 (k), associati ai corrispondenti predittori di ordine n−1,
con una cella a traliccio (Fig. C.1), che rappresenta le operazioni associate
alla (C.65): il moltiplicatore kn è calcolabile secondo le (C.61) e (C.67) a
partire dai due processi di ingresso, e + −
n (k) ed en (k), in modo perfettamente
equivalente a quanto avviene nella determinazione del predittore ottimo del
primo ordine (equazioni (C.56)).
Si osservi che, al contrario, in una realizzazione in forma diretta di A N (z),
l’aumento dell’ordine del predittore da n − 1 a n comporta che nella real-
izzazione, accanto all’aggiunta di un elemento di ritardo, tutti i coefficienti
an−1,m vengano (ricalcolati e) cambiati nei coefficienti a n,m . In altri termini,
relativamente alla determinazione della f.d.t. del filtro sbiancante di ordine
N , la parametrizzazione di AN (z) in termini dei coefficienti di riflessione k n è
una parametrizzazione ortogonale: essa consente di determinare A N (z) come
soluzione sequenziale di N problemi di predizione, in cui ogni problema è
relativo alla determinazione del predittore del primo ordine della coppia di
+ −
processi e+ −
n (k) ed en (k) con n = 1, 2, · · · , N − 1 ed e 0 (k) = e0 (k) = x(k),
2
Nell’ipotesi di stazionarietà le varianze degli errori di predizione in avanti e all’indietro
sono uguali e quindi il denominatore della (C.67) risulta αn−1 βn−1 = α2n−1 .
212 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

+ + +
x(k) e1(k) en-1 (k) en (k)

k1 kn
-1 -1
z z
- -
e1 (k) e - (k) e n (k)
n-1

Figura C.1 Realizzazione a traliccio del filtro sbiancante.

a partire dagli errori ottenuti al passo precedente (analogamente a quanto


avviene nello sviluppo di una funzione f in serie di funzioni ortogonali, φ n ,
in cui la migliore approssimazione ai minimi quadrati di ordine N si ottiene
aggiungendo a quella di ordine N − 1 il termine c N φN con cN determinato
tramite la < f, φN >= cN < φN , φN >).
Tale notevole proprietà è conseguenza diretta della ortogonalità delle f.d.t.
Ân (z) e z −1 Ân (z):

< Ân (z), Âm (z) > = < z −1 Ân (z), z −1 Âm (z) >= 0 0 ≤ m 6= n ≤ N
(C.68)
o equivalentemente della ortogonalità (incorrelazione nelle ipotesi attuali su
x(k)) dei corrispondenti processi di errore all’indietro:

E[e− − − −
n (k)em (k)] = E[en (k − 1)em (k − 1)] = 0 0 ≤ m 6= n ≤ N
(C.69)
Alla (C.58) è associata la rappresentazione di A N (z) in termini delle f.d.t.
ortogonali z −1 Ân (z)

N
kn z −1 Ân−1 (z),
X
AN (z) = 1 + (C.70)
m=1

cui corrisponde la rappresentazione di e +


N (k) in termini dei processi ortogonali
e−
n (k − 1) data dalla relazione:

N
e+ kn e−
X
N (k) = x(k) + n−1 (k − 1) (C.71)
n=1

con x(k) = e− +
0 (k). La (C.71) mostra che l’errore e N (k) è esprimibile come

combinazione lineare degli N processi di errore e n (k − 1), n = 0, 1, · · · , N − 1,
ciascuno pesato secondo il coefficiente di riflessione k n+1 , oltre che ovviamente
di x(k) = e−
0 (k).
Appendice C. Proprietà associate alla realizzazione a traliccio. 213

C.4.2 Proprietà spettrali dell’errore di predizione


Si è osservato in precedenza, a proposito della (C.49), che lo stesso predittore
ottimo di ordine N è associato a tutti i processi stazionari aventi gli stessi
valori della funzione di autocorrelazione normalizzata ρ x (i) per i = 1, ..., N
(ρx (0) = 1 per costruzione).
In particolare, se gli am sono i coefficienti del predittore ottimo di ordine N
associati al processo x(k), è facile verificare che la funzione di autocorrelazione,
ry (i) = E[y(k)y(k + i)], del processo autoregressivo

N
X
y(k) = − am y(k − m) + w(k) (C.72)
m=1

con w(k) processo bianco a media nulla e varianza σ w 2 , soddisfa alle (C.49) e

quindi il processo y(k) è uno dei processi cui corrisponde il filtro sbiancante
AN (z).
Infatti, se si moltiplicano ambo i membri di (C.72) per y(k −i), se ne calcola la
aspettazione e si osserva che la incorrelazione di w(k) comporta la E[w(k)y(k−
i)] = 0 per i > 0, si trova:

N
X
ry (i) + am ry (i − m) = 0 ∀i > 0 (C.73)
m=1

da cui la conclusione. Si osservi che, tra i processi che soddisfano alla (C.49),
il processo autoregressivo (C.72) è l’unico che la soddisfa non solo per i =
1, 2, · · · , N , ma anche per ogni valor positivo di i.
La considerazione del processo autoregressivo (C.72) consente di dedurre tre
importanti risultati.

Il primo giustifica il nome di filtro sbiancante dato alla f.d.t. A N (z) as-
sociata al predittore ottimo di ordine N del processo x(k). Infatti la densità
spettrale di potenza di y(k) è data da

σw2
Ry (ejθ ) =
|AN (ejθ )|2

e le densità Ry (ejθ )/σy2 e Rx (ejθ )/σx2 hanno uguali i primi N + 1 termini dello
sviluppo in serie di Fourier e quindi coincidono per N → ∞. Ne viene che
asintoticamente la densità spettrale R eN (ejθ ) = |AN (ejθ )|2 Rx (ejθ ), associata
all’errore di predizione e+ −
N (k) (o eN (k)) soddisfa la relazione

lim ReN (ejθ ) = lim |AN (ejθ )|2 Rx (ejθ ) = cost (C.74)
N →∞ N →∞
214 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.

da cui si conclude che l’errore di predizione è asintoticamente bianco.

Inoltre, moltiplicando ambo i membri di (C.72) per w(k), si trova la


E[y(k)w(k)] = E[w 2 (k)] = σw2 e quindi, moltiplicando per y(k) la (C.72),

si trova
N
2
X
ry (0) + am ry (m) = σw (C.75)
m=1
La (C.75) mostra che, se nella (C.72) si sceglie la varianza del processo bianco
w(k) pari al valore α2N = min[E(e2N )] dato dalla (C.47), si ottiene un processo
y(k) che oltre a verificare la ρy (i) = ρx (i) per i = 0, 1, · · · , N , verifica anche la
ry (i) = rx (i) per i = 0, 1, · · · , N .
A questo punto la condizione rx (0) = ry (0), espressa in termini di densità
spettrali, diviene:
2π ReN (ejθ ) dθ 2π 1 dθ
Z Z
σx2 = = α2N (C.76)
0 |AN (ejθ )|2 2π 0
jθ 2
|AN (e )| 2π
dove la prima espressione vale per ogni A N (z) a fase minima, mentre la seconda
vale solo per il filtro sbiancante associato al predittore ottimo del processo x(k).
Il confronto tra le due espressioni di σ x2 consente di trarre la importante
conclusione che, per quanto riguarda il calcolo della varianza di x(k), la den-
sità spettrale dell’errore di predizione associato al predittore ottimo (densità
che è costante solo asintoticamente) si comporta come quella di un rumore
bianco di pari varianza, cioè di varianza α 2N .

Infine la considerazione del processo autoregressivo y(k) consente di dare


una espressione al valore asintotico della varianza dell’errore di predizione.
Allo scopo dimostriamo che, se AN (z) è un polinomio monico (A(∞) = 1) a
fase minima, ln |AN (ejθ )| ha valore medio nullo. Infatti, applicando il teorema
dei residui, si ha
"I #
Z 2π Z 2π 
dz
jθ −jθ −1
ln |AN (e )|dθ = Re ln AN (e )dθ = Re ln AN (z )
0 0 |z|=1 z
= Re [2πj ln AN (∞)] = 0. (C.77)
Quindi la densità spettrale del processo autoregressivo y(k) corrispondente
2 = α2 soddisfa la condizione
alla (C.72) con σw N

2π α2N dθ
Z
ln jθ 2
= ln α2N (C.78)
0 |AN (e )| 2π
da cui, ricordando che lim N →∞ α2N /|AN (ejθ )|2 = Rx (ejθ ), si ottiene
R 2π dθ
σ2 Rx (ejθ ) 2π
lim 2x = hR0

i (C.79)
N →∞ αN exp dθ
ln Rx (ejθ ) 2π
0
Appendice C. Proprietà associate alla realizzazione a traliccio. 215

Il rapporto tra la varianza σx2 del processo e la varianza α2N dell’errore di


predizione viene detto guadagno di predizione. In base alla (C.79) esso tende
per N → ∞ al rapporto tra la media aritmetica e la media geometrica 3 della
densità spettrale del processo x(k): tale valore è minimo e pari ad uno per
un processo bianco, ed è massimo e pari a infinito per un processo puramente
deterministico, ad esempio, con spettro a righe, per il quale l’integrale di
ln Rx (ejθ ) è nullo.

3
Se θk = 2πk/L con k = 0, 1, · · · , L − 1, si ha ( k Rx (ejθk ))1/L = exp( ln Rx (ejθk )/L)
Q P
k
da cui passando al limite per L → ∞ si ottiene il numeratore della (C.71).
216 C.4 Polinomi ortogonali sul cerchio di raggio unitario e predizione lineare.
Bibliografia

[1] P. Aziz, H. Sorensen, J. Van der Spiegel: ”An overview of sigma-delta


converters”, IEEE Signal Processing Magazine, 13, 1, 61-84, Jan. 1996.

[2] L. Banzato, N. Benvenuto, G. Cortelazzo: ”A design technique for two-


dimensional multiplierless FIR filters for video applications”, IEEE Trans.
Circuits Syst. Video Technology, 2, 273-284, Sept. 1992.

[3] C. Barnes: “On the design of optimal state–space realizations of second–


order digital filters”, IEEE Trans. Circuits and Systems, 31, 602-608, July
1984.

[4] B. Bomar, J. Hung: “Minimum roundoff noise filters with some power–
of–two coefficients”, IEEE Trans. Circuits and Systems, 31, 10, 833-840,
Oct. 1984.

[5] B. Bomar: “New second–order state–space structures for realizing low


roundoff noise digital filters”, IEEE Trans. Acoust., Speech, Signal Proc.,
333, 106-110, Feb. 1985.

[6] .̋ Butterwerk, J. Ritzerfeld, M. Werter: “Finite wordlength in digital


filters: a review”, Report 88-E-205, Eindhoven University of Technology,
Oct. 1988.

[7] G.F. Cariolaro: “Analisi spettrale”, Progetto, Padova, 1992.

[8] G.F. Cariolaro: “La teoria unificata dei segnali”, UTET, Milano, 1966.

[9] T. Claasen et al: ”Signal processing for improving the dynamic range of
A/D and D/A converters”, IEEE Trans. Acoust., Speech, Signal Proc.,
5, 529-538, Oct. 1980.

[10] V. Comincioli: “Analisi numerica: metodi, modelli e applicazioni”,


McGraw–Hill, Milano, 1995.

[11] J. Coonen: ”An implementation guide to a proposed standard for floating


point”, Computer, 68-79, Jan. 1980.

[12] A.G. Constatinides ”Alternative approach to design of wawe digital fil-


ters”. Electronics letters, 10, 5, 56-60, Jan. 1974.
218 BIBLIOGRAFIA

[13] S. Cucchi, F. Molo: ”Digital filters derived from LC ladders”, Rapporto


di Laboratorio Telettra, 13/77, Milano, Settembre 1977.

[14] G.Dehner: ”Optimization of roundoff noise in recursive digital filters”,


AEÜ, 29, 12, 505-510, 1975.

[15] A. Fettweis: ”Digital filter structures related to classical filter networks”,


AEÜ, 25, 2, 79-89, 1971.

[16] A. Fettweis: ”Wave digital filters: theory and practice”, Proc. of the
IEEE, 74, 2, 270-327, Feb. 1986.

[17] E. Fornasini, G. Marchesini: “Appunti di teoria dei sistemi”, Libreria


Progetto, Padova, 1992.

[18] L. Gazsi: ”Explicit formulas for lattice wave digital filters”, IEEE Trans.
Circuits and Systems, 32, 68-88, Jan. 1985.

[19] R.M. Gray: ”Source coding theory”, Kluwer, Boston, 1990.

[20] A.H. Gray, J. Markel: ”Digital lattice and ladder filter synthesis”, IEEE
Trans. Audio Electroacoust., 21, 491-500, Dec .1973.

[21] A.H. Gray, J. Markel: ”A normalized digital filter structure”, IEEE Trans.
Acoust., Speech, Signal Proc., 23, 268-277, June 1974.

[22] U. Grenander, U. Szego: ”Toeplitz forms and their application”, Univer-


sity of California Press, Berkeley, 1958.

[23] K. Hwang: ”Computer arithmetic”, Wiley, N.Y., 1979.

[24] J.P. Hayes: “Computer architecture and organization”, McGraw Hill,


N.Y., 1988.

[25] S. Hein, A. Zakhor: ”Sigma delta modulators”, Kluwer, Boston, 1993

[26] W. Higgins, D. Munson: ”Optimal and suboptimal error spectrum shap-


ing for cascade-form digital filters”, IEEE Trans. Circuits and Systems,
31, 429-437, 1984.

[27] L. Jackson: ”Digital filters and signal processing”, Kluwer, Boston, 1986.

[28] L. Jackson, A. Lindgreen Y. Kim: “Optimal synthesis of second–order


state–space structures for digital filters”, IEEE Trans. Circuits and Sys-
tems, 26, 149-153, March 1979.
BIBLIOGRAFIA 219

[29] L. Jackson: ”Roundoff noise analysis for fixed point digital filters realized
in cascade and parallel form”, IEEE Trans. Audio and Electroacoust.,
AU-18, 107-122, June 1970.

[30] N. Jayant, P.Noll: ”Digital coding of waveforms”, Prentice-Hall,


Englewood-Cliffs, NJ, 1984.

[31] E.I. Jury: ”Theory and applications of the Z-transform method”, John
Wiley and Sons, N.Y., 1964.

[32] H. Kikuchi, H. Watanabe e T. Yanagisawa: ”Interpolated FIR filters


using cyclotomic polynomials”, Proc. IEEE ISCAS, 2009-2012, Helsinky,
1988.

[33] A. Laub: ”Numerical linear algebra aspects of control design computa-


tions”, IEEE Trans. Automatic Control, 30, 2, 97-108, Feb. 85.

[34] A. Lepschy, U. Viaro: ”Guida allo studio dei controlli automatici”, Pa-
tron, Bologna, 1986.

[35] A. Lepschy, G.A. Mian, U. Viaro: “Contributions to the study of the


quantization effects in fixed–point digital filters”, Alta Frequenza, LIII,
1, 3-14, Jan. 1989.

[36] Y.C. Lim, S.R. Parker: ”FIR filter design over a discrete powers–of–two
coefficient space”, IEEE Trans. Acoust., Speech, Signal Proc., 31, 583-
591, June 1983.

[37] L.P. Lipshitz, R.A. Wanmaker, J. Vanderkooy: “Quantization and dither:


a theoretical survey”, J.Audio Eng. Soc., 40, 355-375, May 1992.

[38] J.L. Long, T.N. Trick: “An absolute bound on limit cycles due to roundoff
errors in digital filters”, IEEE Trans. on Audio and Electroacoustics, Vol.
AU-21 n.l, 27-30,Feb.1973.

[39] H. Lu, E. Lee, D. Messerschmitt: “Fast recursive filtering with slow pro-
cessing elements”, IEEE Trans. Circuits and Systems, 32, 11, 1119-1129,
Nov. 1985.

[40] J.D. Markel, A.H. Gray: ”Linear prediction of speech”, Springer-Verlag,


Berlin, 1976.

[41] J.Markel, A.Gray: ”Roundoff characteristics of a class of orthogonal poly-


nomials structures”, IEEE Trans. Acoust., Speech, Signal Proc., 23, 5,
473-485, Oct.1975.
220 BIBLIOGRAFIA

[42] G. Martinelli, M. Salerno: “Fondamenti di Elettrotecnica”, Ed. Siderea,


Roma, 1979.

[43] G.A. Mian, A.P. Nainer: ” On the performance of optimum linear phase
low-pass digital filters under impulse response coefficient quantization”,
IEEE Trans. Acoust., Speech, Signal Processing, 29, 4, 928-932, Aug.
1981.

[44] W. Mills, C. Mullis, R. Roberts: “Low roundoff noise and normal real-
izations of fixed point IIR digital filters”, IEEE Trans. Acoust., Speech,
Signal Processing, 29, 893-903, Aug. 1981.

[45] L. Montgomery, B. Bomar, R. Joseph, G. Chia-Jin Yang: “Floating–


point analysis of second order state–variable digital filter structure”, IEEE
Trans. Circuits and Systems II, 39, 2, 90–98, Feb. 1992.

[46] C. Mullis, R. Roberts: “Synthesis of minimum roundoff noise fixed point


digital filters”, IEEE Trans. Circuits and Systems, 23, 551–561, Sept.
1976.

[47] C. Mullis, R. Roberts: “Roundoff noise in digital filters: frequency trans-


formations and invariants”, IEEE Trans. Acoust., Speech, Signal Process-
ing, 24, 538-550, Dec. 1976.

[48] Y. Neuvo, C. Dong e S.K. Mitra: ”Interpolated finite impulse response


filters”, IEEE Trans. Acoust., Speech, Signal Processing, 32, 3, 563-570,
April 1980.

[49] A. Oppenheim, R. Schafer: ”Discrete–time signal processing”, Prentice-


Hall, Englewood-Cliffs, NJ, 1991.

[50] A.V. Oppenheim, R.W. Shafer: ”Digital signal processing”, Prentice-


Hall, Englewood-Cliffs, 1975.

[51] H. Orchard: ”Inductorless filters”, Electron. Letters, 2, 224-225, 1966.

[52] A.Peled, B.Liu: ”Digital signal processing”, J.Wiley & Sons, N.Y., 1976.

[53] G. Picci: ”Elementi di elaborazione statistica del segnale”, CLEUP,


Padova, 1986.

[54] B.D. Rao: “Floating point arithmetic and digital filters”, IEEE Trans.
Signal Processing, 40, 1, 85–95, Jan. 1992.

[55] P. Regalia, S. Mitra, P. Vaidyanathan: ”The digital allpass filter: a ver-


satile signal processing building block”, Proc. of the IEEE, 76, 1, 19-37,
Jan. 1988.
BIBLIOGRAFIA 221

[56] L.R.Rabiner, B.Gold: ”Theory and application of digital signal process-


ing”, Prentice-Hall, 1974.

[57] R. Roberts, C. Mullis: ”Digital signal processing”, Addison-Wesley, Read-


ing, 1987.

[58] T. Saramaki, Y. Neuvo e S.K. Mitra: ”Design of computationally efficient


interpolated FIR filters”, IEEE Trans. Circuits and Systems, 35, 1, 70-87,
April 1988.

[59] L. Schuchman: ”Dither signals and their effect on quantization noise”,


IEEE Trans. Comm. Technology, 12, 162-165, Dec. 1964.

[60] D. Sereno, P. Valocchi: “Codifica numerica del segnale audio”, Edizioni


SSGRR, L’Aquila, 1996.

[61] P. Sim, K. Pang: “Effects of input scaling on the asymptotic overflow


stability properties of second–order recursive digital filters”, IEEE Trans.
Circuits and Systems, 32, 10, 1008-1015, Oct. 1985.

[62] A. Sripad, D. Snyder: ”A necessary and sufficient condition for quanti-


zation errors to be uniform and white”, IEEE Trans. Acoust., Speech,
Signal Proc., 25, 442-450, Oct. 1977.

[63] J. Stoer: ”Introduzione all’analisi numerica”, Zanichelli, Bologna, 1979.

[64] L. Thiele: “On the sensitivity of linear state–space systems”, IEEE Trans.
Circuits and Systems, 33, 5, 502-510, May 1986.

[65] T. Thong, B. Liu: ”Error shaping in narrowband recursive digital filters”,


IEEE Trans. Acoust., Speech, Signal Process., 25, 200-203, 1977.

[66] A. Unver, K. Abdullah: ”A tighter practical bound on quantization errors


in second order digital filters with complex poles”, IEEE Trans. Circuits
and Systems, 22, 6, 632-633, June 1975.

[67] P. Vaidyanathan, S. Mitra: ”Low passband sensitivity digital filters”,


Proc. of the IEEE, 72, 404-421, April 1984.

[68] P. Vaidyanathan, P. Regalia e S. Mitra: ”Design of doubly complemen-


tary IIR digital filters using a single complex allpass filter”, IEEE Trans.
Circuits and Systems, 34, 378-389, April 1987.

[69] P. Vaidyanathan, S. Mitra: ”Very low sensitivity FIR implementation


using structural passivity concept”, IEEE Trans. Circuits and Systems,
32, 4, 360-364, April 1985.
222 BIBLIOGRAFIA

[70] P. Vaidyanathan, V. Liu: “An improved sufficient condition for absence


of limit cycles in digital filters”, IEEE Trans. Circuits and Systems, 34,
3, 319-322, March 1987.

[71] A. Willson, H. Orchard: ”Insights into digital filters made as the sum of
two allpass functions”, IEEE Trans. Circuits and Systems I, 42, 129-137,
March 1995.

[72] A. I. Zverev: ”Handbook of filter synthesis”, J. Wiley and Sons, N.Y.


1967.

Potrebbero piacerti anche