Sunteți pe pagina 1din 10

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

REPREZENTAREA NUMERELOR SI ARITMETICA


LA PROCESOARELE DE SEMNAL

1. Generaliti
Fr a avea informaii legate de convenia folosit la reprezentarea numerelor binare n calculator nu se
poate atribui o valoare exact unui numr binar, acesta reprezentnd o niruire de bii. De exemplu, ce
valoare zecimal are 10111011B = X ? Este pozitiv sau negativ ? Aceasta depinde de reprezentarea
folosit.
La alegerea unui Procesor Digital de Semnal (DSP) pentru o anumit aplicaie una dintre caracteristicile
importante la luarea deciziei o constituie modul de reprezentare (binar) al datelor de ctre procesor. Din
acest punct de vedere DSP-urile de pe pia se pot clasifica dup cum arat fig. 1.

DSP
Virgul fix
16 bii

20 bi i

Virgul flotant
24 bii

32 bii

IEEE 754

Altele

Fig. 1 Reprezentarea numerelor la DSP-urile uzuale

Aritmetica n virgul fix a fost folosit de ctre primele DSP-uri i la ora actual mai este nc
predominant la multe dintre DSP-urile uzuale.
DSP-urile n virgul fix pot reprezenta numerele fie ca:
ntregi (aritmetica ntreag) fiind folosit de DSP la operaii de control, calcul de adrese sau
alte operaii care nu implic semnale, sau
fracionar (aritmetica fracionar) cu valori ntre -1 i +1 util n calculele legate de semnale.
Algoritmii i hard-ul folosit la implementarea aritmeticii fracionare sunt virtual identici cu cei folosii la
aritmetica ntreag. Diferena principal ntre cele dou aritmetici apare la modul de folosire a rezultatelor
operaiilor de nmulire. Majoritatea DSP-urilor n virgul fix accept cele dou aritmetici.
Intruct sistemele numerice folosesc pentru reprezentarea numerelor un cuvnt de o anumit lungime
operaiile aritmetice se vor executa cu o anumit precizie (limitat). Numerele vor fi astfel reprezentate pe
un cerc (inel) n loc de axa real infinit, situaie n care poate s apar depirea aritmetic.
n cazul DSP-urilor n virgul mobil, valorile sunt reprezentate de o mantis i de un exponent conform
relaiei mantisa*2exponent . Mantisa este n general o fracie n intervalul -1.0 i +1.0, n timp ce exponentul
este un ntreg care reprezint numrul de poziii cu care trebuie deplasat stnga punctul binar (termen
definit analog cu punctul zecimal) pentru a obine valoarea reprezentat.
Procesoarele n virgul mobil sunt mai uor de programat dect cele n virgul fix, dar sunt i mai
scumpe. Acest lucru se datoreaz complexitii sporite a circuitului care se traduce ntr-o suprafa mai
mare a chip-ului. Uurinta programrii acestor procesoare este dat i de faptul c programatorul nu mai
trebuie s gestioneze cazurile de depire (overflow) ale acumulatorului ca i n cazul procesoarelor n
virgul fix (aceast gestionare nseamn scalarea periodic a rezultatului n diverse faze ale prelucrrii).
1

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Majoritatea aplicaiilor de cost redus utilizeaz procesoare n virgul fix. Programarea n acest caz nu are
n general nici o dificultate, deoarece n faza de simulare numeric
a algoritmului (care precede faza de
dezvoltare) se pot detecta toate situa iile n care este necesar corecia rezultatului pentru a se evita
saturarea. Pentru o mai bun nelegere a acestor fenomene de overflow, vom prezenta dou situaii care se
ntalnesc n cazul procesoarelor DSP sau a celor ce suport tehnologia MMX, i anume: wraparound
(modulo 2n) i saturarea.
Pentru exemplificare, se prezint n cele ce urmeaz o aplicaie pe imagini: avnd imaginea original pe
nivele de gri (Fig. 2a) se poate obine efectul de wraparound (Fig. 2b) i de saturare (Fig. 2c) folosind
urmtoarele prelucrri:
-

dac rezultatul adunrii ntre pixeli i o valoare produce depire, rezultatul este trunchiat, lundu-se
n considerare doar biii cei mai puin semnificativi (efectul wraparound), datorit limitrii la n bii;

dac rezultatul adunrii produce o depire, apare situaia de saturare i astfel rezultatul este limitat
la valoarea maxim a domeniului;

b) Influena operaiei modulo 2n;

Fig2. a) Imaginea original pe nivele de gri;

c) Influena saturrii.

Numerele mici reprezint zone cu nivele de gri nchise la culoare (negru), n timp ce numerele mari
reprezint arii de culoare deschis (alb). Folosind 8 bii pentru reprezentarea valorilor pixelilor din imagine,
se va obine gama numerelelor [0; 255], cu valoarea 0 pentru negru i 255 pentru alb.
Pentru a ilumina imaginea original (Fig. 2a) se poate aduna un numr pozitiv ntreg (de exemplu 6410=40h)
la fiecare pixel din imagine.
n cazul efectului de wraparound (modulo 28), dac exist depire (adic valoarea unui pixel depete
pragul maxim de 255), rezultatul final va fi trunchiat a.. doar biii cei mai puin semnificativi vor fi
reinui. De exemplu, dac adunm 6410 la 25010 (aproape alb), vom obine:
250 zecimal
+ 64 zecimal
------------= 314 zecimal
= 58 zecimal

1111.1010 binar
+ 0100.0000 binar
-----------------= 10011.1010 binar
= 0011.1010 binar

- se produce depasire (overflow)


- se retin doar cei mai putin semnificativi 8 biti

Rezultatul este 5810, producnd o zon nchis la culoare (aproape negru) n locul uneia mai deschise la
culoare, cum era de ateptat. S-a obinut un efect invers celui dorit, deci o inversare de nuan, deoarece
valorile de nuan deschis au devenit zone de nuan nchis.
n cazul efectului de saturare, prin adugarea unei valori fiecrui pixel din imaginea original, zonele
deschise la culoare vor deveni zone pur albe. Pragul de saturare n acest caz este valoarea maxim
reprezentabil pe 8 bii, 255.
0x00
+
0x40
=
0x40

0x00
+
0x40
=
0x40

0x57
+
0x40
=
0x97

0x7F
+
0x40
=
0xBF

0xAB
+
0x40
=
0xEB

0xAB
+
0x40
=
0XEB

oxC8
+
0x40
=
0x08

0xFF
+
0x40
=
0x3F

0x00
+
0x40
=
0x40

Fig. 3 a) obinerea valorilor pixelilor n situaia modulo 28

0x00
+
0x40
=
0x40

0x57
+
0x40
=
0x97

0x7F
+
0x40
=
0xBF

0xAB
+
0x40
=
0xEB

0xAB
+
0x40
=
0XEB

oxC8
+
0x40
=
0xFF

0xFF
+
0x40
=
0xFF

b) obinerea valorilor pixelilor n situaia de saturare


2

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

2. Reprezentarea ntreag
Pe un cuvnt de n bii se pot reprezenta 2 n numere plasate n gama numerelor egal distanate cu pasul de
cuantizare q=1.
Reprezentarea binar fr semn, pentru un numr reprezentat pe n bii este: B2 = bn-1 bn-2 .b1 b0 cu
valoarea zecimal: B10 = bn-1*2n-1++b1*2 + b0 aflat n gama [0, 2n-1]. Se poate vedea n Fig. 4 roata
numerelor pe care se pot verifica propriet ile adunrii pentru numerele reprezentate pe un numr finit
de bii, n acest caz n=4.

Fig. 4 Roata numerelor fr semn reprezentate pe 4 bii

Exemplu.
Folosind reprezentarea pe 4 bii fr semn se incrementeaz cel mai mare numr
reprezentabil astfel:
1111 2 = 1510
1 2 = 110

_____________
1|0000 2 = 0 10,

numrul 100002 nu mai este pe 4 bii , a aprut depire!

Bit de transport

Numerele binare fr semn pe n bii reprezint un sistem modulo 2 n!


Pentru a reprezenta numerele binare negative (deci cu semn) se utilizeaz reprezentarea n complement
fa de 2. Un numr n complement fa de 2 pe n bii este: B2 = b n-1 bn-2 .b1 b0, cu valoarea
zecimal:
B10 = -bn-1*2n-1++b1*2 + b0 aflat n gama [-2n-1 , 2n-1-1].

Fig.5. Roata numerelor cu semn reprezentate pe 4 bii

Observaie. La reprezentarea zecimal numerele 100 10 i 010010 sunt identice, dar la reprezentarea n
complement fa de 2 pentru numerele 1010 2 i 010102 nu putem presupune acelai lucru. De ce? La
reprezentarea zecimal se foloseste pentru semn un caracter special (-), pe cnd la reprezentarea binar
semnul este dat de bitul de semn. De aceea, valoarea zecimal a numrului 10102 depinde de lungimea pe
care este reprezentat. Dac este pe 5 bii are valoarea 1010 , iar dac este pe 4 bii are valoarea 610.

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Proprieti
Inmulirea a dou numere binare ntregi, n virgul fix, reprezentate pe n bii d un rezultat pe 2n
bii
Adunarea a dou numere reprezentate pe n bii poate da un rezultat pe n+1 bii
Multiplicarea a doi ntregi n virgul fix duce cu mare probabilitate la depire.
La N adunri succesive pentru a nu avea depire sunt necesari log2(N) bii suplimentari.
Exemplu. Folosind reprezentarea n virgul fix pe 4 bii s se fac nmulirea : 310 cu 210 .
Observaie. Rezultatul este pe 8 bii i a nu se uita extensia semnului la lungimea cuvntului rezultatului.
1101
0010

= -3 10
= 2 10

-----------------------------------------

00000000
1111101
000000
00000
-----------------------------------------

11111010

= -6 10

Dac se revine la reprezentarea pe 4 bii rezultatul va fi 10102 = -610 , deci este corect.
Exemplu. S se fac nmulirea n virgul fix pe 4 bii a numerelor -310 i 610 .
1101
0110

= -3 10
= 6 10

-----------------------------------------

00000000
1111101
111101
00000
-----------------------------------------

11101110

= -18 10

Dac se revine la reprezentarea pe 4 bii, rezultatul va fi 11102 = -210 , deci nu este corect.
Proprieti. Orice secven de operaii a crui rezultat final se poate reprezenta corect n gama dat se
poate calcula corect chiar dac apar depiri la rezultatele intermediare.
Exemplu. Folosind reprezentarea pe 4 bii cu semn (gama [-8,7)) s se calculeze expresia: 7+6-8 = 5
0111+
7+
0110
6
-----------------------1101 +
-3+ (dep ire)
1000
-8
-------------------------0101
5 (corect)

3. Reprezentarea fracionar
Pentru a se evita problema depirilor n cazul nmulirii, reprezentarea fracionar n virgul fix
limiteaz sau normalizeaz numerele n gama [-1.0, 1.0), caz n care problema este rezolvat .
Excepie. (-1)*(-1) = +1 ! care nu apar ine gamei [-1,+1).
La adunare i scdere depirea este totui posibil!
Observaii.
1. Rezultatul multiplicrii este trunchiat pierznd din precizie prin suprimarea biilor mai puin
semnificativi.
2. Reprezentarea fracionar pe n bii se obine prin deplasarea punctului cu n-1 poziii spre stnga, adic
reprezentarea conine bit de semn, punct radix i n-1 bii fracionari, deci: B2fractionar = b0 b1 .bn-2 bn-1,
cu valoarea zecimal B10 = -b0 * 20 + b1 *2-1 +..+b n-1 * 2-(n-1).
3. Pasul de cuantizare este q=2 -(n-1)

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Reprezentarea fracionar este cunoscut i sub numele de reprezentarea Qx, unde x este numrul
de bii fracionari. Numrul total de bii ai reprezentrii fiind x+1. Reprezentarea frac ionar
uzual la DSPurile n virgul fix (16 bii) este Q15.
Localizarea punctului nu este neaprat precizat aceasta fiind un instrument de programare.
Astfel folosind reprezentarea pe 16 bi i gama numerelor poate fi:
[0, 65535]
- la reprezentarea ntreag fr semn
[-32768, +32767] - la reprezentarea ntreag cu semn
[-1, +0.999969] - la reprezentarea frac ionar
Toate aceste variante sunt utilizate la aplicaiile cu DSP.

