-
Notifications
You must be signed in to change notification settings - Fork 19
Modem Example0
Josh Blum edited this page Sep 8, 2017
·
3 revisions
Demonstrate the use of a communications layer using simple modulation and bursts to send user datagrams over the air. This example requires SDR hardware with timed burst support and was demonstrated on a single Blade RF -- looping-back through the antennas.
Find the resource files for the modem demonstrations here:
The transmit chain modules a user-provided payload from an input chat box. The modulation is QPSK (2 bits per transmit symbol).
- The transmitter chain first converts the payload from a packet of bytes into a packet of symbols.
- The packet of symbols is transferred into the stream domain to be processed by blocks that operate on stream-oriented data.
- The symbol mapper converts a stream of symbols into QPSK constellation points.
- The frame inserter applies a frame header so that the receiver can correct for frequency, phase, and timing error
- The FIR filter performs pulse shaping and interpolation to 4 samples per symbol.
- Finally the burst timer schedules burst transmission for the SDR sink block.
![https://raw.githubusercontent.com/wiki/pothosware/PothosDemos/images/modem0_txdata.png](https://raw.githubusercontent.com/wiki/pothosware/PothosDemos/images/modem0_txdata.png)
The receiver chain demodulates the QPSK and sends the user's payload to the output chat box to be displayed.
- The frame sync searches for a frame header and applies phase and timing recovery to the output payload.
- The symbol slicer re-maps the constellation points (with error) to our original 2-bit symbol set.
- The stream of symbols are converted into the packet domain as a packet of symbols.
- The packet of symbols is converted into a packet of bytes containing the user's message.
![https://raw.githubusercontent.com/wiki/pothosware/PothosDemos/images/modem0_rxdata.png](https://raw.githubusercontent.com/wiki/pothosware/PothosDemos/images/modem0_rxdata.png)
- Project overview
- Getting started
- FAQ
- Video screencasts
- Demo applications
- Features summary
- Versioned releases
- Miscellaneous links
- Help and support
- Pothos users' group
- Twitter @pothosware
- IRC chat #pothos
- Slack workspace
- Contract services
- Developer blog
- Contributing
- Donate
- Build guide
- GUI Tutorial
- SDR Tutorial
- Filter Tutorial
- Doxygen docs
- PothosUtil Guide
- Blocks coding guide
- Scheduler explained
- Remote control guide
- Extending serialization