Documente Academic
Documente Profesional
Documente Cultură
1 Introducere
În acest laborator utilizăm instruct, iuni ale unităt, ii ı̂n virgulă mobilă x86 pentru implementarea
unui filtru digital. Vom folosi asamblorul din Visual Studio 2019 ı̂mpreună cu libraria irvine http:
//asmirvine.com/gettingStartedVS2019/index.htm. Librăria va fi folosită doar pentru afis, area la
consolă a stivei FPU (Floating-Point Unit) s, i pentru afis, area cont, inutului registrelor (EAX, EBX,
ECX, etc).
Tipurile de date utilizabile impreuna cu FPU sunt mentionate in tabelul 1.
Numerele in virgula mobila sunt stocate dupa standardul IEEE 754. În principal există un bit
pentru semn, mai multi bit, i pentru mantisă s, i un grup de bit, i care formează exponentul.
Există opt registre, denumite ST(0), ST(1), ...., ST(7). ST este o alta denumire utilizată pentra a
face referire la ST (0). Registrele sunt organizate intr-o stivă, ST (0) fiind ı̂ntotdeauna valoarea din
vârful stivei. Când o nouă valoare este ı̂mpinsă pe stivă, ea devine ST (0) s, i vechea ST (0) devine ST
(1). Când varful stivei este extras vechiul ST (1) devine ST (0) s, i toate celelalte se deplasează ı̂n sus.
Următorul tabel oferă un set de instruct, iuni utilizate pentru ı̂ncărcarea s, i stocarea datelor ı̂n virgulă
mobilă
1
Table 2: Instruct, iuni de ı̂ncărcare s, i stocare a datelor in stiva FPU
2
2 Probleme propuse
1. Să se implementeze un filtru trece jos discret de ordin I folosind unitatea flotantă FPU. Filtrul va
fi discretizat prin metoda dreptunghiului ı̂nainte (a se vedea observat, ia a). Perioada de es, antionare
este Ts = 10−5 [s]. Semnalul de intrare va fi o treaptă de amplitudine u = 10. Factorul de amplificare
al filtrului s, i constanta de timp sunt Kf = 1 s, i Tf = 10−4 [s]. Funct, ia de transfer a filtrului este
definită astfel:
Kf Y (s)
Gf (s) = = (1)
Tf s + 1 U (s)
unde Y s, i U sunt ies, irea, respectiv intrarea filtrului.
Observat, ii:
a) Aproximarea ariei prin metoda dreptunghiului ı̂nainte conduce la substitut, ia variabilei s din
domeniul laplace cu variabila transformatei Z:
1 − z −1
s← (2)
Ts
Din (1) si (2) rezulta că
Kf Kf Ts Y (z −1 )
G(z −1 ) = 1−z −1
= = (3)
Ts Tf + 1 Tf − Tf z −1 + Ts U (z −1 )
b) Din raportul ecuat, iilor (3) se obt, ine ecuat, ia cu diferent, e:
Tf Kf Ts
y[k] = y[k − 1] + u[k] (4)
Tf + Ts Tf + Ts
Se va nota:
Ts
a= (5)
Ts + Tf
iar raportul Tf /(Tf + Ts ) devine
Tf
1−a= (6)
Tf + Ts
As, adar, din (4) cu notat, iile (5) s, i (6) rezultă ecuat, ia cu diferent, e ce va fi implementată ı̂n asamblor: