Costanti di tempo: parliamone

Una selezione ragionata
Messaggio
Autore
PeterDeNiro
Messaggi: 337
Iscritto il: lunedì 11 giugno 2012, 15:59

Costanti di tempo: parliamone

#1 Messaggio da PeterDeNiro » martedì 28 aprile 2015, 22:38

Ciao

gran bel 3D (quello da cui è stato separato questo post, cioè: viewtopic.php?f=5&t=5657&start=40 ), ma consentitemi di precisare una questione sistematicamente mal capita nel mondo audio.
alan1 ha scritto: ...
Ho avuto già l'occasione in qualche forum di parlare di SPL di picco reale della musica,
ho distinto il sistema di misura in picchi Fast con curva C (FastC) , quelli tipicamente misurabili con un fonometro standard, ovvero campionati a 125mS, e i picchi lineari presenti nella realtà dei suoni acustici, rilevabili solo con strumenti capaci di campionare a finestre molto strette (<=10ms).
...
scusate ma mi spiegate come si fa a misurare accuratamente la risposta in bassa frequenza con finestre da 10ms con segnali "evidentemente" non stazionari e per giunta a spettro misto (come ad esempio un vero segnale musicale)? Statisticamente è un non-sense, la distorsione e la varianza di stima è enorme. Una cosa del genere ha senso solo se si parla di misurare qualche forma di rumore, ma di certo non segnali musicali veri.

Altro mito da sfatare, sebbene 10ms possa sembrare una scala temporale vicino a ciò che immaginiamo essere un regime impulsivo, un segnale musicale "vero" su qualsiasi scala temporale ove la FFT abbia un senso ha uno spettro che è continuo, o al massimo misto. Ergo: in nessuno dei due casi si puo' pensare che 110dB di picco misurati su 10ms possano concentrarsi su poche frequenze. Su 10ms si avrà sempre una distribuzione spettrale che continua/mista, quindi 110dB su 10ms sono da spalmare sempre sun banda di una certa ampiezza. Per capire di cosa sto parlando basta fare uno spettrogramma a finestre strettisime su qualche file musicale.

Buona notte
PdN

F.Calabrese
Messaggi: 41611
Iscritto il: giovedì 23 settembre 2010, 16:18
Località: Roma
Contatta:

Re: Costanti di tempo: parliamone

#2 Messaggio da F.Calabrese » martedì 28 aprile 2015, 23:36

Ho separato questo interessantissimo post per consentire di approfondire l'argomento.

Io credo che -per rispetto- sia compito di Peter de Niro approfondire, tenendo conto del fatto che le costanti di picco impiegate dai fonometri sono dell'ordine di un decimo di millisecondo o meno, e non di dieci millisecondi.

Immagine

Saluti
F.C.

PeterDeNiro
Messaggi: 337
Iscritto il: lunedì 11 giugno 2012, 15:59

Re: Costanti di tempo: parliamone

#3 Messaggio da PeterDeNiro » mercoledì 29 aprile 2015, 8:25

Ciao
F.Calabrese ha scritto:Ho separato questo interessantissimo post per consentire di approfondire l'argomento.

Io credo che -per rispetto- sia compito di Peter de Niro approfondire, tenendo conto del fatto che le costanti di picco impiegate dai fonometri sono dell'ordine di un decimo di millisecondo o meno, e non di dieci millisecondi.
...
F.C.
Prima di tutto dobbiamo fissare una cosa:

0. Stiamo parlano di segnali musicali reali, quindi altamente non stazionari, a spettro misto (forte componente discreta nello spettro)

Poi dobbiamo decidere:

(1) parliamo di stimare la potenza di picco, con una costante di <=10ms?

(2) parliamo di stimare la potenza di picco usando la distribuzione spettrale con una costante di <=10ms ?