Fig. 6. Roata numerelor pentru reprezentarea fracionar pe 4 bii

Observaie. La adunarea a dou numere binare reprezentarea lor trebuie fcut n aceiai convenie.
Exemple :
S se reprezinte n format:
a) Q3, numerele 0.375 i 0.75
La DSP n virgul fix punctul radix (zecimal) nu este disponibil, aceasta cade n sarcina
programatorului. La operaiile aritmetice cu date fracionare sau cu semn se folosete aceeai unitate
aritmetic i logic (UAL). Reprezentarea fracionar se obine scalnd valoarea cu 2x, unde x reprezint
numrul de bii fracionari. Deci:
-0.375 10 = 1.101 2 * 2 3 = 1101 2 = -3 10
0.75 10 = 0.110 2 * 2 3 = 0110 2 = 6 10

b) Q15, numrul X10 = - 8.9969653E-003


Se calculeaz X*215 = -294.8 (~ -295), care n reprezentarea n complement fa de 2 este X Q15 =
0FED9h .
S se nmuleasc folosind reprezentarea fracionar pe 4 bii:
c) 0.5 10 cu 0.75 10
Observaie. Atenie la extensia de semn.
Rezultatul va avea 6 bii fracionari din 8.

1.100 =0.5 10
0.110 = 0.75 10
------------------00000000
1111100
111100
00000
--------------------------11.101000 2 = -0.375 10

Bit de semn suplimentar

Revenim la reprezentarea pe 4 bii :


11.1010002 =1.101 2 = -0.375 10

care reprezint un rezultat corect.

d)0.5 10 cu 0.62510
1.100 * 0.101 = 11.101100

= -0.3125 10

Revenim la reprezentarea pe 4 bii:


11.101100

= 1.101 2 = -0.375 10

care este incorect datorit trunchierii.


5

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

e) 0.25 10 cu 0.5 10 n format Q15.


0.100 0000 0000 0000 *
1.110 0000 0000 0000
----------------------------------------------------------11.11 1000 0000 0000
0000 0000 0000 0000 format Q30

Trecem la format Q15, eliminm bitul de semn suplimentar i rezult:


1.1110 0000 0000 0000 2

= -0.125 10

, corect.

Avantaj: Utiliznd fracii binare se obine o vitez mai mare n calculele n bucl nchis.
Dezavantaj: Rezultatul poate s nu fie exact. Dup cum rezult de mai sus n memorie se obine valoarea
(-4/16). Biii cuprini ntre 2-4 i 2-6 au fost trunchiai. Rezultatul corect este (-3/16) !
Este de menionat c operaia de nmulire pe 4 bii nu se face la capacitatea real a C28x care opereaz
pe 32 de bii. n acest caz trunchierea va afecta biii cuprini ntre 2-32 i 2-64. n cele mai multe cazuri se
trunchiaz numai zgomotul. Cu toate acestea, n unele aplicaii cu reacie (de exemplu filtrele IIR) erorile
mici pot aduga i conduce la un anumit nivel de instabilitate. Este responsabilitatea proiectantului de a
recunoate aceast potenial surs de eec n folosirea fraciilor binare.

4. Operaii cu numere mai mari ca 1


a) Se scaleaz toi coeficienii din algoritm astfel nct s intre n gama [-1, 1). Ca efect rezult o
atenuare a semnalului la ieire pstrnd rspunsul n frecven.
b) Se utilizeaz proprietile nmulirii ntregi cu 1:

A*B =(A-1)*B+B

Exemplu. S se nmuleasc eantionul Xi = 0.625 cu coeficientul 1.375. Se presupune reprezentarea pe 4


bii.
1.375*0.625=(0.375+1)*0.625 = 0.375*0.625 + 0.625 =0.859375
0.101 *
0.625 10*
0.11
0.375 10
----------------------------------00.001111 +
0.234375 10 +
0.101000
0.625 10
----------------------------------------

00.110111
0.1102 = 0.75 10

0.859375 10

Revenim la reprezentarea pe 4 bii (Q3) :


Rotunjirea datorat numrului limitat de bii.

