Sunteți pe pagina 1din 38

[Verbauwhede]

[Verbauwhede]
Consideraţii generale:

■ tipuri de reprezentări numerice: a) virgulă fixă


b) virgulă flotantă
gama dinamică | reprezentarea numerelor negative | operaţii elementare

■ surse de erori: a) conversia A/D


b) cuantizarea coeficienţilor
c) cuantizarea rezultatului operaţiilor numerice
modele statistice | trunchiere/rotunjire | ciclu limită

■ diminuarea efectelor datorate preciziei finite


scalare | structuri robuste | arhitectura DSP
Tipuri de reprezentare numerică: virgulă fixă
 manipulează numere întregi
 tipic foloseşte 16 biţi → notaţia Q
 pas de cuantizare uniform în gama ± 32767
 cost redus, complexitate sporită de programare

Tipuri de reprezentare numerică: virgulă flotantă

 manipulează numere întregi şi fracţionare: M·2E, 0.5 ≤ M < 1


 tipic foloseşte 32 biţi → standard IEEE 754
 pas de cuantizare neuniform, gamă dinamică foarte extinsă: ± 3.4·1038
 cost ridicat, complexitate redusă de programare
“There are still some differences in cost and ease of use between fixed and floating point
DSPs, but these have become less significant over time. The critical feature for
designers is the greater mathematical flexibility and accuracy of the floating-point format.
For application data sets that require real arithmetic, greater precision and a wider
dynamic range, floating-point DSPs offer the best solution. Application data sets that do
not require these computational features can normally use fixed-point DSPs. Once the
data set requirements have been determined, it should no longer be difficult to decide
whether to use a fixed or floating-point DSP.”
G. Frantz, R. Simar, “Comparing Fixed and Floating-Point DSPs”, Texas Instruments
Tipuri de reprezentare numerică: virgulă fixă → reprezentarea numerelor negative

B
X  0. b1b2 ...bB   bi 2 i , X  0
i 1

X SM  1. b1b2 ...bB , X  0 : Modul  semn

X 1C  1. b1b2 ...bB  2  2 B X , X  0 : Complement faţă de 1

X 2C  1. b1b2 ... bB  00...01  2  X , X  0 : Complement faţă de 2

adunare modulo-2, se ignoră eventualul carry


Tipuri de reprezentare numerică: virgulă fixă → reprezentarea numerelor negative
Tipuri de reprezentare numerică: virgulă fixă → reprezentarea numerelor negative
Tipuri de reprezentare numerică: virgulă fixă → reprezentarea numerelor negative
Tipuri de reprezentare numerică: virgulă fixă → operaţii aritmetice

 Adunarea: codarea 1C şi 2C presupune adunare bit cu bit (modulo 2)


→ codarea 2C*: se ignoră eventualul bit de carry pentru MSB
→ codarea 1C: eventualul bit de carry se adună la LSB
→ codarea SM: algoritmi complicaţi
4 3 1
Exemplu:  
8 8 8
→ 2C: 0100 1101 0001
→ 1C: 0100 1100  0000  0001 0001

 Înmulţirea: → codare SM: algoritm simplu


→ codare 1C şi 2C: algoritmi speciali

* În cazul codării 2C, dacă sumarea repetată a mai multor termeni se încadrează în
gama dinamică a sumatorului rezultatul final va fi corect, chiar dacă sumele parţiale
au condus la apariţia unor depăşiri !
Erori de cuantizare: conversia A/D

Fig. 1: Modelul unui circuit de conversie A/D

Modele statistice pentru cuantizare (în absenţa saturaţiei):


• eroarea de cuantizare e[n] este distribuită uniform
• e[n] şi x[n] sunt necorelate
• x[n] este o realizare a unui proces aleator staţionar
Erori de cuantizare: conversia A/D

a) Fig. 3: Densitate de probablilitate pentru e[n]:


a) rotunjire; b) complement faţă de 2

Raport semnal-zgomot de cuantizare:

b)

• pentru (b+1) biţi avem δ = 2-(b+1)RFS:


Fig. 2: Convertor A/D pe 3 biţi:  48 2  R 
a) caracteristica intrare-ieşire; SNRA / D 10log10  2b x 2   6.02b  16.81  20log10  FS 
2 R   x 
b) eroarea de cuantizare  FS 
Erori de cuantizare: conversia A/D

 Valoarea SNR depinde atât de valoarea efectivă σx a semnalului analogic de intrare,


cât şi de gama dinamică RFS a convertorului A/D
 Probabilitatea ca un eşantion analogic având distribuţie gaussiană şi valoare medie
K
2  y2 / 2
nulă să se afle în intervalul [- K σx, K σx] este P ( K ) 
 e dy
0

Exemplu: Convertor A/D cu (b+1) biţi, având gama dinamică RFS = K σx


R 
SNRA / D  6.02b  16.81  20log  FS   6.02b  16.81  20log10  K 
 x 

