80 likes | 231 Views
MIKROPROCESORSKI SISTEMI Digitalni filtar 1 /8 novembar 2003. Digitalni filtar.
E N D
MIKROPROCESORSKI SISTEMI Digitalni filtar1/8 novembar 2003. Digitalni filtar
MIKROPROCESORSKI SISTEMI Digitalni filtar 2/8 novembar 2003. • Kod digitalnih filtara, funkcija prenosa se realizuje pomoću digitalnog procesora • Promena impulsnog odziva vrši se promenom programa, dok električna šema ostaje ista • Na ulazu mikroračunara mora se nalaziti A/D konvertor, a na izlazu D/A konvertor • Na ulaz A/D konvertora se dovodi analogni signal nad kojim se vrši uzimanje odbiraka sa frekvencijom koju diktira Teorema o odabiranju • Odbirci su predmet dalje obrade računskim operacijama koje specificira algoritam dotičnog digitalnog filtra • Interval vremena između dva očitavanja podataka iz A/D konvertora ne sme biti kraći od vremena A/D konverzije Blok šema digitalnog filtra na bazi mikroračunara
MIKROPROCESORSKI SISTEMI Digitalni filtar3/8 novembar 2003. Filtar propusnik niskih učestanosti Odbirci izlaznog signala iz NF filtra sa Fg = 4kHz kada je ulazni signal jednak zbiru dve sinusoide istih amplituda i učestanosti 1 kHz i 2 kHz ; perioda odabiranja je 20 puta kraća od minimalne zahtevane • Algoritam koji realizuje prenosnu funkciju NF filtra je oblika : • Y(nT) = k1 · Y(nT – T) + k2 · X (nT) , gde su: • k1 = 2 · p · • k2 = 1- k1 • 0 < k1, k2 <1 • p = cos (2∏ Fg Ts ) • Ts < 1 / 2 Fg ,gde je Fggranična učestanost filtra
MIKROPROCESORSKI SISTEMI Digitalni filtar4/8 novembar 2003. Blok šema mikroračunara kojim se realizuje algoritam bilo kog digitalnog filtra • Pretp. da je ulazni signal aperiodičan sa gr.učest. F1= 250 Hz →min.učest. odabiranja na ulazu je 500 Hz • Pretpostavka da filtar nema početnu energiju (Y(0)=0) i da je gr.učest. filtra Fg= 100 Hz →min.učestanost odabiranja na izlazu je 200 Hz • Uzimamo da je gr.učest. na izlazu 500 Hz → potreban izvor koji realizuje interapt svakih 2 ms da bi mikroprocesor uzeo novi odbirak i ponovio algoritam filtra (podrazumevana perioda takta je 500 ns) • Izvor interapta realizujemo kao deliteljsa 4000 (=) pomoću 12 FF-ova 7474 Sklop koji postavlja interapt svakih 2 ms (delitelj sa 4000)
Adresa Podatak Mesto 03FE k1 ROM 03FF k2 ROM 0400 Y(n) D / A 0401 Y(n - 1) RAM 0402 viši bajt proizvoda k1· Y(n - 1) RAM 0403 niži bajt proizvoda k1· Y(n - 1) RAM 0404 X (n) A / D MIKROPROCESORSKI SISTEMI Digitalni filtar5/8 novembar 2003. Struktura mikroračunara • A / D i D / A konvertori se tretiraju kao memorijske ćelije na adresama 0404h i 0400h • Potrebno onemogućiti da se RAM memorija adresira na ove dve adrese • k1 i k2 su izračunati ranije ismešteni u ROM memoriju kao fiksni podaci Blok šema mikroračunara kojim se realizuje algoritam bilo kog digitalnog filtra
MIKROPROCESORSKI SISTEMI Digitalni filtar6/8 novembar 2003. Program • Sastoji se iz dva dela : • u glavnom programu se vrše pripremne radnje i ulazak u beskonačnu petlju • u interapt programu se realizuje algoritam digitalnog NF filtra • Pretpostavka da su ranije formirani potprogrami za sabiranje i algebarsko množenje smešteni na adresama 004F i 0083 • Koeficijenti k1 i k2 su manji od 1, ali se normalizuju na 256 → Y (n) je 256 puta veće od realnog rezultata • Zbog ovoga, a pošto se Y (n) sastoji od dva bajta, viši bajt Y(n) smatramo konačnim rezultatom Raspored memorijskog prostora
MIKROPROCESORSKI SISTEMI Digitalni filtar7/8 novembar 2003. • glavni program : 1 0000 LXI DE, 03FEh; (DE) = 03FEh adresa k1 2 LXI HL, 0400h ; (HL) = 0400h adresa Y(n) 3 LXI SP, 0400h ; 4 XRA; prazni se akumulator (filtar nema početnu energiju) 5 EI ; dozvoljava se interapt 6 AO NOP ; beskonačna petlja 7 JMP A0 • Iz beskonačne petlje se može izaći samo nakon prihvatanja zahteva za interapt • M je memorijska lokacija (služi kao akumulator) čija se adresa nalazi u registru HL • Na kraju interapt programa, poslednji odmerak Y(n) ostaje u akumulatoru i on se po pristizanju sledećeg zahteva za interapt prebacuje u D/A konvertor
MIKROPROCESORSKI SISTEMI Digitalni filtar8/8 novembar 2003. • interapt program: 8 0038 MOV M, A ; D/A konv. ← akumulator 9 INX HL ; (HL) = 0401h 10 CALL ALGMN ; poziv potpr. za množenje: k1 · Y(n-1) 11 INX HL ; (HL) = 0402h 12 MOV M, B ; čuvanje višeg bajta međurezultata na adresi 0402h 13 INX HL ; (HL) = 0403h 14 MOV M, C ; čuvanje nižeg bajta međurezultata na adresi 0403h 15 INX DE ;(DE) = 03FFh(adresa k2) 16INX HL; (HL) = 0404h (adresa X(n) ) 17 CALL ALGMN ; množenje : k2 · X(n) 18DCX HL ; (HL) = 0403h 19 CALL SABIR ; poziv potpr. za sabiranje 20DCX HL ; (HL) = 0401h 21 MOV M, A ; smeštanje višeg bajta rezultata na adresu 0401h 22DCX DE ; (DE) =03FEh (poč.stanje) 23DCX HL ; (HL) = 0400h (poč.stanje) 24 EI 25 RET