Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎09-28-2016

Using xFFT IP to get real valued output by applying Hermitian Symmetry on Input

Does anyone know why even if I applied hermitian symmetry configuration on data input of xFFT IP, the output is still in complex numbers?

The xFFT is configured as IFFT with 64 point transformation, with zero DC component in the first data input, 28 real valued data input on the next 28 input samples, 7 zeros as middle padding on the next input samples and then 28 mirrored conjugate data input on the last. As you can see on the attachment picture.

The same set of data input has been tested on MATLAB and I got real valued data on all of the output. 

And I know on the Product Guide of the xFFT IP, it says:


"Due to the finite wordlength effects described previously, noise is introduced during the transform, resulting in the output data not being perfectly symmetric. The DIT and DIF FFT algorithms have different noise effects due to the different calculation order."

So I tried to change the data input with complex valued data, but still with the hermitian symmetry configuration. The output is still complex valued.

I have attach the figures of the simulation output in real valued fixed point and in hexadecimal format. The imaginary component of the output data which is placed under the real component at the figures of simulation, is not in insignificant amount I think.

Thanks before.


Output real valued.JPG
Output hex.JPG
0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
Registered: ‎08-01-2008

Can you upload your project and matlab code . You may plot the both output s
Thanks and Regards
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.
0 Kudos
Registered: ‎09-28-2016

Hi @balkris thx for replying,
I have attached figure capture of the project design. The data first transformed by IFFT and then transformed back using FFT. As for the simulation figure that I attach in the first post, it is showing the output data for the yellow highlighted net on the project design figure that is attached in this post.

I also attached the simulation sources for this project to show the flow of the data input.

As for the MATLAB code:

Nfft = 64;

% Shapiro-Rudin Sequence [1 1 1 -1] with Hermitian Symmetry to generate DMT
ShapRudin64Seq = [[0 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 0 0 0], 
                 [0 0 0 0 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1]];
ShapRudin64Seq = [ShapRudin64Seq(1,:) ShapRudin64Seq(2,:)];
% Shapiro-Rudin symbol for timing synchronization
ShapRudin64TimeSynchSym = ifft(ShapRudin64Seq,Nfft);


with the plot figures attached.

Project design.JPG
MATLAB plot.jpg
MATLAB plot imaginary.jpg
0 Kudos