Hi all,
I posted this topic over at comp.dsp and they suggested I try you guys.
I'm working on a problem that requires a tracking bandpass filter. The center frequency is known a priori, but has some drift within the range 0.01-0.05 f. A typical frequency would be 700KHz with a corresponding 1-2Khz drift and fairly noisy which, after digitizing and edge detection, is in the form of frequency jitter, Ideally the center frequency should be easily set. The output of the circuit is essentially a square wave, with some predetermined (and preferably adjustable) pulse width.
The signal drift is fairly small, ~+- 500Hz for the 700KHz signal. What we are worried about most is reducing jitter on the resultant square wave. We are currently successfully using a sequence of amplifiers, an analog (constant) bandpass, and a sine->square converter based on some 74XX chips.
Unfortunately this analog circuitry is power hungry, expensive, nonconfigurable, and bulky. So we want to (if possible) move everything to the digital domain, ideally implemented on some programmable logic like an FPGA.
So one idea is to use a purely digital PLL synthesized in an altera fpga. We are essentially using something like
We measured our noise floor with the PLL running in an open loop to be approximately ~50uHz at 700KHz and a 160Mhz (10*16) clock (all measurements are taken over 1 second. 10 readings are taken and averaged). About ten times better than our "ideal" output jitter of the running loop.
As it turns out, the PLL is working too much as an ideal bandpass. On a scope you can see a clearly mimicked signal, i.e. it is following the input signal with all its jitter and the output jitter of the pll matches the input jitter (when measured on a frequency counter). The input and output jitter is 3 orders of magnitude above our intrinsic jitter of the loop so there is room for improvement. The paper which this design is based on (reference 3 on that open cores page) experimentally predicts frequency jitter reduction of ~5-10 fold over input jitter on a relatively noisy signal. We are getting almost no reduction.
Does anyone have any thoughts on this problem with the PLL? Or maybe more generally: How would you approach the general problem stated at the top?
Thanks for reading
Andrey Shmakov University of California Berkeley Department of Physics