Groups | Search | Server Info | Login | Register
| Newsgroups | sci.electronics.design, comp.dsp |
|---|---|
| Subject | Re: DDS question: why sine lookup? |
| References | <1t4o1k1uo8qa244fcv7jr7dnljlvp72vmq@4ax.com> <ntls1kddgtc3n9ghrjlnqp4q8jsh8f9pmr@4ax.com> <vvo3pg$3l8r7$1@dont-email.me> <ad7v1kttjfhjulnameem9ta8gjst5cpa45@4ax.com> |
| From | dplatt@coop.radagast.org (Dave Platt) |
| Message-ID | <ba55fl-ru91.ln1@coop.radagast.org> (permalink) |
| Date | 2025-05-10 16:50 -0700 |
Cross-posted to 2 groups.
In article <ad7v1kttjfhjulnameem9ta8gjst5cpa45@4ax.com>, john larkin <jl@glen--canyon.com> wrote: >Looks like the best way is logic in the FPGA doing classic sine DDS, >maybe 6 or 8 output pins driving an R-2R network, a 3 or 5-pole >Chebyshev LC filter, and an LVDS receiver as the comparator. Be wary of that approach. I tried something like it (sans comparator), while using a simple FPGA to generate a (modulated) 10.7 MHz IF signal for an FM-stereo test generator. The results were ungood. The output waveform had some pretty horrible glitches, at the times of the transitions between values. There's enough variation in delay in the signal paths inside the FPGA to create a significant (in picoseconds and nanoseconds) delay between the transition times of the R2R bits. If you're trying to go from (for example) 0x7F to 0x81, your MSB is going to be transitioning high when most of your LSBs are transitioning low. There's very likely to be a brief moment of time when the effective value is 0xFF (if the MSB transitions first) or 0x00 (if it transitions last), or some random and unpredictable and ever-changing mix of bits. The resulting spikes are narrow, but can have a pretty fierce amplitude to them. As a result, unless your LC filter is extremely sharp, your receiver/comparator is likely to generate occasional runt pulses, or skew the zero-crossing time by one or more sample (adding jitter). To make this scheme work, you really need to re-time the values going into the R2R ladder to ensure near-as-gosh identical timing... some form of very predictable latch with guaranteed low skew between the pins. The normal FPGA data path probably won't do this for you. I tried using the FPGA's own internal registered-output logic (driving all of the latch clocks from the same internal signal) but even this wasn't good enough... the internal propagation times were not zero, alas :-( due to that cursed light-speed limit. I switched over to using an Analog Devices DDS, shifting a new value out into it from the FPGA via a serial interface once per sample time. Far, far cleaner RF/IF as a result. You could get a fairly clean 3-bit-equivalent output, using 8 pins and 8 equal-value resistors, and encoding things so that transitions are always "change one or more bits from 0 to 1" or "change 1 or more bits from 1 to 0".
Back to comp.dsp | Previous | Next — Previous in thread | Next in thread | Find similar
DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-06 08:48 -0700
Re: DDS question: why sine lookup? Jeroen Belleman <jeroen@nospam.please> - 2025-05-06 21:00 +0200
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-06 12:33 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-06 16:46 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-06 15:50 -0700
Re: DDS question: why sine lookup? Arie de Muijnck <noreply@ademu.nl> - 2025-05-07 11:44 +0200
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-07 06:32 -0700
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-08 01:58 +1000
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-07 06:55 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-07 11:31 -0400
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-08 02:11 +1000
Re: DDS question: why sine lookup? Gerhard Hoffmann <dk4xp@arcor.de> - 2025-05-06 21:27 +0200
Re: DDS question: why sine lookup? "Don" <g@crcomp.net> - 2025-05-06 20:10 +0000
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-06 13:35 -0700
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-07 16:27 +1000
Re: DDS question: why sine lookup? Martin Brown <'''newspam'''@nonad.co.uk> - 2025-05-07 20:32 +0100
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-07 13:01 -0700
Re: DDS question: why sine lookup? bitrex <user@example.net> - 2025-05-07 20:27 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-07 19:21 -0700
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-08 22:49 +1000
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-08 14:20 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-08 11:58 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-08 16:24 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-08 14:18 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-08 22:28 +0000
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-08 16:24 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-08 23:57 +0000
Re: DDS question: why sine lookup? piglet <erichpwagner@hotmail.com> - 2025-05-09 04:48 +0000
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-09 12:53 -0700
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-10 18:53 +1000
Re: DDS question: why sine lookup? Lasse Langwadt <llc@fonz.dk> - 2025-05-10 19:52 +0200
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-10 11:53 -0700
Re: DDS question: why sine lookup? dplatt@coop.radagast.org (Dave Platt) - 2025-05-10 16:50 -0700
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-10 17:39 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-11 16:27 -0400
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-11 16:55 +1000
Re: DDS question: why sine lookup? Lasse Langwadt <llc@fonz.dk> - 2025-05-11 22:03 +0200
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-09 15:52 +1000
Re: DDS question: why sine lookup? Lawrence D'Oliveiro <ldo@nz.invalid> - 2025-05-10 00:44 +0000
Re: DDS question: why sine lookup? Martin Brown <'''newspam'''@nonad.co.uk> - 2025-05-09 09:32 +0100
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-10 17:00 -0700
Re: DDS question: why sine lookup? antispam@fricas.org (Waldek Hebisch) - 2025-05-13 23:25 +0000
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-13 20:22 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-13 18:40 -0700
Re: DDS question: why sine lookup? antispam@fricas.org (Waldek Hebisch) - 2025-05-14 15:35 +0000
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-14 15:05 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-14 14:53 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-14 19:16 -0400
Re: DDS question: why sine lookup? john larkin <jl@glen--canyon.com> - 2025-05-14 17:10 -0700
Re: DDS question: why sine lookup? Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> - 2025-05-15 12:40 -0400
Re: DDS question: why sine lookup? Bill Sloman <bill.sloman@ieee.org> - 2025-05-15 17:23 +1000
csiph-web