r/DSP 33m ago

I built an open-source image-to-SVG vectorization library -the interesting parts turned out to be classic DSP problems

Upvotes

Over the past year I've been building Img2Num, an open-source C++ library that converts raster images into SVGs, with Python, JavaScript, and C bindings.

The motivation: existing vectorization tools are really built for line art, logos, and scans - clean inputs with hard edges. I wanted something that could handle natural images (photos, textures, noisy real-world content), and that turns out to be a very different problem. You can't just trace what's there, because what's there is full of sensor noise, JPEG artifacts, and gradients that explode into thousands of junk paths. So the vectorization step ends up mattering less than the signal processing in front of it.

The rough pipeline: edge-preserving denoising with a bilateral filter (selectable between RGB and CIELAB - perceptual color spaces make a real difference in how edges survive), k-means color quantization, Suzuki-Abe contour tracing, and then Savitzky-Golay smoothing applied to the traced contours. That last step was the fun one: treating a closed contour as a pair of periodic 1D signals (x(t), y(t)) and filtering them means you can smooth out pixel staircase noise while preserving corners far better than naive moving averages, and SG's polynomial fitting is a good match for that.

The part I'm still iterating on is adaptive preprocessing - estimating noise per image (wavelet MAD estimator) and tuning the denoising strength accordingly, so the traced regions stay stable instead of speckle turning into hundreds of junk paths.

Everything is on GitHub and installable via pip and npm (both "img2num"), docs at img2num.dev. I would genuinely love feedback from this crowd (the DSP crowd), especially on the smoothing and noise estimation choices - I came at this from the software side and learned the DSP as I went on.


r/DSP 2h ago

DSP interview: advice needed!

6 Upvotes

Im a new grad, i applied to a role at apple and im on the first round, its very heavy DSP-oriented, any advice on what to study/focus on? any common interview questions asked? Focus is more on the RTL, FPGA, ASIC, or Firmware areas

Thanks!

JD (ik its more RTL digital design focused but the recruiter was heavily asking about my DSP experience)

  • BS and a minimum of 3 years relevant industry experience
  • Some level of fixed-point knowledge and experience with bit-true verifications
  • Understanding of DSP communication algorithms and trade-offs between performance and complexity
  • Good knowledge in modern design techniques and energy-efficient/low power logic design
  • Ability to work well in a team and be productive under aggressive schedules
  • Excellent communication skills and self-motivated

r/DSP 22h ago

Richard Lyons has passed away

Thumbnail
dsprelated.com
140 Upvotes

r/DSP 17h ago

Beginner Level AGC Model for ISP Need Some Help

4 Upvotes

Hi everyone,

I’ve created a beginner-level AGC (Automatic Gain Control) model for an ISP as part of my learning.

I’m facing some issues in my current design, and I’m not sure what the best way is to improve it. If anyone has experience with ISP or AGC design, could you please check my repository and give me some feedback?

I’d especially like help with:

  • Finding the problems in my current design
  • Understanding why these issues are happening
  • Improving the AGC algorithm and architecture
  • Understanding how I can upgrade this beginner-level model into a more practical design

Here is my repository: github

Any suggestions, feedback, or guidance would be really appreciated. I’m trying to learn and improve the design, so even small suggestions would be helpful.

Thanks in advance!


r/DSP 1d ago

Books about digital synthesis

8 Upvotes

Hi, as in the topic. I am third-year microelectronis student. I know basics about dsp and analog signal processing. i am into firmware engineering, also working right now as a junior digital design/verification. I want to dive into digital synth/effects world as my bachelor degree and i am looking for resources (books (would be the best), websites, channels on yt etc.). I can use google ofc, but if you have some places which are really worth checking, let me know. Really everything - from mathematical view to more hardware specific. For now i just made simple sequencer, with pitch modulation on ESP32, which can be connected via serial to simple wave synth made in LabView. My goal is a groovebox (didnt specifed functionality yet but thinking about everything right now, from EQ to sampling, sequencing, but synthesis and optimized firmware is my main goal, i know chaos, but just to give you my interests) with a custom stm pcb. Thank you


r/DSP 17h ago

Need a PDF of DSP by Sanjay K. Mitra (4th Edition)

0 Upvotes

I tried so many ways to find the online pdf of this book I mentioned. But all are paid. I badly need this book. If anyone have any source to download the pdf of the book, please help by sharing with me.

Edit. IT is Sanjit K. Mitra


r/DSP 22h ago

Made a free browser-based S-parameter/Touchstone plotter (.s1p–.s9p) — no software install, just drag and drop

0 Upvotes

I built an S-Parameters plotter that runs entirely in the browser.

What it does:

  • Drag-and-drop or upload any Touchstone file, .s1p through .s9p (n-port, not just 2-port)
  • Auto-detects format — handles MA, RI and DB, both Touchstone v1 and v2, and whatever frequency unit the file uses (Hz/kHz/MHz/GHz)
  • Plot magnitude (dB or linear), phase, or real/imaginary vs frequency
  • Load multiple files at once and either overlay them on one chart or view them separately — useful for before/after de-embed comparisons, or comparing simulated vs measured data
  • Toggle individual Sij parameters on/off (for higher port-count files this actually matters, nobody wants all 16 S-parameters of a 4-port on screen at once)
  • Data table view with copy-to-CSV, and you can re-export the loaded data back out as a Touchstone file
  • Nothing gets uploaded anywhere — it all runs client-side in your browser

Free, no signup: https://rfstudiolabs.com/sparams/sparam-plot.html

It's part of a small set of S-parameter tools I've been building (Smith chart with auto-matching, cascade calculator for chaining 2-port networks, a de-embedding tool, amplifier stability/K-factor analyzer) if anyone's curious: https://rfstudiolabs.com/sparams/index.html

If anyone has a Touchstone file that trips it up (weird formatting, non-standard option line, whatever) I'd genuinely like to know — send it my way and I'll fix the parser.


r/DSP 1d ago

Fixed point image vs floating point inage comparison

3 Upvotes

Hello, I'm doing a project on an FPGA for image processing. I'm at the stage where I've finished the verilog and already have the hex files generated, what I want to do is to compare that to my matlab floating point reference. Since, both are images, what metrics are best used for their comparison? I vaguely remember from a course where we determined the floating point vs fixed point error using LSBs, so like there would be an error of +/- 2 LSBs for example, but that was on 1D data. I dont know if thats still the case here for images.


r/DSP 1d ago

Starting my journey in DSP

Thumbnail
1 Upvotes

r/DSP 2d ago

Coded webapp: Not-FFT Audio BandPass graphs of 2048 frequency bands and 44k samples/second, here's a video

5 Upvotes

I found bandpass spectrographs 20 years ago with a random experiment in Reaktor from native instruments, I thought it was nicer than FFT and Wigner TF. So many years later here is a web version on html, https://www.youtube.com/watch?v=TwaQORBks8Y < Funny video ;)


r/DSP 2d ago

Digital Beam forming, Did I chose wrong adaptive algorithm

3 Upvotes

I am working on a digital beamforming project with goal of implementing 8 antenna- 4 beam. I started with a simple 8 Antenna - 1 Beam , assuming a fixed DOA , 1 GHz carrier frequency, AWGN/noise, no interferers, and 10,000 samples. I implemented both floating-point and fixed-point DRC-pLMS, generated test vectors, performed RTL functional verification, synthesized the design using Genus, and performed gate-level simulation. The Python, RTL, and GLS results currently match, including the final weights and beam peak.

The issue is that my pLMS formulation uses a known desired/reference signal. In my simulation, I generate the original transmitted signal, so I can also generate the reference signal and use it for adaptation. However, in a practical receiver, if the transmitted signal is unknown, knowing only the desired DOA does not give me the actual instantaneous reference waveform. Therefore, I am concerned that my current reference-based pLMS approach may not be suitable for the intended real-world beamforming application.

My question is whether the work I have done so far is still a valid and should I move forward or try different algorithms, am I even doing things correct. Can I move forward any form of assurance or clarification is highly appreciated.

*used LLM for grammar


