MATLAB Examples

Bluetooth Full Duplex Voice and Data Transmission

This model shows the full duplex communication between two Bluetooth® devices. Both data packets and voice packets can be transmitted between the two devices:

  • Supported voice packet types: HV1, HV2, HV3 and SCORT
  • Supported data packet types: DM1

A system parameters block configures the packet type, slot pair, and channel type. Stateflow® is used to implement the acknowledgement scheme for the data packets and the SCORT receiver state machine.


Structure of the Example

A Bluetooth core system consists of an RF transceiver, baseband, and protocol stack. The system offers services that enable the connection of devices and the exchange of a variety of classes of data between these devices. This example is focused on the simulation of a piconet consisting of a master, a slave, and a transmission channel.

This model includes CVSD speech coding, HEC, payload CRC for DM1, FEC, framing, GFSK Modulation, frequency hopping, hop sequence generation, an 802.11b interferer, wave file I/O, BER meters, spectrum, timing, and spectrogram plot.

You can set the system parameters by double-clicking the Model Parameters block in the top left. You can toggle instrumentation (spectrum, spectrogram, and timing diagram) by double-clicking the switch. The ARQN display for data transmission can be turned on or off.


The transmitter consists of:

  • The controller block (based on BT spec Part B 7.6 ARQ Scheme)
  • The payload and FEC block (based on BT spec Part B 7)
  • The framing block (based on BT spec Part B 6.1 6.4 and 7.3)
  • The radio block (based on BT spec Part A 3.1 Basic Rate)


The receiver consists of:

  • The radio block (based on BT spec Part A 4.1 Basic Rate)
  • The deframing block (based on BT spec Part B 7)
  • The controller block(based on BT spec Part B 7)


The following subsystems are constructed in the Bluetooth Full Duplex library:

  • AWGN Channel
  • AWGN Channel and 80211b interference
  • None (direct connection)

Communication Blocks Used

This model shows the use of the following Communications blocks:

  • The CPM Modulator Baseband block is used to implement the GFSK (Gaussian frequency shift keying). The Bluetooth radio module uses GFSK, where a binary one is represented by a positive frequency deviation and a binary zero by a negative frequency deviation.
  • The M-FSK Modulator Baseband block is used to implement the frequency hopping in Bluetooth Radio. The Bluetooth radio accomplishes spectrum spreading by using 79 frequency hops, each displaced by 1 MHz, starting at 2.402GHz and finishing at 2.480GHz.
  • The Free Space Path Loss block, together with the AWGN block and the 802.11b interference subsystem, shows the construction of a transmission channel.
  • The General CRC Generator block is used for transmitted data CRC calculation.
  • The use of the M-FSK Demodulator block, the General CRC Syndrome Detector block, and the implementation of rate 1/3 and rate 2/3 payload FEC are also included.

The model also uses Stateflow charts to implement:

  • The Transmitter Controller
  • The Receiver Controller, which decides on the successful reception of a packet by looking at the status of the access code, HEC and CRC

Signals Between the Two Devices

  • Tx_Raw_Bits1: The master device generates information data randomly, does CRC and FEC payload, and packs them according to the Bluetooth defined format (similarly, Tx_Raw_Bits2 is for the slave device).
  • Signal_Tx1: The master device takes Tx_Raw_Bits1 and modulates according to the Bluetooth standard. Signal_Tx1 will be transmitted through the channel (similarly, Signal_Tx2 is for the slave device).
  • Signal_Rx1: The raw received signal after AWGN and interference. Signal_Rx1 is fed to the master device for demodulation and detection (similarly, Signal_Rx2 is for the slave device).
  • Tx_Info_Bits1: The information data generated by the master with CRC payload but no FEC. Tx_Info_Bits1 is used for SCO BER check on the slave side (similarly, Tx_Info_Bits2 is for the master device).
  • Diagnostics2: A collection of frame and packet information for the ACL BER check on the master side (similarly, Diagnostics1 is for the slave device).
  • master_SCO: SCO BER information from the master device for display (similarly, slave_SCO is for the slave device).
  • master_ACL: ACL BER information from the master device for display (similarly, slave_ACL is for the slave device).
  • Interference: The interference signal generated from a 802.11b channel.

Results and Displays

The scope display includes:

  • The timing diagram of the received signal
  • The received signal spectrum and the spectrogram of the channel

The Master/Slave BER meters calculate:

  • The data BER
  • The data throughput

A succcessful system is decided by:

  • The ACL(Asynchronous connection-oriented) BER being zero.
  • The SCO (Synchronous connection-oriented) BER (which includes Raw BER, Residual BER, and FER) being within the specifications.


Standards can be found at: