From: crasic on 11 Apr 2010 07:47 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 11 Apr 2010 10:17 >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 11 Apr 2010 14:45 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 11 Apr 2010 16:13 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 11 Apr 2010 17:08 > >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.
|
Next
|
Last
Pages: 1 2 Prev: FMCW Radar help required. Next: optimal linear prediction in image processing? |