Liste des Groupes | Revenir à c dsp |
On 2025-05-14 11:35, Waldek Hebisch wrote:This is where Phil Hobbs VXCO solution starts looking good. You can only shift the VXCO frequency by +/-100pm but within that band you can shift it continuously. Admittedly, with a 150MHz VXCO you can only shift frequencies up 15kHz entirely continuously, but that should be enough for rotating machinery.In sci.electronics.design Phil Hobbs <pcdhSpamMeSenseless@electrooptical.net> wrote:"Distortion" to me means harmonics and IMD. The usual small-signal analysis isn't too useful when the interference is at frequencies comparable to or greater than the fundamental.On 2025-05-13 19:25, Waldek Hebisch wrote:>In sci.electronics.design john larkin <jl@glen--canyon.com> wrote:Distortion and phase noise are only obliquely related.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.
Sine is close to optimal for high quality DDS. The math is
as follows. First, your DAC has some response in time
domain, but for purpose of computation one can assume that
at clock tick number n it generates delta peak centered
at nT_0 with amplitude f(nT_0/T_1) where f is function stored in
lookup table, T_0 is period of digital clock and T_1 is desired
period. Mathematically
>
S(t) = \sum_n f(nT_0/T_1)\delta(t - nT_0) = \sum_n f(t/T_1)\delta(t - nT_0)
>
where summation is over all integer n.
>
Fourier transform of this is
>
C\sum_l \sum_m c_l \delta(\omega - 2m\pi/T_0 - 2l\pi/T_1)
>
where we have double summation over integer l and m, c_l is
l-th Fourier coefficient of f and C is a constant.
Sine has only 2 Fourier components, so formula simplifies to
>
(1/2)C\sum_m (\delta(\omega - 2m\pi/T_0 - 2\pi/T_1) +
\delta(\omega - 2m\pi/T_0 + 2\pi/T_1))
>
With aggressive filtering high freqency components can be
made arbitrarily small, so after filter Fourier transform
is
>
(M/2)C(\delta(\omega - 2\pi/T_1) + \delta(\omega+ 2\pi/T_1)) +
small distortion
>
where M represents transmitance of the filter at frequency
1/T_1. Back in time domain signal is
>
M\sin(t) + small distortion
>
The point is that distortion, hence phase noise can be made
arbitrarily small.
>
What happens with different f? When T_0/T_1 is irrational,
the sum 2m\pi/T_0 + 2l\pi/T_1 can take values arbitrarily
close to 0. In particular, there will be combinations of
l and m such that this sum is in the interval [-\pi/T_1, \pi/T_1],
so we will get low frequency terms with wrong frequency.
Assuming fixed low pass filter such terms can not be filered
out. How bad this is? For sawtooth the second Fourier
coefficient has maginitude equal to half of the magnitude
of the first coefficient, so one can expect distortion
of order 50%, which looks quite bad. Using symmetric
troangular weave, second Fourier coefficient is 0 and
third has magnitude 1/9 of magnitude of the first
coefficient, which is much better, but still limits
possible quality.
>
>
Well, signal to the comparator is f(t) + r(t) where r(t)
is distortion. Assuming that distortion is reasonably
small and regular we have
>
phase error \approx -r(t_0)/f'(t_0)
>
where t_0 is zero of f. To minimize phase error you can
try to make f'(t_0) big, but John is working over an
octave, so not much possibility here.
>
So we need small r(t_0). In general desired frequency and
and frequency of digital clock are uncorelated, so zeros
of f will be randomly distributed over quasi periods of
r, which means that to have small avarage error you
need small average of absolute value of r. Similarly
smal maximal error need small maximum of r.
>
Of course, there are constant factors because simple Fourier
computation works exactly only for energy. Those constants
are hard to compute but in practice do not tend to be really
large (say of order of 2 or 3). So at low accuracy there
may be some room to use different function than sine.
For higher accuracy the above calculation gives too big
term to ignore.
And it isn't really clock interference that's in view with a DDS, because there's a zero-order hold, which in principle nulls out the clock and all of its harmonics. (You have to have a reconstruction filter of some sort anyway.)
What kills you with DDS is the nasty, very high-order subharmonics due to truncation of the phase word. Power supply junk is often of the same order, but its easier to get rid of--the truncation sidebands extend down to the very low baseband.
Les messages affichés proviennent d'usenet.