• 0
FR

Passing FFT result to DDS

Question

Dear All

- I successfully implemented FFT after help and guidance (

) .Now i want to pass the detected frequency to DDS ( My goal is to re-generate the detected frequency (FFT bin ) using DDS ) . So i need your guidance. CORDIC IP core can be use ? or some thing else you suggested.

 

BR

FRK

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

@FR

There are many ways to construct a sine wave.  You could do a table lookup, or even a quarter table lookup.  You could do a CORDIC.  You could do a table lookup followed by a linear or even a quadratic interpolation.  That part is the least of your worries.

Your bigger problem is going to be the fact that short-time Fourier Transforms (STFTs, such as what you've just used), are not phase continuous in nature.  As a result, depending on how you set up the overlap, you might find that every odd bin jumps 180 degrees of phase between transforms.  Worse, if that wasn't enough, what happens if the incoming tone doesn't line up exactly on an FFT bin?  This piece of reality has been known to kill a lot of poorly thought out FFT approaches.

Something else to think about: Are you hoping to match the phase of the incoming sine wave?  The phase delay through the FFT is both coarsely sampled and linear in frequency.

I might suggest perfecting your algorithm off-line before even experimenting with it on an FPGA.  I often use Verilator to accomplish both at once, although I know there's a large group of individuals who like using MATLAB for prototyping before moving to hardware.

Dan

Share this post


Link to post
Share on other sites
  • 0

Thanks for your reply.

let me again elaborate my problem. I interfaced real ADC hardware with FPGA . I am injecting analog RF signal through ADC for further processing , I am using Xilinx FFT core . as i mentioned in previous post , I successfully got the peak on the correct index after performing FFT of the incoming signal . 

I also interfaced DAC with FPGA . So i want to regenerate RF signal through DAC on the detected bin ( the bin that came after performing FFT ). and test it on spectrum analyzer. so my understanding is that i can regenerated the signal through DDS using the index number (bin number)  ???? As at this time i am not worried about the phase of the incoming signal. 

Best Regards

FRK

Share this post


Link to post
Share on other sites
  • 0

Once you have an idea of the frequency, you then might want to look at using a COSTAS loop to follow the frequency. You can use the frequency and phase information from the tracking loops to recover any modulated data. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now