Skip to main content

No project description provided

Project description

dsproc logo

dsproc: a powerful digital signals processing toolkit

What is it?

dsproc is a Python package that enables the analysis and processing of digital radio signals using an intuitive and approachable framework. It supports end to end digital communcations, which gives users the ability to fully encode and modulate data into radio waves of all types.

dsproc logo

Main Features

Here are some of the things you can do with dsproc:

  • Perform end to end digital signal processing! Compress, randomise, error correct, interleave and then modulate data into a complex wave ready for transmitting through your software defined radio (SDR) of choice.
  • Supports a variety of modulation and demodulation types such as ASK, FSK, QAM, MFSK, and PSK using symbol sets of arbitrary size.
  • Create custom QAM constellations using a simple click gui.
  • Use clustering to aid in automatic demodulation of FSK, ASK and QAM signals.
  • Create spectrum art by converting images to waves and transmit them via SDR!

Minimal example

# Import the library
import dsproc

# Read in a file
message = dsproc.Message(fn="my_picture.png")
# The file is current stored as bits. We could leave it that way and transmit one bit per symbol,
# but instead lets convert the message to symbols. Here I will convert to symbols using 2 bits per symbol,
# this gives us four possible symbols, e.g.

#     Symbol  |  Bits    
#   ---------------------
#       0     |    00
#       1     |    01
#       2     |    10
#       3     |    11

# Convert to symbols
message.symbolise(bits_per_symbol=2)

# Now we want to create a modulation object which we will use to write our bits to a signal
# fs = the sampling frequency, which is how many times per second we are creating samples for our radio wave
# sps = samples per symbol, how many samples we will allow per symbol transmitted. minimum is 1 but it's best to do
# at least 4.

radio_wave = dsproc.Mod(fs=10000, message=message.data, sps=8)
# Apply Amplitude Shift Keying (aka amplitude modulation) to our radio wave. This encodes the radio wave so each 
# symbol is represented by a unique amplitude
radio_wave.ASK()

# The wave can be viewed with various plotting methods
radio_wave.amp_view()
radio_wave.time()

# Save the wave as 64 bit complex numbers. This file can then be used directly with GNU radio or Software defined radio
# software. It's best to save the file with the sample rate (fs) in the name because you will need this number for 
# transmitting this wave.
radio_wave.save_wave("my_picture_wave_fs=10000_sps=8")

Installation

To install dsproc and it's dependencies I recommend using the pip installer:

pip install dsproc

Dependencies

Testing

To run the tests open a new terminal window in the dsproc/src/test folder and run:

python -m unittest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsproc-0.0.3.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsproc-0.0.3-py3-none-any.whl (39.8 kB view details)

Uploaded Python 3

File details

Details for the file dsproc-0.0.3.tar.gz.

File metadata

  • Download URL: dsproc-0.0.3.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for dsproc-0.0.3.tar.gz
Algorithm Hash digest
SHA256 1765376823a090321b91512b01f5ba1c834ff28ad6f905abba684f25e062edfa
MD5 c88f4f3030edb5bf18fc926af57cb7e8
BLAKE2b-256 93df65cf653c54fead38121937688abdbb4522f5690cb12b4afdd5f1fe633e06

See more details on using hashes here.

File details

Details for the file dsproc-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: dsproc-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 39.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for dsproc-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5b0a0b0fb8e42ef0047c22efe05690d8c1a9bb864623ab6a9f0f0fb39fbe2d54
MD5 00d5c980beed8a7c576b631a29387340
BLAKE2b-256 f4a53095b71dd16dbaf4caaef1bca78e5ec2b0c4907b5268d7cd5bd3726532a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page