SET-B-FREE
EEN ‘HAMMOND ORGAN’ VOOR IEDEREEN (2)

Tekst en technische afbeeldingen: Marjan Waldorp
Artikel uit Turning Wheel 2023-4

In deel 1 hebben we kennis gemaakt met de 'SetBfree' Hammond Organ synthesizer en haar ontstaansgeschiedenis. Nu gaan we dieper de techniek in met als einddoel een werkende SetBfree installatie op een SBC (Single Board Computer). Bij een software synthesizer, zoals SetBfree, draait het natuurlijk allemaal om geluid, digitaal geluid. Maar hoe werkt digitaal geluid eigenlijk op een computer?

Digitaliseren

Digitaliseren begint met meten. Stel dat we bijv. de kamertemperatuur willen meten, zodat we de klimaatverandering bij kunnen houden. Om te beginnen hebben we dan een sensor nodig, bijv. een graden Kelvin sensor. Dat is een chipje dat aan de uitgang een spanning afgeeft van 10mV/°K. Bij een temperatuur van 20°C (293°K) geeft de sensor dus een spanning af van 2,93V. Wanneer we daar 2,73V van aftrekken krijgen we de de spanning in °C: 0,20V. Stel dat we uitgaan van een maximale temperatuur van 55°C dan is de spanning 0,55V of 55/100V. Digitaal in bits uitgeschreven is decimaal 55: 1 1 0 1 1 1 (6 bit).

Resolutie

Wanneer echter de temperatuur van 23°C oploopt naar 23,8°C geeft onze digitale meter nog steeds 23°C aan! Pas wanneer de temperatuur boven de 23,9°C komt, springt de aanwijzing naar 24°C. Dat komt doordat we de analoge meetwaarden gedigitaliseerd hebben met een resolutie van 1°C. Alles achter de komma hebben we buiten beschouwing gelaten. Dit wordt de 'kwantiseringsfout' genoemd. Beter zou zijn hier een resolutie (kwantisering) van 0,1°C te kiezen ofwel bij 55°C de spanning uitgedrukt als 550/1000V. Digitaal in bits uitgeschreven is decimaal 550: 1 0 0 0 1 0 0 1 1 0 (10 bit). Conclusie: wanneer we meer detaillering willen, ofwel een hogere resolutie, dan hebben we meer bits nodig!

Bemonsteren

Een andere vraag is, hoe vaak we moeten meten. De kamertemperatuur verandert maar langzaam. Wanneer we 1x/min. meten (bemonsteren) dan is dat ruim voldoende om het verloop bij te houden. Bij geluid is dat echter een heel ander verhaal! Het frequentiebereik van HiFi is 20 .. 20.000Hz (trillingen per seconde). Hoe vaak moeten we nu bemonsteren? Het antwoord is: zo vaak dat het later mogelijk is de originele analoge golfvorm te reproduceren. Bovenstaande figuur laat zien wat er gebeurt wanneer we te weinig monsters (samples) nemen. De grijze sinus is het origineel; de rode gestippelde sinus is het resultaat wanneer we via de samples (zwarte bolpijltjes) de analoge golfvorm reconstrueren. We krijgen dan een "valse" sinus met een lagere frequentie (aliasing). De Amerikaanse elektrotechnicus Harry Nyquist brak zich hierover het hoofd en kwam tot de conclusie dat je in elke volledige periode minimaal twee samples moet nemen. Ofwel de sample-frequentie moet minimaal 2x de hoogste frequentie in het analoge geluidssignaal zijn!

Om geluid tot 20.000Hz (20kHz) te digitaliseren hebben we dus minimaal een sample-frequentie van 40kHz nodig. De 'Digital Audio Compact Disc' gebruikt een sample-frequentie van 44,1kHz. (Deze wat eigenaardige frequentie komt voort uit voorgaande experimenten met een videorecorder als digitale geluidsrecorder.) In theorie kan de Audio CD dus frequenties tot 22kHz registreren. Het analoge ingangssignaal kan echter ook hogere frequenties bevatten. Wat moeten we hiermee doen? Het antwoord is: radicaal afkappen! Wegfilteren! Want bij de omzetting terug naar analoog leiden die hogere frequenties tot aliasing!

