NVlabs / sionna

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

Question about channel estimation #429

Closed lhupalo closed 5 months ago

lhupalo commented 6 months ago

Hi there,

First of all, I would like to thank the contributors of Sionna for their amazing work! It's such a powerful tool for wireless simualtions!

I'm having some issues related to channel estimation (to be honest, I think that they're not issues, but misunderstanding of my part). I've built a scenario on blender with 1 BS w/ an antenna array of 16 elements and 1 UE w/ 1 antenna element only. Then I perform a batch of 32 simulations for a given UE position (x, y, z) on space. But each of the 32 positions has slightly different values, like they're floating around a point in space. In other words, I'm collecting one sample of a and tau for 32 slightly different positions on space. So, I have shapes:

Shape of the path gains:  (32, 1, 1, 1, 16, 40, 14)
Shape of the delays: (32, 1, 1, 1, 16, 40)

From this stage onwards, I've built an OFDM resource grid and used the cir_to_ofdm_channel method with and without the "normalize=True" flag.

Here's the deal: when I get the normalized channel frequency responses, all seems to work well on the estimation: image

But when I use the non-normalized channel frequency responses, the estimator seems not to be able to treat the extremely low values of h_freq (order of 10^-6): image

Obs.: I'm considering the same OFDM symbol on the plots.

I'm using the following scheme to estimate the channel: ls_est = LSChannelEstimator(rg, interpolation_type="lin_time_avg")

Does anyone have some guidance in this context to help me, please?

Kindly, Luiz

SebastianCa commented 6 months ago

Hi @lhupalo,

It might be that float32 quantization becomes a limiting factor for such small values or at least adds a significant amount of quantization noise. Have you tried using float64 (or complex128, respectively) instead? Does the problem also occur with nearest neighbour interpolation?

A general remark: this issue seems related to #420. In Sionna, we typically assume the existence of power control or link adaptation that ensures reasonable received power. However, this is managed by higher layer protocols and is not part of Sionna. For example, defining an effective SNR for your setup would be challenging.