discrete fourier transform

working discrete fourier transform, but more to study dsp theory than to use for effect

(19 Votes)
1.4 (Updated 17 years ago)
April 25, 2005
Reaktor 5 or lower
Instrument Other


so this is how i think you would do a discrete fourier transform in reaktor 4. i use calculation in polyphony for the bins [two sine oscillators thats make the e^(-j*omega*t) term from fouriers equation] and polyphony again for each bin to sum up the last N samples [using sample+hold module and a ramp osc]. this unfortunately means, that you can't change the number of bins without reproducing parts of the structure. anyway, you see the cpu load: you wanna stay at 8 bins anyway. also keep reaktors sample rate at 88200 to work in 44100 hz range and study effects above nyquist frequency.

the test signal generator produces sines of 0, 1, 2, 3 (first row) and 4, 5, 6, 7 (second row) times 5512.5 Hz (44100/8). 0 means constant signal (dc offset), hence no phase.

what it does: you change the amplitudes and phases of components 0, 1, 2, 3 and 4 (these are the components until the nyquist frequency 22050 Hz). (A) you hear the resulting signal on the output and (B) it's connected to the dft macro. this macro analyzes just from the signal the amplitudes and phases again. it works 100%, as you can see in the 8 xy-controls (bins 0, 1, 2, 3 in upper row, bins 4, 5, 6, 7 in lower row) in the dft result viewer, amplitudes and phases are reconstructed.

it's just a theory thing. i just wanted to show, that you can do the DFT in reaktor. if you need something more practical, get gabriel mulzers Helioclast RTT, it's built for usable CPU performance, but can't reconstruct your signal 100%.

maybe reaktor 5 can help on my approach. but a fourier transform without a hardcoded FFT algorithm will always be waaay slower.

but perhaps it can help some of you to understand the DFT by watching the signals in the wires with the oscilloscope instrument (use the 'from voice' module to see single signals).


ant stewart
7 years ago
Thanks Robert, you can actually dynamically assign voices to a structure, you use a polyphonic from voice with each imput to a voice info module that ahs 1 2 3 on different voices. Anyways, interesting experiment, i didnt understand what the real/imaginary adn the dfft result viewer signified. If it said simply how much of the sine correlated with the test wave that would be cool. i am looking for sample accurate dft analyses, something like FFT so the output would be a frequency spectrum, this was confusing.