Implement transform precoding (DFT-s-OFDM)
Description
Implement transform precoding (DFT-s-OFDM) with the following steps:
- Add new classes
PUSCHTransformPrecoderandPUSCHTransformDeprecoder. - Add call to
PUSCHTransformPrecodertoPUSCHTransmitterwhen transform precoding is enabled. - Add call to
PUSCHTransformDeprecodertoPUSCHReceiver(via the added parameterpost_equalizer_transformationofLinearDetector) when transform precoding is enabled. - Implement low-PAPR sequence type 1 and use it as pilot sequence when transform precoding is enabled.
- Due to restrictions on the number of PRBs that are in use (the highest allowed prime factor is 5) the attributes
num_effective_ressource_blocksandnum_effective_subcarrierswere added toPUSCHConfigand were used instead ofnum_ressource_blocksandnum_subcarrierswhenever the number of used subcarriers is relevant.
Prior discussion about this feature can be found here.
- Fixes a bug?
No
- Adds a new feature?
Yes, see description above
-
Introduces API changes?
-
PUSCHDMRSConfig.n_sidwas added, because this parameter controls which pilot sequence is used for transform precoding. -
num_effective_ressource_blocksandnum_effective_subcarrierswere added toPUSCHConfigto account for the fact that not all subcarriers might be used when transform precoding is enabled. -
PUSCHConfig.transform_precodingused to be a placeholder, now it changes the behavior.
-
None of these changes should break older code
- Other contributions
Some misspellings have been fixed.
Checklist
- [x] Detailed description
- [x] Added references to issues and discussions
- [x] Added / modified documentation as needed
- [x] Added / modified unit tests as needed
- [x] Passes all tests
- [x] Lint the code
- [x] Performed a self review
- [x] Ensure you Signed-off the commits. Required to accept contributions!
Hi @danielschaeufele,
thank you for the PR. We will review it and give feedback soon.
Hi @danielschaeufele,
Thank you very much for this substantial pull request! Unfortunately, we do not have the bandwidth to review it anytime soon.
Is it so @danielschaeufele this wasn't merged ?
Yes, it wasn't merged yet (and it is unlikely that it will be merged in the future). In the meantime you can install my version from here: https://github.com/danielschaeufele/sionna/tree/main