Domanda:
Convertitori a 16 o 24 bit?
Sławomir Kozok
2015-05-01 23:22:48 UTC
view on stackexchange narkive permalink

Voglio creare alcuni effetti DSP, ad esempio sul processore STM32F4, con frequenza di 96 o 192 KHz. I convertitori a 16 bit (ADC e DAC) sono sufficienti per questo tipo di operazione? Posso sentire una differenza quando scelgo 16 bit o 24 bit?

Qual è la frequenza di campionamento massima dei tuoi ADC / DAC?Questo è ciò che influenza le frequenze che vuoi campionare.Puoi verificare se sentirai una differenza tra 16 bit e 24 bit in Windows (fai clic con il pulsante destro del mouse sull'icona del suono nella casella degli strumenti -> Dispositivi di riproduzione -> scegli quello che stai utilizzando -> Proprietà -> Avanzate e cambia tra24 bit e 16 bit).
A che tipo di segnali stai applicando gli effetti e in definitiva cosa fai con quei segnali.
Voglio creare una piattaforma che mi permetta di creare molti effetti diversi.Voglio usare con la chitarra.Per l'inizio voglio fare un semplice inviluppo ADSR, ma dopo forse qualcosa come delay o chorus.
Le chitarre hanno una risposta in frequenza e una gamma dinamica molto inferiori rispetto ad altre sorgenti audio.16 bit andrebbe bene.
Potresti dare un'occhiata al [gufo di hoxton] (https://www.rebeltech.org/product/owl-pedal/).Anche se non ero particolarmente innamorato dei suoni demo che hanno sul loro sito, hanno [schemi e una base di codice su github] (https://github.com/pingdynasty/OwlWare).Il loro hardware include un processore ARM, un codec [WM8731] (https://www.cirrus.com/products/wm8731/), alcuni orologi di cristallo.eccetera.
Sei risposte:
Matt Young
2015-05-02 05:17:20 UTC
view on stackexchange narkive permalink

Ci sono molte cattive informazioni e frodi audio disponibili su questo argomento, ma se stai facendo un canale di audio digitale, le frequenze di campionamento a 96kHz e 192kHz sono stupide. L'udito umano si estende fino a 20 kHz. Per soddisfare Nyquist a 20kHz, abbiamo bisogno di una frequenza di campionamento maggiore di 40kHz. I CD sono 44,1 kHz e 48 kHz è un'altra frequenza di campionamento comune.

Ora, ricordiamo che l'audio digitale è un segnale discreto, non continuo. Ciò significa che ha un valore in ogni momento di campionamento e non è definito in tutti gli altri momenti. Per un segnale a banda limitata, campionato ao superiore a Nyquist, c'è solo un segnale che passa attraverso ciascuno di questi campioni discreti. Qualsiasi altro segnale che passa attraverso tutti i punti di campionamento non può soddisfare Nyquist. L'unico motivo per campionare a 96kHz o 192kHz per un singolo canale è se stai sovracampionando con un ADC a bassa profondità di bit. Anche questo è sciocco, e andremo lì dopo.

Abbiamo appena discusso di come una serie di campioni discreti corrisponda esattamente a un segnale. Questo è indipendente dalla profondità di bit. Ciò non significa che la profondità di bit non sia importante. La conversione in digitale introduce il rumore di quantizzazione. La quantizzazione è il rumore introdotto nel segnale digitale "arrotondandolo" al valore digitale più vicino, come mostrato in questa immagine spudoratamente rubata da Wikipedia.

enter image description here

Il rumore di quantizzazione è direttamente correlato alla profondità di bit. Dovrebbe essere abbastanza ovvio maggiore è la risoluzione (valori a cui arrotondare), minore è il rumore di quantizzazione. Una maggiore profondità di bit consente di ottenere una risoluzione a fondo scala più elevata. Una risoluzione più alta riduce il rumore di quantizzazione avendo più valori disponibili per abbinare strettamente il valore del segnale a un campione. La riduzione del rumore di quantizzazione abbassa il rumore di fondo e aumenta il rapporto segnale / rumore (SNR).

Riesci a sentire la differenza tra la quantizzazione a 16 e 24 bit? Scommetto tutto quello che non puoi. È per una chitarra e le chitarre non sono famose per la loro gamma dinamica. Una sinfonia professionale? Forse, senza esitazione. Il rumore di fondo a 16 bit è abbastanza basso che è improbabile che sia distinguibile, ma la differenza sarà misurabile.

In sintesi, il mio voto va per la frequenza di campionamento di 48 kHz e la risoluzione a 16 bit. Incoraggio vivamente chiunque sia interessato a questo argomento a guardare questo video.

Quel video è stato fantastico.Questo aprirà alcune mie domande.
+1 per la differenza tra misurabile e distinguibile: a volte, la differenza è troppo piccola per essere ascoltata.
In condizioni ideali, il campionamento a 16 bit a 44100 Hz sarà adeguato.Tuttavia, l'utilizzo di una profondità di bit e di una frequenza di campionamento maggiori può semplificare alcuni aspetti della progettazione del sistema.Ad esempio, ottenere 96 dB SNR da un ADC a 16 bit richiederebbe che il guadagno di ingresso sia impostato perfettamente.Se un dispositivo deve accettare l'input da una varietà di dispositivi il cui livello di picco può variare di un fattore 100, un ADC a 16 bit a guadagno fisso andrebbe bene solo per circa 56 dB se utilizzato su un segnale di basso livello.Al contrario, un tipico ADC audio a 24 bit sarebbe in grado di gestire un SNR utile coerente su tutta la sua gamma dinamica.
@supercat Punto giusto, ma 96dB SNR per un effetto per chitarra è francamente ridicolo.
@MattYoung: Esistono due diverse forme di SNR: il rapporto tra il livello di segnale a e il livello di rumore * misurato contemporaneamente *, o il rapporto tra il livello di segnale massimo e il livello di rumore più basso che può viaggiare su un segnale diverso da zero.Per la prima misura, anche 48dB sarebbero adeguati per una chitarra.Per la seconda, invece, occorre molto di più.Se c'è una differenza di oltre 48 dB tra i livelli di ingresso più alti e più deboli che una scatola dovrebbe accettare, un ADC a 16 bit avrebbe solo 48 dB SNR per la seconda misura, il che non è davvero sufficiente.
@MattYoung: Per quanto riguarda la frequenza di campionamento, se si desidera una banda passante da 12 Khz, il campionamento a 48 kHz con un SNR di 48 dB richiederebbe un filtro da 48 dB / ottava.L'utilizzo del campionamento a 96 kHz richiederebbe un filtro da 24 dB / ottava e l'utilizzo del campionamento a 192 kHz richiederebbe solo un filtro da 12 dB / ottava.Inoltre, l'utilizzo di algoritmi di interpolazione grezzi a 192 Khz può produrre risultati paragonabili all'utilizzo di algoritmi di filtraggio migliori a 48 Khz, ma richiede molto meno sforzo di codifica.
crgrace
2015-05-01 23:30:15 UTC
view on stackexchange narkive permalink

Dipende da chi chiedi. La maggior parte degli esseri umani non può sentire oltre i 20 kHz e 16 bit, quindi 96 o 192 kHz dovrebbero essere sufficienti.

Per quanto riguarda l'ascolto di una differenza tra i convertitori a 16 e 24 bit, dipende dal tuo DSP. Il vantaggio principale dei convertitori a 24 bit è che ti offre tonnellate di headroom aggiuntivo (gamma dinamica) in modo da poter eseguire molte operazioni matematiche e non aggiungere rumore di quantizzazione evidente.

Nella mia esperienza, non posso dire la differenza tra i convertitori a 16 e 24 bit. Alcune persone pensano di poterlo fare. Se fossi in te sceglierei i convertitori a 24 bit, quindi è una cosa in meno di cui preoccuparsi e puoi concentrarti sul tuo codice DSP.

Adam Haun
2015-05-02 08:43:12 UTC
view on stackexchange narkive permalink

Bisogna considerare che le prestazioni dell'ADC e del DAC dipenderanno molto dai circuiti di supporto e dal layout del PCB. Non sono un esperto di ADC, ma la mia comprensione è che da un punto di vista elettrico, 16 bit è di fascia alta e 24 bit è estremo. Se utilizzi un riferimento a 5 V, 1 bit meno significativo è 76 uV su un convertitore a 16 bit. Questo è il miglior rumore di fondo di -96 dB. Sei sicuro di poter controllare il rumore fino a quel punto? Tieni presente che anche l'ambiente di registrazione produce rumore. A meno che tu non sia in uno studio di registrazione e tu abbia un circuito davvero carino, non credo che un ADC a 24 bit ti aiuterà. Sospetto anche che 96 kHz sia eccessivo e che 48 kHz funzionerebbe altrettanto bene.

Solo per divertimento, potresti sperimentare con l'ADC a 12 bit sull'STM32F4 per vedere se riesci a sentire una differenza rispetto a 16 bit.

supercat
2015-05-06 22:00:12 UTC
view on stackexchange narkive permalink

Una stranezza facilmente trascurata dei sistemi di quantizzazione come gli ADC è che un ADC che restituisce sempre la lettura più vicina al valore di input aggiungerà una quantità significativa - fino a ± ½ LSB - di distorsione armonica, che può essere molto più discutibile di quanto sarebbe ± ½ LSB di rumore ad ampio spettro. Un ADC che aggiungesse ± ½ LSB di rumore ad ampio spettro con le giuste caratteristiche potrebbe eliminare la distorsione armonica, ma se le caratteristiche del rumore non fossero del tutto corrette rimarrebbe una certa distorsione. Sebbene non sia impossibile progettare un ADC a 16 bit di alta qualità che abbia una sorgente di rumore di ± ½ LSB molto ben modellata, è spesso molto più facile estendere semplicemente le misurazioni per riportare 24 bit, riducendo così il rumore di quantizzazione (e l'armonica risultante distorsione) di un fattore di almeno 256. Mentre andare fino in fondo a 24 bit potrebbe non avere molti vantaggi oltre ad es andando a 20, probabilmente non aggiunge molto al costo dal punto di vista dell'hardware o del software.

Come analogia, supponiamo che uno abbia bisogno di un dispositivo che riporti una tensione precisa entro 0,06 volt. Sarebbe più facile progettare un dispositivo del genere con una lettura in decimi di volt o in centesimi? Se la lettura è in decimi, il dispositivo deve essere in grado di risolvere la differenza tra 1,139 e 1,161 volt (il primo deve essere riportato come 1,1 e il secondo come 1,2), una differenza di poco superiore a 0,02 volt. Se la lettura fosse in centesimi, potrebbe riportare un valore di 1,10 volt per qualsiasi cosa fino a 1,159 volt e una lettura di 1,11 volt per qualsiasi cosa fino a 1,061 volt, uno spread di circa 0,1 volt. Pertanto, fornire cifre più significative nella lettura riduce effettivamente la precisione dei circuiti necessari per ottenere una data precisione del risultato.

r3mnant
2015-07-18 08:01:27 UTC
view on stackexchange narkive permalink

Nel tuo caso, per campionare una chitarra elettrica con una frequenza di picco massima di circa 2,5kHz e una pendenza di caduta di almeno 12dB / ottava a frequenze più alte, sarei d'accordo con il consenso generale di 48kHz e risoluzione di 16 bit, sebbene se si apportano modifiche pesanti (come flussi di ritardo multipli), 24 bit sarebbero più utili come ha sottolineato @crgrace.

Nessuno ha ancora menzionato la psicoacustica che gioca un ruolo importante nella percezione dell'audio digitale , e poiché la tua domanda riguardava se puoi sentire una differenza, penso che rimanga da spiegare. La nostra percezione del suono è dominata più dall'informazione di fasatura che dalla frequenza e dalla distorsione. Hai menzionato il ritardo e il coro come i tuoi prossimi interessi dopo la modulazione dell'inviluppo. Entrambi questi effetti aggiungono informazioni sulla fase alla sorgente originale.

Tuttavia, se si decide di aumentare l'ambito del progetto per includere la chitarra acustica o la voce, si otterrebbe un effetto evidente utilizzando una frequenza di campionamento di 48 kHz e 16 bit di profondità. La sibilanza, il suono della "s" nel discorso, si verifica spesso con la voce. Una chitarra acustica con pickup piezo ha anche una forma di sibilante (sebbene non dello stesso tipo) ed è meglio filtrare i segnali su 3-5kHz per evitare questo problema. Ma con la voce non puoi fare molto se non applicare un filtro de-essing.

La sibilanza è un suono complesso che ha un'interazione di informazioni di fase a frequenze moderatamente alte. Il caso più ovvio è un piatto sfrigolante. Microfono e registralo a varie frequenze di campionamento e confronta il suono registrato con quello dal vivo. Man mano che si riduce progressivamente la frequenza di campionamento, il segnale registrato suonerà più come un rumore aspro fino a quando non diventa insopportabile. Con una buona registrazione sarai in grado di sentire i rivetti viaggiare intorno al piatto. Questo è uno dei motivi per cui alcune persone preferiscono le registrazioni analogiche ai CD.

Come regola pratica, è necessario che la frequenza di campionamento sia 10 volte la frequenza del segnale più alta per ridurre al minimo le distorsioni di fase. Una chitarra elettrica produce pochi armonici superiori a 5 kHz e quindi una frequenza di campionamento di 48 kHz funzionerà abbastanza bene. Ma se desideri utilizzare i tuoi effetti in modo più generale, come la correzione dell'intonazione o il chorus per le voci, ti consiglio di utilizzare frequenze di campionamento più elevate.

Nazar
2015-05-02 00:40:19 UTC
view on stackexchange narkive permalink

La profondità di bit , di cui parla l'OP, non ha nulla a che fare con la capacità di sentire una certa gamma di frequenze. In altre parole, la profondità di bit rappresenta la risoluzione dell'intensità del suono. Scommetto, se ottieni una musica di alta qualità e la produci attraverso convertitori a 16 e 24 bit, sentirai la differenza alla grande! L'immagine sotto mostra una "scala" di quantizzazione esagerata sul campionamento a 16 bit:

enter image description here

Ora, frequenza di campionamento , che OP confonde con ADC, è diverso. Penso che significhi 96ks / se 192ks / s, il che significherebbe sovracampionamento. Questi numeri di solito rappresentano i multipli di 24 kHz, una frequenza di ascolto massima con qualche overhead di riserva (a causa di filtri passa-basso non ideali). Pertanto, il campionamento a 48 kHz sarebbe leggermente superiore alla frequenza di Nyquist, 96 Khz significa semplicemente che è stereo (due canali) e 192 è quadro.

Pertanto, è necessario campionare ciascun canale a circa 48 kHz, e se può ottenere un campionatore ADC a 24 bit - fallo - la maggior parte dei campioni sonori commerciali ha una profondità di 24 bit. Tuttavia, se la tua sorgente sonora (quitar) è abbastanza rumorosa da uccidere la risoluzione, allora spendere soldi extra per il convertitore a 24 bit non migliorerà il tuo suono.

E come ha detto @crgrace, una maggiore profondità di bit diminuire la perdita di informazioni durante l'elaborazione del suono digitale a causa di errori di troncamento.

La profondità di bit non ha nulla a che fare con l '"intensità del suono", ma con la gamma dinamica e l'SNR.
@MattYoung Giusto, l'hai scambiato per volume?Intendevo la risoluzione dell'intensità del suono che è essenzialmente SNR.
Non sono sicuro di seguire come "risoluzione dell'intensità del suono" = SNR
@MattYoung Bene, perché avere una risoluzione al di sotto dell'SNR è inutile poiché travolge il segnale.E qual è il punto del tuo commento?Non sono sicuro di cosa abbia a che fare il bitdepth con la gamma dinamica?
La compressione MP3 non è una semplice riduzione della profondità di bit
Quella modifica rende semplicemente sbagliata questa risposta.La profondità di bit non ha NIENTE a che fare con la qualità.La quantizzazione a 8 o 24 bit ti darà lo stesso identico segnale.La differenza è che la versione a 24 bit avrà un rumore di fondo molto più basso.
Quest'ultima immagine è assurdamente imprecisa.
Quest'ultima immagine sembra provenire dal foglio di vendita del "lettore audio ad alta risoluzione".
A causa di molteplici commenti sulla parte dell'immagine che rappresentava la forma d'onda mp3, che non era correlata alla domanda (era solo una parte dell'immagine), ho tagliato quella parte.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...