This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BOOSTXL-AOA: wrong phase different between different antennas, derived from the raw IQ data

Part Number: BOOSTXL-AOA
Other Parts Discussed in Thread: CC2642R

Greetings,

I finally rent a chamber room I can do experiment without multi-path. But the phase of 3 antennas I find does not seem reasonable, can anyone help to explain it.

  • I collect data with 1 master, 1 slave, 1 passive setup
  • I only used row1, mean ant1-1, ant1-2 ant1-3 is used
  • the corresponding valid sample index I figure is 
    • antenna 1-1: [45 46 47 48 93 94 95 96 141 142 143 144 189 190 191 192 237 238 239 240 285 286 287 288 333 334 335 336 381 382 383 384 429 430 431 432 477 478 479 480]
    • antenna 1-2: [61 62 63 64 109 110 111 112 157 158 159 160 205 206 207 208 253 254 255 256 301 302 303 304 349 350 351 352 397 398 399 400 445 446 447 448 493 494 495 496]
    • antenna 1-3: [77 78 79 80 125 126 127 128 173 174 175 176 221 222 223 224 269 270 271 272 317 318 319 320 365 366 367 368 413 414 415 416 461 462 463 464 509 510 511 512] 

The problem I met is, I think at least the phase different between ant1-1(the blue lines) and ant1-2 (the red lines) ,   that of ant1-2 (the red lines) and ant1-3 (the orange lines) should be nearly the same. But apparently they are not.

Additionally, I notice there is antenna switching, mean the ant1-1 ant1-2 and ant1-3 are collect one-by-one, is this the reason for that? Moreover, can MUSIC/ESPRIT works the one-by-one collect data? Since I know most case the raw IQ is collected over all antennas at the same time.

Best

Jet

  • Hi Jet,

    Good to have you back! It looks like your project is moving forward, that's nice.

    The phase difference between two antennas depends on the path difference. As I have shown below, there are ways to obtain almost no path difference between antennas A1.2 and A1.3 while having path difference with A1.1.

    When it comes to antenna switching, this is required by the Bluetooth Core specifications. You could modify the python script in order to force the CC2642R's radio to provide the over-sampled IQ data. That way you could have up to 4 consecutive samples per antenna. The following configuration should allow this (EDIT: It looks like you already have 4 samples per sampling slot - this code may be useful for others so I keep it here):

                        "aoa_run_mode": "AOA_MODE_RAW",  ## AOA_MODE_ANGLE, AOA_MODE_PAIR_ANGLES, AOA_MODE_RAW
                        "aoa_cc26x2": {
                            "aoa_slot_durations": 2,
                            "aoa_sample_rate": 1,
                            "aoa_sample_size": 1,
                            "aoa_sampling_control": int('0x11', 16),
                            ## bit 0   - 0x00 - default filtering, 0x01 - RAW_RF no filtering,
                            ## bit 4,5 - default: 0x10 - ONLY_ANT_1, optional: 0x20 - ONLY_ANT_2
                            "aoa_sampling_enable": 1,
                            "aoa_pattern_len": 3,
                            "aoa_ant_pattern": [0, 1, 2]
                        }

    When it comes to estimation algorithms, MUSIC/ESPRIT can definitely work the one-by-one collect data. Actually, the total CTE length is 160 us and one sample is collected every 2 or 4 us. So for most of the use-cases, I think it is fair to consider that the samples are collected simultaneously.

    I hope this will help,

    Best regards, 

  • Great, thanks for your kind reply.

    I run a very quick simulation and find MUSIC does not work for one-by-one case, the code is attached below. 

    Best

    ULA_asyn.zip

    Jet

  • Hi, 

    Thank you for sharing. 
    This type of algorithms require to fine tuned to be effective. It might also be worth to run tests with other types of algorithms. 
    Best regards, 

  • Hi Clement,

    I later replace BPSK to single-tone in my attached code, and it works.

    I also check the phase different it match your description, thanks.

    Best

    Jet