c) Utilizarea proprietii nmulirii ntregi cu 2:


Exemplu.

0.625 * 1.375 = 0.859375 , reprezentai

A*B = A/2 * B + A/2 * B


n Q3.

1.375/2=0.6875 10 = 0.1011 2 care n format Q3 rotunjit este 0.110 2 = 0.75 10


0.625 10 * 0.75 10 =
0.46875 10
0.46875 10 +
0.46875 10 =
0.9375 10

0.875 10

0.101 2 * 0.110 2 = 00.011110 2


00.011110 2+00.011110 2 =00.111100 2 0.111 2

(n format Q3).

5. Reprezentarea n virgul mobil


Nucleul unui procesor n virgul mobil e o unitate aritmetic ce suport operaii n virgul mobil n
conformitate cu standardul IEEE 754/85. Un exemplu tipic pentru aceast clas e familia x86 de la Intel
ncepnd cu procesoarele 486. Procesoarele n virgul mobil sunt foarte eficiente cnd se opereaz cu
date n virgul mobil i permit efectuarea unei game mari de calcule numerice. Aceste procesoare nu
sunt aa de eficiente n cazul controlului sarcinilor (manipularea biilor, controlul intrrilor i ieirilor,
rspunsul la ntreruperi) i n plus sunt destul de scumpe.
Formatul IEEE 754/85 cuprinde numere finite ce pot fi n baza 2 (binare) sau n baza 10 (zecimale).
Valoarea numeric a numrului finit va fi dat de formula: (1)s f be, unde b reprezint baza numrului.
Fiecare numr este descris prin cei 3 parametrii: s - semnul (zero sau unu), f mantisa i e exponentul.
De exemplu, dac semnul este 1 (un nr negativ), mantisa este 12345, exponentul este -3 i se consider
baza 10, atunci numrul va fi: -12.345.

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Toate valorile finite posibile de reprezentare ntr-un anumit format sunt determinate de: baza de
numeraie, numrul maxim de digii din mantis (ce definesc precizia p) i valoarea maxim a
exponentului, emax. Mantisa trebuie s fie un numr ntreg n domeniul [0; bp-1]. Exponentul trebuie s
fie un ntreg a.. 1-emax q+p-1emax.
Standardul IEEE 754/85 definete 5 formate de baz: trei formate binare (pot coda numere pe 32, 64 sau
128 bii) i dou zecimale (pot coda numere pe 64 sau 128 bi i). Formatul binar pe 32 bii pentru precizie
simpl n virgul mobil descrie numerele n virgul mobil astfel:
23 22
0
31 30
s
eeeeeeee fffffffffffffffffffffff
1 bit semn, exponent pe 8 bii, mantisa (partea fracionar) pe 23 de bii

S= bit de semn
ee= 8 bii ce reprezint exponentul
ff= 23 de bii ce reprezint mantisa (bii fracionari)
Avantaj: exponentul ofer o gam dinamic mare de reprezentare a numerelor
Dezavantaj: precizia de reprezentare a numerelor depinde de exponent
Reprezentarea n virgul mobil - Obinerea biilor:
Bitul de semn:
Negativ: bitul 31 = 1
Pozitiv : bitul 31 = 0
Mantisa:
23

M = 1+m12-1+m22 -2+= 1 + mi 2 i , unde 1 M < 2


i =1

Exponentul:
O valoare pe 8 bii cu semn, memorat cu offset-ul +127
Astfel, calcularea unei valori v se face astfel:
S
z = ( 1) M 2 E OFFSET
Exemple :
S se scrie n format virgul mobil urmtoarele numere:
1) 0x 3FE0 0000h = 0011 1111 1110 0000 0000 0000 0000 0000 B
S = 0
E = 0111 1111 = 127
M = (1).11000 = 1 + 0.5 + 0.25 = 1.75
Z = (-1) 0 * 1,75 * 2 127-127 = 1.75
2) Z = -2.5
S = 1
2.5 = 1.25 * 2 1
1 = E OFFSET
E = 128
M = 1.25 = (1).01 = 1 + 0.25
Binar: 1100 0000 0010 0000 0000 0000 0000 0000 B =

0x C020 0000h

Reprezentarea n virgul mobil are i dezavantaje:


