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