Angle of Arrival (AoA) Calculation Producing Unexpected Values

Hi,

I'm working on an indoor positioning system using an nRF5340 and a CHW1010-ANT1 antenna array. I'm receiving IQ samples from BLE CTE packets and using them to calculate the AoA. 

When I manually input IQ values, the AoA is correct and stable. However, when I use live IQ samples from the receiver, the AoA values fluctuate significantly, even though the transmitter and receiver are stationary.

As I understood it, the first 8 samples are from the reference period and should not be used to calculate the AoA and the first sample to be used (at index 8) is from antenna idx 1 and not 0 since 0 is used in the reference period. So the pattern goes 0 - 0 - 0 - 0 - 0- 0 - 0 - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 0 - 1 - etc. Am I missing something here?

Below are some of the IQ samples I get.

Setup:

  • Transmitter - nRF5340 sending BLE CTE signals
  • Receiver - nRF5340 with CHW1010-ANT1 antenna array
  • Antenna patches spacing - 5 cm
  • UART - 115200 baud
  • Antenna pattern - 0, 2, 4, 6, 8, 10, 12, 14

IQ sample values received:

Read from UART func:

Calculate AoA func:

Wavelength, Phase calc, and Phase wrap funcs:

I assume that the logic is correct since manually set values are showing the correct AoA.

Grateful for any help!

Parents Reply Children
  • Hi Elfving , 

    I am using aoa mode, and it can be identified from the print.

    CTE[0]: samples count 45, cte type AOA, slot durations: 2 [us], packet status CRC OK, RSSI -790
    IQ sample content :
    sample[0] = I:-7 Q:-11 RSSI:-790
    sample[1] = I:12 Q:-9 RSSI:-790
    sample[2] = I:7 Q:12 RSSI:-790
    sample[3] = I:-16 Q:8 RSSI:-790
    sample[4] = I:-4 Q:-15 RSSI:-790
    sample[5] = I:16 Q:-5 RSSI:-790
    sample[6] = I:5 Q:13 RSSI:-790
    sample[7] = I:-16 Q:4 RSSI:-790
    sample[8] = I:13 Q:30 RSSI:-790
    sample[9] = I:14 Q:1 RSSI:-790
    sample[10] = I:20 Q:-45 RSSI:-790
    sample[11] = I:-8 Q:-8 RSSI:-790
    sample[12] = I:5 Q:-30 RSSI:-790
    sample[13] = I:-41 Q:-28 RSSI:-790
    sample[14] = I:50 Q:-24 RSSI:-790
    sample[15] = I:-18 Q:3 RSSI:-790
    sample[16] = I:-32 Q:17 RSSI:-790
    sample[17] = I:-1 Q:12 RSSI:-790
    sample[18] = I:47 Q:25 RSSI:-790
    sample[19] = I:6 Q:-10 RSSI:-790
    sample[20] = I:29 Q:5 RSSI:-790
    sample[21] = I:26 Q:-41 RSSI:-790
    sample[22] = I:14 Q:58 RSSI:-790
    sample[23] = I:-2 Q:-17 RSSI:-790
    sample[24] = I:-15 Q:-31 RSSI:-790
    sample[25] = I:-15 Q:-4 RSSI:-790
    sample[26] = I:-26 Q:42 RSSI:-790
    sample[27] = I:9 Q:5 RSSI:-790
    sample[28] = I:-9 Q:27 RSSI:-790
    sample[29] = I:37 Q:21 RSSI:-790
    sample[30] = I:-56 Q:17 RSSI:-790
    sample[31] = I:16 Q:-7 RSSI:-790
    sample[32] = I:30 Q:-15 RSSI:-790
    sample[33] = I:1 Q:-18 RSSI:-790
    sample[34] = I:-45 Q:-23 RSSI:-790
    sample[35] = I:-10 Q:9 RSSI:-790
    sample[36] = I:-30 Q:-8 RSSI:-790
    sample[37] = I:-21 Q:43 RSSI:-790
    sample[38] = I:-21 Q:-53 RSSI:-790
    sample[39] = I:2 Q:16 RSSI:-790
    sample[40] = I:12 Q:28 RSSI:-790
    sample[41] = I:19 Q:-2 RSSI:-790
    sample[42] = I:22 Q:-42 RSSI:-790
    sample[43] = I:-8 Q:-7 RSSI:-790
    sample[44] = I:9 Q:-25 RSSI:-790

    My issue link :

    devzone.nordicsemi.com/.../angle-of-arrival-application-exception-the-nrf52833-dk-antenna-array-cannot-be-started-normally-gpio-is-not-switched

Related