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
  • Hi Louis,

    If I remember correctly I did not turn on that pin since it was used for AoD rather than AoA.

    You should not be able to receive CTE on the PCB antenna only. 
    Are you controlling what pins are set high/low on the nRF? Also, do you possess the complete datasheet provided by CoreHW?

    FYI, I did switch antenna array from CHW1010-ANT1 to U-blox B10 antenna instead.

    Best regards,
    Milad

Children
No Data
Related