bleAngleEstimate

Estimate AoA or AoD of Bluetooth LE Signal

Syntax

``angle = bleAngleEstimate(IQsamples,cfgAngle)``

Description

example

````angle = bleAngleEstimate(IQsamples,cfgAngle)` estimates the angle of arrival (AoA) or angle of departure (AoD), `angle`, for the given in-phase and quadrature (IQ) samples, `IQsamples`, and Bluetooth® low energy (LE) angle estimation configuration object, `cfgAngle`.```

Examples

collapse all

Create a Bluetooth LE angle estimation configuration object, specifying the values of antenna array size, slot duration, and antenna switching pattern.

```cfgAngle = bleAngleEstimateConfig('ArraySize',2,'SlotDuration',2, ... 'SwitchingPattern',[1 2])```
```cfgAngle = bleAngleEstimateConfig with properties: ArraySize: 2 ElementSpacing: 0.5000 EnableCustomArray: 0 SlotDuration: 2 SwitchingPattern: [1 2] ```

Set the IQ samples such that they define a connection data channel protocol data unit (PDU) with an AoA constant tone extension (CTE) of 2 $\mu \mathit{s}$ slots, CTE time of 16 $\mu \mathit{s}$, and azimuth rotation of 70 degrees.

```IQsamples = [0.8507+0.5257i;-0.5257 + 0.8507i;-0.8507 - 0.5257i; ... 0.5257 - 0.8507i;0.8507+0.5257i;-0.5257 + 0.8507i; ... -0.8507 - 0.5257i;0.5257 - 0.8507i;-0.3561 + 0.9345i];```

Estimate the AoA of the Bluetooth LE signal.

`angle = bleAngleEstimate(IQsamples,cfgAngle)`
```angle = 70 ```

Create a Bluetooth LE angle estimation configuration object with custom array support enabled.

`cfgAngle = bleAngleEstimateConfig(EnableCustomArray=1);`

Specify the normalized element spacing, antenna switching pattern, and switch and sample slot duration of the angle estimation configuration.

```cfgAngle.ElementPosition = [0 0 0 0; 0 0.5 1 0.5; 0 -0.5 0 0.5]; cfgAngle.SwitchingPattern = 1:4; cfgAngle.SlotDuration = 2 % In microseconds```
```cfgAngle = bleAngleEstimateConfig with properties: EnableCustomArray: 1 ElementPosition: [3x4 double] SlotDuration: 2 SwitchingPattern: [1 2 3 4] ```

Set the IQ samples such that they define a connection data channel PDU with an AoA constant tone extension (CTE) of 2 μs slots, CTE time of 16 μs, and azimuth rotation of 70 degrees. Alternatively, you can use the IQ samples obtained by decoding the Bluetooth LE waveform.

```IQsamples = [0.8507+0.5257i; -0.5257+0.8507i; -0.8507-0.5257i; ... 0.5257-0.8507i; 0.8507+0.5257i; -0.5257+0.8507i; ... -0.8507-0.5257i; 0.5257-0.8507i; -0.3561+0.9345i; ... 0.3561+0.9345i; 0.8507-0.5257i];```

Estimate the AoA of the Bluetooth LE signal.

`angle = bleAngleEstimate(IQsamples,cfgAngle) % In degrees`
```angle = 2×1 -54.2000 37.2000 ```

Input Arguments

collapse all

IQ samples, specified as a complex-valued column vector. This input corresponds to the 8 μs value of the reference period and slot duration.

Data Types: `single` | `double`

Bluetooth LE angle estimation configuration object, specified as a `bleAngleEstimateConfig` object.

Output Arguments

collapse all

AoA or AoD, returned as one of these values.

• Real number – This value is the estimated broadside angle. If elevation is 0, the estimated broadside angle represents the azimuth angle.

• Two-element row vector of real numbers in the form [azimuth elevation] – azimuth and elevation are the estimated azimuth angle and elevation angle in degrees, respectively.

The size of this output is equal to the size of the ArraySize property of the `bleAngleEstimateConfig` object. If you set the EnableCustomArray property of the `bleAngleEstimateConfig` to true, the size of this output is equal to the two-element row vector.

Data Types: `double`

References

[1] Bluetooth Technology Website. “Bluetooth Technology Website | The Official Website of Bluetooth Technology.” Accessed December 22, 2021. https://www.bluetooth.com/.

[2] Bluetooth Special Interest Group (SIG). "Bluetooth Core Specification." Version 5.1. https://www.bluetooth.com/.

[3] Wooley, Martin. Bluetooth Direction Finding: A Technical Overview. Bluetooth Special Interest Group (SIG), Accessed December 6, 2021, https://www.bluetooth.com/.

Version History

Introduced in R2020b

expand all