Hi,
Your output symbol shape looks ok to me.
I believe your scaling must be wrong if you are getting this fiddle factor.
you need to scale your inputs to the available input resolution as described in previous post e.g. for 8 bits your input can swing between integers -127 & +127. You can go lower if you wish but not higher).
Use the same scaled input for Matlab ifft and altera ifft.
Now pay attention to your output scaling:
Matlab ifft: do not scale output, it is always done for you
Altera ifft - for their convenience - has introduced scale factor of 2^-exp
Make sure you are scaling correctly per each block of ifft(per each exp value):
To multiply by 2^n: shift towards MSb (n) bits inserting
leading zeros.
To divide by 2^n:shift towards LSB (n) bits inserting the
sign bits.
If your shift is larger than available bit space then you must saturate, but this better be avoided in the first place by lowering the input scaling .