Vjezba 2 sa komentarima bez 4. zadatka
Dependencies: mbed
Fork of KTM_vjezba2 by
Diff: Provjera_Nyquirstovog_teorema_uzorkovanja.cpp
- Revision:
- 0:2cc3c591f993
- Child:
- 1:af669fa89346
diff -r 000000000000 -r 2cc3c591f993 Provjera_Nyquirstovog_teorema_uzorkovanja.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Provjera_Nyquirstovog_teorema_uzorkovanja.cpp Sat Nov 05 19:16:56 2016 +0000 @@ -0,0 +1,44 @@ +#include "mbed.h" + +/* + generator signala generira sinusni naponski signal frekvencije 50Hz, amplitude od vrha do vrha 2V + vertikalno pomaknut za 1.5V, odnosno donji vrh za 0.5V od 0 + + vrijeme AD pretvorbe izmjereno: 20.85us + vrijeme DA pretvorbe izmjereno: 1.75us + ukupno vrijeme pretvorbe T = 20.85us + 1.75us = 22.6us + prema tome bi izračunata frekvencija uzorkovanja bila jednaka: f = 1/T = 1/22.6us = 4424.78Hz + + drugi dio zadatka zahtjeva da nam je frekvencija uzorkovanja približno 500Hz + za to trebamo izračunati vrijeme uzorkovanja i postaviti u wait() funckiju + T = 1/500Hz = 2ms + + granična frekvencija iznosi f = fs/2 = 500Hz/2 = 250Hz, + kod granične frekvencije dobijemo točno 2 uzorka i možemo rekonstruirati signal, + odnosno broj uzoraka je jednak: uzorci = frekvencija uzorkovanja / frekvencija ulaznog signala + + pošto nam je frekvencija ulaznog signala generator signala, smanjenjem frekvencije na + generatoru dobijemo više uzoraka, ako prođemo frekvenciju iznad frekvencije uzorkovanja, + dolazi do aliasinga + + ako povečamo frekvenciju ulaznog signala na istu vrijednost frekvencije uzorkovanja, + dobijemo samo 1 uzorak, odnosno dobijemo samo ravnu crtu +*/ + +AnalogOut Aout(p18); +AnalogIn Ain(p20); + +int main() { + + float ADCdata; + + while(true) { + + ADCdata = Ain; //pokreni AD pretvorbu, spremi uzorak u varijablu ADCdata + + Aout = ADCdata; //prebaci vrijednosti iz ADCdata u DA pretvornik i pokreni DA pretvorbu + + //wait(0.002); //podesavanje vremena uzorkovanja + + } +}