Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

20
voti

Il suono della distorsione

Indice

Introduzione

Questa raccolta di file permette di ascoltare e confrontare gli effetti di alcuni tipi di distorsione su brevi esempi musicali. I file utilizzati sono stati estratti da CD in un file, e trattati numericamente per mezzo del programma MATLAB, in modo da generare in modo controllato le versioni modificate. Sono stati generati 4 (mal)trattamenti dei file originali.

L'origine di questo lavoro deriva dal voler constatare se fossero udibili con una prova in cieco alcuni dei "difetti" che vengono normalmente attribuiti ai sistemi di riproduzione sonora, a partire dalla distorsione, al jitter sui campioni di un convertitore D/A di un lettore di CD, all'intervento dell'interpolatore dei lettori di CD quando a causa di errori multipli non e` possibile ricostruire il valore originale, a distorsioni lineari sulla fase.

La prima distorsione e` quella armonica, in cui la non linearità non ha memoria. Non intervengono cioè capacità non lineari. Si sono solo considerate distorsioni di ordine basso, seconda e terza armonica, sia perché sono solitamente quelle di ampiezza maggiore, sia perché non e` possibile introdurre una distorsione che generi per qualunque segnale solo una quarta armonica senza generare anche la seconda.

Il secondo trattamento non e` a rigore una distorsione, ma semplicemente l'introduzione di jitter temporale sui campioni mandati a un convertitore D/A. L'effetto di questa distorsione e` di ridurre il rapporto segnale rumore.

Il terzo trattamento riguarda l'interpolazione fra due campioni adiacenti quando il campione fra i due non e` ricostruibile. L'effetto e` un filtraggio passa basso.

Infine nell'ultimo insieme di file sono state introdotte solo distorsioni di fase, quindi distorsioni lineari, facendo attenzione a non cambiare lo spettro del segnale.

Tutti i file I file sono in formato stereo, 16 bit, 44100 campioni/secondo. Dopo il trattamento numerico tutti i file dello stesso gruppo sono stati rinormalizzati in modo che avessero la stessa energia, in questo modo non intervengono variazioni di "volume".


Distorsione Armonica senza Memoria

Da questo sito sono scaricabili gruppi di file con nome xxxx1.zip, xxxx2.zip, contenenti alcuni secondi di musica, come descritto dal loro nome.

I file sono il risultato di una distorsione calibrata e nota, ottenuta lavorando sui file originali (tratti da CD) con il programma matlab.

I file con lo stesso nome contengono, in ordine casuale, il segnale originale e lo stesso segnale distorto con distorsioni varie di seconda o di terza armonica.

Possono essere ascoltati con qualunque wav player, ma l'uso din un programma di tipo ABX. quale ad esempio Winabx, permette di confrontare facilmente due versioni dello stesso brano. Un vecchio ma valido programma per test ABX era PCABX, forse ancora disponibile in rete, oppure un'altra possibilità e` ABC/HR, disponibile qui. Questi sono vecchi programmi, se qualcuno ne conosce di piu` moderni e me li segnale, li inseriro` ben volentieri


Ogni file e` zippato, e contiene un .wav. Purtroppo lo zip sui file wav e` poco efficace.

I seguenti 3 gruppi di 5 brani (batteria, organo, voce), contengono originale e 4 versioni fortemente distorte. L'ordine dei brani entro ogni gruppo e` casuale, e sono presenti il brano originale, due versioni con distorsioni di sola seconda armonica al 5%, e due con distorsioni di sola terza armonica, sempre al 5%. La differenza fra le due coppie di distorsioni e` nel segno del coefficiente non lineare, una volta positivo, una volta negativo. Nelle distorsioni di seconda armonica questo comporta la compressione dei picchi positivi o negativi. Nella distorsione di terza armonica invece il coefficiente negativo ha un effetto di compressione, quello positivo di espansione dei picchi. Come detto prima, dopo la distorsione si e` provveduto a rinormalizzare l'energia.

batteria 1 organo 1 voce 1
batteria 2 organo 2 voce 2
batteria 3 organo 3 voce 3
batteria 4 organo 4 voce 4
batteria 5 organo 5 voce 5
File con distorsioni di sola seconda o terza armonica

