comp.dsp, I need a robust*, free discrete time PLL algorithm, and I haven't had much luck searching the net. Pointers anyone? TIA, Emanuel Landeholm *Must work with reasonably non-sinusoidal signals (harmonic distortion) and reasonably aliased (inharmonic distortion, pseudo periodic) input.

# Discrete time PLL (Digital PLL, DPLL)

Emanuel Landeholm wrote:> comp.dsp, > > I need a robust*, free discrete time PLL algorithm, and I haven't had > much luck searching the net. Pointers anyone? > > TIA, > Emanuel Landeholm > > *Must work with reasonably non-sinusoidal signals (harmonic distortion) > and reasonably aliased (inharmonic distortion, pseudo periodic) input.try http://groups.google.co.nz/groups?hl=en&lr=&ie=UTF-8&safe=off&threadm=3D3F13F3.BF3EDEEE%40NOSPAM.yahoo.com&rnum=1&prev=/groups%3Fq%3Daberdonian_2000%2Bmatlab%2Bpll%26hl%3Den%26lr%3D%26ie%3DUTF-8%26safe%3Doff%26selm%3D3D3F13F3.BF3EDEEE%2540NOSPAM.yahoo.com%26rnum%3D1 Tom

On Tue, 13 Jan 2004 15:24:51 GMT, Emanuel Landeholm <emanuel.landeholm@telNOSia.coPAM.m> wrote:>comp.dsp, > >I need a robust*, free discrete time PLL algorithm, and I haven't had >much luck searching the net. Pointers anyone? > >TIA, >Emanuel Landeholm > > > >*Must work with reasonably non-sinusoidal signals (harmonic distortion) >and reasonably aliased (inharmonic distortion, pseudo periodic) input.Oh, how did I miss this thread? The biggest problem in designing this PLL will be in the phase detector. Your input requirements rule out an edge-triggered type phase detector, which in turn rules out most of the common phase-frequency detectors. A mixer or multiplier type phase detector will be the best one to go for when the input signal has low SNR. The problem with this type of phase detector is that it doesn't have very good frequency acquisition behaviour, particularly if it starts with a large frequency offset. (Many PLLs will have a frequency detector of sorts, that works by counting edges, but we can't do that here because of the quality of the input signal.) It's probably only reliable if the initial frequency offset isn't more than the loop bandwidth. (The usual references will show how to estimate the pull-in range.) Solutions: 1. Swept acquistion: Ramp the VCO up and down (triangle fm) until you hit a lock (which you can determine in a number of ways), then turn the sweep off. Don't sweep too fast, otherwise it won't lock. 2. Use some other frequency estimation technique that works at low SNR, and use that to set the initial frequency of the VCO. Regards, Allan.

Allan Herriman wrote:> On Tue, 13 Jan 2004 15:24:51 GMT, Emanuel Landeholm > <emanuel.landeholm@telNOSia.coPAM.m> wrote: > > >>comp.dsp, >> >>I need a robust*, free discrete time PLL algorithm, and I haven't had >>much luck searching the net. Pointers anyone? >> >>TIA, >>Emanuel Landeholm >> >> >> >>*Must work with reasonably non-sinusoidal signals (harmonic distortion) >>and reasonably aliased (inharmonic distortion, pseudo periodic) input. > > > Oh, how did I miss this thread? > > The biggest problem in designing this PLL will be in the phase > detector. > Your input requirements rule out an edge-triggered type phase > detector, which in turn rules out most of the common phase-frequency > detectors. > > A mixer or multiplier type phase detector will be the best one to go > for when the input signal has low SNR. > > The problem with this type of phase detector is that it doesn't have > very good frequency acquisition behaviour, particularly if it starts > with a large frequency offset. (Many PLLs will have a frequency > detector of sorts, that works by counting edges, but we can't do that > here because of the quality of the input signal.) > It's probably only reliable if the initial frequency offset isn't more > than the loop bandwidth. (The usual references will show how to > estimate the pull-in range.) > > Solutions: > 1. Swept acquistion: Ramp the VCO up and down (triangle fm) until > you hit a lock (which you can determine in a number of ways), then > turn the sweep off. Don't sweep too fast, otherwise it won't lock. > 2. Use some other frequency estimation technique that works at low > SNR, and use that to set the initial frequency of the VCO. > > Regards, > Allan.Allan, So much depends on factors we don't yet know! If the frequency range is under an octave, a low-pass filter will remove much of the distortion. If, in any event, the distortion is not so marked as to introduce extra zero crossings, then most detectors can be expected to work fairly well. There's clearly a problem, but we don't yet know its cause or scope. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������