Giardino Elettronico
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.

Giulio
Giulio
pesca
pesca
Messaggi : 540
Data d'iscrizione : 17.06.11
251019
La teoria del campionamento ci insegna che un segnale campionato ha uno spettro che corrisponde alla ripetizione periodica nel dominio delle frequenze dello spettro del segnale originario. Questo significa che la nostra cara musica digitale ha un contenuto in frequenza che va ben oltre la banda audio, si tratta delle cosiddette immagini spettrali. Nel caso di segnali campionati a 44.1 kHz, in particolare, le immagini ce le ritroviamo dietro casa, a partire da 22.05 kHz.


La guerra alla soppressione di queste ripetizioni ha, a mio modo di vedere le cose, portato alla produzione di lettori CD dalla particolare scarsa qualità di riproduzione. Infatti, specialmente i primi lettori che facevano uso di un filtro digitale per eliminare tali spurie, per via della della poca potenza di calcolo a disposizione,  scendevano a compromessi, accettando o un filtraggio dalla pendenza docile che poco aiutava, o si portavano fino in banda audio delle nefaste rotazioni di fase e oscillazioni.


Di tutto altro avviso, invece, sono i cosiddetti DAC NOS, i quali rimandano l'arduo compito di eliminare le immagini a tutto ciò che sta a monte la sorgente stessa, a partire dalle elettroniche per finire con i trasduttori ed, eventualmente, le nostre orecchie. Questo non costituisce un particolare problema qualora si ascoltassero file ad alta risoluzione, diciamo, a partire da 96 kHz. In questi casi, infatti, le immagini si trovano oltre i 40 kHz e a queste frequenze possiamo essere abbastanza certi di essere più che sordi, così come lo sono le nostre amate cuffie.


Discorso diverso invece per i formati a risoluzione standard. In tal caso, a seconda delle elettroniche che vi sono collegate alla sorgente, si possono avere risultati varianti. Ad esempio, per le varie non linearità del reparto di amplificazione, è possibile che queste frequenze indesiderate, attraverso il fenomeno dell' intermodulazione, creaino artefatti, facendoci ritornare le immagini proprio dalla finestra, rendendole udibili in banda audio.


Esiste, però, una soluzione a questo problema: occorre aumentare la frequenza di campionamento del nostro segnale. Nel caso il segnale audio sia ben campionato (ovvero che la frequenza di campionamento sia almeno doppia rispetto alla banda del nostro segnale (che, dal punto di vista spettrale significa che le ripetizioni periodiche non si sovrappongano l'una con l'altra)), questo è possibile farlo senza alcun effetto collaterale, ricostruendo i sample esatti fra un campione originale e l'altro.


Ovviamente, questa procedura non è di semplice realizzazione. Infatti, sebbene esista un'equazione analitica in forma chiusa per fare ciò, questa richiede che, per l'interpolazione di ogni singolo campione, si tenga conto del contributo di tutti i sample del segnale musicale: dall'inizio, fino alla fine.


E questo non è chiaramente possibile farlo in un DAC che funzioni on-line, se non introducendo un ritardo almeno pari all'intero brano musicale, senza contare il tempo di elaborazione... Lo si può fare off-line, magari con un computer sufficientemente potente e  poi riprodurre il file interpolato con il nostro DAC. È chiaro che rimane comunque un bello sbattimento dover prendere tutta la libreria dei nostri file campionati a 44100 Hertz e sottoporli a questo tipo di trattamento.


Esiste poi anche un'altra strada, più semplice, che non ha problemi ad essere implementata anche on-line: un'interpolazione lineare. In pratica, per ogni coppia di sample musicali consecutivi, An e An+1, si costruisce (interpola) un campione intermedio, dicasi An + 0.5 con la seguente formula:
An + 0.5 = (An + An+1)/2.

In pratica, dati due campioni che valgano,  rispettivamente, 3 ed 8, si inserisce un terzo campione tra di essi dal valore di 6.
Ovviamente, qualche magagna ci deve essere da qualche parte dato che la formula esatta per il calcolo di An+0.5 prevede la conoscenza di tutti i campioni e non soltanto di due. Comunque sia, siamo riusciti nel nostro intento di incrementare la frequenza di campionamento e ci siamo allontanati le nefaste repliche.

Però, si è fatta un'approssimazione e, come diceva sempre un mio professore, è bene approssimare ma si deve essere consapevoli  del fatto che si sta introducendo un errore e quasi ancora più importante, occorre conoscere l'entità dello stesso. In questo caso, quello che si ottiene è un (leggero, 2dB @ 20kHz) roll-off in banda alta, dovuto al fatto che si sono introdotte armoniche (artefatti) non precedentemente esistenti che si ciuppano* parte dell'energia del nostro segnale ( cosa che accade anche in bassa frequenza, ma in misura minore per via della minore variabilità nell'unità di tempo ).


Bene, ora che abbiamo visto luci e ombre dell'Interpolazione lineare, vi propongo un esperimento.

A breve vi forniremo alcune tracce audio. Di ciascuna di esse avremo 3 versioni: una a 88.2 kHz ottenuta mediante interpolazione lineare, una a 88.2 kHz ottenuta mediante interpolazione a sinc e infine l'originale a 44.1 kHz.

Questo test si rivolge a tutti, sia possessori di HDAC ( in tal caso, con il brano interpolato linearmente potrete avere l'ebbrezza di sperimentare la time shift interpolation di Alex anche senza avere la nuova iterazione dell'HDAC), sia a chi ha un qualsiasi altro convertitore per poter verificare l'udibilità di eventuali artefatti nei brani interpolati.


*termine tecnico

A GiuseppeBon piace questo messaggio.

Condividi questo articolo su:reddit

Commenti

Giulio
*Riservato*
Giulio
*Riservato 2*
bandAlex
Trovo questo esperimento estremamente interessante. Quando @Giulio renderà disponibili i files, sarà utile verificare da parte di tutti l'effettiva udibilità delle differenze tra il brano originale a 44.1kHz e quello con interpolazione lineare 2x.

Anche se l'esperimento è più indicativo per chi può farlo con l'HDAC, anche coloro che lo faranno con un dac qualsiasi potranno comunque verificare in questo modo se gli artefatti di un'interpolazione lineare 2x sono udibili e, nel caso lo fossero, di quale entità e qualità è il loro contributo.

Per essere chiari, l'interpolazione fatta via software da Giulio è identica a quella che farà l'HDAC+, solo che quest'ultimo la farà via hardware, per mezzo di due TDA1541, di cui uno lavorerà slittato temporalmente di 16 bit per ricreare il campione intermedio. Il vantaggio dell'interpolazione sarà quello di raddoppiare la frequenza di campionamento vista in uscita dal dac: in tal modo, con i brani a 44.1kHz (standard CD), le frequenze immagini si sposteranno dai 22kHz ai 44kHz, ovvero ben oltre la banda audio, scongiurando (o rendendo molto meno probabile) l'eventuale rientro in banda audio delle immagini per via dell'intermodulazione.

Per chi ha un amplificatore come l'AF-N (ma anche l'AF-6), il problema non si pone: tali amplificatori hanno una banda passante estremamente elevata, che sfiora il megahertz, e digeriscono con tutta tranquillità frequenze ultrasoniche senza generare intermodulazione. Ma con amplificatori più convenzionali, le immagini in banda ultrasonica presenti all'uscita di un dac NOS quale è l'HDAC, potrebbero essere problematiche. Per questo motivo l'utilizzo dell'oversampling è chiaramente un vantaggio.

La cosa notevole della "time shift interpolation" effettuata via hardware è che, nonostante il sovracampionamento, i due TDA1541 lavoreranno comunque alla normale frequenza di campionamento dei brani, essendo l'interpolazione dovuta al contributo dei due dac che lavorano in sincrono. Così i TDA1541 lavoreranno nella loro confort-zone, a differenza di quanto accadeva nei lettori CD con oversampling e filtro digitale, in cui il TDA1541 era costretto a lavorare alla massima frequenza ammissibile.


A GiuseppeBon piace questo messaggio.

Giulio
Ho caricato due brani sul server del giardino: link

Esperimento sull'interpolazione lineare 15167127605_053692935c_o_d

Per vederli, entrate nella cartella FILE MUSICALI.

La prossima volta ve li coverto in .flac per comodita'.

A GiuseppeBon piace questo messaggio.

Edmond
Molto, molto interessante. Come mai le dimensioni dei due file interpolati sono diverse nei due casi? Ovvero, nel primo caso una è doppia dell'altra mentre nel secondo sono identiche...
fstiffo
Perché è un 176KHz, quindi la domanda diventa "Perché hai fatto una "oversampling" quadruplo?"  grande sorriso
Giulio
fstiffo ha scritto:Perché è un 176KHz, quindi la domanda diventa "Perché hai fatto una "oversampling" quadruplo?"  grande sorriso


