home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Elettronica Generale
Qui si parla di tutto....dall'analogico al digitale, dal software all'hardware, dal semplice crepuscolare al computer.


analizzatore grafico 24 canali a led
     
Autore Messaggio opzioni
caccamo2





postato il:
14.09.2019, alle ore 13:45
No non va bene. Con un sovracampionamento di 10x basta un semplice RC ma siccome tu vuoi vedere cosa c'e' vicino a nyquist devi tagliare con un filtro di ordine molto elevato, cosa non troppo semplice con i passivi, per questo di solito si usano filtri a capacita' commutate. Io ti avevo avvisato che era meglio seguire la strada analogica...


...
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
14.09.2019, alle ore 15:27
daniele1979:
scusami tanto, ma sono 2 le voci da cambiare?

while (!(ADCSRA & 0x10));       // wait for ADC to complete current conversion ie ADIF bit set
    ADCSRA = 0b11110110 ;               // clear ADIF bit so that ADC can do next operation (0xf6)
    int value = ADC - 512 ;                 // Read from ADC and subtract DC offset caused value


Si hai ragione, va anche cambiata l'istruzione all'interno del while dove si testa il bit 7 del registro


Prima di continuare a tentativi, verifica che le 4 matrici funzionino regolarmente: usa i vari programmi (ce ne sono 16!) degli esempi della libreria per verificare che tutti i led, le colonne e le matrici si accendano regolarmente.
Hai letto a fondo la documentazione?
https://majicdesigns.github.io/MD_MAX72XX/
I moduli componibili che hai usato sono totalmente compatibili con la libreria?
https://majicdesigns.github.io/MD_MAX72XX/page_hardware.html
Hai gia' provato ad usare un NE555 come generatore audio? (occhio che l'uscita verso l'ADC non deve superare il volt di ampiezza!)

-----
Caccamo2 ha assolutamente ragione nel prevedere l'uso di un filtro antialiasing all'ingresso dell'adc, cosi' si e' certi che non ci siano frequenze superiori alla meta' della frequenza di campionamento, che non compaiono spettri fantasmi (!) invertiti e che Nyquist non si rivolti nella tomba.
Tuttavia, in questo particolare caso (e sottolineo in questo particolare caso), se ne puo' fare a meno perche' e' improbabile che un segnale audio proveniente da un lettore mp3, scheda audio pc, smartphone, ecc contenga segnali importanti (e sottolineo importanti) oltre i 12-14 KHz (e forse anche meno). In breve e' la sorgente audio citata che fa da filtro antialiasing.

Ovviamente in tutti gli altri casi il filtro DEVE essere presente e deve essere un filtro serio e a forte pendenza, qui http://www.dmf.unisalento.it/~panareo/Progetti/Elettronica_A… uno studente ha simulato un filtro da 100 dB per decade (!) per analizzare in sicurezza e senza aliasing un segnale con banda da 5 KHz e campionato a 15 KHZ (il triplo) (vedi pagina 4)





"se peso cado, ma se cado non peso"
adamatj.altervista.org
caccamo2





postato il:
14.09.2019, alle ore 16:05
double_wrap:
Caccamo2 ha assolutamente ragione nel prevedere l'uso di un filtro antialiasing all'ingresso dell'adc, cosi' si e' certi che non ci siano frequenze superiori alla meta' della frequenza di campionamento, che non compaiono spettri fantasmi (!) invertiti e che Nyquist non si rivolti nella tomba.
Tuttavia, in questo particolare caso (e sottolineo in questo particolare caso), se ne puo' fare a meno perche' e' improbabile che un segnale audio proveniente da un lettore mp3, scheda audio pc, smartphone, ecc contenga segnali importanti (e sottolineo importanti) oltre i 12-14 KHz (e forse anche meno). In breve e' la sorgente audio citata che fa da filtro antialiasing.

E' piu' probabile di quanto pensi, in apparati alimentati a batteria non e' raro trovare amplificatori a commutazione senza filtro, in quel caso le componenti in alta frequenza possono essere ben piu' che importanti. In questo particolare caso siccome usa Arduino che non e' proprio un esempio di compatibilita' elettromagnetica c'e' un aggressore in piu'. Inoltre quando colleghi insieme piu' apparecchi non e' raro che si creino loop e antenne che possono pescare segnali dal mondo esterno, dalla PRF delle trasmissioni radio alle lampade fluorescenti.
Quindi il filtro ci va, oltretutto lui si lamenta delle bande in alta frequenza, e' un possibile sintomo di aliasing, quelle sono le prime ad essere intaccate.



...
schottky





postato il:
14.09.2019, alle ore 18:27
http://www.dmf.unisalento.it/~panareo/Progetti/Elettronica_A… uno studente ha simulato un filtro da 100 dB per decade (!) per analizzare in sicurezza e senza aliasing un segnale con banda da 5 KHz e campionato a 15 KHZ (il triplo) (vedi pagina 4)




Al ragazzo mi sa non hanno mai parlato della risposta in fase....... usare un filtro del genere come antialiasing per una catena audio con campionamento risicato, non è il caso di daniele che non deve 'ascoltare' distrugge completamente la percezione delle alte frequenze.



Il vantaggio di essere intelligente e' che si puo' sempre fare l'imbecille, mentre il contrario e' del tutto impossibile. -- W. Allen
double_wrap




una ogni 100 livelli
una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
14.09.2019, alle ore 20:20
Temo di aver sollevato il classico vespaio, ma discutere fa solo bene!

Con il link dell'apprendista ingegnere volevo solo evidenziare il conto
fatto in fondo a pagina 4 in cui si deduce la necessita' di usare un filtro del 5 ordine da 100 dB per ottava se il segnale da analizzare e' di 5 KHz e lo si campiona a 15 KHz.

Ovviamente un filtro antialiasing deve essere anche a fase lineare ed introdurre un ritardo di gruppo (la derivata della fase rispetto al tempo) costante, cosa piu' facile da dire che da fare con un filtro analogico. Non ne ho fatto cenno per non aggiungere ulteriori perplessita' a daniele1979, ne ha gia' parecchie di sue!

In sintesi ribadisco il mio suggerimento di usare filtri analogici per un visualizzatatore con soli 10 canali ad ottava o di approfondire un po' (forse anche parecchio) i link sul campionamento, la fft e le relative librerie per realizzare un elementare (ma proprio elemetare) visualizzatore digitale a 24 canali.

Potrebbe essere utile la realizzazione (funzionante) qui su grix che pero' visualizza lo spettro sull'oscilloscopio, il link e' qualche post addietro. Per passare da 128 frequenze (o meglio bande) a 32 basta raggrupparne 4 assieme e riscrivere il codice della visualizzazione sulle matrici di led.

@caccamo2: forse sbaglio io (gli anni passano) ma se in ingresso c'e' un segnale oltre la Fc/2, le righe fantasma dovrebbero rientrare da destra verso sinistra e quindi accendere i led della 4^ matrice, mentre daniele 1979 dice (se non ho capito male) che la 4^ matrice resta pressoche' spenta. Pero' posso sbagliare io.



"se peso cado, ma se cado non peso"
adamatj.altervista.org
caccamo2





postato il:
14.09.2019, alle ore 21:00
double_wrap:
@caccamo2: forse sbaglio io ...
da destra verso sinistra e quindi accendere i led

Ricordi bene, accendere...o spegnere, a seconda della fase.

Io non dico che sia sempre obbligatorio il filtro anti alias, anzi, volendo e' anche possibile identificare componenti oltre nyquist, pero' prima di una FFT bisognerebbe imparare a fare un filtro analogico. Come gia' detto non deve essere uno strumento, non serve dinamica quindi un filtro analogico e' sufficiente.
Gli analizzatori di spettro analogici sono ancora in uso oggi, l'fft e' nata per acquisire lo spettro di segnali estremamente veloci in real time, e non, come pensano in molti, per eliminare la complessita' dell'analogica. La parte analogica e' sempre e comunque in miglioramento, tant'e' che ancora oggi gli analizzatori hanno uno stadio swept tune o pll in ingresso.



...
pippodue




una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli una ogni 10 livelli


postato il:
15.09.2019, alle ore 07:47
Ho sempre pensato che il filtro anti-aliasing debba essere analogico hardware, attivo o passivo, perchè se fosse digitale, cioè posto a valle dello ADC che effettua il campionamento, soffrirebbe degli stessi limiti che vorrebbe superare.
Dico questo per intuito, non so se sia una regola effettivamente dimostrabile.
Un analizzatore di spettro per segnali musicali si può effettivamente fare con una MCU, sfruttando una routine FFT o anche simulando dei risonatori o tecniche equivalenti, la parte più ostica per me sarebbe pilotare i led, buona l'idea di sfruttare un oscilloscopio.



anche i grandi uomini, come gli uomini comuni, possono talvolta cadere in errore (Voltaire)
schottky





postato il:
16.09.2019, alle ore 11:55
Nella maggior parte delle catene audio digitali, il filtraggio antialias è effettuato con filtri digitali, la cosa si può ottenere grazie al sovracampionamento ad una frequenza molto superiore (parecchie volte) al valore minimo teorico dopo di chè il filtraggio analogico è realizzato con un filtro molto semplice che deve avere una frequenza di taglio basata sulla 'nuova' frequenza di campionamento.


Il vantaggio di essere intelligente e' che si puo' sempre fare l'imbecille, mentre il contrario e' del tutto impossibile. -- W. Allen
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale