covertitori AD/DA

« Older   Newer »
  Share  
view post Posted on 28/5/2010, 17:14
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


Volevo parlare un po' dei convertitori AD/DA, da quando ho iniziato a studiare un po' il mondo digitale, mi hanno da subito affascinato. Poi, ho "scoperto" una cosa quando stavo mixando le frequenze per il theremin, che mi ha incuriosito.

Sappiamo che un convertitore analogico/digitale, come dice la parola stessa, elabora un segnale analogico e lo "quantizza" in bit. Ora, guardate queste due immagini, copiate da una simulazione che ho fatto, ma che ho anche sperimentato concretamente:
image

image


praticamente nella seconda foto, si vede un'onda sinusoidale a 50 hz, mixata con una quadra a 480 hz. Di fatto dovrebbe essere quantizzata in questo modo o no? Io non so credo che i convertitori AD lavorino in altri modi. Per esempio nei pic, sono ad approssimazioni successive rispetto alla tensione di riferimento. Comunque riflettendo, mi sono posto il problema di sapere cosa succederebbe a porre un bel filtro passa-basso con frequenza di taglio di circa 50 hz, e il risultato, e' quello della prima foto, in poche parole, abbiamo ricostruito il segnale originale, con un rudimentale DA, giusto?

Non so, sono curioso di sapere, ho scoperto per caso questa cosa, ma mi sembra possa essere interessante no? Sarebbe bello sapere come applicarla.


ho anche letto, che per ricostruire il segnale, si usano degli algoritmi di interpolazione, e volevo proprio capire il perche' allora!

Edited by GILA75 - 28/5/2010, 18:38
 
Top
Elemento 38
view post Posted on 28/5/2010, 17:41




Io non so ancora niente di queste cose, ma questa non è una sorta di modulazione :unsure: ?
Una quantizzazione non dovrebbe essere una cosa del genere (vedi sotto)?
image
Poi non so, se sbaglio correggetemi ;)
 
Top
view post Posted on 28/5/2010, 17:49
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


si, ma in teoria, ogni onda quadra, se fai caso, si ferma dove finisce la forma d'onda del 50 hz, e quindi ogni singola onda quadra, da il valore di tensione in quell'istante, ma non so, chiedo apposta. Se cosi' non fosse (credo) il filtro passa basso, non potrebbe restituire la BF no? Comunque se dicevo, che si usa un calcolo d'interpolazione, sicuramente c'e' qualcosa che mi sfugge..se lo fanno, un motivo ci sara'.

....ah!!! vero Ele, faccio caso adesso, a me la "quantizzazione" non parte da zero, ma si sposta,non so se mi riesco a spiegare..gia'
 
Top
view post Posted on 28/5/2010, 17:54
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Ehm... non hai inventato esattamente un convertitore A/D... :unsure:
Quello che hai fatto hai solo mixato due onde, nè più nè meno. Chiaramente, se poi fai passare quella roba da un filtro passa basso, riottieni l'onda a 50Hz. Questo non ha nulla a che fare con i convertitori A/D.
Un convertitore A/D converte in una serie di bytes o di words (dipende dalla precisione) l'onda che tu metti nel loro ingresso. Istante per istante, il convertitore converte la tensione che è poi funzione del seno di t in numeri.
Per fare questo si possono usare molte tecniche dalle caratteristiche adatte allo scopo di ottenere più precisione, più ripetibilità, più velocità ecc...
I vari campionatori possono adottare tecnologia ad approssimazione successiva, a conversione diretta, sigma/delta, flash e chi più ne ha più ne metta. Un'infarinatura si può trovare su Wikipedia quì:

http://en.wikipedia.org/wiki/Analog-to-digital_converter

Comunque Analog Devices producono molta letteratura per dei componenti che io trovo ottimi.

http://www.analog.com/en/analog-to-digital...ucts/index.html

Buona "degustazione".
 
Web  Top
view post Posted on 28/5/2010, 17:56
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


CITAZIONE
Ehm... non hai inventato esattamente un convertitore A/D...

gia'.... :D , mi sono fatto trarre in inganno!!!
 
Top
Hellblow
view post Posted on 16/6/2010, 13:00




Ehehhe gila :P hai pasticciato un pochino...
Per quantizzare devi usare un'onda quadra con duty molto piccolo, diciamo 2% fino al massimo al 50% e che abbia come valori 0 nel 98% (fino a un minimo di 50%) del tempo e 1 nel 2% e poi moltiplichi per il coseno. Avrai:

intervallo fra due quantizzazioni: 0* cos(t)=0
spike di quantizzazione: 1* cos(t)=cos(t) nell'istante esatto.

