Full implementation of the physical layer of LoRa. (Python translation of jkadbear/LoRaPHY)
Project description
pyLoRaPHY
Full implementation of the physical layer of LoRa. (Python translation of jkadbear/LoRaPHY)
It also contains comments from my understanding of the code and unique implementation choices optimized for clarity, Pythonic style, and performance.
Some MATLAB values distingush column and row vectors. They are all treated as 1D arrays here. All indices are C-style.
The original code was (c) 2020-2022 jkadbear licensed under MIT.
As a project developed during Maiyun's participation in the UCSD SRIP program, The University of California may have claims to this work.
@author: Zhang Maiyun maz005@ucsd.edu Created on Thu May 23 17:28:37 2024
I try to not use self in functions that just calculate values and return
them, to allow for easier testing.
Also, while the original implementation passes data with class properties,
this one uses parameters to pass ones that are packet-specific and only
store stable configuration as instance variables.
Implementation checklist:
- Constructor tested
-
inittested -
dechirptested -
detecttested -
demodulatetested -
parse_headertested -
dynamic_compensationtested -
gray_codingtested -
diag_deinterleavetested -
hamming_decodetested -
sync -
decodetested -
dewhitentested -
calc_crctested
Functions for modulating side stuff:
-
modulatetested -
encodetested -
gray_decodingtested -
calc_sym_numtested -
whiten: (asdewhiten) -
gen_headertested -
hamming_encodetested -
diag_interleavetested
These three look like they are not referenced anywhere:
-
symbols_to_bytes -
calc_payload_len -
time_on_airtested
Other functions:
-
print_bin(debugging, use logging instead) -
print_hex(debugging, use logging instead) -
log(debugging, use logging instead) -
plot_peak -
bit_reduce(asxorbits) -
word_reducemerged intohamming_encode -
topnmerged intodechirp -
chirptested -
spec: usematplotlib.pyplot.specgraminstead -
read: (asdemodulate_file) -
write: usendarray.tofileinstead
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lora_phy-0.3.0.tar.gz.
File metadata
- Download URL: lora_phy-0.3.0.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afb650067f4fb00f821fd5bb0d4746112b0b1706d17c1a70c2cef56858d6f49e
|
|
| MD5 |
04eca2373ddbba13ffe7c2693799ce39
|
|
| BLAKE2b-256 |
a68ef5cddb23a968d8a6dc7869d318d8235708800adbe8aaedf53eff7d6f0587
|
File details
Details for the file lora_phy-0.3.0-py3-none-any.whl.
File metadata
- Download URL: lora_phy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3779b451f40d4bf665da0d9ed23994a88c1acd61b0c6f7f2fe923727bdeb124e
|
|
| MD5 |
84d4ec9d7cba93172019c132cc8fde95
|
|
| BLAKE2b-256 |
f019657af013d63381e7abb3d22d46ba1b8f7160abdf9b7bb6b57e2064dea205
|