Groups | Search | Server Info | Login | Register
Groups > sci.electronics.design > #733023
| Date | 2025-05-07 11:44 +0200 |
|---|---|
| Subject | Re: DDS question: why sine lookup? |
| Newsgroups | sci.electronics.design, comp.dsp |
| References | <o3ak1k9ifikv6c1tmfnd89k6vfj4vigj37@4ax.com> <vvdm8h$3i2ju$2@dont-email.me> <7dd00187-0adf-9f30-dc8b-f6a123ef08e8@electrooptical.net> <9u2l1kh2o87dmqec5o69paej05htbvi714@4ax.com> |
| From | Arie de Muijnck <noreply@ademu.nl> |
| Message-ID | <nnd$25b8629f$1dc955d4@d3121bed5460d21e> (permalink) |
| Organization | KPN B.V. |
Cross-posted to 2 groups.
On 2025-05-07 00:50, john larkin wrote: > On Tue, 6 May 2025 16:46:16 -0400, Phil Hobbs > <pcdhSpamMeSenseless@electrooptical.net> wrote: > >> On 2025-05-06 15:00, Jeroen Belleman wrote: >>> On 5/6/25 17:48, john larkin wrote: >>>> A DDS clock generator uses an NCO (a phase accumulator) and takes some >>>> number of MSBs, maps through a sine lookup table, drives a DAC and a >>>> lowpass filter and finally a comparator. The DAC output gets pretty >>>> ratty near Nyquist, and the filter smooths out and interpolates the >>>> steps and reduces jitter. >>>> >>>> But why do the sine lookup? Why not use the phase accumulator MSBs >>>> directly and get a sawtooth, and filter that? >>>> >>>> The lowpass filter looks backwards in time for a bunch of ugly samples >>>> to average into a straight line. The older sine samples are the wrong >>>> polarity! If the filter impulse response is basically zero over the >>>> period of the sawtooth, and we compare near the peak, we'll average a >>>> lot of steps and forget the big sawtooth reset. [...] >>> >>> Two things are immediately obvious: First, the sawtooth will have >>> a variable frequency, and the filter won't have a zero response >>> for all possible frequencies. >>> >>> Second, the usual reconstruction filters do *not* interpolate >>> into straight lines. >>> >>> Beyond that, I would have to think this over a bit more. >>> >>> Jeroen Belleman >>> >>> >>> >> >> You don't want to use a sawtooth if you can help it, because it has huge >> contributions from all harmonic orders. It also puts a lot of demands >> on the slew rate and settling of the DAC and any amplifiers used in the >> filtering. Errors there are of course nonlinear, because once an amp is >> in slew limiting, it stops responding to its inputs for a bit. > > I was thinking that my DAC is just 5 or 6 resistors hanging off some > FPGA pins, and that drives a 3rd order (CLC) LC filter and the > comparator. So no opamps. > > > >> >> It also emphasizes the close-in spurs. Say you have two N-bit DDSes >> running at the same average frequency but different phases. The DAC >> samples only the M high-order bits. It happens that at time t=0 the >> accumulator overflows on the same clock cycle on both. >> >> This will continue to happen until one of them overflows a cycle early >> because the bottom N-M bits rolled over. >> >> The resulting voltage difference between them is a full-scale, >> one-clock-wide pulse, followed by a noisy baseline as the bottom N-M >> bits roll over into the DAC's LSB at different times. This will repeat >> every cycle until the other DDS catches up. This scenario will play out >> some number of times in a full period, i.e. the least common multiple of >> the accumulator size and the increment in clocks. >> >> The energy in that glitch is much larger than in the noisy baseline, and >> its timing is variable in complicated ways. >> >> A triangle would be better, and of course that could be done pretty >> simply, e.g. with a flip flop controlling a bunch of XOR gates, if you >> don't mind halving the frequency. >> >> Once you have a lookup table, a sine is as easy as anything else, and >> minimizes the demands on the DAC, filters and amplifiers. >> >> Cheers >> >> Phil Hobbs > > If I'm using, say, 8 MS phase accumulator bits and a 5-bit DAC and > synthesizing one octave of frequency, the sine table is no big deal. > 256 bytes of RAM per DDS unfolded. > > I've been playing with sims. The sawtooth works OK but may be too > cute. I'll compare it to sines. > > The pseudo-DAC output is always positive. It can go into one > comparator input and I can RC lowpass filter same into the other, to > switch on the waveform midpoint. > > I reall need to get my FPGA kids to run the phase accumulator at 160 > MHz. Run way below Nyquist. > Can't you fold the LIN to SIN conversion in the resistor values? Arie
Back to sci.electronics.design | 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? Joe Gwinn <joegwinn@comcast.net> - 2025-05-08 11:01 -0400
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