Ricorda cheesistono dei teoremi che ti assicurano i valori "buoni" che ti permettono di ricostruire il segnale. Detta alla spicciola devi quantizzare almeno a due volte la frequenza del cos. Quindi se il coseno è a 50 Hx tu devi quantizzare a 100 Hz.
Per ricostruire si usano i filtri interpolatori che a partire dai campionamenti sono in grado di ricostruire piu' o meno il segnale. Un buon interpolatore, pare, è quello a coseno rialzato. Buon lavoro!
 
Top
view post Posted on 17/6/2010, 10:55
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


... che si traduce in usa un convertitore A/D già fatto, a conversione diretta, sigma delta, a successiva approssimazione, con carica a molla... ma già fatto. :)

Guardati sti quà:

http://www.analog.com/en/analog-to-digital...ucts/index.html
 
Web  Top
view post Posted on 17/6/2010, 12:23
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


CITAZIONE
Ehehhe gila :P hai pasticciato un pochino...

no,no Hell, ho detto delle solenni C....ate!! altro che pasticciato un pochino...bhe ora vado di fretta, ma ho un po' di domande da fare prossimamente!
 
Top
triac60
view post Posted on 20/6/2010, 20:16




Ciao Gila
Sfruguglia bene gli A/D seriali della Analog devices, ti divertirai un mondo a pilotarli e sono semplicissimi da usare anche interfacciati con la porta parallela del PC.

Buon divertimento

Se hai bisogno di qualche esempio software ho qualcosina in VB6





 
Top
view post Posted on 20/6/2010, 21:04
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


Triac :woot: :woot: ben tornato....si bhe, ora sono impegnato in altre cose, e si sa idee tante e tempo poco, ma mi piacerebbe proprio approfondire....una delle tante cose che mi piacerebbe fare, con un pic o un convertitore AD/DA e' registrare la voce, o cose del genere.
Potra' sembrare una stupidata, ci saranno gia' moduli belli pronti, ma implica un sacco di cose

CITAZIONE
Se hai bisogno di qualche esempio software ho qualcosina in VB6

Grazie Triac ;)
 
Top
view post Posted on 21/6/2010, 08:41
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Non è semplice, Gila, fare un registratore vocale o di musica digitale per un mucchio di problemi tecnologici.
Il campionatore deve essere molto veloce e di una certa qualità, normalmente si usano a 16 bit con frequenza di Nyquist intorno ai 100Khz. E questo comporta usare un processore in grado di gestire tutti quei dati senza andare fuori tempo. Ma anche se si usassero 12Bit o anche solamente 10 bit, 8 bit sarebbero veramente molto pochi per una questione di dinamica, il problema di dove metterli verrebbe fuori prepotentemente. Per questo motivo i registratori audio digitali usano dei signal processor che comprimono subito i dati acuisiti in formato MP3 e li mettono in una ram cache dalla quale il processore li prende e li scrive in una memoria flash di non facile gestione per la scrittura e la rilettura. Insomma... non è una cosa semplice come può apparire. :)
 
Web  Top
triac60
view post Posted on 21/6/2010, 12:27




Puoi partire da questo chip Gila

www.datasheetcatalog.org/datasheet/...73208ad7896.pdf

Si può collegare direttamente alla porta parallela del PC e in pochissime righe di programma cominci a vedere qualcosa.

La sequenza dei comandi per il pilotaggio è abbastanza semplice (pagg. 7-8) se decidi di provarci andiamo avanti.

Interfacciarlo con in PIC è abbastanza complicato come giustamente ti fa notare Law ma non impossibile, col tempo ci si arriva.
 
Top
view post Posted on 21/6/2010, 13:45
Avatar

Rompiball

Group:
Appassionati
Posts:
2,612
Location:
briansa

Status:


CITAZIONE
Non è semplice, Gila, fare un registratore vocale o di musica digitale per un mucchio di problemi tecnologici.

Su questo non avevo dubbi!! E' solo un'idea,ma avevo subito immaginato che con un pic, la cosa sarebbe difficoltosa
CITAZIONE
con frequenza di Nyquist intorno ai 100Khz.

cosi' alta la frequenza? la voce umana, se non erro, si aggira sui 3- 5khz almeno il parlato, quindi secondo il teorema che dici, si avrebbe almeno 10 khz di campionamento no? Ma non so, sono completamente ignorante in merito.

CITAZIONE
La sequenza dei comandi per il pilotaggio è abbastanza semplice (pagg. 7-8) se decidi di provarci andiamo avanti.

