Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement transform precoding (DFT-s-OFDM) #459

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

danielschaeufele
Copy link

@danielschaeufele danielschaeufele commented Jun 4, 2024

Description

Implement transform precoding (DFT-s-OFDM) with the following steps:

  1. Add new classes PUSCHTransformPrecoder and PUSCHTransformDeprecoder.
  2. Add call to PUSCHTransformPrecoder to PUSCHTransmitter when transform precoding is enabled.
  3. Add call to PUSCHTransformDeprecoder to PUSCHReceiver (via the added parameter post_equalizer_transformation of LinearDetector) when transform precoding is enabled.
  4. Implement low-PAPR sequence type 1 and use it as pilot sequence when transform precoding is enabled.
  5. Due to restrictions on the number of PRBs that are in use (the highest allowed prime factor is 5) the attributes num_effective_ressource_blocks and num_effective_subcarriers were added to PUSCHConfig and were used instead of num_ressource_blocks and num_subcarriers whenever 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_sid was added, because this parameter controls which pilot sequence is used for transform precoding.
    • num_effective_ressource_blocks and num_effective_subcarriers were added to PUSCHConfig to account for the fact that not all subcarriers might be used when transform precoding is enabled.
    • PUSCHConfig.transform_precoding used 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

  • Detailed description
  • Added references to issues and discussions
  • Added / modified documentation as needed
  • Added / modified unit tests as needed
  • Passes all tests
  • Lint the code
  • Performed a self review
  • Ensure you Signed-off the commits. Required to accept contributions!

@SebastianCa
Copy link
Collaborator

Hi @danielschaeufele,

thank you for the PR. We will review it and give feedback soon.

Signed-off-by: Daniel Schäufele <Daniel.Schaeufele@hhi.fraunhofer.de>
@jhoydis
Copy link
Collaborator

jhoydis commented Jun 21, 2024

Hi @danielschaeufele,

Thank you very much for this substantial pull request! Unfortunately, we do not have the bandwidth to review it anytime soon.

Signed-off-by: Daniel Schäufele <Daniel.Schaeufele@hhi.fraunhofer.de>
@sayeNordicSemi
Copy link

Is it so @danielschaeufele this wasn't merged ?

@danielschaeufele
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants