cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Observer
3,695 Views
Registered: ‎03-21-2017

## fft output v9.0

hello

i have used fft ip core in vivado . i have generated a sine wave from dds compiler. the generated sine wave i have feed to fft core. so i got the result shown in the pic.

i have generated 10mhz sine wave

fft transform length i have choosen is 1024, radix-4 burst i/o,output ordering bit reversal..ect

so my dought is im getting the output but how to predict it frequency domail.

if i apply a signal with frequency F and amplitude A then fft output will be at F the amplitude will be A in frequency domain

plz help how to know the frequency of my fft output

9 Replies
Xilinx Employee
3,693 Views
Registered: ‎08-01-2008
you required to calculate if there is a spike of the amplitude of the FFT output at index 5, that means your input has a component in a frequency range of 5*Fs/N +/- Fs/2N.
Thanks and Regards
Balkrishan
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
Observer
3,658 Views
Registered: ‎03-21-2017

i got it ,but can u please say somewhat clearly

with following data

fft spike amplitude is 574412538467282136 (signed decimal)

at the spike my index value is 853

at point 23507.4nsec i got that spike

my input sine wave frequency 20mhz

Xilinx Employee
3,649 Views
Registered: ‎08-01-2008
amplitude not matter here
what is sampling frequency . you will get two frequency , N= 853 and put Fs in this formula

5*Fs/N - Fs/2N., 5*Fs/N + Fs/2N.
Thanks and Regards
Balkrishan
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
Observer
3,620 Views
Registered: ‎03-21-2017

hello sir

sir im applying my input as sine wave to fft

sine wave frequency = 20Mhz; sampling frequency = 200Mhz;

with the same sine values in matlab i got a spike at 20mhz.

in xilinx i got spike at at index 745

form your formula  N= 745; fz =200Mhz

so, 5*Fs/N - Fs/2N., 5*Fs/N + Fs/2N.

((5*200M /745) - (200M / (2*745)) =1208053

((5*200M /745) -+(200M / (2*745))= 1476510

this are the calculations

at spike it should be 20Mhz na.

Observer
3,616 Views
Registered: ‎03-21-2017

my main dought is,

how to find  the output frequecy of FFT at my spike in xilinx simulation

Observer
2,655 Views
Registered: ‎12-28-2017

hiii,

I am working on FFT core 9.0 , facing the problem of input signal  of FFT , ...I have read your comment you did this with dds compiler .... Can you help me  how to generate a sine wave signal from dds compiler .......

mail id ---- shubhamgwl04@gmail.com

Newbie
1,427 Views
Registered: ‎02-10-2019

Am facing same problem hope you solved it

Scholar
1,396 Views
Registered: ‎05-21-2015

Yes, staring at traces can be quite confusing.  Manipulating the same traces within something like MATLAB or Octave can be simpler--and might really help you understand what's going on.

When I tested my own FFT implementation, I recorded the input to the FFT, Fourier transformed it using FFTW, and then compared it against the output.  The comparison wasn't simple: all kinds of truncation errors accumulate, and the scaling through the system might surprise you.  Internal overflow can really be annoying, and even difficult to track down.  Further, you have to be careful to properly synchronize to the FFT coming out of your logic.  My approach was to record the data going into the FFT, FFT it via FFTW, and then compare that to the data coming out of the FFT.

You can read about it here.  You can also find the test bench code I used to verify it here.  You might also find this approach to DSP-based debugging valuable.

Dan

Visitor
655 Views
Registered: ‎02-26-2020

Sir I am facing a similar problem in calculating Tuser Index for FFT, I have generated SINE AND COSINE frequency of 4MHz using DDS , How many bits of TUSER Index will I consider, if:

Point size is N: 4096,  and Sampling Frequency is fs: 100MHz ,

so that Frequency Resolution is 100M/4096 =24414.0625

The Expected index will be : I = fin/Frequency Resolution = 4M/ 24414=163 =1010 0011

According to pg109-XFFT document , TUSER width is calculated as: log with base 2 (min. point size)  which in my case will be log with base 2(4096) =12

Now if I consider complete 12 bits than it gives a very high frequency, If I consider 6 bits (assuming 6 for cosine and 6 for sine ), than it overflows from expected index

Thank you