Clock scheda audio

Jun 01, 2007 32 Replies

E' esattamente questo, solo che hai effettuato una miscelazione con un oscillatore locale (anche questo fatto in digitale) e stai trattando dei segnali riportati in banda base.

Primo risultato: vuole ingressi riferiti non a zero ma a ~4,1 V altrimenti cima il negativo. Con 4,1 V aggiunto al segnale di ingresso cima simmetricamente a ~ 8Vpp, che =E8 un buon livello e dimostra oltretutto che *sente* la continua, anche se non la si vede con i programmi osci per PC probabilmente perche vanno a FFT. Infatti il segnale anche quando cimato =E8 sempre centrato sul display, come quando metti un oscillografo usuale in AC.

A volerla usare per acquisizioni in DC bisogna probabilmente scriversi software apposta, e di quello rognoso.

Cortocircuitati anche i C sulla uscita, con generatori di segnali freeware son potuto scendere fino a verso i ~5 Hz senza attenuazione, sotto non vanno. Stesso discorso di prima, probabilmente.

e non

Lo aspetto ;-) se ne potr=E0 parlare pi=F9 in dettaglio.

oni

Ahim=E9 non lo =E8, anzi =E8 (pu=F2 essere) piuttosto lungo.

Be', in quel caso basta sottrarre un 'piano' alla immagine, e i programmi di elaborazione immagine che abbiamo lo fanno quasi tutti (possono sottrarre quasi ogni tipo di superficie). Quello che mi fa paura =E8 il noise 1/F che non =E8 detto sia basso in roba progettata per funzionare da 20 Hz in su, e ancor pi=F9 il random walk. Il tutto, drift compresi, dovrebbe stare sotto i ~ 500 - 800 microvolt rms.

Se mi dai un link o un produttore vado a guardarmela anche io e magari la pianto con le schede audio ;-)

Il problema =E8 che non so programmare neanche quella. Sono rimasto al gwbasic quello coi numerini di linea (giuro!)

per

In parte lo sto facendo. Rimaniamo in contatto, ti faccio sapere.

Ciao

Tullio

Uhm...Interessante. Probabilmente filtrano in qualche modo da software per sbarazzarsi di quel piccolo offset di cui parlavamo...

No probs, l'ho già fatto altre volte

Hai per caso la possibilità di usare Matlab per fare qualche prova in più? Se vuoi ti metto giù uno script... Come ti dicevo io non ho nessun PC fisso al momento, altrimenti la farei io.

Ehm...A dire il vero te l'ho mandato ieri all'indirizzo che pubblichi... Probabilmente sono finito direttamente nel cestino dello spam. Prova a cercare una email con oggetto "indirizzo valido".

Lo sospettavo. :-(

Beh, in tal caso gireremo lo sguardo verso le schede di acquisizione.

C'è National Instruments

formatting link
che la fa da padrone in questo campo, cmq se cerchi "data acquisition board" trovi di tutto di più.

Mitico GwBasic! Io ho iniziato da lì :-)

Fammi sapere se non hai ricevuto la mia email.

Ciao

Pasu

.=2E......... riesci a capire di che A/D si tratta? riesci ad individuare le Vref?

Di solito quei chippettoni hanno la Vref integrata. Senza il data sheet non si può fare molto.

Pasu

i=F9?

io.

Ahim=E9 no, sono informaticamente anlfabeta e troppo vecchio per cambiare.

che

Ahim=E9, anche il mio lo =E9. pensavo che avresti usato quello postato nel

3=B0 messaggio del thread in risposta a Tristram.

Prover=F2 a spulciare gli ultimi 400 - 500 messaggi (tin non mi d=E0 antispam, e io ho praticamente abbandonato l'account)

Con schede di acquisizione NI (pi=F9 un paio di sistemi a DSP fatti da un collega specializzato) siamo gi=E0 ben attrezzati, per l'uso diciamo cos=EC "serio" di laboratorio. Quel che volevo mettere su (a scappatempo e costo vicino allo zero) =E8 una specie di "educational toy" per usi didattici o per strumentazione rough da usare sul campo. Per questo continuo a pensare a poca elettronica esterna da attaccare a qualunque calcolatore, soprattutto i portatili dove non puoi pasticciare la scheda audio, ma anche quelli fissi dove non vuoi rischiare: pensa a quando =E8 integrata su mother board. Pi=F9 sotto scender=F2 in dettaglio.

mpo,

Chiedevo se conoscevi una specifica AD per USB che, come dicevi, costasse poco. Andr=F2 a vedere, ma la roba NI, comunque buona, di solito non la regalano.

Dettagli sulle ultime intenzioni: come da tua idea, faccio uscire da una scheda audio una frequenza di clock, sottomultiplo esatto della F di campionamento (per avere numero intero e costante di punti. Diciamo

4 kHz. La uso per choppare (con un moltiplicatore a 4 quadranti) il segnale da acquisire, e questa =E8 una cosa che so fare bene. Registro sul canale sinistro della sound card il segnale choppato (in continua non avrei potuto registrarlo), sul destro la F di riferimento.

Dalla frequenza che esce (i 4 kHz) mi ricavo, tramite contatore up/ down e un DA a 12 bit, una onda triangolare (4096 punti a salire, 4096 a scendere) dato che, per ragioni di isteresi del sistema, devo acquisire sia la riga di andata che quella di ritorno. Questa =E8 la scansione di riga e pure questa parte la so fare, anche se (orrore orrore!) =E8 digitale.

Ad ogni ciclo della scansione di riga mando un impulso a una altro contatore+DA a 12 bit (solo up) e mi faccio la singola rampa di quadro. Vedi sopra.

A questo punto ho un file in formato wav con il segnale (S, choppato) e il sincronismo (D). Cominciano le cose che non so fare: rivelazione sincrona via software, moltiplicando ogni campione di S per il contemporaneo campione di D riottengo il segnale continuo. Facendo una media sul numero di punti N corrispondenti alla frequenza di sincronismo elimino il ripple e riduco il noise di sqrt(N). Contando gli impulsi sul canale D ricostruisco in che punto =E8 stato acquisito il valore corrispondente sul canale S e mi faccio la matrice immagine. Probabilmente basta che scriva un file binario in sequenza, oppure dato che 4096*4096 punti sono decisamente troppi, si pu=F2 scalare tutto a 1024*1024 e ridurre il noise di un altro fattore 4 (ogni punto finale =E8 la media su 16 punti)

Punto dolente: tutto quello che c'=E8 nell'ultimo paragrafo =E8 molto semplice concettualmente, non so quanto praticamente per chi deve fare il software. Pensavo di stressare a dovere qualche collega, ma =E8 gente troppo seri(os)a e triste per apprezzare la componente ludica del lavoro, e laureandi da spremere e maltrattare al momento non ce ne sono: tu te la sentiresti di prenderti questa croce? Qualcun altro sarebbe interessato a soffrire insieme a noi? Se poi esistesse qualcosa di gi=E0 usabile/adattabile sarebbe un sogno.

Ciao

Tullio speranzoso ;-)

Leggo i due chip pi=F9 grandi. il primo (penso sia lui, =E8 dove vanno ingrssi e uscite):

SIGMATEL STAC9708T LD1A01H

0201

il secondo:

CREATIVE CT5880 - DCQ S0204H J2745T kor

Gli altri sono l'ampli di uscita, i due stabilizzatori +5 e -5 (quest'ultimo credo alimenti solo l'ampli di uscita) e un altro ottopodo che credo sia l'elemento attivo dell'oscillatore (quarzo a

24586 kHz)

Quanto al Vref, i 4,1 V del livello di 'zero' del segnale somigliano tanto ai 4,096 V di molti convertitori AD. Forse hanno preso due piccioni con una fava: riferimento e livello di zero affidabile con un colpo solo. ;-)

Ciao

Tullio

Se riesci a registrare il tutto ed hai per le mani almeno un file wav di esempio, posso scrivere un piccolo programmino in C che faccia il trattamento che hai descritto e sputi fuori un'immagine in un qualche formato grafico. L'unico problema =E8 che io non uso Windows, quindi ti manderei un sorgente in C standard e quindi dovrai ricompilartelo da te (=E8 facile). L'indirizzo che uso nei NG =E8 valido.

Non conviene qualcosa tipo octave ? Sintassi matlab e funzioni di plot già disponibili, multipiattaforma.

Conosco bene Octave, ma faccio prima a fare questo genere di cose in C=2E Non c'=E8 nessun bisogno di funzioni di plot, basta sputare un file per esempio BMP.

ti

Ripensandoci, la cosa =E8 forse pi=F9 flessibile per Tullio, semmai vuole modificare il trattamento...

Tullio, tu cosa preferisci? Hai mai usato Matlab (Octave =E8 molto simile)

.....

Ti ho inoltrato la mail a quell'indirizzo.

L'obiettivo è (ed era) perfettamente chiaro :-) Mi mancava una precisa stima del tuo "costo zero" ;-) Pensavo fossi completamente a digiuno di schede di acquisizione, per questo ti ho passato il link di NI, che è ovviamente la "Lamborghini" delle schede di acquisizione. Ci sono altre case più economiche, ma so che non è ciò a cui stavi pensando...Era più una soluzione di riserva.

Per il problema scheda audio su portatile (o anche no), esistono schede audio su USB che costano sui 40-50 Euro.

Non ho mai usato moltiplicatori, quindi mi fido :-)

Io avevo un'altra idea, forse troppo semplicistica... Mandare sulle uscite DX e SX un'onda quadra, anche al Nyquist volendo (metà frequenza di campionamento), modulandola in ampiezza con la doppia rampa di scansione riga per il canale SX e con la rampa di quadro sul canale DX. Raddrizzando opportunamente si dovrebbe ottenere un segnale con valor medio avente la forma d'onda desiderata. L'inerzia meccanica del sistema dovrebbe filtrare già di suo, ma al limite si potrebbe aggiungere un filtro passabasso per livellare ulteriormente. Lo stesso segnale uscente, opportunamente ripulito della modulante, potrebbe essere usato per choppare l'ingresso. In alternativa, dato che ormai tutte le schede audio hanno 4 o 6 uscite, si potrebbe usare una terza uscita a questo scopo.

Altra semplificazione: non si potrebbe semplicemente "choppare" nel vero senso della parola, mediante un interruttore tipo MOS e poi semplicemente riportare il segnale in banda base? Ovviamente la frequenza in questo caso non dovrebbe superare metà Nyquist, per non essere bloccata dal filtro anti alias... Mi sto perdendo qualcosa?

È una cosa relativamente semplice, sia in Matlab, sia in C/C++ Si potrebbe provare addirittura qualche software audio tipo Cooledit/Audition, i quali credo facciano operazioni di questo tipo tra i canali DX e SX (sono sicuro che facciano somme, ma confidente che facciano anche moltiplicazioni o altro). Inoltre hanno la possibilità di salvare il file in formato "raw" (solo i campioni), quindi conoscendo le dimensioni dell'immagine si potrebbe ricostruirla senza scrivere una riga di codice!

Ciao

Pasu

Rispondo qui ai tre messaggi.

L'ideale per me sarebbe avere in uscita dopo trattamento del file wav due file binari (immagine con le righe da sinistra verso destra, immagine con le righe da destra verso sinistra, per intendersi) con i dati scritti sequenzialmente punto per punto, oppure in forma di matrice (in principio quadrata, poi pu=F2 anche essere diversa).

I programmi che uso abitualmente per elaborare/analizzare/misurare (esenzialmente SPIP di image metrology, ma anche altri alcuni home made) se la cavano bene a leggerli, basta dirgli lunghezza di header e dimensioni della matrice. Mi pare lo faccia anche photoshop. poi tutti questi salvano, volendo, anche in formato TIF.

Passarli direttamente in BMP, se non sbaglio, ci farebbe perdere informazione, dato che vorrei mantenere la risoluzione di 12 bit per punto. Se si pu=F2 fare, ben venga il BMP.

Quanto a matlab e l'altro simile, ahim=E9 non li conosco proprio. Per=F2 se =E8 necessario ci posso provare :-)

Appena ho uno scampolo di tempo metto su lo hardware chopper e ti mando un file wav di prova. Speriamo di non invecchiare (tu, io ho gi=E0 provveduto) prima che la cosa succeda ;-)

Approfitto per esprimere ammirazione (e invidia rosicante) per tutti voi che parlate di un linguaggio di programmazione o dell'altro come se fossero noccioline da sbucciare.

Ciao

Tullio

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required