Jump to content
PLC Forum


Acquisizione segnale da microfono


Duesette
 Share

Recommended Posts

Duesette

1° ESERCIZIO

Un segnale audio proveniente da un microfono deve essere memorizzato su un supporto digitale con qualità telefonica (larghezza di banda 3400 Hz e conversione A/D a 8 bit).
1) Disegnare lo schema a blocchi del circuito che risolve il problema.
2) Descrivere la funzione di ogni blocco.
3) Definire i parametri e le caratteristiche dei componenti.

2° ESERCIZIO
Disegnare lo schema a blocchi e illustrare il funzionamento di un convertitore Analogico/Digitale a 4 bit a scelta.
Descrivere la funzione di ogni blocco.
Definire i parametri e le caratteristiche dei componenti.
 

*Domande*

Che cosa s’intende per campionamento e conversione Analogico/Digitale?
Che cosa succede se la frequenza di campionamento è troppo bassa?
Quali sono i parametri principali per valutare le prestazioni di un ADC?
Disegnare lo schema a blocchi e illustrare il funzionamento di un convertitore Analogico/Digitale a 4 bit a scelta.
Cosa cambia se viene utilizzato il convertitore A/D presente nel microcontrollore ATMega 328 alloggiato nella scheda Arduino UNO?
In questo caso, con quali modalità è possibile processare più di un segnale analogico P

Salve, mi serve aiuto per questo progetto da elaborare entro il 31 Maggio.
 

Link to comment
Share on other sites


Domenico Maschio

Vuoi che andiamo a fare noi l'esame che dovresti fare tu ? 

 

Link to comment
Share on other sites

Gli esami non finiscono mai...

Proponete una vostra soluzione e casomai si sviluppa. Non si capisce sennò la vostra preparazione.

Link to comment
Share on other sites

Domenico Maschio

Il segnale audio telefonico ha una larghezza di banda di circa 4 Khz , per essere preciso da 300 a 3400 Hz che viene arrotondato , per prima cosa occorre farlo passare in un filtro passa basso a 4Khz per eliminare tutte le frequenze superiori che in ogni caso ci sono.

Secondo la legge di Nyqist- Shannon , per trasferire un segnale audio e renderlo intellegibile non è necessario mandarlo per tutta la sua interezza , ma basta mandarne solo due campioni per la frequenza piu alta . Data la frequenza piu alta presente limitata a 4 Khz , basta mandare due campioni a 8 Khz .

Il segnale analogico viene cosi " campionato " a 8 Khz producendo dei segnali chiamati PAM . Questa è la Campionatura , primo passaggio .Questi segnali devono essere poi mandati ad un circuito che li pesa ( rete di pesatura ) che cioè deve stabilire quanto è il valore in tensione del campione , secondo passaggio .

Il valore numerico che si ottiene in forma decimale del valore di qualche millivolt deve poi andare al digitalizzatore a 8 bit . Degli 8 bit che formano la parola , il primo determina il segno ( 1 se il valore è positivo , 0 se negativo ) , gli altri 7 bit determinano il valore numerico del campione. ( con 7 bit si possono esprimere 128 valori diversi positivi ed altrettanti negativi ) In questo modo siamo limitati ad inviare livelli non troppo estesi sulla dinamica , infatti se usciamo da questi limiti il segnale poi ricostruito procurerà una distorsione . Se complichiamo il discorso possiamo parlare poi di compressori di dinamica e digitali ,ma diventa troppo complesso .

Tutto questo sistema che viene usato in telefonia si chiama PCM ( Pulse Code Multiplexing ) .

Se vuoi vederlo meglio ti linko un file che ho fatto tanti anni fa purtroppo .

Inizia a vederlo poi vediamo anche il contributo di altri.

https://www.plcforum.it/f/files/file/4789-pcm/

 

Edited by Domenico Maschio
Link to comment
Share on other sites

Livio Orsini

