I wrote to you on message board the following, did you make use of my suggestion:
Looks like your fft is not seeing the frame correctly (
http://www.alteraforum.com/forum/member.php?u=7086#).
try this matlab code and you will see what I mean:
x = [ones(1,600)*3+j*3 zeros(1,1024-600)];
y1 = round(ifft(x));
y2 = round(fft([0 y1]));
plot(real(x))
hold
plot(real(y2),'r-')
Thus I inserted one zero at start of frame(y1) and I got all output wrong going up and down.
You can use this approach to find out which way it equals your output e.g. insert one zero or two zeros or repeat first sample or insert zero at end ...etc