Vikningsdistorsion

Frekvensöverlappning (frequency warping) eller vikningsdistorsion är en i regel oönskad effekt man får när en sampling spelas med så hög frekvens att dess hörbara övertoner går över Nyquist-frekvensen. Detta är relaterat till "Aliasing".

Praktiska observationer
När jag en gång var engagerad i att skapa musik i programmet SoundTracker (eller någon av efterföljarna) på min Amiga, så störde jag mig ibland på att loopade lead-ljud lät för hemskt när man spelade med för hög ton. Jag har senare upplevt samma sak hända när jag använder t.ex. ett enkelt sågtandsljud (SawOsc) i ChucK, och även i wavetable-oscillatorerna i DSI Evolver.

Detta orsakas av "frequency warping", vilket innebär att övertoner "studsar" i Nyquist-frekvensen och blandas in i vågformen på ett icke harmoniskt sätt.

Teori
Nyquist-frekvensen är halva samplingsfrekvensen. En vanlig samplingsfrekvens på en DAW är idag 44,1 kHz, vilket ger en Nyquistfrekvens på 22,05 kHz.

Nyquist och Shannons samplingsteorem säger att man behöver en samplingsfrekvens som är dubbelt så hög som för den våg man vill representera. 44,1 kHz (vilket även är frekvensen som används på CD) passar därmed bra, eftersom man brukar säga att drygt 20 kHz är den högsta frekvens som någon människa kan uppfatta.

När man tar en sampling och vill få den att låta med en högre ton, så löser man det genom att spela den snabbare - med en högre frekvens än den som den samplades i. Man kan dock inte leverera fler samplingar än tidigare, eftersom samplingsfrekvensen hos ljudkortet är konstant. Alltså måste man kasta bort samplingsvärden som man inte hinner spela.

Om man tar en samplad sinuston, och ökar den på det här sättet, så låter det ok hela vägen upp till Nyquist. Men när vi spelar den i 22,05 kHz så kan vi inte öka den mer (enligt samplingsteoremet). Om vi ändå försöker öka tonen, så blir den upplevda effekten att tonhöjden minskar, för att så småningom återvända till att låta likadant som när vi spelade den med urpsrungsfrekvensen.

En sampling kommer i regel att innehålla en grundton plus ett antal övertoner. Om vi upprepar experimentet ovan med en mer komplicerad sampling, så kommer de högsta övertonerna att råka ut för samma effekt som sinustonen ovan, och börja sjunka i frekvens på ett sätt som inte harmonierar med resten av ton/övertoner, som är på väg uppåt.

Lösning
En lösning är att köra samplingen genom ett lågpassfilter som justeras ner från Nyquist motsvarande sträcka innan man sätter frekvensen.

ChucK erbjuder varianter av oscillatorer med begränsat antal övertoner (BlitSaw för SawOsc och BlitSquare för SqrOsc).

Länkar

 * Wikipedia om Nyquist-frekvensen: http://en.wikipedia.org/wiki/Nyquist_frequency