Per sentire l'effetto della distorsione su un segnale noto e misurabile, ho messo nel secondo insieme di file distorti 3 secondi di segnale sinusoidale a 500Hz. In questo caso il tipo e l'ammontare della distorsione e` dichiarato. La parte finale del nome (500Hz) indica il tipo di distorsione. Il formato e` xyz, dove x indica l'ordine (2 o 3), y il segno del coefficiente non lineare (p o n), z la percentuale armonica della distorsione (in questo caso 2% o 4%). In questo esempio vi sono due file con distorsione di seconda armonica al 4% e due con disto armonica del terzo ordine del 2%. Il primo file, con aggiunta nm, e` quello di confronto (non distorto). In questo caso e` presente anche un file con distorsione di secondo e terzo ordine contemporaneamente. La parte di file name 2n43n2 indica che e` presente una distorsione del 4% di seconda armonica (2n4) e del 2% di terza armonica (3n2). In questo trattamento ci sono solo coefficienti negativi.

Poiche' mi e` stato detto che il pianoforte ha un suono che permette facilmente di notare la distorsione armonica (suono rivelatore, come dicono le golden ears), ho aggiunto due brevi brani per pianoforte (pianoa e pianob).

Fra i sei file di ciascun gruppo ci sono l'originale, 2 file con distorsioni di sola seconda armonica al 2%, due file di sola terza armonica all'1%, e un file con distorsione di seconda e terza armonica. Nelle colonne pianoa e pianob l'ordine dei file e` casuale.


500hznm pianoa 1 pianob 1
500hz2n4 pianoa 2 pianob 2
500hz2p4 pianoa 3 pianob 3
500hz3n2 pianoa 4 pianob 4
500hz3p2 pianoa 5 pianob 5
500hz2n43n2 pianoa 6 pianob 6
Distorsioni di sola seconda, sola terza ed entrambe


Buon divertimento!

Jitter temporale di segnali digitali

In questa sezione gli stessi file usati per la distorsione armonica vengono sottoposti all'effetto del jitter temporare sui campioni.

Il jitter viene spesso (ingiustamente) additato come responsabile di cattiva qualita` di ascolto in riproduzioni da CD. Fortunatamente, all'interno dei lettori di CD, esistono i risincronizzatori, che riducono il jitter a valori difficilmente misurabili (\,10^{-7} o meno). Il prossimo colpevole in questa serie saranno gli stati metastabili :-)

Il file 500hz jitter contiene un segnale campione 500fjtref.wav (sinusoide a 500 Hz) e lo stesso segnale sottoposto a due diversi jitter temporali. L'entita` del jitter applicato su OGNI campione e` di \pm 1% nel file 500fjt1.wav, e di \pm
5% nel file 500fjt5.wav, entrambi con distribuzione uniforme. Da notare che un jitter dell'uno percento e` una quantità circa centomila volte maggiore di quella presente all'ingresso di un DAC, che e` determinata dalla stabilita` a breve termine di un quarzo.

Gli esempi riportati consistono di coppie di file, originale e jitterato.

L'ordine del file originale e di quello "jitterato" e` casuale.

La quantita` di jitter temporale introdotto negli esempi successivi e` maggiore de 2%, sempre con distribuzione uniforme. Per aumentarne l'effetto, il jitter sui due canali stereo e` scorrelato, e tutti i campioni sono statti "jitterati".

jitter batteria 1 jitter organo 1 jitter voce 1 jitter pianoa 1 jitter pianob 1
jitter batteria 2 jitter organo 2 jitter voce 2 jitter pianoa 2 jitter pianob 2
Originali e file con jitter su tutti i campioni, uniformemente distribuito

Effetto dell'interpolazione

