User Tools

Site Tools


blog:2019:0225_fft_scaling_factor

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blog:2019:0225_fft_scaling_factor [2019/02/26 17:00]
davek
blog:2019:0225_fft_scaling_factor [2019/03/08 04:47] (current)
davek
Line 1: Line 1:
 ====== FFT scaling factor ====== ====== FFT scaling factor ======
  
-What's often confusing about the FFT is that the transform seems to have numbers that are too big. Let's call this the "FFT scale factor"​ problem (it's a reasonable google search). The frequency domain seems to have much more energy (much higher values) than one might expect from the time-domain waveform from which it originated.+What's often confusing about the [[https://​en.wikipedia.org/​wiki/​Fast_Fourier_transform#​Definition|FFT]] is that the transform seems to have numbers that are too big. Let's call this the "FFT scale factor"​ problem (it's a reasonable ​[[https://​www.google.com/​search?​q=fft+scale+factor|google search]]). The frequency domain seems to have much more energy (much higher values) than one might expect from the time-domain waveform from which it originated.
  
 When trying to understand this, the uninitiated user will google something like "FFT scale factor"​ and get lots of really good explanations about **how** the math produces values that are N times larger than one might expect, N being the size of the FFT. When trying to understand this, the uninitiated user will google something like "FFT scale factor"​ and get lots of really good explanations about **how** the math produces values that are N times larger than one might expect, N being the size of the FFT.
Line 10: Line 10:
  
  
-The answer is yes, sort of. First off, remember what the first "​F"​ in FFT standards ​for: Fast. Maybe users of standard FFT libraries don't care about the absolute scale, they care about the spectral shape or changes in the spectral shape. If the standard library divided by N, it would be less fast for everyone. The point being, if you want to take the hit caused by dividing N frequency bins by N, you do it.+The answer is yes, sort of. First off, remember what the first "​F"​ in FFT stands ​for: Fast. Maybe users of standard FFT libraries don't care about the absolute scale, they care about the spectral shape or changes in the spectral shape. If the standard library divided by N, it would be less fast for everyone. The point being, if you want to take the hit caused by dividing N frequency bins by N, you do it.
  
 If you really do care about the absolute power in the frequency-domain bins, you might want to divide by N. Maybe you care about the total energy. Oh wait, you should sum the bins, then divide by N one time! Now it's faster for you, too. Maybe you only care about the energy of the strongest bin. Just divide that one bin by N and ignore the others! If you really do care about the absolute power in the frequency-domain bins, you might want to divide by N. Maybe you care about the total energy. Oh wait, you should sum the bins, then divide by N one time! Now it's faster for you, too. Maybe you only care about the energy of the strongest bin. Just divide that one bin by N and ignore the others!
Line 24: Line 24:
 ~~LINKBACK~~ ~~LINKBACK~~
 ~~DISCUSSION~~ ~~DISCUSSION~~
-~~ DRAFT ~~ 
  
blog/2019/0225_fft_scaling_factor.1551200409.txt.gz ยท Last modified: 2019/02/26 17:00 by davek