Comments (9)
from arduinofft.
from arduinofft.
Mmh, if I remember well FFT(a f) = a FFT(f), so applying the correction before or after the transform should be the same, right? Or am I missing something? ...
from arduinofft.
@jerabaul29 : your expression is correct if a
is a constant, but in this case it is a window. Look at the second panel in the first figure of the article you linked to. Note, also, that weighingFactor
is a confusing name here. It's not a single factor, it's a window.. Finally, per issue #61, the Hann window isn't quite right.
from arduinofft.
Mmh, agree I should have been clearer and write that:
FFT(a * signal * windowing) = a * FFT(signal * windowing),
I wrote in the way I did because it is the usual notation when working with proofs of linearity on vector spaces.
But with a the constant scaling factor, it should be the same before or after applying the FFT I would think? ...
Just to be clear: I am aware that the Hanning window looks like a 'bell', I am thinking of the factor 0.54 that seems to disagree with other sources I have found.
from arduinofft.
Yes, I am aware of that. What we discuss here is the factor to use so that the windowing does not change the energy content.
from arduinofft.
If someone else looks into this and finds this thread. I took a bit of time to double check this. I am pretty confident that these formula are not right:
Lines 244 to 249 in bb99065
I take as a reference the reference numpy documentation, which I have much trust in:
https://numpy.org/doc/stable/reference/generated/numpy.hanning.html
https://numpy.org/doc/stable/reference/generated/numpy.hamming.html
And a table from univ. Zurich for the "scaling coefficients":
which are in agreement with the previous link.
I am personally moving to kissfft, as it fits my needs better.
from arduinofft.
Sorry, the Hamming should be good, but the Hann is probably wrong. It is right as pointed higher up that this is the same issue as #61.
from arduinofft.
(but I still think that these windows are not compensated; which is fine, but may be worth having a line of comment about the need to compensate to keep either amplitude or energy constant :) ).
from arduinofft.
Related Issues (20)
- Weighing factors of Hahn window
- Implement C++ template HOT 5
- (improvement) use sqrtf() on ESP32 HOT 2
- Windowing / Weighing Factor HOT 1
- too much time cost for compute FFT on Esp32-C3 HOT 6
- Weird results while imag input other than 0 at example FFT_1 HOT 2
- I thought I was nearly there but can't quite get it over the line. HOT 5
- Updating Documentation and Examples HOT 1
- Performance++ HOT 10
- Needed FFT real time example HOT 1
- average FFT result HOT 1
- calc complex amplitude for only specific frequencies HOT 1
- What is the relation of the calculated magnitude to the original signal
- Windowing compensation factors HOT 1
- First two bins 0 Hz and 62.5 Hz always an order of magnitude larger than all other bins HOT 5
- v2.0 does not extract major peak, while v1.6.2 does HOT 24
- Inverse function does not work correctly HOT 1
- FFT Uncertainty HOT 1
- Issue with library dictionary HOT 1
- Cannot detect frequency from sound sensor in v2 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduinofft.