cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
2010stone
Participant
Participant
4,597 Views
Registered: ‎10-16-2010

Trying to use the FFT block

Hi all, I recognize the FFT block is a mistery for me.

I am trying to charge in my FFT block 16 numbers:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

I matlab I do fft(vector16, 16); N = 16 , I take 16 samples from my 'vector16'

and I get this result:



  1.0e+002 *
  Columns 1 through 8
   1.3600            -0.0800 + 0.4022i  -0.0800 + 0.1931i  -0.0800 + 0.1197i  -0.0800 + 0.0800i  -0.0800 + 0.0535i  -0.0800 + 0.0331i  -0.0800 + 0.0159i
  Columns 9 through 16
  -0.0800            -0.0800 - 0.0159i  -0.0800 - 0.0331i  -0.0800 - 0.0535i  -0.0800 - 0.0800i  -0.0800 - 0.1197i  -0.0800 - 0.1931i  -0.0800 - 0.4022i

 

so I expect to get the same result by using the FFT block.

Until now I don´t get to get something related by using this FFT.

Does anyone know how to configure the this FFT block? What changes I need to do in my .mdl file?

I am using the FFTv4_1 block, my version of SG is 9.2i

You can download my .mdl file using this link http://db.tt/TX3riFc

Thank you so much for your help.

 

learningaboutfftblock.JPG

Tags (2)
0 Kudos
2 Replies
austin
Scholar
Scholar
4,595 Views
Registered: ‎02-27-2008

2,

Did you read the data sheet? Have you chosen the representation for your data (properly)? Fixed-point, range and domain, and resolution are all important. Matlab is not the FPGA, what choices is it making? I suspect you do not have a background in digital signal processing: perhaps you need to study that first? Perhaps that is what you are doing right now?

If so, step back, learn about arithmetic in a FPGA device, and the choices you need to make there.

Perhaps learning how to perform basic arithmetic in a FPGA device as a first step before you start trying to perform fast Fourier transforms?

Learning how to input data, and output data? Clock the design, register results, pipeline?
Austin Lesea
Principal Engineer
Xilinx San Jose
ywu
Xilinx Employee
Xilinx Employee
4,583 Views
Registered: ‎11-28-2007

A couple of things:

 

  • The FFT ocre expects the data in the range of [-1, 1), so you will need to take that into account when comparing results from Matlab and SysGen.
  • The FFT core expects the "start" signal, xn_re/im and xn_index signal to be in certain timing relationship. Check the datasheet for details.

Take a look at the blog below to see if it helps:

 

http://myfpgablog.blogspot.com/2010/07/fft-results-from-matlab-fft-bit.html

 

 


@2010stone wrote:

Hi all, I recognize the FFT block is a mistery for me.

I am trying to charge in my FFT block 16 numbers:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

I matlab I do fft(vector16, 16); N = 16 , I take 16 samples from my 'vector16'

and I get this result:



  1.0e+002 *
  Columns 1 through 8
   1.3600            -0.0800 + 0.4022i  -0.0800 + 0.1931i  -0.0800 + 0.1197i  -0.0800 + 0.0800i  -0.0800 + 0.0535i  -0.0800 + 0.0331i  -0.0800 + 0.0159i
  Columns 9 through 16
  -0.0800            -0.0800 - 0.0159i  -0.0800 - 0.0331i  -0.0800 - 0.0535i  -0.0800 - 0.0800i  -0.0800 - 0.1197i  -0.0800 - 0.1931i  -0.0800 - 0.4022i

 

so I expect to get the same result by using the FFT block.

Until now I don´t get to get something related by using this FFT.

Does anyone know how to configure the this FFT block? What changes I need to do in my .mdl file?

I am using the FFTv4_1 block, my version of SG is 9.2i

You can download my .mdl file using this link http://db.tt/TX3riFc

Thank you so much for your help.

 

learningaboutfftblock.JPG




Cheers,
Jim