Digitaal naar analoog

Digitale codes kunnen we niet horen. Dus uiteindelijk moeten we de digitale geluidscode (Pulse Code Modulation) weer omzetten in een analoog signaal. Om het principe te demonstreren heb ik hierboven een 3-bit D/A omzetter (DAC) getekend. De meeste DAC's werken met een weerstandsnetwerkje en een versterker. Het weerstandsnetwerkje genereert voor elk bit een stroompje, waarbij voor elke lagere orde bit de weerstand twee maal zo hoog is en dus het stroompje twee maal zo laag. Op die manier worden de bits gewogen bij elkaar opgeteld. De versterker levert op basis van de totale stroom het uitgangssignaal:

b2 b1 b0 Output
(x 1/2) (x 1/4 ) (x 1/8)  
0 0 0 0
0 0 1 1/8
0 1 0 2/8
...      
1 1 1 7/8

Het uitgangssignaal van een DAC is echter niet een mooie golvende sinusvorm, maar een trapgeveltje! Bij elke digitale code springt de uitgang naar de nieuwe waarde en blijft daar bevroren tot de nieuwe code is omgezet. Aangezien die steile flanken leiden tot hogere harmonischen, moet het uitgangssignaal door een filter worden geleid om de flanken af te ronden.

Bron:Petr.adamek(vrijgegeven)

Digitale armoede

Is het totale proces van digitalisering overziend, digitaal geluid niet maar een armoedig geheel? Eerst moeten we aan de analoge ingang een laagdoorlaatfilter toepassen om frequenties boven de helft van de samplefrequentie weg te filteren. Vervolgens nemen we na ieder sample-interval een 'hapje' uit het analoge signaal, dat we afronden op een aantal bits (kwantiseringsfout). En na de D/A omzetting moeten we opnieuw een laagdoorlaatfilter toepassen om de steile flanken af te ronden tot een min of meer sinusvormig signaal.

Ja, niet alle HiFi liefhebbers waren overtuigd van de kwaliteit van de Compact Disc! Ze vonden de LP beter klinken. Punt van kritiek was met name de hierboven genoemde filtering. Maar dat was 1982! Sindsdien is de techniek van digitalisering enorm verbeterd door oversampling en digitale filtering. (Bij oversampling gebruik je een hogere samplefrequentie. Vervolgens bewerk je de digitale waarden tot het gewenste signaal.)

Het is zeker waar dat je met het digitaliseren van een analoog signaal de kwaliteit begrenst. Maar het menselijk oor is ook begrensd. De meeste mensen kunnen niet hoger dan 20kHz horen. Mensen zijn geen katten, die tot 80kHz kunnen waarnemen! Moderne geluidskaarten kunnen overigens tot 192kHz en hoger samplen.

En dan de kwantiseringsfout. De audio Compact Disc werkt met 16-bit signed data (-32768 tot +32767). Het zwakste signaal is dus een sinus van +1/-1 (top/dal), het sterkste signaal een sinus van +32767/-32767; ofwel een verhouding van 1:32767. Dat is een dynamiek verhouding van meer dan 86dB! Ter vergelijking: een professionele bandrecorder haalde een signaal/ruis verhouding van ca. 60dB. Moderne geluidskaarten werken met 24-bit en zelfs 32-bit! Het is wel de vraag welke voorbespeelde geluidsdragers een dergelijke kwaliteit meebrengen. Bij dit soort high-end geluidskaarten gaat het vaak over gaming, gesynthetiseerd digitaal geluid. Want wanneer je via zo'n super geluidskaart een audio CD gaat afspelen, wordt het toch niet meer dan 44,1kHz 16-bit stereo. De ketting is immers zo sterk als de zwakste schakel!