Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
kunearth
Posts: 11
Registered: ‎03-02-2012
0

FFT and IFFT results no same

I customize a FFT core:

 

component fft256
    port (
    clk: IN std_logic;
    start: IN std_logic;
    unload: IN std_logic;
    xn_re: IN std_logic_VECTOR(15 downto 0);
    xn_im: IN std_logic_VECTOR(15 downto 0);
    fwd_inv: IN std_logic;
    fwd_inv_we: IN std_logic;
    scale_sch: IN std_logic_VECTOR(7 downto 0);
    scale_sch_we: IN std_logic;
    rfd: OUT std_logic;
    xn_index: OUT std_logic_VECTOR(7 downto 0);
    busy: OUT std_logic;
    edone: OUT std_logic;
    done: OUT std_logic;
    dv: OUT std_logic;
    xk_index: OUT std_logic_VECTOR(7 downto 0);
    xk_re: OUT std_logic_VECTOR(15 downto 0);
    xk_im: OUT std_logic_VECTOR(15 downto 0));
end component;

 

1. I have 256 symbols QPSK and are inputs for the first FFT.

2. The 256 results are the inputs of the second IFFT.

3. The results of this second IFFT, does NOT the same as 256 QPSK symbols.

    The problem is not the scaling or amplitude, the problem is the sign,  the signs are very different.

 

In the theory, ifft(fft(data))=data, and the final results must be the same as 256 symbols, ass less the sign, the amplitude could be different.

 

Thank you

Xilinx Employee
bwiec
Posts: 1,005
Registered: ‎08-02-2011
0

Re: FFT and IFFT results no same

[ Edited ]

How are you driving these signals:

 

    fwd_inv: IN std_logic;
    fwd_inv_we: IN std_logic;

 

 

Do you have a sim plot or some other data showing what you're seing?

www.xilinx.com
Visitor
kunearth
Posts: 11
Registered: ‎03-02-2012
0

Re: FFT and IFFT results no same

[ Edited ]

FFT'-->'1'

IFFT-->'0'

 

 

fwd_inv_we<= is '1' in one cycle, the same as START or scale_we

 

I use ModelSim, i can see the memory content, i have a array of 256 positions to storage the results of FFT and IFFT.

 

Thank you very much.

Visitor
kunearth
Posts: 11
Registered: ‎03-02-2012
0

Re: FFT and IFFT results no same

I have the solution:

 

I was using FFT 5.0. DOES NOT WORK!!!

 

Now i use FFT 7.1, this block give me the results reverse, (but i select natural order).

FFT=[a(255), a(254), .... a(0)];

 

This reversed data is the INPUT of IFFT, and voila!!! the results of this block are corrects.

Xilinx Employee
Xilinx Employee
ywu
Posts: 2,861
Registered: ‎11-28-2007
0

Re: FFT and IFFT results no same

Something doesn't sound right. The output of the FFT core is either natural order or bit-reversed order. At the risk of pointing out the obvious, bit-reversed order is not the same as reversed order. The "correct" output you see by reversing the data may be just a coincidence. Can you attach your xco file and/or simulation waveforms?

 


kunearth wrote:

I have the solution:

 

I was using FFT 5.0. DOES NOT WORK!!!

 

Now i use FFT 7.1, this block give me the results reverse, (but i select natural order).

FFT=[a(255), a(254), .... a(0)];

 

This reversed data is the INPUT of IFFT, and voila!!! the results of this block are corrects.




Cheers,
Jim