I'll do you one better, almost 18 months after you posted, I'll just link to the code:Hello Gordon, would you mind sharing how did you implement a lookup table for this algorithm? The most successful approach for me was to compute a 2D LUT for t & dT (which is both inefficient and not quite accurate - I get about 78dB noise floor compared to 98db without LUT). The table is also not efficiently packed. The values are all stored in the upper triangle, and it requires me to use some non-trivial mapping to not waste space on a microcontroller's flash.crazy tricks with pointers and precalculated lookup tables.
https://github.com/ErroneousBosh/slttblep
You'll notice that the table is computed for a phase angle from 0 to 255 fractions of a cycle, and since the AVR cannot divide but can kind of multiply the division is just multiplication by the reciprocal, again scaled from 0 to 255.
Statistics: Posted by Gordonjcp — Sun Dec 29, 2024 12:13 am