|
8 | 8 | import numpy as np |
9 | 9 | import tensorflow as tf |
10 | 10 | import sionna |
11 | | -from sionna.nr import PUSCHConfig |
| 11 | +from sionna.nr import PUSCHConfig, CarrierConfig |
12 | 12 | from sionna import config |
13 | 13 |
|
14 | 14 | script_dir = os.path.dirname(os.path.abspath(__file__)) |
@@ -228,3 +228,44 @@ def test_precoding_against_reference(self): |
228 | 228 | for i in range(5): |
229 | 229 | pusch_config.tpmi = i |
230 | 230 | self.assertTrue(np.allclose(pusch_config.dmrs_grid_precoded/np.sqrt(3), ref[i])) |
| 231 | + |
| 232 | + |
| 233 | +class TestCarrierConfig(unittest.TestCase): |
| 234 | + """Tests for the CarrierConfig Class""" |
| 235 | + |
| 236 | + def test_cyclic_prefix_length(self): |
| 237 | + carrier_config = CarrierConfig(subcarrier_spacing=15, slot_number=0) |
| 238 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, ([5.2] + [4.69]*6)*2, decimal=2) |
| 239 | + carrier_config = CarrierConfig(subcarrier_spacing=15, slot_number=1) |
| 240 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, ([5.2] + [4.69]*6)*2, decimal=2) |
| 241 | + |
| 242 | + carrier_config = CarrierConfig(subcarrier_spacing=30, slot_number=0) |
| 243 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [2.86] + [2.34]*13, decimal=2) |
| 244 | + carrier_config = CarrierConfig(subcarrier_spacing=30, slot_number=1) |
| 245 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [2.86] + [2.34]*13, decimal=2) |
| 246 | + |
| 247 | + carrier_config = CarrierConfig(subcarrier_spacing=60, slot_number=0) |
| 248 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [1.69] + [1.17]*13, decimal=2) |
| 249 | + carrier_config = CarrierConfig(subcarrier_spacing=60, slot_number=1) |
| 250 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [1.17] * 14, decimal=2) |
| 251 | + |
| 252 | + carrier_config = CarrierConfig(subcarrier_spacing=60, slot_number=0, cyclic_prefix='extended') |
| 253 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [4.17] * 12, decimal=2) |
| 254 | + carrier_config = CarrierConfig(subcarrier_spacing=60, slot_number=1, cyclic_prefix='extended') |
| 255 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [4.17] * 12, decimal=2) |
| 256 | + |
| 257 | + carrier_config = CarrierConfig(subcarrier_spacing=120, slot_number=0) |
| 258 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [1.11] + [0.59] * 13, decimal=2) |
| 259 | + carrier_config = CarrierConfig(subcarrier_spacing=120, slot_number=1) |
| 260 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [0.59] * 14, decimal=2) |
| 261 | + carrier_config = CarrierConfig(subcarrier_spacing=120, slot_number=2) |
| 262 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [0.59] * 14, decimal=2) |
| 263 | + carrier_config = CarrierConfig(subcarrier_spacing=120, slot_number=3) |
| 264 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [0.59] * 14, decimal=2) |
| 265 | + carrier_config = CarrierConfig(subcarrier_spacing=120, slot_number=4) |
| 266 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [1.11] + [0.59] * 13, decimal=2) |
| 267 | + |
| 268 | + carrier_config = CarrierConfig(subcarrier_spacing=240, slot_number=0) |
| 269 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [0.81] + [0.29] * 13, decimal=2) |
| 270 | + carrier_config = CarrierConfig(subcarrier_spacing=240, slot_number=1) |
| 271 | + np.testing.assert_array_almost_equal(carrier_config.cyclic_prefix_length * 1e6, [0.29] * 14, decimal=2) |
0 commit comments