Hi Kaz, thanks again for bearing with me.
1) Yes. the data going into the fft core pins comes from an SSRAM memory, which I populated in the past with data coming from an ADC. I extract this data in memory into MATLAB to check against matlab's FFT and Altera's matlab test bench. both results are almost perfectly close to each other. However, when the data from my memory enters directly into the FFT core, I get the erroneous harmonics-like spectrum. This same design worked with very small dynamic range input as I mentioned earlier
2) Most ADC converters do not encode the analog data to signed numbers. In my case, let's assume my input analog sine wave is spanning -Vm/2 to Vm/2 (no offset). The 14-bit ADC will translate the -Vm/2 value to 0x0000, and the Vm/2 to 0x3FFF. So a zero-valued analog input data will translate to 0x2000 after being digitized in the ADC. This is an "artificial DC" because of the shifting that the ADC does. I just subtracted this value from the data that came out of the ADC (before storing in memory), so that I get ready 2's complement, zero average numbers to feed into the FFT core later. It is this "adjusted" data that I use in all hardware tests, as well as matlab fft and Altera's matlab testbench simulations.