sono evidentemente due cose diverse, anche se in certi casi la (2) puo' condurre alla (1), ma il converso non è vero. La mia risposta al post riportato sopra era riferita all'ipotesi (2). La (2) è una una follia se parliamo di segnali musicali reali, ma diventa una cosa fattibile per segnali che hanno una distribuzione spettrale continua e le autocorrelazioni vanno a zero ad una certa velocità. Questo è il motivo per cui si usa il pink noise nelle misurazioni audio. Il pink noise è stazionario e le sue autocorrelazioni vanno a zero ad un rate che consente ancora di stimare con precisione il suo spettro, si usa in campo audio perché in qualche modo il suo spettro riproduce molte delle caratteristiche "di lungo periodo" osservate in certi segnali musicali (l'ipotesi 1/f-noise di Voss e Clarke) vedi:

http://arxiv.org/pdf/physics/0204033.pdf

In generale quando si hanno segnali non stazionari a spettro misto (esempio il 99% dei segnali musicale reali), sia la (1) che la (2) non sono banali. Ovviamente uno puo' fare la FFT e fare due conti, ma dal punto di vista statistico i numeri ottenuto sono tutto e niente. Spesso i non addetti ai lavori pensano che la FFT calcola sempre lo spettro qualunque sia il segnale sottostante. FALSO. La FFT calcola uno stimatore che sia chiama PERIODOGRAMMA, essendo uno stimatore gode di certe proprietà statistiche. La seguente lettura (e comprensione del testo) è essenziale per capire di cosa parliamo:

http://www.dcs.warwick.ac.uk/~feng/teac ... ectrum.pdf

Ora il periodogramma windowed stima "accuratamente" la densità spettrale di segnali stazionari e lineari... tutto il resto è fantasia!

Riguardo poi alle costanti temporali, vi è un limite imposto dal principio di incertezza di Heisenberg. Se vuoi misure accurate in bassa frequenza devi avere una grande risoluzione in frequenza che implica scarsa risoluzione temporale. Nella FFT infatti

risoluzione = Fs/N

dove Fs è la frequenza di campionamento, e N è il numeri di campioni da usare nella FFT. Se ad esempio campioni a Fs=44100Hz ed usi la FFT con finestre lunghe N=1024, la risuluzione è 44100/1024 = 43Hz, questo significa che la FFT misura la potenza spettrale sulle seguneti frequenze:
0.0 Hz
1 * 44100 / 1024 = 43.1 Hz
2 * 44100 / 1024 = 86.1 Hz
3 * 44100 / 1024 = 129.2 Hz

Avete capito? Cioè tra 0 e 43Hz la FFT non misura niente, ma quello che vedete nel grafico che vi da il vostro software è solo (se va bene) una qualche interpolazione ben fatta, oppure effetto dello spectral leakage indotto dal windowing. Se uno vuole aumentare la risoluzione in frequenza non esite altro modo che aumentare la costante temporale. E' una banale conseguenza del principio di incertezza di Heinseberg (vedi al al punto "Uncertainty principle"):

http://en.wikipedia.org/wiki/Fourier_transform

Purtroppo senza una base matematico/statistico comune, è complicato parlare di queste cose.

A presto
PdN

ginohorn
Messaggi: 536
Iscritto il: mercoledì 21 maggio 2014, 12:50

Re: Costanti di tempo: parliamone

#4 Messaggio da ginohorn » mercoledì 29 aprile 2015, 11:02

PeterDeNiro ha scritto:Ciao
F.Calabrese ha scritto:Ho separato questo interessantissimo post per consentire di approfondire l'argomento.

Io credo che -per rispetto- sia compito di Peter de Niro approfondire, tenendo conto del fatto che le costanti di picco impiegate dai fonometri sono dell'ordine di un decimo di millisecondo o meno, e non di dieci millisecondi.
...
F.C.
Prima di tutto dobbiamo fissare una cosa:

0. Stiamo parlano di segnali musicali reali, quindi altamente non stazionari, a spettro misto (forte componente discreta nello spettro)

Poi dobbiamo decidere:

(1) parliamo di stimare la potenza di picco, con una costante di <=10ms?

(2) parliamo di stimare la potenza di picco usando la distribuzione spettrale con una costante di <=10ms ?

sono evidentemente due cose diverse, anche se in certi casi la (2) puo' condurre alla (1), ma il converso non è vero. La mia risposta al post riportato sopra era riferita all'ipotesi (2). La (2) è una una follia se parliamo di segnali musicali reali, ma diventa una cosa fattibile per segnali che hanno una distribuzione spettrale continua e le autocorrelazioni vanno a zero ad una certa velocità. Questo è il motivo per cui si usa il pink noise nelle misurazioni audio. Il pink noise è stazionario e le sue autocorrelazioni vanno a zero ad un rate che consente ancora di stimare con precisione il suo spettro, si usa in campo audio perché in qualche modo il suo spettro riproduce molte delle caratteristiche "di lungo periodo" osservate in certi segnali musicali (l'ipotesi 1/f-noise di Voss e Clarke) vedi:

http://arxiv.org/pdf/physics/0204033.pdf

In generale quando si hanno segnali non stazionari a spettro misto (esempio il 99% dei segnali musicale reali), sia la (1) che la (2) non sono banali. Ovviamente uno puo' fare la FFT e fare due conti, ma dal punto di vista statistico i numeri ottenuto sono tutto e niente. Spesso i non addetti ai lavori pensano che la FFT calcola sempre lo spettro qualunque sia il segnale sottostante. FALSO. La FFT calcola uno stimatore che sia chiama PERIODOGRAMMA, essendo uno stimatore gode di certe proprietà statistiche. La seguente lettura (e comprensione del testo) è essenziale per capire di cosa parliamo:

http://www.dcs.warwick.ac.uk/~feng/teac ... ectrum.pdf

Ora il periodogramma windowed stima "accuratamente" la densità spettrale di segnali stazionari e lineari... tutto il resto è fantasia!

Riguardo poi alle costanti temporali, vi è un limite imposto dal principio di incertezza di Heisenberg. Se vuoi misure accurate in bassa frequenza devi avere una grande risoluzione in frequenza che implica scarsa risoluzione temporale. Nella FFT infatti

risoluzione = Fs/N

dove Fs è la frequenza di campionamento, e N è il numeri di campioni da usare nella FFT. Se ad esempio campioni a Fs=44100Hz ed usi la FFT con finestre lunghe N=1024, la risuluzione è 44100/1024 = 43Hz, questo significa che la FFT misura la potenza spettrale sulle seguneti frequenze:
0.0 Hz
1 * 44100 / 1024 = 43.1 Hz
2 * 44100 / 1024 = 86.1 Hz
3 * 44100 / 1024 = 129.2 Hz

Avete capito? Cioè tra 0 e 43Hz la FFT non misura niente, ma quello che vedete nel grafico che vi da il vostro software è solo (se va bene) una qualche interpolazione ben fatta, oppure effetto dello spectral leakage indotto dal windowing. Se uno vuole aumentare la risoluzione in frequenza non esite altro modo che aumentare la costante temporale. E' una banale conseguenza del principio di incertezza di Heinseberg (vedi al al punto "Uncertainty principle"):

http://en.wikipedia.org/wiki/Fourier_transform

Purtroppo senza una base matematico/statistico comune, è complicato parlare di queste cose.

A presto
PdN
Ciao e complimenti, hai acceso una luce su un mondo che per molti di noi appassionati, credo, sia buio e sconosciuto. Tutti "sti cavilli" sono complicati da interpretare proprio come dicevi in chiusura.
Esiste un modo per farcelo capire in modo più elementare? saluti gh

F.Calabrese
Messaggi: 41611
Iscritto il: giovedì 23 settembre 2010, 16:18
Località: Roma
Contatta:

Re: Costanti di tempo: parliamone

#5 Messaggio da F.Calabrese » mercoledì 29 aprile 2015, 13:05

ginohorn ha scritto:...Esiste un modo per farcelo capire in modo più elementare?
Ci provo io. Partiamo da una constatazione: nelle incisioni digitali esiste un valore massimo oltre il quale non si può andare, ed è chiamato "zero digitale".

Se il DAC e l'ampli sono lineari, questo valore verrà elevato in tensione e riportato ai terminali dell'altoparlante.

E se nella incisione ci sono segmenti clippati... anche all'altoparlante arriveranno...

Qui vediamo un esempio: l'Ouverture 1812, nella incisione Telarc. Ecco una cannonata:

Immagine

Come potete vedere, la forma d'onda è "segata" sia in alto che in basso...

Tutto questo per dire che il valore di "clipping" sia delle incisioni che degli ampli E' UNA GRANDEZZA D'IMPORTANZA FONDAMENTALE...

E noi come la misuriamo...? Semplicemente... con un voltmetro o con un fonometro che abbiano una costante di tempo assolutamente minima...

Segue più tardi
Saluti
F.C.

EdoFede
Messaggi: 1204
Iscritto il: lunedì 9 febbraio 2015, 10:57
Località: Bologna

Re: Costanti di tempo: parliamone

#6 Messaggio da EdoFede » mercoledì 29 aprile 2015, 13:55

F.Calabrese ha scritto: Qui vediamo un esempio: l'Ouverture 1812, nella incisione Telarc. Ecco una cannonata:

Immagine

PORCA MISERIA! :shock: :o

ma non era una delle incisioni "di riferimento"?? :roll:

in effetti è stra-udibile..e molto fastidiosa... ma avendo io solo il brano in DSD, avevo inizialmente pensato ad una qualche magagna nella mia interfaccia (sperimentale).

Scusate il piccolo OT..
Fabrizio, se hai voglia e tempo, sarebbe interessante aumentare la risoluzione verticale del file (in modo da aggiungere headroom) e poi applicare una interpolazione spline o polinomiale in quel piccolo intervallo...e sentire un po' se si corregge.

F.Calabrese
Messaggi: 41611
Iscritto il: giovedì 23 settembre 2010, 16:18
Località: Roma
Contatta:

Re: Costanti di tempo: parliamone

#7 Messaggio da F.Calabrese » mercoledì 29 aprile 2015, 14:20

EdoFede ha scritto:Fabrizio, se hai voglia e tempo, sarebbe interessante aumentare la risoluzione verticale del file (in modo da aggiungere headroom) e poi applicare una interpolazione spline o polinomiale in quel piccolo intervallo...e sentire un po' se si corregge.
La tua idea funzionerebbe alla grande, ma richiederebbe un intervento abbastanza "chirurgico" per non limitare lo spettro alla sola componente fondamentale, o poco più.

Mi hai messo una grande curiosità.

Saluti
F.C.

F.Calabrese
Messaggi: 41611
Iscritto il: giovedì 23 settembre 2010, 16:18
Località: Roma
Contatta:

Re: Costanti di tempo: parliamone

#8 Messaggio da F.Calabrese » mercoledì 29 aprile 2015, 15:34

Proseguiamo. Questi qui sotto sono i picchi rilevati da un fonometro durante una esecuzione dal vivo della Cavalleria Rusticana, con una orchestra di 42 elementi in un Auditorium da 700 posti.

Immagine

E' chiaro che se si volesse riprodurre senza clipping la registrazione non compressa dell'evento (che io ho), occorrerebbe regolare il volume in modo che al picco più alto corrisponda la potenza al clipping dell'ampli, o poco meno.

Se facessimo questo, scopriremmo che nella pratica totalità degli impianti a questa regolazione corrisponde un livello medio piuttosto basso... vale a dire fiacco ed innaturale.

Il che, tradotto in altri termini, significa che gli appassionati sono soliti ascoltare in condizioni in cui il clipping dell'ampli non è assolutamente escluso... anzi...! E questo è uno dei motivi per cui gli appassionati avvertono differenze di suono tra ampli che alle misure sembrerebbero identici, ma che non lo sono quando si raggiunge appunto il clipping.

Notate che sinora non si è mai parlato di spettri: in effetti si può affrontare l'argomento facendone del tutto a meno, o quasi.

Saluti
F.C.

PeterDeNiro
Messaggi: 337
Iscritto il: lunedì 11 giugno 2012, 15:59

Re: Costanti di tempo: parliamone

#9 Messaggio da PeterDeNiro » mercoledì 29 aprile 2015, 20:36

ginohorn ha scritto: Ciao e complimenti, hai acceso una luce su un mondo che per molti di noi appassionati, credo, sia buio e sconosciuto. Tutti "sti cavilli" sono complicati da interpretare proprio come dicevi in chiusura.
Esiste un modo per farcelo capire in modo più elementare? saluti gh

Ciao

non ti preoccupare perché moltissime persone che usano e credono di capire la misura di spettro... in realtà capiscono molto meno di quello credono. Cerco di ridurre al minimo.

Per stimare la potenza di un segnale puoi fare due cose:

A. stimarla a partire dalla distribuzione spettrale
B. stimarla in dominio temporale.

In campo audio, quando è possibile, si preferisce la prima, perché oltre a sapere quale è la potenza sai anche come è spalmata sulle varie frequenze. Ma ci sono dei limiti nell'accuratezza con cui si possono stimare queste cose. Vediamo di capire i principali.

Problema 1: se i segnali in gioco sono stazionari (es rumore bianco, rosa etc) tutte e due le cose sono possibili anche se non sempre è possibile andare per la strada A quando si chiedono costanti temporali basse e si richiede precisione in bassa frequenza (vedi esempio sotto).

Problema 2: se i segnali in gioco sono non stazionari, sia A che B diventano entrambi non banali.

Problema 3: seppure i segnali in gioco sono stazionari ma estiste una forte dose di "discretezza" (masse di energie concentrate su singole frequenze), la stima della densità spettrale è possibile solo dopo aver trattato oppurtunamente i segnali in gioco (ad esempio prefiltering con il quale si elimina prima la parte discreta).

Un segnale musicale reale è: non stazionario, quando va bene è stazionario solo localmente, lo spettro ha una forte componente discreta. In particolare la "discretezza" dello spettro è forte alle basse frequenze dove cadono la maggior parte delle fondamentali.

Conclusione 1: indipendentemente dalla costante temporale, la stima dello spettro di un segnale musicale reale è fortemente compromessa da questi aspetti. Se poi cerchiamo di farlo pure con costanti temporali piccole (es 10ms) siamo alla follia. In media la stima che ottieni puo' significare tutto e niente. Livello di accuratezza prossimo al nulla.

Veniamo ora alla costante temporale. Quello che dico lo puoi replicare pari pari con un software tipo Audacity. Genero un segnale semplicissimo una sinusoide a 30Hz con un potenza di -3dBFS, supponiamo di campionarla a Fs = 192Khz. Ora data Fs quella sinusoide ha bisono di 6400 campioni (ovvero 33.33 ms) per vedere il suo ciclo tutto intero. Supponiamo di generarla molto più lunga tipo 86ms, in 86ms a quella Fs vedi circa 2.5 cicli completi. Uno supporrebbe di avere sufficiente informazione per stimare la distribuzione spettrale di questo elementare segnale. Se tutto funziona devo ottenere uno spettro con un picco a 30Hz e questo picco deve stare a -3dBFS, se quantizziamo a 16bit dovrei avere anche base di rumore di quantizzazione spianato sotto i -96dBFS.

Come primo tentativo cerchiamo di stimare lo spettro con una costante che sia vicino ai 10ms. Quando di parla di FFT bisogna ragionare per potenze del 2. La cosa più vicina a 10ms che possiamo fare è prendere una FFT con una finestra lunga 2048 campioni. Facciamo qualche conto:

2048/fs * 1000 = 10.666ms (costante temporale effettiva)

e

fs/2048 = 93.75Hz (risoluzione in frequenza)

Ora lascia perdere il grafico interpolato (e spesso fuorviante) dello spettro lisciato che ti passa il softwarino di turno. Andiamo ai numeri, ti riporto sotto il calcolo esatto della FFT fatta con una finestra di Hanning lunga 10.666ms:

Hz / dBFS
93.750000 / -3.979503
187.500000 / -22.716452
281.250000 / -36.823544
375.000000 / -45.338596
468.750000 / -51.596729
etc etc

come vedi la FFT parte da 0Hz e ti misura la potenza solo a step di 93.75Hz... esattamente la risoluzione che ti puoi permettere con una costante temporale così bassa. La FFT non NON PUO' MISURARE NIENTE TRA 0HZ E 93.75HZ, per effetto del leakage ti trovi a misurare una potenza prossima ai -3dBFS a circa 93.75. Questo perché la distorsione indotta dalla bassa costante temporale porta la FFT a spostare la potenza verso la frequenza più prossima ai 30Hz di cui puoi disporre a quella costante temporale.... un disastro.


OK, allora vediamo a quali costanti temporali si inizia a vedere cosa succede. Sullo stesso segnale prendiamo una finestra con 16384 campioni. Facciamo due conti:


16384/Fs * 1000 = 85.33333ms (costante temporale effettiva)
Fs/16384 = 11.71875hz (risoluzione in frequenza)

Ora ti ricalcolo le stime FFT sulle prime frequenze:

Hz / dBFS
11.718750 / -18.965622
23.437500 / -3.735142
35.156250 / -3.034478
46.875000 / -15.823156
58.593750 / -33.702946
etc etc

come vedi lo step tra due frequenze successive è esattamente di 11.71875Hz, che è la risoluzione che mi posso permettere con una costante di 85.33ms. Come vedi adesso i -3dBFS si trovano in un intorno di 35Hz. Sebbene il risultato sia più soddifacente hai ancora troppa energia spalmata sulle frequenze intorno a quella di picco. Per vedere il picco a 30Hz ed intorno il nulla dovresti avere finestre lunghissime e qundi costanti temporali altissime. Il problema di fondo è che stai cercando un picco in una regione dove gli effetti del "Principio di Incertezza" giocano brutti scherzi. Non esiste altro modo di risolvere il trade-off tra risoluzione in frequenza e risoluzione nel tempo.

Conclusione 2: A costanti temporali basse, si paga il prezzo che in bassa frequenza non si vede niente di accurato. Ad esclusione che tu abbia un picco che cade proprio su una delle frequenze della FFT implicate da una data costante temporale. Nel secondo esempio se la sinusoide fosse stata a 35.156250Hz.... il risultato sarebbe stato totalmente diverso!
Più facile di così non riesco proprio a metterla. Mi dispiace.

Buona serata
PdN

ginohorn
Messaggi: 536
Iscritto il: mercoledì 21 maggio 2014, 12:50

Re: Costanti di tempo: parliamone

#10 Messaggio da ginohorn » giovedì 30 aprile 2015, 18:16

Ho dovuto rileggerlo svariate volte per capire il 30%. Domani riprenderò a ri- leggere per cercare di capire un'altro po. Saluti gh

Rispondi