-
Notifications
You must be signed in to change notification settings - Fork 7
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
How do you handle multiple streams if the receiver is an AI receiver? #1
Comments
Hi @modestlyh, |
@SebastianCa , |
On the transmitter side, you would need to configure a proper stream managment meaning that the 5G NR / DMRS config must be adjusted such that the single user sends multiple streams assigned to diffferent DMRS ports (see DMRS configuration). On the receiver side, the intitial LS channel estimation needs to be adjusted. Further, the CGNNOFDM class must be modified such that it handles the additional stream-dimension (e.g., positional encoding must be modified). |
OK,thanks for your reply,I will try it! |
@SebastianCa ,This is my stream management: I set num_streams_per_tx = pusch_config.num_layers=2,I found that after TBEncoder, num_coded_bits becomes twice as much, can I just split num_coded_bits into two parts and see it as two single streams, I want to know if two single streams are fed into the mapper, can the AI receiver learn the two sets of mapping rules? |
As mentioned above, you need to modify the entire receiver such that it handles the stream_dimension properly (i.e., the tensor shapes must fit to the problem). I would still suggest to configure the NRX for 2 active users/DMRS ports and avoid the need to rewrite the NRX architecture. |
@SebastianCa ,Modifying the NRX core is a real pain, so I'm thinking of doing a single-user, dual-stream 2x4MIMO using the Resnet that sionna used for SIMO as the AI receiver before. the Resnet is fine for single-stream, but with dual-stream, after some modifications, it won't drop the loss at around 0.69 during training。 [batch size, num ofdm symbols, num subcarriers, 2num_bits_per_symbol],The channel at the last layer of the network is 2num_bits_per_symbol
Resnet's inputs are y and no as before,I don't know if the reason the network doesn't work is because the input is missing the positional encoding of the pilots, or because there is a problem with the design of the network structure,BTW, I don't think single user dual stream is the same thing as dual user single stream. |
I’m not sure I fully understand the question. It seems like you’re running the Sionna single-user receiver in ‘multi-stream’ mode, which, unsurprisingly, doesn’t perform well in that configuration. The NRX extensions in this repository are specifically designed for multi-user scenarios, including features like position-encoded pilots, initial LS estimates, and the GCNN NRX architecture. |
@SebastianCa ,OK, I thought earlier that modifying the NRX seemed like it would be a pain, so I thought I'd try the previous sionna's single-user receiver as a replacement how would it work, didn't realise it couldn't handle multiple streams. But my core problem is really still the single user transmitting dual streams, and I was hoping I could split it into two single streams feeding into different mappers, wondering if the neural network could learn different mapping rules. |
[batch size, num ofdm symbols, num subcarriers, num_bits_per_symbol]
How to change the code if num_streams_per_rx is not equal to 1
The text was updated successfully, but these errors were encountered: