<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Isaiah Harville</title>
    <description>The latest articles on DEV Community by Isaiah Harville (@isaiahharvi).</description>
    <link>https://dev.to/isaiahharvi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3309660%2Fa2027a0a-5b03-4ffd-89b3-0cb89dea3d81.png</url>
      <title>DEV Community: Isaiah Harville</title>
      <link>https://dev.to/isaiahharvi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/isaiahharvi"/>
    <language>en</language>
    <item>
      <title>Opensourced ML Signals Toolkit</title>
      <dc:creator>Isaiah Harville</dc:creator>
      <pubDate>Mon, 30 Jun 2025 16:26:09 +0000</pubDate>
      <link>https://dev.to/isaiahharvi/opensourced-ml-signals-toolkit-459n</link>
      <guid>https://dev.to/isaiahharvi/opensourced-ml-signals-toolkit-459n</guid>
      <description>&lt;p&gt;Hey, I just wanted to introduce my opensourced project I've been working on -- &lt;a href="https://github.com/isaiahHarvi/sigkit" rel="noopener noreferrer"&gt;SigKit&lt;/a&gt;. SigKit is basically a toolbox of building-blocks for anyone who wants to play with real-world digitalized analog signals and machine learning without stitching together a dozen custom scripts. Under the hood you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core types&lt;/strong&gt; like &lt;code&gt;Signal&lt;/code&gt;, &lt;code&gt;Impairment&lt;/code&gt; and &lt;code&gt;Modem&lt;/code&gt; so you think in baseband, not in arrays of floats.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NumPy operations&lt;/strong&gt; for things like AWGN, phase/frequency shifts, filtering and SNR/BER calculators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyTorch &lt;code&gt;Transforms&lt;/code&gt;&lt;/strong&gt; that slot right into your &lt;code&gt;Compose&lt;/code&gt; pipeline—so adding noise or fading to every sample in your data loader is a one-liner.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;PyTorch Lightning&lt;/strong&gt; training + evaluation pipeline, complete with a pretrained modulation-classifier. Training your own custom ML model is as simple as running a script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dataset classes&lt;/strong&gt; and synthetic signal generators so you never have to hand-craft a CSV of complex IQ samples.&lt;/li&gt;
&lt;li&gt;(WIP) &lt;strong&gt;GNURadio blocks&lt;/strong&gt; wrapping all of the above, for dropping into a live SDR flowgraph.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Where it can be used
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Research labs &amp;amp; coursework&lt;/strong&gt;: Teaching digital-comm concepts? SigKit turns abstract equations into hands-on Jupyter demos—generate, impair, plot, repeat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modulation classification&lt;/strong&gt;: Training a neural net that actually generalizes over-the-air (instead of “works on simulated data only”).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDR prototyping&lt;/strong&gt;: Need to bounce a signal through realistic channel models before you hit the hardware? Plug in Rayleigh fading, resampling or IQ-imbalance transforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hackathons &amp;amp; demos&lt;/strong&gt;: Spin up a quick notebook that shows off “live” impairments and classification at different SNRs—no C++ or gnuradio-block coding required.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Synthetic data generation&lt;/strong&gt;: When you need thousands of labeled IQ traces for ML, but you don’t have a tone-generator farm or unlimited SDRs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short, if you’ve ever wished for a toolkit that treats signals more like images in PyTorch—letting you compose transforms, datasets, metrics and models in one ecosystem—SigKit has your back.&lt;/p&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
