I need to equalize a music sample by modifying the FFT result. I know how to obtain the frequencies of each of the output imaginary numbers, the problem is modifying this values to obtain an "equalizer effect". I need to know how to scale this values. The size of the entry is 4096 samples, and the sample rate is 44100 HZ Thanks in Advance Alex
Asked
Active
Viewed 1,501 times
2
-
The question might also contain some relevant information: http://stackoverflow.com/questions/14269144/how-to-implement-an-equalizer/14270250#14270250 – Shannon Matthews Jul 02 '14 at 09:38
1 Answers
3
You just need to scale the frequency domain bins. Note that these are complex values which you need to multiply by a scalar value, so you need to scale both the real and imaginary parts by the same factor.
Note that you should avoid abrupt changes between adjacent frequency domain bins as this will result in artefacts in the time domain.

Paul R
- 208,748
- 37
- 389
- 560
-
-
What is the factor range I need to use to notice real changes?? – Alejandro Barreiro Apr 28 '11 at 05:42
-
1@Alejandro: as might be expected, 1.0 will give you no change, 2.0 will give you +3 dB, 0.5 will give you -3 dB, etc. – Paul R Apr 28 '11 at 05:45
-
-
1@Alejandro: the output values of an FFT (i.e. the frequency domain values) are commonly referred to as "bins". Each "bin" value represents the energy in a narrow range of frequencies, i.e. those frequencies are "binned" together. – Paul R Apr 28 '11 at 10:44
-
1This is probably a homework problem. A nearly identical question was posted by another user today – Mark Borgerding Apr 29 '11 at 03:59
-
@Mark: yes, I noticed that and flagged it as a duplicate: http://stackoverflow.com/questions/5824168/scaling-frequency-bins-in-a-fft-result-to-equalize-a-music-sample – Paul R Apr 29 '11 at 05:38