Thanks, 24 bit high speed exact sine generation with inexpensive FPGAs would be cool, I've ordered the paper collection.
Thanks, 24 bit high speed exact sine generation with inexpensive FPGAs would be cool, I've ordered the paper collection.
-- Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de
There are high end DACs, which gets close to it:
SNR of 114 dB from 20 Hz to 20 kHz means 19 bits accuracy, I think.
-- Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de
Further processing, normally. Audio signals are ideally recorded with enough headroom to allow mix, EQ, dynamic range adjustment and other processing, without unnecessary compromises in resolution.
At the consumption end of the chain, 24 bits is a bit unnecessary, though there are DACs pushing 20 bits.
- Brian
Oh. Audio. That never makes sense.
John
I like that idea. It takes a little more hardware than the first-order Taylor (I wrote 'Maclaurin' which isn't exactly accurate). It would require an extra lookup and also four mults for the complex multiply, provided you want an output on every cycle. But this is about the same amount of hardware as required for the 2nd-order Taylor and may be more accurate. I don't know if I'd call it an exact computation because the second lookup table it still yields an approximation.
-Kevin
Not sure I follow you about there being an approximation?
If you mean phase truncation of the fine table index, partitioning the phase accumulator 3-12-12 would give
27 bits of untruncated phase with 4K deep tables; or, 2-10-10 gives 22 bits of phase and 1K deep tables.By 'exact', I mean that implementing the coarse*fine vector rotation with a complex multiply computes the correct value of sin/cos limited only by the numerical precision of the table values and complex multiplier; the calculation could be performed in 16 bit, 32 bit, or floating point without needing to change the basic algorithm ( vs. adding more terms onto a series expansion. )
------------------------------
Anyhow, if Frank can afford multiple cycles per output sample, the most compact implementation would probably be a word-serial CORDIC rotation, which doesn't need any multipliers at all, just three accumulators, shift muxes, and a small arctan lookup table.
I thought that had been mentioned earlier, but I don't see it in re-reading the thread tonight.
Brian
There was another thread last month in this newsgroup, with this link:
Maybe I'll use this for the low frequency (
snipped-for-privacy@frank-buss.dehttp://www.frank-buss.de,http://www.it4-systems.de
You might also look at oscillator algorithms. Clay Turner has some recursive oscillator info that's fairly good:
It's not as fast as an LUT, but it's pretty flexible.
Chris
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.