SuperAPI AI Directory

matlab-simulate-bluetooth-network

Data & analytics

View repository

Updated 10-16 06:45

About this skill

Bluetooth System-Level Simulation

Entry point for all Bluetooth system-level simulation. All Bluetooth simulations use sim = wirelessNetworkSimulator.init and follow the workflow defined in matlab-simulate-wireless-network (simulator init, traffic, mobility, instrumentation, addNodes, run).

When to Use

  • BLE ACL point-to-point or star network connections
  • LE Audio unicast with CIS/CIG (stereo speakers, hearing aids)
  • BLE GAP connection establishment (advertising, scanning, connection timing)
  • Classic BR/EDR piconets with ACL data or SCO voice
  • BLE + BR/EDR coexistence with adaptive frequency hopping
  • Any simulation using bluetoothLENode, bluetoothNode

When Not to Use

  • Non-Bluetooth wireless simulations (use matlab-simulate-wireless-network instead)
  • PHY-layer or link level Bluetooth waveform generation, receiver analysis or BER analysis
  • Generic simulator setup, traffic models, or mobility (use matlab-simulate-wireless-network)

Scenario → Reference Routing

Scenario Reference
BLE realistic connection setup (advertising, scanning, GAP) references/ble-gap-connection.md
BLE point-to-point data, star network, ACL connections references/ble-connection.md
LE Audio unicast (stereo speakers, hearing aids, CIS/CIG) references/ble-cis.md
Classic Bluetooth earbuds, SCO voice, ACL data references/bluetooth-bredr.md
BLE + BR/EDR coexistence, adaptive frequency hopping references/bluetooth-coexistence.md
Capture and visualization (PCAP, IQ, event tracing, traffic viewer) See matlab-simulate-wireless-network skill

Node Roles

  • BLE (ACL, CIS): bluetoothLENode("central"), bluetoothLENode("peripheral")
  • BR/EDR: bluetoothNode("central"), bluetoothNode("peripheral") — max 7 peripherals per central

Traffic Attachment Rules

addTrafficSource(sourceNode, traffic, ...):

  • ACL/CIS/BR/EDR: DestinationNode=peer required. CIS also needs CISConfig=cfgCISOut.
  • BR/EDR SCO: No traffic call — implicit via SCOPacketType in connection config.

kpi() Availability

Topology "throughput" "latency" "PLR" / "PDR" Layer
BLE ACL LL only App only Both LL and App "LL" or "App"
BLE CIS LL only App only Both LL and App "LL" or "App"
BR/EDR Baseband — Baseband "Baseband"

Connection/Configuration Setup

Topology Config Object Function Notes
BLE ACL bluetoothLEConnectionConfig configureConnection(cfg, central, peripheral) Per-peripheral in loop; unique AccessAddress per connection
BLE CIS bluetoothLEConnectionConfig + bluetoothLECISConfig [~, cfgCISOut] = configureConnection(cfg, central, peripheral, CISConfig=cfgCIS) Pass cfgCISOut to addTrafficSource(..., CISConfig=cfgCISOut)
BR/EDR bluetoothConnectionConfig configureConnection(cfg, central, peripherals) Single call with vector of peripherals

Common Mistakes

  • bluetoothNode for BLE (or vice versa): BR/EDR = bluetoothNode, BLE = bluetoothLENode
  • Wrong kpi Layer: BLE throughput → "LL", BLE latency → "App", BR/EDR → "Baseband" only
  • Properties locked after run(): Node/connection properties cannot change mid-sim. Use updateChannelList for mid-sim channel updates.
  • configureConnection with peripheral vector for BLE: Must call per-peripheral in loop (BR/EDR accepts vector)
  • Unique AccessAddress per connection: Each BLE connection on same central needs different AccessAddress
  • DataRate in Kbps: DataRate=100 means 100 Kbps, not 100 bps
  • GeneratePacket=true is not valid: Not applicable for network-level simulation. Use OnTime=Inf for continuous traffic.