Exemplul *:
x = 10.0
(0x41200000)
+ y = 0.000000238 (0x347F8CF1)
____________________
z = 10.000000238

Greit! Nu se poate reprezenta valoarea 10.000000238 cu numere n virgul mobil n simpl

precizie.
0x412000000 = 10.000000000
10.000000238 nu se poate reprezenta!
0x412000001 = 10.000000950

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Astfel, numrul 10.000000238 va fi rotunjit n jos la numrul 10.000000000 .

Proprieti
Adunarea numerelor reprezentate n virgul mobil presupune reprezentarea lor cu acela i
exponent; rezultatul obinut este apoi rotunjit i normalizat dac este cazul
Inmulirea a dou numere reprezentate n virgul mobil se realizeaz dup regula: exponentul
rezultatului se va scrie pe un numr de bii egal cu suma numrului de bii ai exponenilor
numerelor ce se adun, iar rezultatul obinut este apoi rotunjit i normalizat

6. Formatul IQ
Pn acum s-a prezentat cazul folosirii numerelor fracionare la care punctul fracionar se afla dup MSB.
n general acest punct se poate pune oriunde n reprezentarea binar. Astfel se poate obine o rezoluie
mai mare.
"I" reprezint partea ntreag (integer)
"Q" reprezint partea fracionar (quotient)
Avantaj: aceeai precizie pentru toate numerele
Dezavantaj: domeniul dinamic este limitat comparativ cu reprezentarea n virgul mobil
31
0
s iiiiiiii.qqqqqqqqqqqqqqqqqqqqqqq
------------------------------->

mantis pe 23 de bii
-2I + 2I-1 + ... + 2 1 + 20 . 2-1 + 2-2 + ... +2 -Q
Exemplul 1: Formatul I1Q3

3 0
s. qqq

Cel mai negativ numr zecimal: -1.0


Cel mai pozitiv numr zecimal: +0.875
Cel mai mic numr IQ zecimal negativ: -1*2-3
Cel mai mic numr IQ zecimal pozitiv: 2-3
Domeniul: -1.0 ... 0.875
Rezoluia: 2-3

=
=
=
=

Exemplul 2: Formatul I3Q1

1. 000
0. 111
1. 111
0. 001

3 0
sii . q

Cel mai negativ numr zecimal: -4.0


Cel mai pozitiv numr zecimal: +3.5
Cel mai mic numr IQ zecimal negativ: -1*2-1
Cel mai mic numr IQ zecimal pozitiv: 2-1
Domeniul: -4.0 ... +3.5
Rezoluia: 2-1
Exemplul 3: Formatul I1Q31

=
=
=
=

100. 0
011. 1
111. 1
000. 1

s.qqq qqqq qqqq qqqq qqqq qqqq qqqq qqqq


Cel mai negativ numr zecimal: -1.0
Cel mai pozitiv numr zecimal: 1-1/231
Cel mai mic numr IQ zecimal negativ: -1*2-31
Cel mai mic numr IQ zecimal pozitiv: 2-31
Domeniul: [-1.0 . +1.0)
Rezoluia: 2-31

=
=
=
=

1.000 0000 0000 0000 0000 0000 0000 0000 B


0.111 1111 1111 1111 1111 1111 1111 1111 B
1.111 1111 1111 1111 1111 1111 1111 1111 B
0.000 0000 0000 0000 0000 0000 0000 0001 B

Dac transpunem Exemplul * n formatul IQ, vom avea:


x = 10.0
(0x0A000000)
+ y = 0.000000238 (0x00000004)
________________________________
z = 10.000000238 (0x0A000004),

numr care se poate reprezenta n formatul IQ !


8

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

Folosind formatul IQ n locul reprezentrii n virgul mobil se poate obine o precizie mai mare n
reprezentarea datelor.

