MATLAB: 5G Downlink Waveform

5G5g toolboxcommunicationsignal

I'm using the demo here: https://www.mathworks.com/help/5g/gs/downlink-carrier-waveform-generation.html to generate the waveform. Here is a picture of the magnitude of the waveform.
My question is why is there a spike in the last few samples? According to the resource grids, no symbol is allocated in that part.

Best Answer

Hi Bryan,
Windowing and overlapping are automatically applied to the modulated waveform. In order to keep the waveform length independent of the window length and make it easy to concatenate with itself without additional processing, the first N samples (window size) of the waveform are overlapped with the last N. For alignment purposes, the waveform is circularly shifted so that these overlapped samples are moved to the end of the resulting waveform.
This effect will only be visible for channels/signals allocated in the first OFDM symbol. You can undo the circular shift operation as:
info = [bwpset.Info];
w = max([info.Windowing]);
wave = circshift(waveform(:,:),w);
If windowing is not a requirement, you can also disable it by setting:
waveconfig.Windowing = 0;
in NRDownlinkWaveformGenerationExample.m before the call to hNRDownlinkWaveformGenerator function.