Comments (7)
@ayavilevich thank you,
I will look.
Regards,
Dmitry
from esp-dsp.
Hi @ayavilevich
I have look to your example. Thank you very much. You are first who ask this question about FFT.
The error that you see here is not a real error. I will explain why.
The version for the esp32s3 is highly optimyzed for the speed. That's why the rounding that we use for ansi and for esp32 versions not used here. It slightly reduce the SFDR at low frequencies, but anyway, it's good for most of the applications.
Anyway, it's a good point to include identical fixed point FFT for the esp32s3 to the esp-dsp.
I will organize it.
Thank you very much!
from esp-dsp.
@dmitry1945 thanks for looking into it.
I understand that this is due to an arithmetic error in the optimized calculation and not a bug in the implementation.
I wonder if there is way to work around this because the difference really messes up the DC for many input. I think only inputs that use the full dynamic range are immune to it.
Is it possible to create an alternative optimized version that will add the missing rounding? It could be a more accurate version that runs slower?
Is this a fixed addition that I can subtract from the result?
from esp-dsp.
@ayavilevich yes, we will add another slower version. Point that, I can't say when we will do this.
About dinamic range. In your example you have max difference - 10. It's 20 dB. But, the ansi FFT already loose some dBs, and finally this algorithms (for esp32s3) will be ~ 10-12 dB worser then ansi one. The 10 dB is only 2 bits, and it's not bad.
Most of another fixed points FFTs for another platforms loose much more.
from esp-dsp.
@dmitry1945 Hi,
Any update on this? Perhaps you can publish (here?) an updated assembly function for dsps_fft2r_sc16_aes3
that will add the rounding that we normally have in the ansi and esp32 versions?
from esp-dsp.
Hi @ayavilevich ,
The problem is if we will use the rounding it will decrease the performance of the FFT. If you need the same SNR as ansi version, you can use esp32 version of FFT, it will work on esp32s3 as well. It will be slower, but will have better SNR.
Regards,
Dmitry
from esp-dsp.
@dmitry1945 yes, I understand. I was hoping that using the rounding with an sc16 FFT will still be faster than the "regular" ESP32 FFT. In that case there is value in having such an option as well.
from esp-dsp.
Related Issues (20)
- SOLVED: A 1½cycle/tap fp32 FIR filter of arbitrary length and decimation (DSP-101) HOT 6
- Extended Kalman Filter 计算速度 (DSP-105) HOT 4
- Wrong output when running dsps_mulc_s16_ functions (DSP-108) HOT 3
- Feature Request: Python wrapper (DSP-109)
- ESP-IDF 5.1 Support? (DSP-110) HOT 8
- Using LyraT to sample input, IIR functions to process, then output. The dsps_biquad_gen_xxx_f32 function creates garbage coefficients, I can't validate dsps_biquad_f32 as working. (DSP-111) HOT 3
- Two environments with different actions were specified for the same target (DSP-115) HOT 4
- esp32s3 fft4real hangs if fft4r related codes are removed. (DSP-117) HOT 4
- SOLVED: TRIAC delayed-trigger compensation routine for ESP32(-S3) (DSP-119) HOT 2
- FIR Convolution algorithm error (DSP-120) HOT 4
- dsps_dotprod_f32 is slow on first call (examples/dotprod) (DSP-121) HOT 1
- Mismatch between latest repository tag and latest component manager tag (DSP-122) HOT 4
- IIR inconsistencies and documentation problems (DSP-123)
- FFT is wrong by factor 2. Violation of the Parseval–Plancherel identity (DSP-130) HOT 2
- 是否会支持esp-p4的芯片的指令 (DSP-132) HOT 2
- esp-dsp支持idf的最新master分支吗 (DSP-134) HOT 1
- 作为一个信号处理的库,是否应该包括IFFT (DSP-135)
- Compile `esp-dsp` for `IDF_TARGET=linux` (DSP-136)
- FIR for s16 (int16_t) type. (DSP-138) HOT 1
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 esp-dsp.