|
板凳
楼主 |
发表于 2023-9-18 09:52:42
|
只看该作者
Decawave have patent pending a method of estimating AOA using phase difference of
arrival. This method can be implemented using 2 x DW1000 ICs (anchor master and slave)
clocked from the same 38.4 MHz reference clock input. Each DW1000 is connected to an
antenna and the antennas are optimally separated by approximately λ/2. Using this hardware
set up the phase difference (and hence angle of arrival) between the signals received at
each antenna can be calculated.
The Phase difference (PD) is calculated as follows:
1. When a frame is received, read the first path index from each DW1000 (A and B) and
the complex sample from accumulator at FP index.
- read register 0x15, offset 5, two bytes (The 10 most significant bits of
FP_INDEX represent the integer portion of the number and the 6 least
significant bits represent the fractional part)
- convert to float value (e.g. 745.67) and then add 0.5
- then truncate the resultant value (e.g. 746)
- get the accumulator index i.e. location in the accumulator at which to
calculate phase difference, (e.g. 2984) (=746 x 4 because they are 16-bit
complex numbers)
- read accumulator value at this index (reading 5 bytes to get 2 byte real and 2
byte imaginary value)
- treating the accumulator value as a complex number
- get arctan of the complex number to get (accangleA, accangleB)
2. Then read SFD angle (register 0x14, offset 3, one byte) from each (sfdangleA,
sfdangleB). The SFD angle (in radians) is obtained by multiplying by π/64
3. Next calculate the Phase Difference, PDx we use following formula:
PDx = ((accangleA - sfdangleA) – (accangleB - sfdangleB)) + π;
4. Then modulo 2π as the range should be 0 to 2π, and finally subtract π, to get PD.
5. The angle is then obtained by formula:
AOA (in radians) = PD/2 (Derived using a straight-line formula from Figure 3) |
|