2
\$\begingroup\$

I am trying to get a visual representation of how the Doppler effect destroys the orthogonality of the subcarrier and understand this effect.

I plotted three orthogonal subcarriers in MATLAB:

st = linspace(-10,10,1000);     % sinc, -10 to 10.
y1 = sinc(st);
y2 = sinc(st);
y3 = sinc(st + ((pi/2)/4000));
figure
hold on
plot(st+1,y2,'r',st+2,y2,'b',st,y3,'r--');grid;xlim([-8 11]);
hold off

To observe the effect of the Doppler shift, should I only add a shift for one of the subcarriers or will all subcarriers be shifted?

st = linspace(-10,10,1000);     % sinc, -10 to 10.
y1 = sinc(st+f_doppler);
y2 = sinc(st);
y3 = sinc(st + ((pi/2)/4000));

My goal is to reproduce the following figure: enter image description here

S. Ahmed and H. Arslan, "Evaluation of frequency offset and Doppler effect in terrestrial RF and in underwater acoustic OFDM systems," MILCOM 2008 - 2008 IEEE Military Communications Conference, San Diego, CA, USA, 2008, pp. 1-7, doi: 10.1109/MILCOM.2008.4753547 Add to Citavi project by DOI.

UPDATES

max_doppler_shift = 5;
% Generate frequency shifts
frequency_shifts = linspace(-max_doppler_shift, max_doppler_shift, 3);
y11 = sinc(st-frequency_shifts(1));
y21 = sinc(st-frequency_shifts(2));
y31 = sinc(((pi/2)/4000)-frequency_shifts(3));

I don't see any effect of adding a Doppler offset or do I read the plots wrong?

enter image description here

\$\endgroup\$

1 Answer 1

2
\$\begingroup\$

The absolute frequency of all the subcarriers is shifted. But the shift can only be approximated by adding a constant. What really happens is that the absolute frequencies are rescaled, ie. multiplied by a constant that’s near to 1. This also means that the frequency spacing between the subcarriers is rescaled by the same constant.

When the constant is very close to 1, or the spacing between the subcarriers is close enough in a narrowband signal, adding a frequency shift is a reasonable approximation. But the general solution multiplies all absolute frequencies by a constant.

Usually the carrier and the subcarrier frequencies are derived from the same frequency reference, so any errors in the reference frequency will also show up as scaling of absolute frequencies by a constant close to 1.

\$\endgroup\$
2
  • \$\begingroup\$ Thank you very much for your explanation. Based on my understanding, I create an array of Doppler shifts for 3 sinc-functions (subcarriers):fd = linspace(-max_doppler_shift, max_doppler_shift, 3);. the second my step: y11 = sinc(st-frequency_shifts(1)), y11 = sinc(st-frequency_shifts(2)), y11 = sinc(((pi/2)/4000)-frequency_shifts(3)); and plot them. Matlab plot me the same 3 sinc-functions, but shifted by some values in st-domain \$\endgroup\$ Commented Apr 2 at 6:19
  • \$\begingroup\$ So to answer the original question: the subcarriers do remain orthogonal :-) If the transmitter and the receiver are moving towards each other, the whole spectrum will be scaled a little up (higher pitch) i.e. the bandwidth of each subcarrier will also be broader. And, "signal time" will run accordingly faster :-) E.g. if you're transporting some data frames, the frames would be coming at a faster rate. The signal can be decoded just fine, but you need to be able to adjust the frequency+BW+time reference in your receiver, to compensate for the Dopplerian scaling. \$\endgroup\$
    – frr
    Commented Apr 2 at 12:45

Not the answer you're looking for? Browse other questions tagged or ask your own question.