MATLAB: Matlab FFT interpretation issue

amfftfourierfourier transformMATLAB and Simulink Student Suite

I've got an issue interpreting the frequency spectrum produced using the Matlab FFT on some discrete data.
Below is a probability distribution for a simulation I'm running that varies with time (each point on the plot represents a time step). To me, it clearly resembles a modulated wave with a carrier freq (fc) of 2 cycles per time step and a modulation freq (fm) 1/320 cycles per second.
However, I find the following frequency spectrum.(Normalised scales)
Which shows 2 clear peaks in the center. I believe the peak at 0 frequency can be attributed to the mean of the data and ignored. However, for an AM signal I think I should have 3 peaks, with the central peak having the greatest amplitude (fc) and two peaks either side at fc + fm and fc – fm.
I also found that if I take the difference of the two peaks and divide by 2, I find the expected fm (in accordance with the upper and lower bands of an AM signal).
I'm not sure how to interpret this and any light would be appreciated.

Best Answer

‘However, for an AM signal I think I should have 3 peaks, with the central peak having the greatest amplitude (fc) and two peaks either side at fc + fm and fc - fm.’
Not necessarily.
In an analogue process, you would get a carrier and two sidebands, unless you suppressed the carrier.
In a discrete ‘modulation’, it works differently. If you multiply two different frequency sinusoids (with the same sampling frequency), you get a double-sideband suppressed-carrier (DSB-SC) signal, described by Product-to-sum and sum-to-product identities (link). (The Signal Processing Toolbox modulate (link) function, for example, adds the carrier frequency back into the DSB-SC signal to create a DSB-TC signal.
Related Question