CARVIEW |
Select Language
HTTP/2 200
date: Wed, 23 Jul 2025 05:08:17 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
x-robots-tag: none
etag: W/"e4600624f60469cb475cb8971e6f18d2"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=9ttxnlxH7aXllGpKPFZLQDKauKkIJmXuHbwOj6mYPmtd4QQIOGre7%2BlU4jw8L%2BA%2FbwY5J68tQKjsQ910rsidQvs91Nd6KqPFtWhhUvhKRLc91FpHDErVYnlDz6ql4ukTxogpsnovmIB%2FMDCg1tESSbO%2Bep71hv24s5VKKotWOqbrMBZUkai%2FC6ARQni7apOuKjSTUPJ9nH6aLnn%2Bhp35KT9HMEArFOIMuTG8ZggaR7SNummA%2FvzEV4XNNjXKD7%2BOsEdliydsk19lTJkvwr3o4Q%3D%3D--BwOOB2I%2F7ELDvnKz--wWYrSbMN5lf12NchXhs1sw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1669003257.1753247297; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 05:08:17 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 23 Jul 2026 05:08:17 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 80AA:256CA9:3C52DE:519FC3:68806E41
Modem Example0 · pothosware/PothosDemos Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 18
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.

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.

- 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
Clone this wiki locally
You can’t perform that action at this time.