From: crasic on
Hi, this message board has been a good resource for my other question but I
have one that hasn't really been answered so I decided to post.


I'm working on a research project that requires some precise DSP.
Essentially we have a feedback oscillator (optical and not electrical but
thats unimportant). And we are looking to count and set the driving
frequency via FPGA. The difficulty lies in the precision, We are looking to
count to within 1 Hz, and to drive within 10Hz of the "actual" frequency,
which is constantly moving (relatively slowly though). The signal itself is
~1 MHz and we are looking to sample at ~100MHz. All of this in near real
time (Multiple wavelength phase delays are acceptable)

1 positive thing is that we don't care about the resultant data (i.e.
exporting the actual numbers) as long as we get an accurate frequency since
we are simply constructing sending a TTL back into the oscillator.

The current idea is to have a Narrow Bandpass filter that drives the a TTL
and to have a long scale FFT (up to 1second) continuously adjusting the
bandpass by tracking the largest frequency peak.

With some algebra and creative taylor expansions, I can compute a RID or
IID filter coefficient changes on the fly (within a few bandwidths of the
"original central frequency" before the error becomes too much) without
implementing actual trig functions in logic.

I was wondering if there are any more "correct" ways of implementing
tracking filters or just if there are any general tips getting the results
I want.






From: kadhiem on
>Hi, this message board has been a good resource for my other question but
I
>have one that hasn't really been answered so I decided to post.
>
>
>I'm working on a research project that requires some precise DSP.
>Essentially we have a feedback oscillator (optical and not electrical but
>thats unimportant). And we are looking to count and set the driving
>frequency via FPGA. The difficulty lies in the precision, We are looking
to
>count to within 1 Hz, and to drive within 10Hz of the "actual" frequency,
>which is constantly moving (relatively slowly though). The signal itself
is
>~1 MHz and we are looking to sample at ~100MHz. All of this in near real
>time (Multiple wavelength phase delays are acceptable)
>
>1 positive thing is that we don't care about the resultant data (i.e.
>exporting the actual numbers) as long as we get an accurate frequency
since
>we are simply constructing sending a TTL back into the oscillator.
>
>The current idea is to have a Narrow Bandpass filter that drives the a TTL

>and to have a long scale FFT (up to 1second) continuously adjusting the
>bandpass by tracking the largest frequency peak.
>
>With some algebra and creative taylor expansions, I can compute a RID or
>IID filter coefficient changes on the fly (within a few bandwidths of the
>"original central frequency" before the error becomes too much) without
>implementing actual trig functions in logic.
>
>I was wondering if there are any more "correct" ways of implementing
>tracking filters or just if there are any general tips getting the
results
>I want.
>
With regard to a tracking filter implementation I suggest this for a modest
tracking filter: use variable cutoff structure,start with a suitably large
number of coefficients and suitable cutoff points then you can move the
cutoff points by decimating the main filter. Use modulo adder to point to
lut of your coeffs(very much like DDS). Decimation can be any ratio you
choose giving you controlled resolution.

Kadhiem
From: Tim Wescott on
crasic wrote:
> Hi, this message board has been a good resource for my other question but I
> have one that hasn't really been answered so I decided to post.
>
>
> I'm working on a research project that requires some precise DSP.
> Essentially we have a feedback oscillator (optical and not electrical but
> thats unimportant). And we are looking to count and set the driving
> frequency via FPGA. The difficulty lies in the precision, We are looking to
> count to within 1 Hz, and to drive within 10Hz of the "actual" frequency,
> which is constantly moving (relatively slowly though). The signal itself is
> ~1 MHz and we are looking to sample at ~100MHz. All of this in near real
> time (Multiple wavelength phase delays are acceptable)
>
> 1 positive thing is that we don't care about the resultant data (i.e.
> exporting the actual numbers) as long as we get an accurate frequency since
> we are simply constructing sending a TTL back into the oscillator.
>
> The current idea is to have a Narrow Bandpass filter that drives the a TTL
> and to have a long scale FFT (up to 1second) continuously adjusting the
> bandpass by tracking the largest frequency peak.
>
> With some algebra and creative taylor expansions, I can compute a RID or
> IID filter coefficient changes on the fly (within a few bandwidths of the
> "original central frequency" before the error becomes too much) without
> implementing actual trig functions in logic.
>
> I was wondering if there are any more "correct" ways of implementing
> tracking filters or just if there are any general tips getting the results
> I want.

I'm not grokking the whole of what you're trying to do, but I think I
get enough to suggest your filter topology:

Use a superheterodyne.

Mix the incoming signal down to baseband with a quadrature demodulator
excited by a local oscillator signal at your desired bandpass frequency
(this is easy to do in digital-land), then low-pass filter the resulting
inphase and quadrature signals. Now either estimate the actual
frequency of the complex signal at baseband, or mix it back up to it's
original frequency using the same local oscillator signals and do
whatever it is you want to do.

In a sense, you're trying to build a tuned radio frequency (TRF)
receiver without the detector stage -- and this topology, with all it's
limitations in the analog world, is exactly what Armstrong was trying to
sidestep when he developed the superhet. The issues are all still
there, and the solution is still the same...

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Vladimir Vassilevsky on


crasic wrote:

> Hi, this message board has been a good resource for my other question but I
> have one that hasn't really been answered so I decided to post.
>
>
> I'm working on a research project that requires some precise DSP.
> Essentially we have a feedback oscillator (optical and not electrical but
> thats unimportant). And we are looking to count and set the driving
> frequency via FPGA. The difficulty lies in the precision, We are looking to
> count to within 1 Hz, and to drive within 10Hz of the "actual" frequency,
> which is constantly moving (relatively slowly though). The signal itself is
> ~1 MHz and we are looking to sample at ~100MHz. All of this in near real
> time (Multiple wavelength phase delays are acceptable)
>
> 1 positive thing is that we don't care about the resultant data (i.e.
> exporting the actual numbers) as long as we get an accurate frequency since
> we are simply constructing sending a TTL back into the oscillator.
>
> The current idea is to have a Narrow Bandpass filter that drives the a TTL
> and to have a long scale FFT (up to 1second) continuously adjusting the
> bandpass by tracking the largest frequency peak.
>
> With some algebra and creative taylor expansions, I can compute a RID or
> IID filter coefficient changes on the fly (within a few bandwidths of the
> "original central frequency" before the error becomes too much) without
> implementing actual trig functions in logic.
>
> I was wondering if there are any more "correct" ways of implementing
> tracking filters or just if there are any general tips getting the results
> I want.

General tip: if you want to get the result you want, you should put a
question in a comprehensible form.


Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com




From: crasic on

>
>General tip: if you want to get the result you want, you should put a
>question in a comprehensible form.
>
>
>Vladimir Vassilevsky
>DSP and Mixed Signal Design Consultant
>http://www.abvolt.com
>


>
>General tip: if you want to get the result you want, you should put a
>question in a comprehensible form.
>
>
>Vladimir Vassilevsky
>DSP and Mixed Signal Design Consultant
>http://www.abvolt.com


Sorry, I'm in physics and not DSP or Engineering, so I apologize if the
question was unclear.

I need to implement a tight tracking filter that works in near real time.
Currently I have a scheme that uses a Sinc window bandwidth filter with
filter coefficients updated every 100mS or so by adjusting the center
frequency using an FFT.

The question is basically if this is a workable solution for a tracking
filter.