NVlabs / sionna

Sionna: An Open-Source Library for Next-Generation Physical Layer Research
https://nvlabs.github.io/sionna
Other
743 stars 213 forks source link

Phase rotation is not applied for 5G PUSCH time domain signals #494

Open danielschaeufele opened 3 months ago

danielschaeufele commented 3 months ago

The standard specifies in 3GPP TS 38.211, section 5.4 that during upconversion the phase of the oscillator is reset to 0 on the start of each symbol. Actually resetting the phase is not possible in most systems, so in practice this will be implemented by applying a phase rotation to each OFDM symbol. More information on this can be found here.

I would advocate to implementing this in PUSCHReceiver/PUSCHTransmitter because recordings from real 5G systems can't be decoded without this phase rotation. I have a working proof of concept and I will provide a pull request shortly. The only downsides are, that this will break backwards compatibility and that the carrier frequency needs to be added as an parameter.

jhoydis commented 3 months ago

Hi @danielschaeufele,

Thanks for reporting this issue. We have not done any experiments with time-domain signal generation/reception and are glad that you did.

I assume that the backwards compatibility issue would only concern time-domain signals?

We will look into this issue once you have made your PR.

danielschaeufele commented 2 months ago

Hi @jhoydis,

this is fixed here, but this change depends on #465. This is not a hard dependency and I could rewrite the patch, but in my opinion it doesn't make sense to fix one of these bugs without fixing the other, since both of them are needed to be compatible to the standard and both break backwards compatibility (only for time-domain signals).