  Software defined radio (SDR) allows unprecedented levels of flexibility by
transitioning the radio communication system from a rigid hardware platform to
a more user-controlled software paradigm. However, it can still be time
consuming to design and implement such SDRs as they typically require thorough
knowledge of the operating environment and a careful tuning of the program. In
this work, our contribution is the design of a bidirectional transceiver that
runs on the commonly used USRP platform and implemented in MATLAB using
standard tools like MATLAB Coder and MEX to speed up the processing steps. We
outline strategies on how to create a state-action based design, wherein the
same node switches between transmitter and receiver functions. Our design
allows optimal selection of the parameters towards meeting the timing
requirements set forth by various processing blocks associated with a DBPSK
physical layer and CSMA/CA/ACK MAC layer so that all operations remain
functionally compliant with the IEEE 802.11b standard for the 1 Mbps
specification. The code base of the system is enabled through the
Communications System Toolbox and incorporates channel sensing and exponential
random back-off for contention resolution. The current work provides an
experimental testbed that enables creation of new MAC protocols starting from
the fundamental IEEE 802.11b standard. Our design approach guarantees
consistent performance of the bi-directional link, and the three node
experimental results demonstrate the robustness of the system in mitigating
packet collisions and enforcing fairness among nodes, making it a feasible
framework in higher layer protocol design.
