Prev: Kenlighten - A social network for knowledge seekers and providers
Next: LMS to remove the unknown sinusoidal signal
From: Steve Pope on 31 May 2010 15:59 gretzteam <gretzteam(a)n_o_s_p_a_m.yahoo.com> wrote: >I believe that a generic NCO is simply this B-bit modulo M counter. Sorta. To get an exact oscillator frequency with a given master clock frequency, you cannot always do it quite that simply. In a more general case you want a counter that is modulo some value for its MSB's, then binary for its LSB's. Then you can obtain more oscillator frequencies exactly. Steve
From: gretzteam on 31 May 2010 16:04 >gretzteam <gretzteam(a)n_o_s_p_a_m.yahoo.com> wrote: > >>I believe that a generic NCO is simply this B-bit modulo M counter. > >Sorta. To get an exact oscillator frequency with a given master >clock frequency, you cannot always do it quite that simply. >In a more general case you want a counter that is modulo some value >for its MSB's, then binary for its LSB's. Then you can obtain >more oscillator frequencies exactly. > >Steve > Isn't this the same as clocking a normal binary counter using the 'overflow' rate of the NCO?
From: Tim Wescott on 31 May 2010 16:06 On 05/31/2010 12:42 PM, gretzteam wrote: >> I would love to see the OP's definition of _his_ NCO. I have seen the >> term "NCO" to mean a lot of different things, >> -- >> Tim Wescott >> Control system and signal processing consulting >> www.wescottdesign.com > > What I meant by NCO was a B-bit counter, modulo M, incrementing by N at > every clock cycle. > People use this in a DDS, where the value of the counter is usually > truncated and used as the address to a look-up table containing one period > of a sine wave. Usually M is set to 2^B in this application. > > In my application, I use it to generate clocks. The 'overflow' rate of the > NCO can be used to clock a separate counter that generates divided clocks. > > I believe that a generic NCO is simply this B-bit modulo M counter. If my > usage of NCO is incorrect, please let me know! Not incorrect -- just in need of clarification. The "DDS" style of NCO works well (and is by far what people usually mean when they say "NCO"), but gains a lot from the sine lookup -- this smooths out the inherent 'jagginess' from it's input clock, and essentially lets it interpolate zero crossing points in an analog system. When you just use the overflow then you have an unavoidable timing jitter that usually approaches +/- 1/2 an input clock peak-peak, with an RMS timing jitter that comes directly from the fact that the timing error is a sawtooth wave -- if you can stand this in your application, then you're home free. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
From: Tim Wescott on 31 May 2010 16:09 On 05/31/2010 12:45 PM, Steve Pope wrote: > Tim Wescott<tim(a)seemywebsite.now> wrote: > >> On 05/31/2010 12:35 PM, Steve Pope wrote: > >> And yes, jitter usually comes as an RMS value, although many of the >> really good digital designers that I know want to see it specified as >> peak-peak, because it's not usually the average error that wreaks havoc >> in a digital circuit, it's those outliers that cause race conditions >> that do it. > > Yes but... isn't there always some very tiny probability of a really > large phase excursion? "Peak" quantities can sometimes be > stated for real (i.e. "peak to average" of a modulated signal > makes sense), but I'm not sure about "peak" jitter. > > S. Wow. We're spinning off on a tangent, and I think I'm responsible. Yes, there's always that possibility. If you wanted to be strict about it you'd have some "peak excursion with so-and-so probability". What the guys I've worked with are usually trying to guard against is known but oddball waveforms -- i.e. if the probability density of the jitter is known to have larger tails than a regular Gaussian, or if the jitter is more or less deterministic and has a high crest factor, they want to know about it and design around it. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
From: Steve Pope on 31 May 2010 16:10
gretzteam <gretzteam(a)n_o_s_p_a_m.yahoo.com> wrote: >>gretzteam <gretzteam(a)n_o_s_p_a_m.yahoo.com> wrote: >>>I believe that a generic NCO is simply this B-bit modulo M counter. >>Sorta. To get an exact oscillator frequency with a given master >>clock frequency, you cannot always do it quite that simply. >>In a more general case you want a counter that is modulo some value >>for its MSB's, then binary for its LSB's. Then you can obtain >>more oscillator frequencies exactly. >Isn't this the same as clocking a normal binary counter using the >'overflow' rate of the NCO? It can be made the same. However, you might find the arithmetic for computing (or addressing) your sinusoid function (or LUT) simpler if the modulo counter is organized as I describe. Or you might not. This is just a possible approach. Steve |