Simulink and Stateflow model of a full duplex Bluetooth communication link transmitting HV1, HV2, HV3, and SCORT  voice packets, and DM1 data packets. A system parameters block configures the whole model's 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.
NOTE: A version of this model which works with the current release of MATLAB and Simulink is shipped with the Communications Blockset.
The model includes wave file I/O, CVSD speech coding, HEC, payload CRC for DM1, FEC, framing, GFSK Modulation, frequency hopping, hop sequence generation, an 802.11b interferer, BER meters, throughput meters, plus spectrum, timing and spectrogram plot (which can be turned-off).
bluetooth_full_duplex.mdl - Model file
bluetooth_lib2.mdl - Library containing complete device, 802.11b transmitter, BT hop generator and BT clock
bluetooth_init.m: Workspace initialization routine called by model PreLoadFcn
device_init.m: Device mask initialization function
poiss_gaus_prc.m: Variable time-step M Code S-function to generate 802.11b Poisson packets
code_data.mat: 2/3 Hanning code matrices and variables
Input1.wav: Input wave file for device 1
Input2.wav: Input wave file for device2
The model will also generate 2 output wave files
Test files (open bluetooth_full_duplex.mdl, turn off instrumentation and run these):
test_voice_basic.m ? Simulate all voice packets and ensure 0 BER for no channel case (1.5 minutes to run of 800MHz machine)
test_data_throughput.m - Simulate and measure throughput of DM1 packet for different SNRs (4.5 mins on 800MHz machine)