Domenico mihai fatto tornare indietr con la mente a 55 anni fa quando una sera, al corso di specializzazione post diploma, l'insegnate di "telefonia elettronica" iniziò a spiegare le tecniche PCM. Allora lo stato dell'arte erano le centrali "pentaconta" che permettevano la teleselezione (ferma a Roma, al sud di Roma si doveva ricorrere all'operatore).

 

11 ore fa, Duesette scrisse:

Che cosa succede se la frequenza di campionamento è troppo bassa?

 

Dovrebbe essere intuitivo da quanto dice il teorema di Shannon. Se per tramettere un segnale di frequenza massima "f", devi campionare con una frequenza 2*f, è facile capire cosa succede se questa relazione non viene rispettata.

 

12 ore fa, Duesette scrisse:

Quali sono i parametri principali per valutare le prestazioni di un ADC?

 

Questoè un discorso piuttosto lungo, lo riassumo nei punti salienti:

  • tempo minimo per una conversione completa
  • quantizzazione minima, ovvere quale è la differenza di tensione tra due passi contigui; è funzione del numero di bits, con un convertitore a10 bits, ad esempio, potrai dividere il fondo scala in 1023 gradini di tensione (con 10V di fs ==> 9.77mV per passo).
  • stabilità e precisione del riferimento di tensione; da questo parametro dipendono la stabilità e la precisione della conversione

Nel caso in esame, il tempo di conversione completo deve essere almeno 1/5 del periodo di campionamento del segnale. Esempio, se campioni con un periodo di 125µs, il convertitore A/D deve essere in crado di effettuare una conversione completa in un tempo tc <= 25µS

 

12 ore fa, Duesette scrisse:

Cosa cambia se viene utilizzato il convertitore A/D presente nel microcontrollore ATMega 328 alloggiato nella scheda Arduino UNO?
In questo caso, con quali modalità è possibile processare più di un segnale analogico P

 

Arduino ha 5 ingressi di conversione A/D quantizzati su 10 bits, con fondo scala di 5V. Gli ingressi sono 5, ma il convertitore è unico; questo fatto comporta che il tempo minimo di conversione è pari al tempo minimo di conversione dello A/D moltiplicato per il numero di canali usati. Il valore del tempo minimo di conversione te lo ricerchi sul data sheet del micro usato.

 

12 ore fa, Duesette scrisse:

Salve, mi serve aiuto per questo progetto da elaborare entro il 31 Maggio.

 

Oggi è il 16 maggio, viste le tue conoscenze, se vuoi fare un lavoro decente, devi sgobbare veramente tanto per riuscirci.

Link to comment
Share on other sites

Duesette

Buon pomeriggio a tutti, grazie per gli spunti. Volevo chiedervi se, secondo voi, questo schema a blocchi è corretto.
Se non lo fosse, potreste dirmi cosa devo cambiare? 
Grazie mille

 

Schema a blocchi.jpeg

Link to comment
Share on other sites

Duesette
2 ore fa, DavidOne71 scrisse:

filtro passa basso

Perchè?

 

Link to comment
Share on other sites

Livio Orsini
8 ore fa, Duesette scrisse:
11 ore fa, DavidOne71 scrisse:

filtro passa basso

Perchè?

 

Perchè è ...un filtro passa basso.

Se devi lasciar passare solo le frequenza sino a 4000Hz necessiti di un filtro che impedisca il passaggio di tutte le frequenze maggiori di 4000Hz, quindi di un filtro passa basso; si dice passa basso perchè l'ascia passare solo le frequenze più basse della frequenza limite.

In effetti sarebbe più corretto usare un filtro passa banda, visto che la banda telefonica, come ha scritto Domenico è limitata tra 300Hz e 3400Hz; questo perchè in questa banda sono comprese la maggior parte delle frequenze emesse dalla voce umana mentre si parla normalmente.

Per realizzare un filtro siffatto basta mettere in cascata un filtro passa alto che lasci passare tutto sopra i 300Hz, seguito da un filtro bassa basso che tagli tutto quello che supera i 3400Hz.

Comunque anche approssimando con un filtro passa basso a 4000 Hz, la prestazione può essere soddisfaciente.

Link to comment
Share on other sites

Domenico Maschio

Per curiosità ecco le copie delle pagine del testo sul PCM ( è un pò datato ) dove viene spiegato la necessità di usare un filtro passa-basso 002.thumb.jpg.b297158a204f0837ab3f3b48910f0be4.jpg005.thumb.jpg.06e5efa0a0518bc8459d65a81fe9676b.jpg

Link to comment
Share on other sites

Duesette
11 ore fa, Livio Orsini scrisse:

 

Perchè è ...un filtro passa basso.

Se devi lasciar passare solo le frequenza sino a 4000Hz necessiti di un filtro che impedisca il passaggio di tutte le frequenze maggiori di 4000Hz, quindi di un filtro passa basso; si dice passa basso perchè l'ascia passare solo le frequenze più basse della frequenza limite.

In effetti sarebbe più corretto usare un filtro passa banda, visto che la banda telefonica, come ha scritto Domenico è limitata tra 300Hz e 3400Hz; questo perchè in questa banda sono comprese la maggior parte delle frequenze emesse dalla voce umana mentre si parla normalmente.

Per realizzare un filtro siffatto basta mettere in cascata un filtro passa alto che lasci passare tutto sopra i 300Hz, seguito da un filtro bassa basso che tagli tutto quello che supera i 3400Hz.

Comunque anche approssimando con un filtro passa basso a 4000 Hz, la prestazione può essere soddisfaciente.

Okay, grazie mille. Per il resto va bene? 

1 ora fa, Domenico Maschio scrisse:

Per curiosità ecco le copie delle pagine del testo sul PCM ( è un pò datato ) dove viene spiegato la necessità di usare un filtro passa-basso 002.thumb.jpg.b297158a204f0837ab3f3b48910f0be4.jpg005.thumb.jpg.06e5efa0a0518bc8459d65a81fe9676b.jpg

Grazie mille

 

Link to comment
Share on other sites

Francesco_54

Per i canali telefonici il limite di banda superiore  di 3400Hz non e' casuale.

Le centrali telefoniche, per una corretta tariffazione , hanno la necessità di scambiarsi un segnale di servizio, detta  frequenza di  segnalazione di 3750Hz.

Nella tecnica FDM, la frequenza di segnalazione viaggiava dalla partenza all'arrivo, fuori dalla banda netta riservata all'audio, ma entro la banda lorda di ogni canale telefonico.

Nella tecnica PCM, detto segnale viene separato dal segnale audio, convertito in digitale e instradato su uno slot temporale dedicato (16esimo, trama 2Mb/30 canali telefonici) per poi reimmetterlo all'arrivo dopo la conversione digitale/analogico.

Edited by Francesco_54
Link to comment
Share on other sites

Lorenzo Mazzaglia

Buongiorno , Sono un compagno Di classe  del ragazzo che ha chiesto aiuto , avete un link dove spiega per bene IL funzionamento del adc? Grazie in anticipo 

Link to comment
Share on other sites

Lorenzo Mazzaglia

Inoltre c'é bisogno Di aggiungere/ togliere / sistemare IL nostro schema a  blocchi ? O lo possiamo portare direttamente cosí?

Link to comment
Share on other sites

Googla semplicemente Convertitore ADC, trovi una valanga di informazioni.

Il funzionamento in particolare dipenderà poi dalla tecnologia usata (R/R, Sigma/Delta, SAR, ecc) non sono tutti uguali

Link to comment
Share on other sites

Lorenzo Mazzaglia

Okok grazie ma per quanto riguarda lo schema é buono ? , Nel nostro schema quale adc sarebbe ottimale?

Link to comment
Share on other sites

Livio Orsini

No il link è perfettamente funzionante, per vedere il file devi, una volta che sei sullapagina del link, clickare sul pulsante "scarica questo file" (in alto a dx).

 

Lo schema a blocchi può quasi essere valido.

Cambia il filtro da passa alto a passa basso, con taglio a 3400HZ come richiesto dal testo.

L'uscita del D/A non la puoi mandare direttamente ad una RAM, ma è necessario un gestore.

Il convertitore converte il campione in un byte, ad ogni EOC (end of convertion) si memorizza in un latch e poi questo dato sarà trasferito nella RAM ad un indirizzo ben preciso. Normalmente si parte dall'indirizzo 0000h e ad ogni memorizzazione si incremente di uno. Arrivati all'indirizzo di massima capienza della memoria si deve scegliere se riscrivere ripartendo da dall'indirizzo zero (memomorizzazione circolare o ad anello), oppure segnalare il raggiunto limite (overflow)

Link to comment
Share on other sites

Lorenzo Mazzaglia
1 ora fa, Livio Orsini scrisse:

No il link è perfettamente funzionante, per vedere il file devi, una volta che sei sullapagina del link, clickare sul pulsante "scarica questo file" (in alto a dx).

 

Lo schema a blocchi può quasi essere valido.

Cambia il filtro da passa alto a passa basso, con taglio a 3400HZ come richiesto dal testo.

L'uscita del D/A non la puoi mandare direttamente ad una RAM, ma è necessario un gestore.

Il convertitore converte il campione in un byte, ad ogni EOC (end of convertion) si memorizza in un latch e poi questo dato sarà trasferito nella RAM ad un indirizzo ben preciso. Normalmente si parte dall'indirizzo 0000h e ad ogni memorizzazione si incremente di uno. Arrivati all'indirizzo di massima capienza della memoria si deve scegliere se riscrivere ripartendo da dall'indirizzo zero (memomorizzazione circolare o ad anello), oppure segnalare il raggiunto limite (overflow)

 Ok Adesso Vedo Di sitemare l'adc mentre il filtro giá lo avevo sistemato grazie alla spiegazione sua , invece questo file riguarda il secondo esercizio dove chiede Di rappresentare un adc a 4 bi, questo é a 3 bit ma Sarà lo stesso solamente Che grazie alla formula 2^n-1 verranno 15 amplificatori e un'ingresso con le rispettive 4 uscite?

Screenshot_2021-05-19-19-12-23-738_com.whatsapp.jpg

Oppure visto Che stiamo usando l'adc flash serve un decodificatore e successivamente un latch?

Link to comment
Share on other sites

Livio Orsini
11 ore fa, Lorenzo Mazzaglia scrisse:

Sarà lo stesso solamente Che grazie alla formula 2^n-1 verranno 15 amplificatori e un'ingresso con le rispettive 4 uscite?

 

Si ci vogliono 15 comparatori seguiti da un codificatore 15 ==>4.Questa tecnica è la più veloce, ma è anche la più dispendiosa.

Il miglior compromesso tra velocità di conversione e semplicità è il convertitore SAR o ad approssimazioni successive. In pratica confronti l'uscita di un D/A con il segnale da convertire. Quando i du2 valori sono uguali, il codice del D/A è l'equivalente del segnale di ingresso.

 

10 ore fa, DavidOne71 scrisse:

io lascerei anche il passa alto

 

non serve!

Link to comment
Share on other sites

Lorenzo Mazzaglia
17 ore fa, Livio Orsini scrisse:

No il link è perfettamente funzionante, per vedere il file devi, una volta che sei sullapagina del link, clickare sul pulsante "scarica questo file" (in alto a dx).

 

Lo schema a blocchi può quasi essere valido.

Cambia il filtro da passa alto a passa basso, con taglio a 3400HZ come richiesto dal testo.

L'uscita del D/A non la puoi mandare direttamente ad una RAM, ma è necessario un gestore.

Il convertitore converte il campione in un byte, ad ogni EOC (end of convertion) si memorizza in un latch e poi questo dato sarà trasferito nella RAM ad un indirizzo ben preciso. Normalmente si parte dall'indirizzo 0000h e ad ogni memorizzazione si incremente di uno. Arrivati all'indirizzo di massima capienza della memoria si deve scegliere se riscrivere ripartendo da dall'indirizzo zero (memomorizzazione circolare o ad anello), oppure segnalare il raggiunto limite (overflow)

Va bene adesso chiedo e vediamo Che riesco a fare 

Link to comment
Share on other sites

Lorenzo Mazzaglia
18 ore fa, Livio Orsini scrisse:

No il link è perfettamente funzionante, per vedere il file devi, una volta che sei sullapagina del link, clickare sul pulsante "scarica questo file" (in alto a dx).

 

Lo schema a blocchi può quasi essere valido.

Cambia il filtro da passa alto a passa basso, con taglio a 3400HZ come richiesto dal testo.

L'uscita del D/A non la puoi mandare direttamente ad una RAM, ma è necessario un gestore.

Il convertitore converte il campione in un byte, ad ogni EOC (end of convertion) si memorizza in un latch e poi questo dato sarà trasferito nella RAM ad un indirizzo ben preciso. Normalmente si parte dall'indirizzo 0000h e ad ogni memorizzazione si incremente di uno. Arrivati all'indirizzo di massima capienza della memoria si deve scegliere se riscrivere ripartendo da dall'indirizzo zero (memomorizzazione circolare o ad anello), oppure segnalare il raggiunto limite (overflow)

Mi risponde sempre a questa domanda non so IL motivo, lo schema spiegato Dal nostro professore é IL seguente  , invece Di aver usato IL convertitore sar abbiamo deciso Di usare questo perché dobbiamo solo spiegarlo e mostrarlo , non so fare mi SAPERE Cosa ne pensate e se credete vada bene 

Screenshot_2021-05-20-11-41-18-256_com.google.android.apps.docs.jpg

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...