Mi sono accorto mentre li caricavo che non avevo brano sinc-interpolato a 88.2 kHz. 
Provvedero' a caricarlo piu' avanti assieme ad altri brani.
Giulio
Colgo anche l'occasione per parlare dell'interpolazione a sinc. 

Come avevamo visto sopra, un segnale campionato ha come spettro la ripetizione periodica dello spettro del segnale originale.

Questo significa che l'informazione del segnale originale e' interamente presente nel dominio delle frequenze e quello che occorre fare per ricostruire la forma d'onda originale e' filtrare le varie ripetizioni. 

Quello che serve, dunque, e' un filtro passa basso con pendenza infinita a frequenza pari a meta' della frequenza di campionamento (fs). Il che significa avere un filtro il cui spettro e' flat fino a fs/2 e vale poi 0 (chiamato anche rect o filtro brickwall).

La stessa operazione vista nel dominio del tempo corrisponde alla convoluzione dei nostri campioni con una funzione chiamata seno cardinale (o anche sinc). 

Vi lascio due pagine di wikipedia che spiegano bene cosa sia la sinc e la convoluzione in generale:

https://it.wikipedia.org/wiki/Funzione_sinc

https://it.wikipedia.org/wiki/Convoluzione
 
Quello che succede, alla fine della fiera, e' che, per ottenere i sample esatti tra un campione e l'altro, occorre applicare la seguente formula:

Esperimento sull'interpolazione lineare 27c821912ff8f23f79beb6b54ecb8292563dbdb7
Questa permette di ricostruire il segnale x per t qualunque e, dunque, anche ricampionarlo a frequenza piu' alta (basta calcolare la sommatoria per ogni nuovo campione, cioe' calcolare x(n/Tnew) dove Tnew e' 1/88.1k per n = 1, 2, 3, ...).

Il problema grosso e' dato dal fatto che quella sommatoria va da -infinito a +infinito costringendoci ad effettuare un'operazione particolarmente pesante.

Per fortuna non si deve arrivare ad infinito perche' il segnale termina ad una certa, ma si tratta comunque di poco meno di 8 milioni di operazioni per ogni sample da generare in un brano lungo tre minuti. Cioe' circa 130 mila miliardi di operazioni in totale

A GiuseppeBon piace questo messaggio.

m_b
bandAlex ha scritto:Per essere chiari, l'interpolazione fatta via software da Giulio è identica a quella che farà l'HDAC+, solo che quest'ultimo la farà via hardware, per mezzo di due TDA1541, di cui uno lavorerà slittato temporalmente di 16 bit per ricreare il campione intermedio. Il vantaggio dell'interpolazione sarà quello di raddoppiare la frequenza di campionamento vista in uscita dal dac

Alex, Giulio ...per cortesia mi spiegate meglio questo passaggio, ovvero tecnicamente come si ottiene questo risultato ? Occorre anche raddoppiare il clock?
Grazie
m_b
@giulio....e il roll-off di 2 db a 20khz  nel esempio che hai fatto, come lo hai calcolato?
Grazie!
bandAlex
m_b ha scritto:
bandAlex ha scritto:Per essere chiari, l'interpolazione fatta via software da Giulio è identica a quella che farà l'HDAC+, solo che quest'ultimo la farà via hardware, per mezzo di due TDA1541, di cui uno lavorerà slittato temporalmente di 16 bit per ricreare il campione intermedio. Il vantaggio dell'interpolazione sarà quello di raddoppiare la frequenza di campionamento vista in uscita dal dac
Alex, Giulio ...per cortesia mi spiegate meglio questo passaggio, ovvero tecnicamente come si ottiene questo risultato ? Occorre anche raddoppiare il clock?

Ci sono due cose fondamentali da considerare, per capire come si può ottenere un raddoppio della fs e in definitiva dei campioni: la prima è che tutti i dac lavorano con il principio del sample & hold, ovvero una volta che il campione è stato acquisito, all'uscita del dac si avrà il valore di corrente corrispondente a quel campione e tale corrente si manterrà fino al campione successivo; la seconda è che due uscite in corrente, provenienti da due dac distinti, unite insieme, si sommano. Il secondo punto è quello che consente una tecnica usata molto spesso, quella di mettere in parallelo più dac per aumentare la corrente in uscita e migliorare le prestazioni.

Nella Time Shift Interpolation i due dac lavorano proprio con le uscite collegate assieme, ma uno dei due dac ha al suo ingresso il dato ritardato di mezzo campione. In questo modo si raddoppia di fatto la densità dei campioni, e la fs vista all'uscita dei dac. Supponendo che i campioni originali siano questi: 3 - 8 - 12 - 25, con la somma del secondo dac ritardato di mezzo campione avremo: 

