Skip to content

Releases: TorchDSP/torchsig

TorchSig v0.6.0

21 Oct 18:35
Compare
Choose a tag to compare
  • 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)
  • 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
  • Python >= 3.9

TorchSig v0.5.3.1

24 Sep 17:56
Compare
Choose a tag to compare
  • Fix Github LFS bandwidth limits with gr-spectrumdetect/examples/detect.pt file

TorchSig v0.5.3

06 Sep 00:47
Compare
Choose a tag to compare

Closed the following issues:

  1. Fixed: incorrect bounding boxes, too large in frequency, both G/FSK and others.
  2. 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.
  3. 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"
  4. Fixed: impaired dataset generation bug - RandomTimeShift resulted in signals being shifted "out of bounds"
  5. Validate all notebooks are working properly
  6. Fixed: frequency hopper functionality.
  7. Fixed: OFDM modulator creating incorrect bounding box on mc/deterministic-modulators.
  8. Fixed: OFDM bandwidth wrap around +-fs/2 boundary
  9. Upgrade: replace sp.resample_poly() within synthetic.py with a higher quality resampler
  10. Upgrade: PFB resamplers need to use fred harris approximation for number of branches
  11. Released: gr-spectrumdetect: The out-of-tree (OOT) module gr-spectrumdetect incorporates a YOLOv8x TorchSig ML model to detect signals in real time.
  12. Upgrade/Release: 05_example_wideband_yolo_to_disk.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
  13. Release: 06_example_wideband_yolo.ipynb: This notebook showcases using the WBSig53 dataset to train a YOLOv8 model.
  14. Release: 07_example_classify_yolo.ipnyb: This notebook showcases using the Sig53 dataset to train a YOLOv8 classification model.

@pvallance, @MattCarrickPL

v0.5.2.1

13 Jul 16:38
Compare
Choose a tag to compare
  1. Merge issue with previous release: Fixed pickle issue causing OOM issues. No longer stores tensors to db
  2. Removed unused print statements add collate_fn in generate_sig53.py to avoid torch Dataloader from converting the labels to tensors.

@pvalance

TorchSig v0.5.2

09 Jul 02:19
Compare
Choose a tag to compare
  1. Fixed pickle issue causing OOM issues. No longer stores tensors to db
  2. Updated pytorch and timm dependencies to pytorch v2.3.0 and timm v1.0.7
  3. 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/
  4. 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
  5. 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.

@MattCarrickPL, @pvallance

TorchSig v0.5.1

07 Jun 14:20
Compare
Choose a tag to compare
  1. Massive dataset generation performance improvement utilizing multiprocessing. 10X faster dataset generation when using > 32 workers.
  2. Improves resampling accuracy and reduction artifacts, reducing sidelobe levels from nominally -60 dB to about -90 dB
  3. utils/dsp.py convolve now discards transition regions from filter output
  4. 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
  5. Better implementation of FSK modulation using polyphase filter bank.
  6. 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.

@pvallance, @MattCarrickPL

TorchSig v0.4.1

27 Jul 16:45
Compare
Choose a tag to compare

What's Changed

TorchSig v0.4.0

13 Jun 13:20
Compare
Choose a tag to compare

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

22 May 15:04
Compare
Choose a tag to compare

What's Changed

Full Changelog: #109 ## What's Changed

TorchSig v0.3.0

05 May 15:02
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.2.0...v0.3.0