Vjezba 2 sa komentarima bez 4. zadatka

Dependencies:   mbed

Fork of KTM_vjezba2 by Emma Watson

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?

UserRevisionLine numberNew 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 }