Wat een Hertz nu eigenlijk is, en waarom twee opvattingen uiteenlopen
Een hertz is één cyclus per seconde. Maak in Python een toon van 528 Hz en tel deze vervolgens op twee verschillende manieren: de uitkomsten verschillen in het laatste cijfer, en het is de moeite waard om te weten waarom.
Frequentiewaarden worden voortdurend verkocht, maar bijna nooit gemeten. Voordat er een discussie ontstaat over de vraag of een bepaalde waarde wel effect heeft, is het de moeite waard om precies vast te stellen wat die waarde eigenlijk is, want er ontstaat verrassend veel verwarring verderop in het proces doordat mensen „528 Hz” als een naam gebruiken in plaats van als een getal.
Een hertz is één cyclus per seconde. Dat is de volledige definitie. De SI-eenheid is vernoemd naar Heinrich Hertz en betekent precies dat: iets dat zich, volledig, zo vaak per seconde voordoet. Een toon van 528 Hz is een luchtdruk die in één seconde 528 keer stijgt en weer daalt naar het uitgangspunt.
Ik bouw er eentje, zodat er iets is om te meten
Hiervoor heb je geen synthesizer nodig. Een zuivere toon is een sinusgolf, en een sinusgolf bestaat uit drie lijnen:
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
De 2 * np.pi staat er omdat één volledige cyclus van een sinusgolf 2π radialen is. Door dit met 528 te vermenigvuldigen, passen er 528 van die cycli in elke seconde van t. Al het andere in audiosynthese is een uitwerking van dit principe.
Het eerste punt: nuldoorgangen
Als een golf 528 cycli per seconde doorloopt, passeert hij bij het stijgen 528 keer per seconde de nul. Tel ze dus maar eens:
ups = np.sum((y[:-1] < 0) & (y[1:] >= 0)) # upward zero crossings
print(ups / 4) # per second
Over een periode van vier seconden levert dit 527,88 cycli per seconde op, en niet 528.
Het tweede punt: de FFT
De andere benadering leest het hele signaal in één keer in en vraagt uit welke frequenties het bestaat. Een Fourier-transformatie splitst de golf op in componenten, en de sterkste daarvan is het antwoord:
spec = np.abs(np.fft.rfft(y))
freqs = np.fft.rfftfreq(len(y), 1 / sr)
print(freqs[np.argmax(spec)]) # 528.00
Dit levert 528,00 Hz op.
Waarom ze het oneens zijn
Twee betrouwbare methoden, hetzelfde signaal, maar verschillende uitkomsten wat betreft het laatste cijfer. De verleiding is groot om te concluderen dat een van beide niet goed werkt. Dat is echter bij geen van beide het geval.
Het aantal nuldoorgangen is te laag omdat het venster van vier seconden geen geheel aantal cycli bevat. Bij 528 Hz vallen er in vier seconden 2112 volledige cycli en daarna nog een fragment. De teller kan een fragment niet tellen, dus laat hij het weg, waardoor het gemiddelde iets te laag uitkomt. Dit is niet specifiek voor 528: het gebeurt bij elke frequentie waarvan de cycluslengte niet gelijkmatig in het venster kan worden verdeeld. Verleng het venster en de fout wordt kleiner, omdat één weggelaten fragment een kleiner deel uitmaakt van een groter totaal.
De FFT ziet er hier heel nauwkeurig uit, en dat is reden genoeg om er wantrouwig tegenover te staan. De resolutie wordt ook bepaald door het venster: vier seconden audio levert frequentiebakken op met een onderlinge afstand van 0,25 Hz. 528 valt precies in een bak. Een toon van 528,1 Hz zou worden gerapporteerd in de bin die het dichtst in de buurt ligt, en de FFT zou er net zo overtuigd uitzien over het verkeerde antwoord.
De nuttige conclusie is niet dat één methode de overhand heeft. Het is dat elke meting de vorm draagt van het ‘venster’ waarin deze is uitgevoerd, en dat een getal dat zonder vermelding van de methode wordt genoemd, de helft van zichzelf mist. Daarom wordt in de afleveringen op dit kanaal naast het cijfer ook vermeld hoe het is verkregen.
Twee dingen die daaruit voortvloeien
Een frequentie die je niet kunt horen, klinkt toch. Schrijf dezelfde drie regels met 1 in plaats van 528 en het bestand is niet stil. Het bevat een golf met volledige amplitude die één cyclus per seconde voltooit. Het menselijk gehoor beslaat grofweg 20 Hz tot 20 kHz, dus 1 Hz produceert helemaal geen toonhoogte. “Onhoorbaar” en “niet aanwezig” zijn verschillende uitspraken, en dat verschil verklaart waarom er in een bestand een binauraal verschil van 4 Hz kan bestaan zonder dat je ooit 4 Hz hoort: het bestaat als het verschil tussen twee hoorbare tonen, niet als een toon op zich.
Verdubbeling klinkt als één stap, niet als twee. 528 Hz en 1056 Hz liggen een octaaf uit elkaar, en 1056 tot 2112 is weer een octaaf, ook al voegt de tweede sprong twee keer zoveel hertz toe. De toonhoogtewaarneming verloopt grofweg logaritmisch; daarom zijn muzikale intervallen verhoudingen in plaats van verschillen. Dit is ook de reden waarom een spectraal zwaartepunt van 590 Hz en een van 438 Hz verder uit elkaar liggen dan de ruwe aftrekking doet vermoeden.
Het onderdeel dat van belang is voor beweringen over de frequentie
A440 is de referentie waaraan elke bewering van het type „afgestemd op X Hz” wordt getoetst, en het is eerder een afspraak dan een natuurconstante. Tijdens een internationale conferentie in Londen werd in 1939 440 Hz vastgesteld. Daarvoor had Frankrijk in 1859 435 Hz bij wet vastgelegd, en varieerde de concerttoonhoogte per stad en per eeuw. Tegenwoordig spelen Berlijn en Wenen rond de 443 en New York rond de 442, omdat musici de voorkeur geven aan de helderdere klank.
Dat zegt nog niets over de vraag of een bepaalde frequentie een effect heeft. Het ontkracht juist een andere helft van het verhaal: de helft die stelt dat één bepaalde afstemming tot de natuur behoort en de andere afwijkingen daarvan zijn. Het zijn allemaal overeenkomsten. Wat overblijft is de vraag of een specifieke frequentie een specifiek effect heeft, wat een empirische vraag is die onderzoek na onderzoek wordt beantwoord, en elders in dit tijdschrift eerlijk wordt beantwoord.
Het gaat er bij het op twee manieren tellen van een toon niet om die 0,12 Hz. Het gaat erom dat een getal dat je niet hebt gemeten slechts een label is, en dat de meting drie regels beslaat.
Bronvermeldingen
Het gaat hier om theoretische signaalverwerking in plaats van klinisch bewijs: de SI-definitie van de hertz en het standaardgedrag van discrete Fourier-transformaties en venstering, geïmplementeerd met numpy. Geschiedenis van de concerttoonhoogte: de Franse diapason normal uit 1859 (435 Hz) en de norm van de conferentie van Londen uit 1939 (440 Hz).
Informatieve inhoud over audiosignaalverwerking. Dit is geen medisch advies.
Listen · FFT-verified session Wat een Hertz nu eigenlijk is, en waarom twee opvattingen uiteenlopen Watch on YouTube →