Che cos’è in realtà un Hertz e perché le due scuole di pensiero non sono d’accordo
Un hertz corrisponde a un ciclo al secondo. Crea un tono a 528 Hz in Python, quindi contalo in due modi diversi: i risultati differiscono nell'ultima cifra, e vale la pena scoprire il motivo.
I valori di frequenza vengono costantemente commercializzati, ma quasi mai misurati. Prima ancora di discutere se un determinato valore abbia o meno un effetto, vale la pena chiarire con precisione che cosa sia effettivamente quel numero, poiché gran parte della confusione che ne deriva deriva dal fatto che le persone utilizzano “528 Hz” come nome piuttosto che come grandezza.
Un hertz corrisponde a un ciclo al secondo. Questa è l’intera definizione. L’unità del Sistema Internazionale (SI) prende il nome da Heinrich Hertz e significa esattamente questo: un fenomeno che si verifica, nella sua interezza, tante volte ogni secondo. Un suono a 528 Hz corrisponde all’aumento e alla diminuzione della pressione dell’aria, che torna al livello iniziale 528 volte in un secondo.
Ne sto costruendo uno, così avrò qualcosa da misurare
Per farlo non serve un sintetizzatore. Un tono puro è un’onda sinusoidale, e un’onda sinusoidale è composta da tre linee:
import numpy as np
sr = 44100 # samples per second
t = np.arange(int(4 * sr)) / sr # four seconds of time stamps
y = np.sin(2 * np.pi * 528 * t) # 528 cycles per second
Il termine 2 * np.pi è presente perché un ciclo completo di una sinusoide corrisponde a 2π radianti. Moltiplicando per 528, si ottengono 528 di questi cicli in ogni secondo di t. Tutto il resto nella sintesi audio è un approfondimento di questo concetto.
Primo conteggio: passaggi per lo zero
Se un’onda compie 528 cicli al secondo, attraversa lo zero in fase ascendente 528 volte al secondo. Quindi contali:
ups = np.sum((y[:-1] < 0) & (y[1:] >= 0)) # upward zero crossings
print(ups / 4) # per second
In quattro secondi il risultato è 527,88 cicli al secondo, non 528.
Il secondo punto: la FFT
L’altro approccio consiste nel leggere l’intero segnale in una sola volta e determinare di quali frequenze è composto. Una trasformata di Fourier scompone l’onda in componenti, e quella più forte è la risposta:
spec = np.abs(np.fft.rfft(y))
freqs = np.fft.rfftfreq(len(y), 1 / sr)
print(freqs[np.argmax(spec)]) # 528.00
Il risultato è 528,00 Hz.
Perché non sono d’accordo
Due metodi affidabili, stesso segnale, risposte diverse nell’ultima cifra. La tentazione è quella di pensare che uno dei due non funzioni. Ma non è così.
Il conteggio dei passaggi per lo zero risulta inferiore perché la finestra di quattro secondi non contiene un numero intero di cicli. A 528 Hz, quattro secondi comprendono 2112 cicli completi e poi un frammento. Il contatore non è in grado di conteggiare un frammento, quindi lo tralascia e la media risulta leggermente inferiore. Questo fenomeno non è specifico della frequenza di 528 Hz: si verifica con qualsiasi frequenza la cui durata del ciclo non sia divisibile in modo esatto per la durata dell’intervallo. Allungando l’intervallo, l’errore si riduce, poiché un frammento tralasciato rappresenta una quota minore di un totale più ampio.
In questo caso la FFT sembra esatta, e vale la pena diffidarne. Anche la sua risoluzione è determinata dalla finestra: quattro secondi di audio producono intervalli di frequenza distanziati di 0,25 Hz l’uno dall’altro. Il valore 528 ricade perfettamente in un intervallo. Un tono a 528,1 Hz verrebbe registrato nel bin più vicino, e l’FFT sembrerebbe altrettanto sicura di questa risposta errata.
La conclusione utile non è che un metodo prevalga sugli altri. È piuttosto che ogni misurazione riflette la forma della finestra in cui è stata effettuata, e un dato citato senza indicarne il metodo è incompleto. Ecco perché le puntate di questo canale pubblicano, insieme al dato, anche le modalità con cui è stato ottenuto.
Due cose che ne conseguono
Una frequenza che non si riesce a sentire continua comunque a essere riprodotta. Se si scrivono le stesse tre righe sostituendo 528 con 1, il file non risulta silenzioso. Contiene infatti un’onda a piena ampiezza che compie un ciclo al secondo. L’udito umano si estende approssimativamente da 20 Hz a 20 kHz, quindi 1 Hz non produce alcuna nota udibile. «Inudibile» e «assente» sono affermazioni diverse, e la differenza spiega perché in un file possa esistere un differenziale binaurale di 4 Hz senza che tu senta mai 4 Hz: esso esiste come differenza tra due toni udibili, non come tono in sé.
Il raddoppio sembra un unico passo, non due. 528 Hz e 1056 Hz sono distanti un’ottava, e da 1056 a 2112 c’è un’altra ottava, anche se il secondo salto aggiunge il doppio degli hertz. La percezione dell’altezza è approssimativamente logaritmica, motivo per cui gli intervalli musicali sono rapporti piuttosto che differenze. È anche il motivo per cui un centroide spettrale di 590 Hz e uno di 438 Hz sono più distanti di quanto suggerisca la semplice sottrazione.
L’aspetto rilevante per le dichiarazioni relative alla frequenza
L’A440 è il riferimento rispetto al quale viene misurata ogni indicazione del tipo “accordato a X Hz”, ed è più un accordo convenzionale che una costante naturale. Nel 1939 una conferenza internazionale tenutasi a Londra stabilì il valore di 440 Hz. In precedenza, nel 1859, la Francia aveva fissato per legge il valore di 435 Hz, mentre il diapason variava da città a città e di secolo in secolo. Oggi a Berlino e a Vienna si suona a circa 443 Hz, mentre a New York a circa 442 Hz, poiché i musicisti preferiscono un suono più brillante.
Ciò non dimostra nulla riguardo al fatto che una determinata frequenza abbia o meno un effetto. Smonta invece un’altra parte della storia: quella secondo cui una sola sintonia appartiene alla natura e le altre ne costituiscono delle deviazioni. Sono tutte concordanze. Resta da stabilire se una frequenza specifica produca un effetto specifico, il che è una questione empirica, alla quale si risponde studio dopo studio, e alla quale si risponde onestamente in altre parti di questa rivista.
Il motivo per cui si conta un tono in due modi diversi non sta nei 0,12 Hz. Sta nel fatto che un numero che non è stato misurato è solo un’etichetta, mentre la misurazione si estende su tre righe.
Bibliografia
Il contenuto qui presentato riguarda l’elaborazione del segnale a livello teorico piuttosto che l’evidenza clinica: la definizione SI dell’hertz e il comportamento standard delle trasformate di Fourier discrete e dell’applicazione delle finestre, implementate con numpy. Storia dell’intonazione dei concerti: il diapason normal francese del 1859 (435 Hz) e lo standard della conferenza di Londra del 1939 (440 Hz).
Contenuti didattici sull’elaborazione del segnale audio. Non costituiscono un parere medico.
Listen · FFT-verified session Che cos’è in realtà un Hertz e perché le due scuole di pensiero non sono d’accordo Watch on YouTube →