L'interpolatore dei lettori CD e` stato spesso tirato in ballo come causa di alterazioni al suono. In particolare, un elevato tasso di intervento dell'interpolatore (che letteralmente si "inventa" dei valori che il sistema non e` riuscito a leggere) provocherebbe delle alterazioni timbriche perfettamente udibili.

Per ridurre la probabilita` di intervento dell'interpolatore, e` quindi necessario, stando alle castronerie che si sentono in giro, ridurre quanto piu` possibile gli errori di lettura, in particolare stabilizzando la rotazione del CD.

In realta`, con un disco sporco, vengono sbagliati in media 100-200 bit di dati al secondo. Questi errori sono normalmente corretti dai codici a ridondanza, e in media solo una volta ogni 10 ore interviene l'interpolatore (per il restante tempo i dati che arrivano al D/A sono estatti).

Per verificare l'udibilita` dell'interpolazione, sono stati creati tre file per ciascuno dei 5 esempi musicali gia` usati in precedenza.

Uno dei file e` l'originale. Un altro invece e` stato letteralmente stravolto: sono stati eliminati META` dei campioni su ciascun canale, e sono stati ricostruiti con un interpolatore lineare.

Un interpolatore lineare usato per ricostruire metà dei campioni ha un effetto devastante sulla banda del segnale. In effetti il file con meta` dei campioni ricostruiti e` riconoscibile anche dai sordi, avendo una banda limitata a 11kHz.

Una situazione non cosi` estrema e` presente nel terzo file generato. In questo caso sono state introdotte circa 1000 interpolazioni per canale (2000 interpolazioni in tutto), scorrelate fra i due canali. L'interpolatore usato e` ancora lineare.

Da notare che 1000 interpolazioni per canale in un periodo di 3-6 secondi di segnale corrispondono a una frequenza di interpolazione di 10 MILIONI di volte maggiore di quella che si ha ascoltando un CD sporco.

Inoltre l'interpolatore lineare e` una forma estremamente primitiva di interpolatore, quelli usati dai CD sono piu` sofisticati.

Prima di proporre i vari brani, vorrei ancora ricordare che tutti i convertitori D/A hanno al loro interno degli interpolatori che lavorano su TUTTI i campioni, prima di passarli al modulatore sigma delta (che pero`, non essendo conosciuto, pare non dare problemi).

batteria interpolata 1 organo interpolato 1 voce interpolata 1 pianoa interpolato 1 pianob interpolato 1
batteria interpolata 2 organo interpolato 2 voce interpolata 2 pianoa interpolato 2 pianob interpolato 2
batteria interpolata 3 organo interpolato 3 voce interpolata 3 pianoa interpolato 3 pianob interpolato 3
Originale, interpolazione su 2000 campioni, interpolazione su metà dei campioni

Iin questo set di file non e` presente la sinusoide, che peraltro e` poco significativa, in quanto un interpolatore riesce a ricostruirla abbastanza bene.

Buon divertimento!

Disgusti lineari

In questi file vengono presentati gli effetti di violenti trattamenti sulle fasi dei soliti file di esempio.  Prima degli esempi veri e proprii, vengono illustrati i trattamenti su un file di sinusoide a 500 Hz.

Nel file 500HzLin1 (eccezionalmente breve!) sono stati zippati gli stessi disgusti lineari sul file di prova a 500Hz. In questo caso ho lasciato in chiaro i nomi, in modo da poter riconoscere i file.

500hzlin1nm500 e` la versione originale. 500hz1rc500 ha un ritardo di gruppo costante su un canale, pari a mezzo periodo di campionamento emulando il caso di riproduzione con un solo convertitore D/A senza sample and hold. Il campione e` stato ritardato con un interpolatore lineare.

500hz1ci500 ha un canale con ritardo di fase costante di 180 gradi rispetto all'altro. Anche in cuffia le differenze sono abissali.

500hz2ci500 ha il ritardo di fase costante di 180 gradi su entrambi i canali.

500hz1cf500 ha un canale filtrato con un filtro passa tutto del primo ordine centrato a 500 Hz. Questo provoca uno sfasamento di 90 gradi fra i due canali alla frequenza di 500Hz. 500hz2cf500 ha entrambi i canali con lo stesso trattamento. Rispetto al riferimento o al caso con entrambi i canali invertiti, questo ha un transitorio di attacco diverso, che potrebbe essere udibile. Seguono gli esempio su file di musica. Il primo file di ogni gruppo e` sempre il file di riferimento.

I file seguenti sono stati trattati come descritto in precedenza: invertendo a larga banda la fase su un canale solo, invertendola su entrambi i canali, invertendo la fase solo in alta frequenza solo su un canale e invertendola solo in alta frequenza su entrambi i canali. Non e` presente il caso di ritardo di mezzo campione su un canale, che e` stato sostituito da uno scherzo che ho aggiunto all'ultimo momento. Che cosa e`? :-).

L'inversione di fase solo in alta frequenza e` stata fatta usando un filtro passa tutto del primo ordine centrato a 350Hz. Un filtro passa tutto ha un polo a 350Hz e no zero a destra sempre a 350Hz. L'ampiezza del segnale non viene variata, mentre la fase passando da basse frequenze ad alte frequenze, viene ruotata di 180 gradi. A 350Hz la rotazione di fase e` di 90 gradi.

Il filtro passa tutto era un test che facevo tempo fa a loro insaputa agli amici audiofili, mettendo su un solo canale il filtro realizzato con un operazionale alimentato a batteria. L'effetto, con alcuni brani, a me fa venire il mal di mare, ma qualche audiofilo non si accorgeva dell'effetto.

Nei vari gruppi i file nella stessa posizione (ad esempio tutti i dl3) hanno subito lo stesso trattamento, e quindi puo` essere piu` semplice da identificare il tipo di "disgusto" subito. Credo che alcuni file siano praticamente indistiguibili dall'originale, mentre altri dovrebbero essere decisamente diversi dal riferimento. Chi riesce a riconoscere lo "scherzo" che ho aggiunto all'ultimo momento?

batteria DL 1 organo DL 1 voce DL 1 pianoa DL 1 pianob DL 1
batteria DL 2 organo DL 2 voce DL 2 pianoa DL 2 pianob DL 2
batteria DL 3 organo DL 3 voce DL 3 pianoa DL 3 pianob DL 3
batteria DL 4 organo DL 4 voce DL 4 pianoa DL 4 pianob DL 4
batteria DL 5 organo DL 5 voce DL 5 pianoa DL 5 pianob DL 5
batteria DL 6 organo DL 6 voce DL 6 pianoa DL 6 pianob DL 6
Originali (prima riga) e trattati (stessa riga, stesso trattamento)

A richiesta di un interessato, ho aggiunto in questa sezione il file "nacchere", il cui originale e` stato scaricato dal sito PCABX.com

Anche questo file e` stato sottoposto agli stessi trattamenti dei precedenti, ai quali e` stato aggiunta, come gia` per il file di test a 500JHz, il ritardo di mezzo campione un canale. In questo modo si fa sentire l'effetto dell'uso di un solo D/A nel lettore.

L'algoritmo usato per ottenere questo effetto e` estremamente primitivo, e, oltre al ritardo voluto, introduce anche su un canale un effetto di filtraggio passa basso molto evidente, che lo rende facilmente riconoscibile.

Anche in questa serie di esempi, il primo e` il file di riferimento, mentre gli altri sono in ordine sparso (e diverso dai precedenti esempi di questa sezione, dato che ho cambiato il programma, avendo aggiunto un nuovo trattamento).

Anche qui alcuni file sono immediatamente riconoscibili (ad esempio quelli in cui la fase e` ruotata su un canale solo), mentre un paio danno maggiori problemi. La cosa curiosa e` che anche con le cuffie si riconoscono le rotazioni di fase su singolo canale: con le cuffie non ci sono effetti di interferenza. Il filtro passa tutto di questo esempio ha il polo e lo zero a destra centrati a 1000Hz.


Buon divertimento!

5

Commenti e note

Inserisci un commento

di ,

Intererssante lavoro, un po' difficle da valutare oggettivamente, vista la scarsità dei sistemi audio dei normali PC, e delle cuffiette del cellulare, comunque si notano delle differenze. Ho scaricato solo i pezzi da organo perchè ho maggiore famigliarità con questo strumento. Dopo Natale mi porto i files in laboraotrio acustico e con il BBM-MULLER ci faccio fare una bella analisi, vediamo cosa mi dice l'acustico. Una sola domanda, il pezzo è da registrazione analogica o è sintetizzato?

Rispondi

di ,

Molto interessante, sarebbe bello avere anche i codici MATLAB. Comunque ho vist oche il sito di WinABX è offline, ne ho trovata una versione cercando con google.

Rispondi

di ,

Molto interessante! Purtroppo mi sono iscritto da poco e vedo questo articolo solo adesso. Complimenti al suo estensore! Da pianista, non riesco a capire con quale motivazione qualcuno possa aver detto che "il pianoforte ha un suono che permette facilmente di notare la distorsione armonica", cmq non ha importanza ..

Rispondi

di ,

ehm come mai anche se ho effettuato il log-in non riesco ad accedere all'articolo?

Rispondi

di ,

Ottimo ed Utile Lavoro.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.