-
Notifications
You must be signed in to change notification settings - Fork 17
How about the sliding DFT? #5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
The sliding DFT will be first implemented and tested out in voyx. |
As mentioned in [3] the classic SDFT implementation suffers from accumulated frequency bin errors. These errors may become visible or audible after about 10 minutes on single precision, depending on the source signal. The modulated SDFT implementation proposed in [6] offers reduced error level even on single precision, but at "slightly" higher computational cost (by about factor 1.5 in my measurements). With cyclic chirp or sweep as a source signal the frequency error appears immediately at about -75 dBFS using the classic SDFT [1] and still stays below -100 dBFS using the modulated SDFT [6] after 30 min. That's the difference... |
oSDFT Not to be confused with oSDFT, which is a completely another nice algorithm and probably most suitable for FPGAs, due to accumulation at the end of the cycle. The author of [11] reports a lower numerical error level of gSDFT compared to mSDFT from [6], but also a higher workload on larger windows. The finally proposed oSDFT should have exactly the same numerical error level as gSDFT and the lowest workload "among the existing stable" SDFT algorithms... Unclear:
BTW the gSDFT seems to be patented... |
TODO:
|
Hi, first of all thank you for publishing this project, the python implementation is very clear and I was able to understand your algorithm pretty well. I see that you have "removed the SDFT prototype" just above. Thanks |
Hi Nathan, the main reason for investigating the SDFT was the ability to reduce the algorithmic latency of the "classic" STFT procedure. Meanwhile I've discovered the properties of the asymmetric windows #38, which allows to lower the algorithmic latency of the "classic" STFT as well. Even if this can lead to artefacts under certain circumstances #44. In terms of "quality", I believe that the QDFT would be a more suitable tool than the SDFT (and also STFT), due to its logarithmic resolution. It's likely that both QDFT and SDFT approaches would require some major algorithmic redesign. Especially for formant preservation. Real-time processing is another key consideration. Both QDFT and SDFT are definitely more computationally intensive than STFT, due to the sample-by-sample data processing. In short, the SDFT is not currently in focus. I think QDFT or maybe TFR #43 would make more sense for this kind of application. |
Evaluate following work:
bronsonp/SlidingDFT(prefer [6])The text was updated successfully, but these errors were encountered: