- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
FFT and IFFT results no same
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
03-09-2012 10:45 AM
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
Re: FFT and IFFT results no same
[ Edited ]- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
03-09-2012 12:28 PM - edited 03-09-2012 12:29 PM
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?
Re: FFT and IFFT results no same
[ Edited ]- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
03-10-2012 12:33 AM - edited 03-10-2012 12:34 AM
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.
Re: FFT and IFFT results no same
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
03-10-2012 12:58 AM
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.
Re: FFT and IFFT results no same
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
03-10-2012 05:44 AM
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.
Jim