• pentru K = 4, P(K) = 0.9544 → 456 eşantioane din 10000 ies din gama dinamică
• pentru K = 6, P(K) = 0.9974 → 26 eşantioane din 10000 ies din gama dinamică
• în practică se alege K = 8, aşa încât gama dinamică [- 8 σx, 8 σx] previne saturaţia
Erori de cuantizare: conversia A/D

 Propagarea erorii de cuantizare datorate conversiei A/D la ieşirea filtrului:


se presupune că filtrul lucrează cu precizie infinită
filtru liniar, x[n] şi e[n] presupuse necorelate
v[n]  h[n] e[n]

Valoare medie:

Dispersie:
Fig. 4: Model pentru studiul propagării zgomotului
de cuantizare datorat conversiei A/D
Puterea zgomotului la ieşire:

Puterea normalizată la ieşire:


Se poate arăta că prezenţa unor poli plasaţi
aproape de conturul cercului de rază unitate
(filtre cu Q mare) conduce la creşterea puternică
a zgomotului de la ieşire datorat conversiei A/D.
Erori de cuantizare: trunchiere/rotunjire

■ pas de cuantizare: δ = 2-b


■ efectul cuantizării numerelor negative depinde
de formatul utilizat: modul-semn | complement faţă de 1 | 2
■ eroarea de trunchiere/rotunjire: εt/r = Q(x) – x
Q( x)  x Q( M )  M
■ pentru virgulă flotantă: cuantizare numai pentru mantisă:   
x M
Trunchiere Rotunjire

Virgulă fixă: -δ < εt ≤ 0: pentru numere pozitive şi 2C


0 ≤ εt < δ: pentru modul-semn şi 1C
Virgulă flotantă: -2δ < εt ≤ 0: pentru MS, 1C şi 2C+ Virgulă fixă: -δ/2 < εr ≤ δ/2: pentru orice număr
0 ≤ εt < 2δ: pentru 2C- Virgulă flotantă: -δ < εr ≤ δ: pentru orice număr
Erori de cuantizare: trunchiere/rotunjire
Erori de cuantizare: cuantizarea coeficienţilor
■ funcţia de transfer cuantizată Hˆ ( z ) diferă de H(z)
■ efectul principal: mutarea polilor şi zerourilor → instabilitate potenţială pentru IIR
Exemplu IIR: filtru FTJ eliptic, ordin 5

Formă directă Hˆ ( ) Realizare în cascadă


H ( )

Exemplu FIR: filtru FTJ echiriplu, ordin 39,


formă directă
Erori de cuantizare: cuantizarea coeficienţilor → deplasare poli / zerouri
N N
j
■ se consideră polinomul B ( z )   bi z   ( z  zk ) cu rădăcinile zk  rk e k
i

i 1 k 1
N N
■ bi  bi  bi  Bˆ ( z )   (bi  bi ) z   ( z  zˆk )
i

i 1 k 1
N
k z  zk

1
■ ; k   Rk  j X k
B ( z ) k 1 z  zk B( z ) z  zk

, unde: • sensitivităţile Sb depind numai de B(z),


nu şi de ∆B
• odată calculaţi vectorii Sb, deplasarea
polilor şi zerourilor poate fi determinată
pentru orice variaţie ∆B
• pentru realizările în formă directă, ∆B
apar ca intrări de multiplicatoare
Erori de cuantizare: cuantizarea coeficienţilor → deplasare poli / zerouri

■ se consideră un filtru digital având R multiplicatoare cu coeficienţii αk, k = 1..R,


ale căror valori depind liniar de setul de coeficienţi {bi} ai polinomului B(z)
R  b 
bi
■  k   k   k  bi    k , i  1 N  1  B  C * α , Cik   i 
k 1
 k   k 

, unde Sbrk şi Sbθk sunt cele definite anterior

• matricea C depinde de structura particulară a filtrului şi se calculează o singură dată


• relaţiile pot justifica faptul că anumite structuri de filtre tolerează mai bine efectele
datorate cuantizării coeficienţilor
Erori de cuantizare: cuantizarea coeficienţilor → structură biquad

1   i .z 1   i .z 2 1.5
H i (z) 
1   i . z 1   i . z  2 1

0.5

i 0

-0.5
1

-2 2 i -1

-1 -1.5
-1.5 -1 -0.5 0 0.5 1 1.5

Fig. 5: Filtrul este stabil dacă parametrii acestuia Fig. 6: Poziţiile polilor pentru cuantizare
sunt plasaţi în interiorul domeniului triunghiular pe 5 biţi a parametrilor δi şi γi
Erori de cuantizare: cuantizarea rezultatelor operaţiilor numerice

 în virgulă fixă numai rezultatul operaţiilor de înmulţire este cuantizat


 ipoteze simplificatoare: a) {eα[n]} este zgomot alb staţionar, cu distribuţie uniformă
