|
If you dont mind I would like to add a deeper explanation... but it can be boring and confusing, so those of you not really interested please jump to the next post!
antialias is the word to describe the digital filtering of an analog signal.
i dont know how much you know about digital signal processing, but i suppose a lot of you have heard about analog-to-digital prefiltering to avoid aliasing.
if you want to digitize a signal you need to reject all frequencies above a limit (the Nyquist frequency, half the sample rate) because if not they will generate an annoying hi-freq "noise".
the main technique to generate waveforms is by mean of sampling an analitic function. If you want a sinus with a 'f' freq, you should do the following operation (in C-like programming syntax):
y = sen(2*pi*f*t);
where 't' is the time variable. As you are discretizing, that is, taking y not in a continuus way but only at fixed moments, it's more convenient to define 't' as n/fs, where 'n' will be 0, 1, 2, so on ... and 'fs' (sampling freq) for example 44100 or 48000 Hz.
Therefore we will obtain this:
y = sen( (2*pi*f/fs) * n);
the first member (2*pi*f/fs) is constant if you desing a stable oscillator, but the second, 'n', is increasing by time.
While this approach is the most intuitive and easy, it will lead us to break the so-called "Nyquist limit". Even a sinus, that is ideally a spectral line, will originate aliasing if not prefiltered. Why? Because only a sinus sounding from an infinite past to an infinite future will be a single spectral line (narrowband). Since this osc jumps from a freq to another or is envelope modulated, it will present higher harmonics, that could generate alias (not to mention, sawtooth or pulse waveforms).
In the digital domain, the simplest way to filter a signal is to get an average of several samples. So if we want to filter 'y' we should get 'y' for n = 0, 1, 2, 3 and add them together and divide it by 4 (as we have used 4 samples), then add y for n= 1, 2, 3, 4 and so on.
But in this way we are filtering the signal too low, hence eliminating fundamental freqs. To preserve the whole signal, we must oversample. Instead of using y for 0, 1, 2, 3, we should average the 'subsamples' at n = 0, 0.25, 0.5 and 0.75 (then 1, 1.25, 1.5, 1.75...) for the first sample.
The higher amount of subsamples, you get the purest sound. The amount of sumsamples is oftenly called oversample factor. The typical is 4 (x4 oversampling), but this also increases by 4 the amount of needed resources.
I hope you wont get ill by this fuzzy sermon 
___________________

SHK:\>my_music
my_latest_tune = shockwavedj://epoxy
|