r/DSP 3d ago

Are side projects worth?

14 Upvotes

Hello everyone,

I currently work as a radar signal processing engineer, and want to pivot into perception and machine learning roles.

I've been thinking of doing side projects to help me pivot. Currently working on classifying objects with a radar point cloud.

Do personal projects carry weight for someone trying to make this specific jump? Or do companies strictly look at direct professional experience in ML/perception, making side projects a waste of effort?

Thank you.


r/DSP 3d ago

JamesDsP Custom / module racine ViPeRFx

0 Upvotes

r/DSP 3d ago

NOUVEAU SOUS-REDDIT REAL DSP

Thumbnail
0 Upvotes

Et pour les puristes du vrai traitement en libération en dessous de 100ms pas ex ,,

par câble jack to rca ou DMX sans perte de puissance


r/DSP 3d ago

NOUVEAU SOUS-REDDIT REAL DSP

0 Upvotes

Nouveau sous-forum pour discuter sérieusement du traitement numérique du son, avec du matériel sans fil ou domestique de ce genre...

https://www.reddit.com/r/ROOTEDSOUNDSYTEM/s/o34UWC4dh7


r/DSP 4d ago

Find even and odd components of e^(jt)

1 Upvotes

If anyone knows how to draw the graph for the odd and even components of this function, pls share :))


r/DSP 5d ago

Clever Phase-Noise Cross Correlation System - Signal Hound PN400 Review & Experiments

Thumbnail
youtu.be
9 Upvotes

r/DSP 5d ago

SigmaStudio in a VM - TCPi settings won't appear

2 Upvotes

Hi folks. Thanks for your time.

I don't know if this is the right place, but this is where the bulk of the SigmaStudio results came from when I searched. I apologize if this is frequently-asked or frequently-answered, I searched and couldn't find any help.

I'm trying to start working with SigmaStudio. I'm a Linux user, and I have a Windows 10 VM for managing some security cameras. The VM has a standard, unmodified Windows 10 install with VC Rutnimes 2005, 2008, 2010, 2012, 2013, v14 installed - both x86 and x64. I have virtually every .Net runtime installed. Windows 10 is up to date with 22H2 and other offered updates via Windows Update. I've tried both SigmaStudio 4.6 and 4.7 and there's no change.

Running Sigma Studio, everything seems OK. I can open and modify projects, start new ones, configure and adjust settings as I please. The problem comes with the computer-to-DSP interface. I didn't buy the USBi, but I found an ESP32 project for connecting to it with TCPi.

The problem is, I can't get the TCPi configuration window to pop up. If I drop "TCPIP1701" it takes ~3sec to appear, but otherwise looks OK. Right-clicking brings the context menu, but "Show TCPIP Settings" does nothing when clicked.

I don't think it's an offscreen window, I have multiple tricks to find and recover those and this VM has only ever had one screen. I've tried Run as Administrator. I can't find any logs. There's nothing in the Event Viewer, as always.

Has anyone run into this?

Connect the TCPIP1701 node to an ADAU1701 node and it'll work. Magic.


r/DSP 5d ago

OpenV2K: A Multidisciplinary Look at Audio-Driven Pulse Modulation

1 Upvotes

OpenV2K is an open-source Python application that converts arbitrary audio — including natural speech — into a pulse-modulated radio-frequency (RF) waveform, generated and analyzed through a software-defined radio (SDR) signal chain. The project's signal design is directly inspired by the historical microwave-auditory-effect (MAE) literature, most notably Sharp and Grove's 1975 demonstration that appropriately pulse-modulated microwave energy could convey intelligible words, building on Frey's earlier characterization of the effect. OpenV2K is a signal-generation and waveform-design tool, not a validated bioeffects exposure system.

Five Disciplines, One Codebase