e si vorrei proprio,e' che sono in ballo a finire il termometro con minima e massima, e non vorrei lasciarlo cadere a meta'. Appena pero' riesco, provo. intanto guardo il data


Ma a proposito, vorrei fare una domanda: non mi ricordo in che post e con chi, si parlava della conversione da analogico a digitale di una tensione alternata. Mi e' stato detto,che sarebbe meglio raddrizzarla con un raddrizzatore ideale, per non avere la caduta di tensione del diodo, che non e' indifferente, infatti se consideriamo un AD a 10 bit e 5 volts come riferimento avremmo:
5/1024=4.88 mv
i diodi al silicio mediamente fanno cadere 0.7 volts quindi 0.7*1000= 700/4.88=143 bits.
Vorrebbe dire che solo il diodo si "mangia" 143 passi dell' AD per nulla, e non va affatto bene.

Ma la mia domanda e' la seguente: perche' rendere continua la tensione? La velocita' di acquisizione, si aggira a qualche us nei pic, quindi in un intervallo cosi' piccolo, se non siamo in presenza di tensioni alternate ad alta frequenza, e' come se stessimo misurando una tensione continua, infatti per esempio se abbiamo 50 hz e il micro ci impiega pochi us, la variazione dell'onda in questo lasso di tempo e' minima no?
Logicamente salendo in frequenza il discorso inizia a cambiare. Non so, non ho caito bene il concetto...

Edited by GILA75 - 21/6/2010, 15:04
 
Top
view post Posted on 21/6/2010, 14:29
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Dipende in quale microsecondo sei andato a campionare. Se campioni nel momento in cui l'onda passa per zero, leggi zero volt naturalmente. :)

Il fatto è che dovresti convertire in continuo la tua forma d'onda alternata o di qualunque altra forma, dopo ricavare il massimo, il minimo, il vero valore media facendo la media quadratica continua dei valori rilevati ecc... Praticamente dovresti fare in digitale quello che in analogico fa un diodo ed un condensatore. Anche se in digitale la cosa verrebbe più precisa. La caduta del diodo puoi sempre compensarla aggiungendo una tantum la DDP ai capi del diodo che assorbendo sempre circa la solita corrente dovrebbe essere costante. :)
 
Web  Top
Hellblow
view post Posted on 22/6/2010, 13:33




Per le tensioni alternate esistono dei convertitori in grado di valutare anche valori di tensione negativi. Comunque con i pic sono arrivato ad acquisire dati a 22bit con frequenza di campionamento massime di oltre 100KHz e credo si potesse arrivare parecchio piu' in alto, devo avere qualcosa in giro se mi capita sotto mano la posto. Cmq esistono dei convertitori con uscita parallela. Come ho fatto? Semplice, il convertitore lo si setta con un clock che proviene dal PIC in modo che è il PIC a dare il tempo al convertitore. A quel punto si dà un colpo di clock al convertitore, si aspetta che questo converta ed invii i dati ai suoi piedini in parallelo che sono connessi ai piedini del PIC (vi serve un pic con tanti piedini) e poi il PIC li legge e manda tutto su USB. Considerando che n PIC che lavora a 40MHz riesce a reggere tutto, che l'USB è veloce e che l'ADC pensa a tutto non ci sono grossi problemi. Bisogna fare attenzione alla scelta del convertitore ed io ricordo di aver avuto alcuni problemi proprio con le frequenze del clock che dovevano essere multipli di un certo valore se no il tutto faceva i capricci. All'epoca usai un filtro per l'ingresso e un convertitore della Texas Instruments. Il software era scritto in VB e tutta l'interfaccia era destinata per l'acquisizione dati da un calorimetro (Lawrence immaginerà per farci cosa). Il tutto funzionò davvero bene, il filtro passabanda (era basato su alcuni filtri programmabili del 4° ordine ma non ricordo la marca, mi viene analog o maxim ma non sono sicuro) poteva essere regolato tramite dei potenziometri digitali connessi in SPI ad un secondo pic sempre su USB. Se trovo mezza giornata di tempo libero tiro fuori dal Garage il calorimetro (un vascone in vetro da 10 mm di spessore di forma cubica con 40 cm di lato, coimbendato da 40mm di stirofoam e schermato per benino e con una bella rete metallica antibotto e quindi pesa oltre ad essere imboscato dietro gli scatoloni di mio padre!) che li dentro ho l'interfaccia con tutta la documentazione, schemi ecc... Comunque fu un lavorone, mi divertii parecchio.
 
Top
29 replies since 28/5/2010, 17:14   296 views
  Share