7. Concluzii
Numerele ntregi versus numerele fracionare:
Domeniul:
- numerele ntregi au un domeniu maxim determinat de numrul de bii pe care se reprezint numrul
- numerele fracionare pot aparine doar domeniului [-1;+1]
Precizia:
-numerele ntregi au o precizie de maxim 1
-numerele fracionare au precizia determinat de numrul de bii
Aritmetica n virgul fix versus aritmetica n virgul mobil:
Aritmetica n virgul mobil este mai flexibil dect cea n virgul fix. Principalul avantaj const n
accesul la o gam dinamic mai mare a datelor reprezentate.
Exemple de procesoare:
- cu virgul mobil: Seria Intel Pentium, Texas Instruments C67xxDSP
- cu virgul fix: Motorola HC68x, Infineon C166, Texas Instruments TMS430, TMS320C5000, C2000
Procesoarele n virgul fix:
Pot reprezenta numere:
- ntregi (aritmetica ntreag): pentru control, calcul adrese (nu sunt implicate semnale)
- fracionare: pentru prelucrri cu semnale
Prezint preuri sczute
Programare uoar: n faza de simulare se pot detecta toate situaiile n care este necesar corecia
rezultatului pentru a se evita saturarea.
Procesoarele n virgul mobil:
Numerele au mantis i exponent: mantisa*2 exponent
Prezint o tehnologie foarte flexibil
Au o gam dinamic larg de reprezentare a numerelor
Programare uoar: programatorul nu mai trebuie sa gestioneze cazurile de umplere (overflow) ale
acumulatorului
Dezavantaj: prezint costuri mari

8. Teme
8.1 Se dau mai jos cei 15 coeficieni ai unui filtru FIR trece sus. S se converteasc coeficienii n format
Q15.
(h1=h15=8.99696E-3; h2=h14=-7.86406E-3; h3=h13=-3.34992E-2; h4= h12= -6.53486E-2;
h5=h11=-9.8897E-2; h6=h10=-0.12856; h7=h9=-0.14897; h8=0.84375)
8.2 Dup modelul celor 3 exemple prezentate la formatul IQ, specificai valorile corespunztoare
formatului I8Q24.
8.3 S se scrie n format virgul mobil numrul : 0x BFB0 0000h pe 32 bii.
8.4 TEME de studiu :
Studiai urmtoarele exemple pentru adunarea, scderea i nmuirea numerelor n virgul mobil:
Exemplul 1. S se efectueze adunarea numerelor 123456.7 i 101.7654
123456.7
= 1.234567 * 10
101.7654 = 1.017654 * 10

5
2

= 0.001017654 * 10 5

Lucrarea 1

PROCESOARE DIGITALE DE SEMNAL

In detaliu:
e=5;
+ e=2;

z=1.234567
z=1.017654

(123456.7)
(101.7654)

-----------------------------------------------------

e=5;
+ e=5;

z=1.234567
z=0.001017654

(dup shiftare)

-----------------------------------------------------

e=5;

( suma real este: 123558.4654)

suma=1.235584654

Dac se revine la reprezentarea cu 7 digii rezultatul va fi: e=5; suma=1.235585 (adic suma final va fi:
123558.5), deci rezultatul a fost rotunjit si normalizat. Cei 3 digii 654 s-au pierdut, aceasta fiind eroarea
de rotujire.
Exemplul 2. S se efectueze scderea numerelor 123457.1467 i 123456.659:
123457.1467
123456.659

= 1.234571 * 10
= 1.234567 * 10

5
5

= 0.000004 * 105

In detaliu:
e=5;
- e=5;

z=1.234571
z=1.234567

(123457.1467)
(123456.659)

-----------------------------------------------------

e=5;

d=0.000004

( diferena real este: 0.000004877)

Dac se revine la reprezentarea cu 7 digii rezultatul va fi: e=-1; s=4.000000 (adic rezultatul final va fi:
0.4), deci rezultatul a fost rotunjit si normalizat. Eroarea de rotujire este n acest caz de aprox. 20%.
Exemplul 3. S se efectueze nmulirea numerelor 4734.612 i 541724.2:
e=3;
e=5;

z=4.734612
z=5.417242

(4734.612)
(541724.2)

-----------------------------------------------------

e=8;
e=8;

z=1.234567
z=0.001017654

(dup shift-are)

-----------------------------------------------------

e=8;

prod=25.648538980104

e=8;

prod=25.64854

e=9;

prod=2.564854

(produsul real este:


(dup rotunjire)
(dup normalizare)

10

2564853898.0104 )

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