Code Monkey home page Code Monkey logo

pysdr's Introduction

PySDR Textbook Source Material

This repo contains the source content used to generate the textbook PySDR: A Guide to SDR and DSP using Python hosted at https://pysdr.org.

Feel free to submit an issue, or even a Pull Request (PR) with fixes or improvements. Those who submit valuable feedback/fixes be permanently added to the acknowledgments section. Not good at Git but have changes to suggest? Feel free to email Marc at [email protected].

Building

Note that the website is now automatically built and deployed with each push/merge into master branch, using the GitHub action build-and-deploy.yml and the GitHub pages system for hosting the actual textbook.

For testing changes to the textbook locally, you can build using the following steps:

Ubuntu/Debian

sudo apt update
sudo apt install -y texlive-latex-extra pdf2svg
pip install -r requirements.txt
make html
make html-fr
make html-nl
make html-ukraine

In _build there should be an index.html that represents the main page of the English site

Note: on one machine I had to add ~/.local/bin to PATH

Windows

Install pre-requisite software with:

  1. Install Tex Live from the install-tl-windows.exe link towards the beginning of https://www.tug.org/texlive/acquire-netinstall.html (after opening it, choose the Install option). When a box pops up, click Advanced. It will mention Installation root C:/texlive/2023 which we need later. Uncheck Install TeXworks front end because we wont need it. Under Scheme click "change" and choose basic scheme. Hit Install. It will take a while because it installs a lot of common latex packages, you can do the remaining steps while this installs. You know it worked if you now have a C:\texlive\2023\bin\windows\latex.exe.
  2. From the Microsoft Store install Python 3.10 (3.8-3.12 is fine too if you already have it installed).
  3. In a PowerShell terminal (click start menu then type powershell, or open a terminal in VSCode) run pip install sphinx sphinxcontrib-tikz patreon
  4. cd to the directory you cloned PySDR
  5. Separately, open "Tex live command-line" app from start menu, then run tlmgr install dvisvgm pgf (pgf is tikz).

Build the English version only using:

python -m sphinx.cmd.build -b html -D imgmath_latex="C:\texlive\2023\bin\windows\latex.exe" -D imgmath_dvisvgm="C:\texlive\2023\bin\windows\dvisvgm.exe" . _build

The first time running this it might take a while because it has to download LaTeX packages.

Creating a PDF Export

Not fully working yet due to animated gifs, they all need to be removed for this to not error out:

sudo apt-get install -y latexmk
sphinx-build -b latex . _build/latex
make latexpdf

Misc

Ideas for future chapters:

  • Equalization, would be the last step needed to finish the end-to-end comms link
  • Cyclostationary analysis
  • OFDM, simulating OFDM and CP, show via Python how it turns freq selective fading into flat fading
  • How to create real-time SDR apps with GUIs in Python using pyqt and pyqtgraph, or even just matplotlib with updating
  • Python code that lets the Pluto (or RTL-SDR) act as an FM receiver, like with sound output
  • End to end example that shows how to detect start of packet and other concepts not covered in RDS chapter

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

pysdr's People

Contributors

777arc avatar edulchan avatar versd avatar dmstuffer avatar cabalist avatar taruncousik avatar greenoaktree avatar davidlutton avatar accessbox777 avatar h-g-121 avatar doctormin avatar plattrap avatar jan-safar avatar yakisan avatar sei-jgwohlbier avatar mrbloom avatar krzys-h avatar jackflorey avatar djmsullivan avatar gth828r avatar tarikbenaddi avatar tglucas avatar saki92 avatar red-sage avatar mattypiper avatar saltchicken avatar jiez avatar jesseaster avatar senarclens avatar fetorres avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.