Given an arbitrary configuration of carriers having bandwidths that belong to the 3GPP standard (5, 10, 15, 20, 25, 30, 35, 40, 50, ..., 100 MHz), is there a method/rule-of-thumb to estimate the distance between successive maxima of the magnitude of the resulting time domain OFDM signal? This is what I have tried so far, but the measured and the estimated (by my method) outputs don't match.
The steps are as followed (using MATLAB):
- Compute the magnitude of the OFDM signal in the time-domain
findpeaks()to determine the positions (on the abscissa) of the maxima.
- Differentiate (using
diff()) the resulting vector to compute the distances (I call the resulting vector
distPksin a histogram. If the histogram shows a suspicious number of distances that are very small, those are due to some undesired phenomenon (interpolators) and I remove them.
mean(distPks)and that is my measured value.
- Compute the Expected Value of the power spectrum. This value is not the mean, but a specific frequency that, according to the intuitive interpretation of the Expected Value, can be thought of as the "center of mass" of the carriers distribution energy. I hoped that this single frequency measure would "represent" the main periodic component in the OFDM signal and therefore I hoped to extract its period from that (the distance between peaks).
My problem: the two methods don't match. The estimated value is 3 times the measured value.
My experiment: I have tried the configuration of one 100 MHz carrier centered at 0Hz + one 20 MHz carrier centered at +160 MHz. Sampling frequency is 500 MHz.
Thanks to everyone in advance.
@DanBoschen, but I am not asking as much as mathematical periodicity, just an approximate relationship between carrier configuration and average distance between maxima. As you know, OFDM signals are built by taking the IFFT of subcarriers placed at specific frequency bins. Their amplitude and phases are taken from the constellation sets corresponding to specific modulation schemes.
Probably the following MATLAB example is too simple, but I would like you to take a look and comment it anyway, please:
n = 0:1000-1; f1 = 0.01; f2 = 0.03; f3 = 0.05; phi = randn(1,3); a = randn(1,3); y = a(1)*sin(2*pi*f1*n+phi(1)) + a(2)*sin(2*pi*f2*n+phi(2)) + a(3)*sin(2*pi*f3*n+phi(3)); plot(n,y);
You can see that as long as the frequencies are fixed, an average distance between peaks seems to be consistent in all the runs of the script. The real case just contains more frequencies but, on the other hand, the amplitudes and phases belong to a small finite set of values. Thanks.