Aliasing Digitale Oscillator

Retinite

Ingeburgerd
Lid sinds
4 december 2005
Berichten
68
Locatie
Enschede
Mijn wens/droom is een digitale synthesizer te maken :biertje:
Ik dacht dat mooi aan te pakken door eerst ff alles een keer in Matlab gemaakt e hebben (matlab hoeft niet, elke andere taal kan ook natuurlijk).
Als ik een samplerate van 44100 neem begin je al duidelijk snel beoven de 440Hz van de welbekende A (ik vergeet steeds welk octaaf... heel slecht.. ofwel noot n=48 bij waarbij 27.5*2^(n/12) = 440 Hz :p, maar ik drijf af) het fenomeen aliasing, omdat ik mijn zaagtand berekende met een modulo functie met mijn vector met samles en dan nu even van 0 tot A (A = amplitude): [1:SampleRate]/SampleRate*Frequentie MOD A
kan ook 1/Fs:1 natuurlijk maarok,

het probleem is dat de boventonen boven de nyquist frequentie omkeren. Een handig idee is om dat de zaagtand op te bouwen uit losse componenten, dan ben ik additief bezig. Maar dan heb ik voor mn lage tonen >500 componenten nodig (tot de 14000 Hz hoorgrens, amplitudes toch al zo laag dat t niet meer hoorbaar is) in 'theorie'. Een mogelijkheid wavetable synthesis te doen met interpolatie, maar mis je dan door t oprekken naar lage frequenties niet boventonen dan.

Heeft iemand advies hiervoor? Bij lage frequenties veel minder boventonen gebruiken? een deel hoor je toch niet maar tot hoever kap je dat af ? additieve synthese kost dan wel meer rekenkracht

een perfecte rampfunctie lowpass filteren lost het aliasing probleem niet op want die aliasing zit er al in...

Hoe wordt het normaal aangepakt? Bronnen?
 
het eerste dat in me opkwam: een hogere (interne) samplereet gebruiken.


...en 'beter' zoeken, want volgens mij is er veel meer over te vinden.
 
http://en.wikipedia.org/wiki/Sinc_filter

Additief werken kan ook maar dan krijg je problemen als je gaat moduleren. Met die Wiki link zou je genoeg moeten hebben om te googlen naar voorbeeld implementaties in whatever taal je kiest.

Denk er aan dat niet alleen oscilators kunnen aliassen maar b.v. VCA's ook dus eigenlijk moet je ieder onderdeel los anti-aliassen.... en da's duur.

Digitale synthese is altijd een questie van compromies sluiten, fouten houd je altijd, het is alleen de vraag waneer die nog storend zijn. Blijft erg lastig dus ik zou voorbeeld code zoeken (is veel van) en een goed boek lezen. Dees is practisch;
http://www.cs.princeton.edu/~prc/AKPetersBook.htm

Succes!
 
Digitale synthese is altijd een questie van compromies sluiten, fouten houd je altijd, het is alleen de vraag waneer die nog storend zijn. Blijft erg lastig dus ik zou voorbeeld code zoeken (is veel van) en een goed boek lezen. Dees is practisch;
http://www.cs.princeton.edu/~prc/AKPetersBook.htm
Het is niet alleen bij digitale synthese maar bij elke vorm dat je compromissen zoekt.
Houd er ook rekening mee dat het menselijk gehoor pas boven 0.1% vervorming pas merkt. En dan hangt het ervan af wat voor type vervorming.
Soms is vervorming zelfs gewenst om de boel niet al te steriel te laten klinken.
 
Back
Top