b) {eα[n]} necorelată cu {v[n]}, {u[n]} şi alte surse de zgomot
Observaţii:
→ secvenţa {eα[n]} este necorelată cu {v[n]} doar în cazul rotunjirii şi trunchierii 2C !
→ în reprezentarea 2C, rezultatul final al unei sumări repetate este corect chiar dacă sumele
parţiale conduc la depăşiri ! (în ipoteza că suma finală se încadrează în gama dinamică maximă
a sumatorului)

a)
b)
Fig. 7: a) reprezentarea unui multiplicator; b) model statistic
Erori de cuantizare: cicluri limită

 Ciclu limită: comportare oscilantă care poate apare în filtrele IIR datorită
caracterului neliniar introdus de cuantizare
 2 tipuri de cicluri limită: a) granular (amplitudine mică); b) overflow (amplitudine mare)
 identificarea condiţiilor în care un filtru IIR nu prezintă cicluri limită se bazează pe
descrierea pe baza ecuaţiilor de stare
saturaţia presupune inversarea semnului !

Exemplu: y[k] = -0.625.y[k-1]+u[k]


Rotunjire pe 4 biţi
Intrare: u[0] = 0, y[0] = 3/8
Ieşire: y[k] = 3/8, -1/4, 1/8, -1/8,
1/8, -1/8, 1/8, -1/8, 1/8,..
Fig. 8: Tratarea depăşirilor presupune utilizarea unei
caracteristici intrare-ieşire neliniare
[Verbauwhede]
Erori de cuantizare: cicluri limită
Erori de cuantizare: cicluri limită
Erori de cuantizare: cicluri limită
Reducerea efectelor erorilor de cuantizare: scalarea dinamică

 în reprezentarea în virgulă fixă pot apare depăşiri (overflow) în anumite noduri


interne precum intrări de multiplicatoare sau ieşiri de sumatoare
 probabilitatea de apariţie a depăşirilor poate fi minimizată prin scalarea convenabilă
a semnalelor interne → constantele de multiplicare respective pot fi “absorbite” deseori
de către multiplicatoarele deja existente
→ scalarea (subunitară) degradează SNRA/D

{
toate numerele sunt considerate fracţionare
intrarea are amplitudine subunitară: |x[n]| ≤ 1
Obiectivul este ca: |ur[n]| ≤ 1, pentru orice r şi n
Observaţii:
a) scalarea este utilizată numai în virgulă fixă
b) semnalul de intrare într-un multiplicator cu
fr[n], Fr(ω) un coeficient fracţionar nu trebuie să se satureze
c) pre-scalarea trebuie urmată de post-scalare
Fig. 9: Scalare dinamică nod care necesită scalarea
Reducerea efectelor erorilor de cuantizare: scalarea dinamică

A. Condiţii formulate în domeniul timp - Safe scaling:

B. Condiţii formulate în domeniul frecvenţă:

Observaţii: a) în cazul în care constantele de scalare nu pot fi “absorbite” de către


multiplicatoarele deja existente, se preferă ca valorile acestora să fie alese ca
puteri ale lui 2 → scalarea se reduce la o simplă deplasare
b) estimarea efectului erorilor de rotunjire/trunchiere se efectuează pe varianta
scalată a filtrului
Reducerea efectelor erorilor de cuantizare: scalarea dinamică
Elemente de proiectare: determinarea rezoluției optime

[Han, Evans]
Elemente de proiectare: determinarea rezoluției optime

[Han, Evans]
Elemente de proiectare: determinarea rezoluției optime

[Han, Evans]
Elemente de proiectare: determinarea rezoluției optime

[Han, Evans]
Reducerea efectelor erorilor de cuantizare: realizări robuste
 arhitecturi robuste de filtre digitale: cascadă (biquad), latice, ecuaţii de stare
 reguli de grupare a perechilor de poli-zerouri în cazul arhitecturilor în cascadă:
• perechea de poli complex conjugaţi plasată cel mai aproape de conturul
cercului de rază unitate se grupează cu perechea de zerouri cea mai apropiată
• următoarea pereche de poli situată cel mai aproape de prima pereche de poli
se grupează cu perechea de zerouri cea mai apropiată ...

Fig. 10: Grupare optimă poli-zerouri


Fig. 11: Răspuns în frecvenţă filtru necuantizat (‘o’)
pentru arhitecturi în cascadă
latice (‘+’), în formă directă (‘-’)
Referinţe bibliografice:

[1] Proakis, J.G., Manolakis, D.K., Digital Signal Processing, Prentice-Hall, 2007
[2] Mitra, S.K., Digital Signal Processing: A Computer-Based Approach, 2/E,
McGraw-Hill, 2000
[3] Oppenheim, A.V. , Schafer, R.W. , Discrete-Time Signal Processing, Prentice-
Hall, 2001
[4] I. Verbauwhede, H5H4 course slides, K.U. Leuven
[5] B.L. Evans, Real Time DSP Laboratory, course notes, Univ. of Texas at Austin
[6] V. Owall, DSP Design, course slides, LTH Sweden

S-ar putea să vă placă și