DDS generator with interpolated samples for Spartan3E development board

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
Reply to
Frank Buss
Loading thread data ...

There are high end DACs, which gets close to it:

formatting link

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
Reply to
Frank Buss

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

Reply to
Brian Drummond

Oh. Audio. That never makes sense.

John

Reply to
John Larkin

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

Reply to
Kevin Neilson

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

Reply to
Brian Davis

There was another thread last month in this newsgroup, with this link:

formatting link

Maybe I'll use this for the low frequency (

Reply to
Frank Buss

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:

formatting link
The second paper has a lot of good info. Amplitude stabilization as he discusses it is crucial.

It's not as fast as an LUT, but it's pretty flexible.

Chris

Reply to
Chris Maryan

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.