N. CAMPIONE
IN INGRESSO:  1     2     3     4
 
USCITA DAC1:  3  3  8  8 12 12 25 25   (valori di corrente dac1)
USCITA DAC2:  0  3  3  8  8 12 12 25   (valori di corrente dac2 ritardati di mezzo campione)      

SOMMA:        3  6 12 16 20 24 37 50

N. CAMPIONE
IN USCITA:    1  2  3  4  5  6  7  8


Come si vede, di fatto si raddoppiano i campioni (raddoppio della fs), e l'ampiezza totale del valore max di corrente raddoppia. Ciò corrisponde ad aumento della risoluzione (teoricamente si passa a 17 bit).

A GiuseppeBon piace questo messaggio.

dankan73
Ma date pure ripetizioni di matematica che sono un po arrugginito..  grande sorriso grande sorriso grande sorriso bleh
Giulio
m_b ha scritto:@giulio....e il roll-off di 2 db a 20khz  nel esempio che hai fatto, come lo hai calcolato?
Grazie!

Ho simulato via software un dac adoperante la tecnica del sample and hold. Ci ho introdotto l'interpolazione lineare e valutato la risposta in frequenza. 

Qui trovi il risultato: (dove il sinc interp lavorava sempre a 2x) [non l'ho scritto nel grafico, ma si tratta di dB vs frequenza]



Esperimento sull'interpolazione lineare Untitl10

A GiuseppeBon piace questo messaggio.



Ultima modifica di Giulio il 27/10/2019, 00:42 - modificato 1 volta.
Giulio
Giulio ha scritto:
m_b ha scritto:@giulio....e il roll-off di 2 db a 20khz  nel esempio che hai fatto, come lo hai calcolato?
Grazie!

Ho simulato via software un dac adoperante la tecnica del sample and hold. Ci ho introdotto l'interpolazione lineare e valutato la risposta in frequenza. 

Qui trovi il risultato: (dove il sinc interp lavorava sempre a 2x)



Esperimento sull'interpolazione lineare Untitl10


Come prevede la teoria (se volete si puo' approfondire questo aspetto), la riposta in frequenza del DAC NOS vale sinc(fT) dove T = 1/44.1k. E questa funzione perde circa 3dB a 20kHz. Se si fa invece interpolazione 2x a sinc, la risposta in frequenza diventa  sinc(fTnew) dove Tnew vale la meta' del precedente, da cui una sinc "piu' lenta" che perde 3dB piu' in la' in frequenza.

Con l'interpolazione lineare si perde un altro pochino per i motivi esposti nel primo post (si introducono armoniche e l'energia del segnale di distribuisce su queste).

A GiuseppeBon piace questo messaggio.

Giulio
dankan73 ha scritto:Ma date pure ripetizioni di matematica che sono un po arrugginito..  grande sorriso grande sorriso grande sorriso bleh


Volendo si'... pero' vogliamo essere pagati in tal caso!  bleh
bandAlex
Mi sembra di capire che nessuno finora ha partecipato all'esperimento, o forse ci troviamo di fronte ad una incomprensibile reticenza.

Si tratta di scaricare, dal link fornito da Giulio, due brani, uno in versione originale (formato CD 44.1kHz) e l'altro sovracampionato 2x con interpolazione lineare.

Ad esempio:

BreakOriginal.wav (originale estratto da CD)

Break88k2linear.wav (interpolazione lineare 2x)

Poi confrontare i due brani e capire se sono udibili differenze tra i due, ed eventualmente di che qualità sono tali differenze.

Tale esperimento è valido sia per chi ha già un HDAC, sia per chi ha un qualsiasi altro dac.

Dai, che ce la fate! bleh
fstiffo
Alex ho fatto la prova varie volte, ma ammetto che per me (sarà l'eta probabilmente) in doppio cieco non ci sono differenze udibili. Potrebbe anche essere il tipo di musica che frequento poco, per formazione e gusti ascolto principalmente musica classica che è al 99% suonata su strumenti acustici. Mi dispiace non dare alcun valido contributo.
Giulio
fstiffo ha scritto:Alex ho fatto la prova varie volte, ma ammetto che per me (sarà l'eta probabilmente) in doppio cieco non ci sono differenze udibili. Potrebbe anche essere il tipo di musica che frequento poco, per formazione e gusti ascolto principalmente musica classica che è al 99% suonata su strumenti acustici. Mi dispiace non dare alcun valido contributo.


fstiffo, se mi puoi fornire qualcuno dei tuoi brani, vedo di interpolarli allo stesso modo per differenziare un po' con i genrei. 

Nel caso, puoi usare un servizio di filesharing gratuito, tipo:
https://wetransfer.com/

Ti giro in privato la mia email.
dankan73
Io posso portare l'esperienza fatta con Alex a casa sua in ambiente controllato con HDAC AFN e HIFIMAN 1000 e non sono stato in grado di replicare i risultati in maniera costante alcune volte indovinavo il file ad alta risoluzione ed altre no.
bandAlex
fstiffo ha scritto:Alex ho fatto la prova varie volte, ma ammetto che per me (sarà l'eta probabilmente) in doppio cieco non ci sono differenze udibili. Potrebbe anche essere il tipo di musica che frequento poco, per formazione e gusti ascolto principalmente musica classica che è al 99% suonata su strumenti acustici. Mi dispiace non dare alcun valido contributo.

E invece lo hai dato un valido contributo!

Lo scopo del test è proprio verificare SE sono udibili differenze, e di che entità. Lo scopo dell'interpolazione NON è quello di "migliorare" il suono del brano, ma quello di allontanare su frequenze più alte (oltre i 44kHz, invece che oltre i 22kHz) i disturbi ultrasonici inevitabilmente presenti in uscita da un dac NOS.

Quindi non riuscire a sentire differenze è una buona cosa per noi, vuol dire che gli artefatti che la matematica prevede (e che sono sicuramente presenti) non influiscono più di tanto all'ascolto. Il vantaggio di allontanare le immagini invece rimane valido, ed è un vantaggio non da poco.

Comunque, tali artefatti cominciano ad avere un peso significativo solo da fs/4, ovvero, per un brano in origine a 44.1kHz, dai 10kHz in su. Questo spiega perchè è difficile sentire differenze. Se si vuole percepire qualcosa, bisogna concentrarsi sulla gamma alta (e questo è il motivo per cui sono stati scelti quei brani).

Ma il test può riservare sorprese, come è stato nel mio caso! Ascoltate attentamente, perchè il risultato è definito da tante variabili (non ultime quelle relative al vostro impianto, la vostra cuffia, etc.).
dankan73
Ok provo con la mia catena.
Edmond
Ascolto con DAC Denafrips Venus in modalità NOS. Cuffia Spirit Labs XXVI.

Ampli valvolare.
Relativamente al primo brano (break), percepisco delle differenze lievi a favore del brano sovracampionato, sia per una lieve maggior presenza in gamma bassa, sia per una minor metallicità del suono del plettro sulle corde della chitarra, che me lo fanno preferire, percepire più naturale.
Relativamente al secondo brano valgono sostanzialmente le medesime considerazioni a favore del brano sovracampionato. Qui anche il pianoforte appare un pelo più"vero", oltre ai piatti della batteria.

Ampli AF-N.
Si ripropongono sostanzialmente le differenze sopra rilevate, anche se la grande spazialità dell'AF-N, riposizionando la scena, le rende meno evidenti (la chitarra risulta collocata spazialmente più distante e risulta meno aggressiva rispetto all'ampli valvolare). Rimane la lieve maggior presenza in gamma bassa per il brano sovracampionato ed una maggior "analogicità" complessiva.

My two cents... fisch
Giulio
Edmond ha scritto:Ascolto con DAC Denafrips Venus in modalità NOS. Cuffia Spirit Labs XXVI.

Ampli valvolare.
Relativamente al primo brano (break), percepisco delle differenze lievi a favore del brano sovracampionato, sia per una lieve maggior presenza in gamma bassa, sia per una minor metallicità del suono del plettro sulle corde della chitarra, che me lo fanno preferire, percepire più naturale.
Relativamente al secondo brano valgono sostanzialmente le medesime considerazioni a favore del brano sovracampionato. Qui anche il pianoforte appare un pelo più"vero", oltre ai piatti della batteria.

Ampli AF-N.
Si ripropongono sostanzialmente le differenze sopra rilevate, anche se la grande spazialità dell'AF-N, riposizionando la scena, le rende meno evidenti (la chitarra risulta collocata spazialmente più distante e risulta meno aggressiva rispetto all'ampli valvolare). Rimane la lieve maggior presenza in gamma bassa per il brano sovracampionato ed una maggior "analogicità" complessiva.

My two cents... fisch


E tra le due tecniche di sovracampionamento? Quale preferisci?
Edmond
Per il momento ho ascoltato solo la Linear a confronto col brano originale. Poi provo anche la seconda.
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.