Main Content

bleAngleEstimate

Estimate AoA or AoD of Bluetooth LE Signal

    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 μs slots, CTE time of 16 μ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/.

    Extended Capabilities

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Version History

    Introduced in R2020b

    expand all