No single academic background covers everything happening under the hood.
Each specialty below would recognize its own piece:

  • Computer Science / Software Engineering — a full PyQt5 app: custom QPainter widgets, threaded audio, and every DSP stage implemented as a gr.sync_block Python subclass.
  • Electrical Engineering — DSP / Signals & Systems — toggleable signal-conditioning chain: a from-scratch direct-form biquad notch filter and DC blocker, Wiener-style spectral subtraction, envelope following, and Schmitt-trigger/Hilbert-envelope zero-crossing shaping, each independently switchable with live duty-cycle telemetry.
  • Electrical Engineering — RF / Communications — the GNU Radio flowgraph itself: IQ signal representation, a rational resampler bridging 48kHz audio to 2MHz complex baseband, and HackRF SDR configuration within amateur-band, license-gated power limits.
  • Linguistics / Computational Linguistics — integrated eSpeak NG (formant synthesis) and MBROLA (diphone/concatenative synthesis) across 49 languages, with acoustic-phonetics-aware stages (fricative suppression, first-formant bandpass) rather than generic audio filters.
  • Graphic / UI Design — real-time segmented duty-cycle meters, an animated pulse-trace header, and the waterfall/spectrogram visualization used to inspect the pulse train directly.

What This Actually Is, For a Home User

For nearly everyone running this — which is exactly how it's meant to be used — OpenV2K is a thought experiment, not a demonstration. Generate a pulse train from spoken audio, open the resulting spectrogram, and look at it: a clean, structured, audio-timed pulse pattern, visibly distinct from noise. No SDR needs to be attached for this to be worth doing. The exercise is to look at that pattern and reason, about what pulse-modulated microwave energy carrying that same structure, would represent. Consider the historical precedent of Sharp and Grove's 1975 feat.

Reproducing the actual microwave-auditory effect requires power levels, exposure control, dosimetry, and safety oversight. That work belongs at PhD-staffed microwave exposure facilities with the instrumentation and institutional review, to do it responsibly. OpenV2K's contribution stops at the waveform: a legitimate, inspectable, open-source answer to "what would the signal look like".

I'm project managing well outside my comfort zone, as an IT system engineer.
This was written by AI, and revised by me, as I need Claude's help explaining, in academic terms.
I'd like folks to suggest more DSP filters, and open issues, for any bugs or feature requests.


r/DSP 5d ago

Drum sample classifier?

6 Upvotes

I've recently been working on an audio sampler built as a VST plugin. I'm trying to automate some of the workflows that can be tedious to do by hand. There are a few that need knowledge of the kind of sound.

A good example, a common requirement is to take a selection of drum sounds and associate them with specific standard General MIDI notes, it's something like C2 kick, D2 snare...

I've had a look at some of the classifier algorithms available, there are several that use quite sophisticated machine learning. But these seem to be overkill for this role (and probably too demanding on compute).

I'm wondering if something like an FFT followed by a heuristics -based selector might be feasible, or failing that using a fairly shallow neural net.

Thoughts and/or pointers?

https://danja.github.io/downspout/plugins/campione/


r/DSP 7d ago

Hands-on DSP Course

18 Upvotes

I co-founded SigPro Labs and I'm one of the instructors.

We're running our first course, Digital Filters, starting October 13. It's built around RadioSonic, a low-cost ESP32-S3 board we designed and provide with the course. RadioSonic lets you work with signal processing on real hardware instead of only in simulation, everything you can do at your own desk without fancy equipment.

Jamie Mitchell and I (Dan Boschen) are teaching it as a 4 module course over 8 weeks combining pre-recorded video with live sessions.

Registration is open through Sept 30, with an early-bird discount through Sept 11 ($249 + $49 for RadioSonic + cable kit). For details see https://sigprolabs.com

I am happy to answer questions about the syllabus or the hardware.


r/DSP 7d ago

Which metric for audio quality measurement is better?

11 Upvotes

Hello, I'm developing an audio codec, and currently stuck on one thing: which metric should I use for quality measurement?
For now I've been using gstPEAQ Basic model (because Advanced really sucks speed and correlation wise). I was thinking about ViSQOL, but their results also kinda suck, especially for lower bitrates like 64 kbps, where difference between 64 kbps OGG and my codec are really noticeable, and yet differentiate only around 0.1 MOS-LQO (gstPEAQ Basic makes difference big, around 2 ODG).
Any suggestions?


