Create, Configure, and Simulate Bluetooth BR/EDR Piconet
This example shows how to simulate a Bluetooth® basic rate/enhanced data ret (BR/EDR) piconet by using Bluetooth® Toolbox and Communications Toolbox™ Wireless Network Simulation Library.
Using this example, you can:
Create and configure a Bluetooth BR/EDR piconet with one Central and multiple Peripheral nodes.
Create, configure, and share connections between the Central and Peripheral nodes.
Simulate a Bluetooth BR/EDR piconet with synchronous connection-oriented (SCO) traffic, and retrieve the statistics of the Central and Peripheral nodes.
Check if the Communications Toolbox Wireless Network Simulation Library support package is installed. If the support package is not installed, MATLAB® returns an error with a link to download and install the support package.
wirelessnetworkSupportPackageCheck;
Create a wireless network simulator.
networkSimulator = wirelessNetworkSimulator.init;
Create a Bluetooth BR/EDR node, specifying the role as "central"
.
centralNode = bluetoothNode("central");
Create two Bluetooth BR/EDR Peripheral nodes and specify their positions in Cartesian x
-, y
-, and z
-coordinates.
peripheralNode = bluetoothNode("peripheral",Position=[0 1 0; 2 1 2]); % In meters
Create a default Bluetooth BR/EDR connection configuration object to configure and share the connection between the Central and Peripheral nodes. Specify the SCO packet type.
cfgConnection = bluetoothConnectionConfig(SCOPacketType="HV3")
cfgConnection = bluetoothConnectionConfig with properties: CentralToPeripheralACLPacketType: "DH1" PeripheralToCentralACLPacketType: "DH1" SCOPacketType: "HV3" HoppingSequenceType: "Connection adaptive" UsedChannels: [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 ... ] (1x79 double) PollInterval: 40 InstantOffset: 240 TransmitterPower: 20 SupervisionTimeout: 32000 CentralAddress: [1x0 char] PrimaryLTAddress: []
Configure connections between the Central and the Peripheral nodes. Note that, when you configure the connections, the SCO traffic is internally added as two-way traffic between the Central and Peripheral nodes.
connection = configureConnection(cfgConnection,centralNode,[peripheralNode(1) peripheralNode(2)]);
Create a Bluetooth piconet consisting of one Central and two Peripheral nodes.
nodes = [centralNode peripheralNode];
Add the Central and Peripheral nodes to the wireless network simulator.
addNodes(networkSimulator,nodes);
Set the simulation time in seconds, and run the simulation.
simulationTime = 0.5; run(networkSimulator,simulationTime);
Retrieve application, baseband, and physical layer (PHY) statistics corresponding to the Central and Peripheral nodes.
nodeStats = statistics(nodes)
nodeStats=1×3 struct array with fields:
Name
ID
App
Baseband
PHY
References
[1] Bluetooth® Technology Website. “Bluetooth Technology Website | The Official Website of Bluetooth Technology.” Accessed June 22, 2022. https://www.bluetooth.com/.
[2] Bluetooth Special Interest Group (SIG). "Bluetooth Core Specification." Version 5.3. https://www.bluetooth.com/.