Releases: TorchDSP/torchsig
Releases · TorchDSP/torchsig
TorchSig v0.6.0
- New signals added (53 → 61 total signals)
- New signals:
- FM (frequency modulation)
- AM-DSB (amplitude modulation, double side band, with carrier)
- AM-DSB-SC (amplitude modulation, double side band, suppressed carrier)
- AM-LSB (amplitude modulation, lower side band)
- AM-USB (amplitude modulation, upper side band)
- Chirp Spread Spectrum
- Linear Frequency Modulated Data (LFM-Data, both up and down chirps)
- Linear Frequency Modulated Radar (LFM-Radar, up-chirps only)
- New signals:
- Refactored 53 out of dataset names and codebase
- Sig53 → Narrowband
- WidebandSig53 → Wideband
- Datasets, transforms, example notebooks, ect. updated with new classes listed in torchsig/datasets/signal_classes.py
- Removed iq_samples_per_symbol from metadata
- Optuna integration
- examples/08_example_optuna_yolo.ipynb
- Synthetic spectrogram image dataset improvements
- examples/09_example_synthetic_spectrogram_dataset.ipynb: Generating and using synthetic spectrograms.
- examples/10_example_yolo_annotation_tool.ipynb: New feature to draw SOI bounding boxes in Jupyter notebooks.
- Spectrogram wideband texturing
- Bug Fixes
- Narrowband dataset crashing due to Transforms
- RandomResample
- Frequency Hopper
- Normalize
- Transition bandwidth calculations
- Documentation
- gr-spectrumdetect README
detect.pt
also attached to release if needed.
- README has minimum/recommended specifications
- gr-spectrumdetect README
- Python >= 3.9
TorchSig v0.5.3.1
- Fix Github LFS bandwidth limits with
gr-spectrumdetect/examples/detect.pt
file
TorchSig v0.5.3
Closed the following issues:
- Fixed: incorrect bounding boxes, too large in frequency, both G/FSK and others.
- Fixed: Reports of problem that DescToList tuple transform has a problem in type conversion, being a list vs list-of-lists. Says this causes a crash somewhere in one of the example notebooks.
- Fixed: "rearranged the order in which meta['start'] and meta['stop'] values were being updated in relation to meta['num_samples'] it was causing a new_rate **2 change to the new_start and new_stop variables"
- Fixed: impaired dataset generation bug - RandomTimeShift resulted in signals being shifted "out of bounds"
- Validate all notebooks are working properly
- Fixed: frequency hopper functionality.
- Fixed: OFDM modulator creating incorrect bounding box on mc/deterministic-modulators.
- Fixed: OFDM bandwidth wrap around +-fs/2 boundary
- Upgrade: replace sp.resample_poly() within synthetic.py with a higher quality resampler
- Upgrade: PFB resamplers need to use fred harris approximation for number of branches
- Released: gr-spectrumdetect: The out-of-tree (OOT) module gr-spectrumdetect incorporates a YOLOv8x TorchSig ML model to detect signals in real time.
- Upgrade/Release: 05_example_wideband_yolo_to_disk.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
- Release: 06_example_wideband_yolo.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
- Release: 07_example_classify_yolo.ipnyb: This notebook showcases using the Sig53 dataset to train a YOLOv8 classification model.
v0.5.2.1
TorchSig v0.5.2
- Fixed pickle issue causing OOM issues. No longer stores tensors to db
- Updated pytorch and timm dependencies to pytorch v2.3.0 and timm v1.0.7
- All three foundational modulators now resample to the appropriate bandwidth & perform upconversion to the right center frequency
this creates a much simpler wideband.py, because now it gets a IQ snapshot that requires no additional DSP mods/ - Added in anti-aliasing filtering after upconversion into modulators to minimize the amount of energy that wraps around the -fs/2 and +fs/2 boundary
- Irrational rate resampler in utils/dsp.py which is much higher quality than scipy's resample_poly() implementation
bounding boxes are much tighter in frequency dimension for FSK/MSK.
TorchSig v0.5.1
- Massive dataset generation performance improvement utilizing multiprocessing. 10X faster dataset generation when using > 32 workers.
- Improves resampling accuracy and reduction artifacts, reducing sidelobe levels from nominally -60 dB to about -90 dB
- utils/dsp.py convolve now discards transition regions from filter output
- Randomization rework: now allows parameters to be randomized internally per-process, therefore each signal generated is randomized rather than groups of signals having consistent values
- Better implementation of FSK modulation using polyphase filter bank.
- Initial release of image dataset. It is a wideband synthetic spectrogram dataset that mixes spectrogram images and image processing to build realistic looking spectrogram images with YOLO formatted labels. It includes image generators, image extractors, and image DSP based transforms.
TorchSig v0.4.1
What's Changed
- V0.4.1 by @gvanhoy in #162
Full Changelog: v0.4.0...v0.4.1
TorchSig v0.4.0
What's Changed
- Change README logo if in dark mode by @lboegner in #95
- Start transform tests & minor
RandomTimeShift
optimization by @lboegner in #94 - QAM/PSK Pulse shaping filter transition bandwidth corrected by @MattCarrickPL in #98
- OFDM Modulator filter lengths estimated and bandwidth randomized by @MattCarrickPL in #99
- Tests for visual inspection. by @gvanhoy in #102
- 91 create generation performance benchmarks for each modulation type by @gvanhoy in #104
- 75 examine ofdm generation for potential speedups for sig53 by @gvanhoy in #105
- 74 create a baseline dockerfile to demonstrate installation by @gvanhoy in #108
- np.float -> np.float64 by @gvanhoy in #111
- Initial draft of restructuring transforms by @lboegner in #106
- 45 consider compatibility with torch 20 by @gvanhoy in #115
- Create utils/DSP for DSP-only stuff. by @gvanhoy in #116
- Benchmark and visualize wideband dataset generation. by @gvanhoy in #118
- Migrated to pytest. by @gvanhoy in #119
- Added model instantiation tests for narrowband signals. by @gvanhoy in #120
- 85 gmskgfsk also needs faster filtering due to convolution of long signals with gaussian pulse shape by @gvanhoy in #121
- Add mypy workflow check and fix all mypy-found bugs by @lboegner in #123
- Adjusting modulel by @gvanhoy in #130
- 131 configure package for pypi release by @gvanhoy in #132
- More documentation and examples by @gvanhoy in #134
- 126 create dockerfile and script for generating all versions of widebandsig53 by @gvanhoy in #135
Full Changelog: v0.3.0...v0.4.0
TorchSig v0.3.1
TorchSig v0.3.0
What's Changed
- fixing FSK modulation issue by @MattCarrickPL in #23
- Fixing GFSK modulation by @MattCarrickPL in #29
- MSK Modulation Fix by @MattCarrickPL in #30
- Properly Randomize LPF for GFSK/GMSK Modulations by @MattCarrickPL in #33
- FSK/MSK modulator start at zero phase by @MattCarrickPL in #32
- Add sympy dependency by @awthomp in #34
- 44 create and automate test suite by @gvanhoy in #46
- 42 rrc pulse fixes by @gvanhoy in #50
- 38 automate dataset generation tests by @gvanhoy in #52
- No longer importing everything in init files. This will require u… by @gvanhoy in #53
- Upgraded build system by @gvanhoy in #54
- Updating README since requirements no longer exists. by @gvanhoy in #57
- Convert examples to scripts by @gvanhoy in #59
- Fix imports in Deep Learning Transforms by @gvanhoy in #62
- Introducing DatasetWriter/DatasetLoader/DatasetReader classes for parallelized loading/saving of seeded datasets by @gvanhoy in #67
- Fixing wideband generation notebook. by @gvanhoy in #72
- Making suggested fix to example for device consistency. by @gvanhoy in #73
- Fixed sig53 Train example. by @gvanhoy in #77
- Restoring DETR. Notebook runs in QA environment. by @gvanhoy in #78
- 66 review randomized pulse shaping for fsk-msk by @MattCarrickPL in #79
- Gvanhoy fix filter length by @gvanhoy in #84
- Initial removal of cupy as dependency. Replaced with torch. by @gvanhoy in #86
- Forcing a specific multi-processing context. by @gvanhoy in #88
- Keeping folder to avoid crashes. by @gvanhoy in #89
- Moving estimate_filter_length into datasets module by @gvanhoy in #90
New Contributors
- @MattCarrickPL made their first contribution in #23
- @awthomp made their first contribution in #34
Full Changelog: v0.2.0...v0.3.0