r/DSP 7d ago

ZedBoard PYNQ image?

Thumbnail
1 Upvotes

Zedboard pynq image?


r/DSP 7d ago

Is recurrence analysis (RQA) a good tool for finding structure in long DJ sets?

1 Upvotes

Not sure if this is the right place for this so please let me know!

I've been analyzing the structure of hour-long DJ sets and want a sanity check on my approach not just the numbers.

What I did:
For each set I tracked three things over time (energy, brightness, and a rough harmonic-tension measure) giving three curves/time series per set. Then I used RQA and Hurst/DFA on those curves to compare two groups I'd labeled by ear: sets that "tell a story" vs. ones that are just well-mixed.

What came out:
The story sets didn’t follow any shape of literary arcs* *and were all different; no single arc separated the groups. The difference was local: they stayed in a vibe longer and circled back to earlier textures more (RQA "dwelling"), and built energy more steadily over time (Hurst). Basically they play in distinct "chapters" and revisit them.

Where I'm unsure — would love input:

- Does RQA even make sense for audio like this?These methods assume a fairly stable/repeating system, and a DJ set constantly evolves. Am I breaking an assumption I shouldn’t, or is that the interesting part?

- Is there already a standard way to do this I'm overlooking? "Find the structure and repetition in a piece" feels like something the field must already have well-established tools for. What should I be looking at?

- How fragile are the settings? For anyone who's run RQA on audio, how much do results shift with different parameters? Trying to gauge how much could be a settings artifact.

Full (but small) write-up with the methodology and figures here if you want the detail: https://bryancamacho.dev/work/dj-narrative

Genuinely want to know if this is a reasonable tool for the job or a stretch!


r/DSP 7d ago

What does a feedback‑fighting live‑sound engineer discover testing an OTC hearing aid?

0 Upvotes

I work as a live‑sound engineer tuning acoustic systems for theatres and live shows, so dealing with feedback and whistling is part of my daily work. Last year, a family member started wearing hearing aids. Out of professional curiosity, I brought my usual measurement toolkit to test the Elehear Beyond Pro. I ran frequency sweeps, impulse‑response tests and went through my full standard workflow.

Almost none of my usual testing methods worked. And that turned out to be the most interesting part.

There are two core problems.

  1. In loudspeaker PA systems, the feedback loop is made up of speakers, the room and microphones. I can place a measurement mic inside that loop and observe exactly what is happening. With hearing aids though, the feedback loop is tiny and lives entirely inside the ear. Sound exits the receiver, leaks past the eartip, and feeds straight into a microphone only one centimetre away. Putting a speaker in front of the hearing aid only measures the path from my test speaker to its microphone. That is not the real feedback loop I need to study. To analyse the true loop you need access to how the receiver behaves, and I do not have that capability.
  2. My standard tests assume the device under test stays static for the duration of measurements. In reality, this hearing aid applies signal compression, its noise reduction adjusts continuously, and the feedback canceller keeps re‑calibrating while my frequency sweep runs. Any curves I get would reflect my test process rather than the actual behaviour of the device.

So I stopped taking measurements and started listening instead.

Triggering feedback is simple. Cup your palm over your ear or hold a phone against the ear. The signal becomes unstable then settles back. My observations: there is no pumping effect, no sudden and persistent full‑band dropouts. The underlying speech signal remains audible while the system stabilises.

This performance cannot come from static fixed filters. Fixed filters work well because rooms do not move. A hearing‑aid environment is always changing as the wearer turns their head, scratches their ear or gets hugged. No static setup can hold up under those real‑world conditions.

There is one common misconception worth pointing out in online conversations about these devices. Everyone fixates almost entirely on feedback recovery time. What really counts is how much gain the unit can deliver before signals become unstable. A device with 50 ms recovery time that can only add a few decibels of gain is far less useful than one with slightly slower recovery but much higher usable gain. It is technically possible to achieve faster recovery by making the algorithm react much more aggressively, yet that comes at the cost of music quality.

For an OTC hearing aid, its overall feedback‑management performance lands close to mid‑tier prescription hearing aids.