Vjezba 2 sa komentarima bez 4. zadatka
Dependencies: mbed
Fork of KTM_vjezba2 by
Provjera_Nyquirstovog_teorema_uzorkovanja.cpp@0:2cc3c591f993, 2016-11-05 (annotated)
- Committer:
- JosipLupinski
- Date:
- Sat Nov 05 19:16:56 2016 +0000
- Revision:
- 0:2cc3c591f993
- Child:
- 1:af669fa89346
Vjezba 2 sa komentarima bez 4. zadatka
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JosipLupinski | 0:2cc3c591f993 | 1 | #include "mbed.h" |
JosipLupinski | 0:2cc3c591f993 | 2 | |
JosipLupinski | 0:2cc3c591f993 | 3 | /* |
JosipLupinski | 0:2cc3c591f993 | 4 | generator signala generira sinusni naponski signal frekvencije 50Hz, amplitude od vrha do vrha 2V |
JosipLupinski | 0:2cc3c591f993 | 5 | vertikalno pomaknut za 1.5V, odnosno donji vrh za 0.5V od 0 |
JosipLupinski | 0:2cc3c591f993 | 6 | |
JosipLupinski | 0:2cc3c591f993 | 7 | vrijeme AD pretvorbe izmjereno: 20.85us |
JosipLupinski | 0:2cc3c591f993 | 8 | vrijeme DA pretvorbe izmjereno: 1.75us |
JosipLupinski | 0:2cc3c591f993 | 9 | ukupno vrijeme pretvorbe T = 20.85us + 1.75us = 22.6us |
JosipLupinski | 0:2cc3c591f993 | 10 | prema tome bi izračunata frekvencija uzorkovanja bila jednaka: f = 1/T = 1/22.6us = 4424.78Hz |
JosipLupinski | 0:2cc3c591f993 | 11 | |
JosipLupinski | 0:2cc3c591f993 | 12 | drugi dio zadatka zahtjeva da nam je frekvencija uzorkovanja približno 500Hz |
JosipLupinski | 0:2cc3c591f993 | 13 | za to trebamo izračunati vrijeme uzorkovanja i postaviti u wait() funckiju |
JosipLupinski | 0:2cc3c591f993 | 14 | T = 1/500Hz = 2ms |
JosipLupinski | 0:2cc3c591f993 | 15 | |
JosipLupinski | 0:2cc3c591f993 | 16 | granična frekvencija iznosi f = fs/2 = 500Hz/2 = 250Hz, |
JosipLupinski | 0:2cc3c591f993 | 17 | kod granične frekvencije dobijemo točno 2 uzorka i možemo rekonstruirati signal, |
JosipLupinski | 0:2cc3c591f993 | 18 | odnosno broj uzoraka je jednak: uzorci = frekvencija uzorkovanja / frekvencija ulaznog signala |
JosipLupinski | 0:2cc3c591f993 | 19 | |
JosipLupinski | 0:2cc3c591f993 | 20 | pošto nam je frekvencija ulaznog signala generator signala, smanjenjem frekvencije na |
JosipLupinski | 0:2cc3c591f993 | 21 | generatoru dobijemo više uzoraka, ako prođemo frekvenciju iznad frekvencije uzorkovanja, |
JosipLupinski | 0:2cc3c591f993 | 22 | dolazi do aliasinga |
JosipLupinski | 0:2cc3c591f993 | 23 | |
JosipLupinski | 0:2cc3c591f993 | 24 | ako povečamo frekvenciju ulaznog signala na istu vrijednost frekvencije uzorkovanja, |
JosipLupinski | 0:2cc3c591f993 | 25 | dobijemo samo 1 uzorak, odnosno dobijemo samo ravnu crtu |
JosipLupinski | 0:2cc3c591f993 | 26 | */ |
JosipLupinski | 0:2cc3c591f993 | 27 | |
JosipLupinski | 0:2cc3c591f993 | 28 | AnalogOut Aout(p18); |
JosipLupinski | 0:2cc3c591f993 | 29 | AnalogIn Ain(p20); |
JosipLupinski | 0:2cc3c591f993 | 30 | |
JosipLupinski | 0:2cc3c591f993 | 31 | int main() { |
JosipLupinski | 0:2cc3c591f993 | 32 | |
JosipLupinski | 0:2cc3c591f993 | 33 | float ADCdata; |
JosipLupinski | 0:2cc3c591f993 | 34 | |
JosipLupinski | 0:2cc3c591f993 | 35 | while(true) { |
JosipLupinski | 0:2cc3c591f993 | 36 | |
JosipLupinski | 0:2cc3c591f993 | 37 | ADCdata = Ain; //pokreni AD pretvorbu, spremi uzorak u varijablu ADCdata |
JosipLupinski | 0:2cc3c591f993 | 38 | |
JosipLupinski | 0:2cc3c591f993 | 39 | Aout = ADCdata; //prebaci vrijednosti iz ADCdata u DA pretvornik i pokreni DA pretvorbu |
JosipLupinski | 0:2cc3c591f993 | 40 | |
JosipLupinski | 0:2cc3c591f993 | 41 | //wait(0.002); //podesavanje vremena uzorkovanja |
JosipLupinski | 0:2cc3c591f993 | 42 | |
JosipLupinski | 0:2cc3c591f993 | 43 | } |
JosipLupinski | 0:2cc3c591f993 | 44 | } |