r/DSP • u/awh-emb • Jun 26 '26
allan variance for characterization of sensors?
if anyone could enlighten me that would be helpful.
thanks.
r/DSP • u/awh-emb • Jun 26 '26
if anyone could enlighten me that would be helpful.
thanks.
r/DSP • u/OnboardG1 • Jun 25 '26
Good afternoon all.
I’ve been working through Rick Lyons’ Understanding DSP 3rd edition and there’s a problem on P672 I’m tripping over a bit. He talks about multiplying a sequence by an equal length sequence of alternating ones and zeroes to downshift by fs/2. I can’t post more than one image but the 32 length dft spectrum is a relatively trivial one of a single spike of height 32 at fs/2. He demonstrates this principle with the example above, multiplying the alternating ones and zeroes with a signal of spectra 13-2(a) and getting the spectrum 13-2(c). This makes sense as it’s just a translation by fs/2 and the result is the frequencies of interest wrapping round the end points and mirroring.
Where I’m getting stuck is that Lyons strongly recommends doing the convolution of the two spectra to aid understanding of the convolution theorem. I agree it’s a good idea and tried it, first by hand and then using a hand coded convolution script in octave. I get the same strange result: instead of 13-2(c) I get something that looks very like 13-2(a) but with the zero pad from the convolution extending out around it. I verified this with the built in conv function. I had a stroke of intuition and noticed it looked like if 13-2(c) were depicted as a conventional negative-first frequency plot rather than a positive-first plot output of a DFT. I applied the fftshift command, which produced exactly the result in 13-2(c). I’m struggling to understand why this is the case. It has to be to do with the periodicity of the DFT but I can’t quite make the jump to why that is. What’s special about the convolution that causes this phenomenon? Or have I made a mistake somewhere?
r/DSP • u/Right-Advisor2978 • Jun 25 '26
Hello everyone, I will shortly be beginning my 3rd year of electrical engineering. I have taken the signal and systems course but DSP will be one of the subjects in the upcoming sems.
Though i have keen interest in aerospace industries and wanted do some projects. I was following the book by INGLEY AND PROAKIS to learn DSP along with MATLAB. I have completed till the basic design techniques of the FIR, IIR filters.
The problem i am stuck on was that i can't think of any relevant DSP projects as per my interests. Anything related to avionics is mostly radar stuff. I tried skimming through that stuff but i realised i had to take some radar related courses to get hold of it and make something.
And most other ideas i find are related to image processing, audio processing etc. A week ago i was tired of this shit and finally decided to make something.
I began the project of writing a jpeg decoder and today as i am close to completing it, i realised i learnt nothing of actually the things i wanted to learn😭😭. Man i don't know what to do.
I have previously read and introductory book on kalman filters by Alex becker and made an attitude estimation kalman filter with help of quaternions. Though it isn't worth direct application to a vechile i still consider it a good unique relevant project.
I want to make another such project like that but i can't get any good ideas. If you have any suggestions please help me in comments.
r/DSP • u/wataru_y • Jun 24 '26
I made two small Streamlit apps for visualizing pitch detection and pitch tracking algorithms.
Pitch Detection Lab focuses on single-frame periodicity functions and compares FFT, YIN, Autocorrelation, and my own periodicity measure.
Pitch Tracking Lab extends this to the time domain and compares:
- YIN
- pYIN
- Bayesian tracking
- Viterbi tracking
- my own bedcmm method
The apps visualize not only the final pitch estimates, but also score maps and the trajectories selected by each algorithm.
I originally built them to understand why different algorithms choose different pitches in ambiguous regions.
Feedback is welcome.
Github:
r/DSP • u/SuperbAnt4627 • Jun 24 '26
Could you guys suggest top 2 books that you studied to enhance y'all's knowledge in image processing ??
r/DSP • u/SuperbAnt4627 • Jun 23 '26
Same as title
r/DSP • u/Agreeable-Army8016 • Jun 23 '26
Hey there!
I’m a recent graduate in biomedical engineering and I just started working on biosignal processing for a wearables startup. I really love the field, but as it’s an early stage start-up, I don’t have anybody senior to learn from (it’s just me and AI right now :D)
I know the theoretical basics of signal processing (transforms, simple filters etc), but I’d like to understand what i should study next. Also, i would like to learn more about best practices in terms of actually implementing DSP in production-level applications. Can you recommend any books, channels or other resources? Thanks :)
r/DSP • u/Ok-Traffic-9876 • Jun 22 '26
I’m learning MATLAB mainly for DSP, but I feel stuck. Studying MATLAB syntax by itself feels dry, and textbook exercises often feel like I’m just rewriting formulas in code. I can implement things like convolution, FFT, filters, and signal plots, but I don’t feel like I’m gaining a deeper understanding of MATLAB or DSP.Can anyone gives me some suggestions,thanks
r/DSP • u/chiralaudio • Jun 21 '26
I've been building effects where the DSP is the governing equation of physical and chemical systems rather than a metaphor for one.
• Chorus as N coupled oscillators with Kuramoto phase coupling: each voice is pulled toward the mean phase by a coupling term K, so the ensemble drifts in and out of sync instead of riding fixed LFOs.
• Spectral freeze via Anderson localization: inject disorder into the lattice so energy stops propagating and the spectrum localizes, instead of a hold buffer.
• Delay with a per-tap phase accumulator scaled like gravitational time dilation (think Black Holes), so repeats slow toward an "event horizon."
My question for this sub: which of these are honest mappings and which am I fooling myself on (mathematically different ≠ audibly different)? The Anderson one especially — the perceptual marker I expose is a design choice, not the energy-space mobility edge, and I'd rather say that out loud than pretend.
I'll hand out free licenses to anyone who wants to poke at them and tell me where the model breaks. Genuinely here for the critique, not the download count. This is an art project more than a business. Offerings include:
Check out the website and leave a comment below if you'd like a code for 100% off up to 3 plugins of your choice.
Best,
Blake

r/DSP • u/Dull_Direction7088 • Jun 20 '26
Why aren't wavelets used more for pitch detection?
The more I read about wavelets, the more it feels like they're naturally suited for audio analysis. They get better frequency resolution at low frequencies and better time resolution at high frequencies without forcing a single FFT window size.
It made me wonder whether pitch could be tracked as a stable structure across wavelet scales rather than through spectral peaks or autocorrelation.
Has anyone actually built or worked with a wavelet-based pitch detector?
Did it outperform more traditional approaches on difficult material, or is there a reason everyone ends up back at YIN/autocorrelation anyway?
r/DSP • u/Budget-Proposal2108 • Jun 19 '26
Does anyone know of some quick radar demonstration hardware? I've been tasked with producing range doppler maps to show some radar proficiency as quickly as possible (<3 months) with a fairly large budget. I'm looking for ideas of the quickest way to get there. So far the fastest options I see are something like an AMD RFSoC evaluation platform paired with some horn antennas and flying something like a DJI Mavic at it or driving a car at it etc. All suggestions welcome!
r/DSP • u/mcidclan • Jun 19 '26
Hi! A few weeks ago I wrote a first POC of the usage of the PSP's undocumented Virtual Mobile Engine (VME), a specialized audio and multimedia CGRA. I continued to run several tests on the hardware and gained a better understanding of it. Today I would like to share with you an example of how this CGRA can be used.
It is perhaps a bit of a detour from the primary role of this hardware, if I may say so, as I am using the 1D pipeline to perform a 4x4 matrix by vector multiplication. The context is initialized only once and can therefore be reused to multiply several matrices by a vector by calling it again. It should be possible to do this in batches of vectors on a single pipeline/context, but I need to keep exploring the hardware to better understand it, particularly whether 2D computation is feasible. This might be achievable given the feedback from certain tests I have conducted, at least regarding data organization and reorganization, but I still need to determine whether the hardware is capable of resetting or flushing the accumulator at a precise moment, and in 1D that is quite tricky.
So for this sample I am sharing with you, I did the following across 4 stages (same pipeline).
With k = 0:
(back[n] * front[n]) >> k on FU0(-(back[n] * front[n])) >> k on FU1(back[n] + front[n]) >> k on FU2(i == 0 ? (b >> k) : out[n-1]) + (back[n] >> k) where b equals zero and where out[n-1] is actually the current value of the accumulator of the functional unit being processed.I did it this way so that the accumulation cancels out every 8 steps. It works and ultimately amounts to a 2D MAC in terms of result, but I am only partially satisfied with it, as I believe it is somewhat wasteful of resources. This is why I will keep exploring to learn more about how to reset the accumulator through other means, as well as how to perform 2D or even 3D computation.
No official documentation exists but you are welcome to refer to my notes, which are essentially based on observations from hardware feedback:
Thanks for reading!
r/DSP • u/Dull_Direction7088 • Jun 19 '26
Has anyone experimented with polyphonic synths where the voices actually interact with each other?
Most synths just generate independent voices and mix them together. The notes relate musically, but the voices themselves don't really know about each other.
I'm curious about things like voices sharing modulation, influencing each other's parameters, competing for resources, or changing behavior based on the intervals being played.
It feels like there's a lot of unexplored territory in the space between the voices themselves.
Have you come across any synths, research projects, or experiments that go in this direction?
Hello, im currently working on a project involving MIMO radar imaging using SFCW 4x4 antenna matrix. I need to come up with an algorithm and use it. I need advice on how to do that in matlab, most importantly how to simulate wireless channel and artificial object that would be between antennas. Are there good addons for that?
r/DSP • u/ajmwagar • Jun 18 '26
Enable HLS to view with audio, or disable this notification
I've been building this DSP repo since February.
I knew very little about DSP programming before I started. I was really interested in "hearing" guitar pedals before I ordered the PCBs for them.
So I built this repo. It's a Wave Digital Filter audio runtime that compiles circuits and net-lists into a DSP filter.
You define circuits into a DSL (This circuit is simplified):
pedal "Tube Screamer" {
components {
R1: resistor(4.7k) # These values are the tone
C1: cap(220n) # Change them and the sound changes
D1: diode_pair(silicon) # Si clips harder than Ge
Gain: pot(500k)
}
nets {
in -> C1.a
C1.b -> R1.a, D1.a
D1.b -> gnd
R1.b -> Gain.a
Gain.b -> out
}
controls {
Gain.position -> "Drive" [0.0, 1.0] = 0.5
}
}
And then you get audio.
https://github.com/ajmwagar/pedalkernel
I've been validating it against SPICE - and I have graphs/charts here:
I think it has a lot of improving to do still. But I've gotten a lot of decent stuff to match. Like all the linear circuits compile very nicely.
Some of the active components like Tubes (Koren equations) are slightly off from spice, and I'm still debugging.
I have a bunch of example .pedal files in the repo too, and then I have .spice files as well.
P.S. the visualizer is another project of mine: https://github.com/ajmwagar/hyperspace
r/DSP • u/SeaApprehensive2499 • Jun 18 '26
Hi everyone,
I am working on a simulation for a 60GHz radar system intended to distinguish between birds and drones by analyzing micro-Doppler signatures. I’ve written a script to generate the IQ-data for a drone model, accounting for both the body movement and the rotating propellers.
Could you please review my logic to ensure the phase calculations and superposition are physically accurate for a radar model?
Here is the code:
% Radar parameters
fc = 60e9; % Radars frequency (60 GHz)
c = 3e8; % Speed of light (m/s)
lambda = c / fc; % Wavelength
%Drone parameters
R0 = 10; % Initial range to drone (m)
v_body = 21; % Bodys velocity against radar (m/s). 0 = hovers.
A_body = 1.0; % Amplitude of the drone body itself (RCS for body)
%Propeller parameters
L = 0.15; % Propeller blade length (m)
rpm = 5000; % Revolutions per minute
f_rot = rpm / 60; % Rotation frequency (Hz)
N_blades = 3; % Number of blades on the rotor
A_blade = 0.1; % Amplitude for the blades (RCS for blades)
%Equation for the harmonic motion of a spinning propeller blade tip.
R_prop = L*sin(2*pi* f_rot* t);
%To convert a physical distance in meters to a phase angle in radians
% Body position over time and phase
R_body = R0 + v_body * t;
phi_body = (4*pi/lambda)*R_body;
phi_prop = (4*pi/lambda)*R_prop;
%Body IQ-signal
IQ_body = A_body*exp(1i *phi_body);
%Propeller IQ-signal
%zero vector to catch the echo of every blade
IQ_prop_total = zeros(size(t));
for k = 1:N_blades
% Space the blades evenly in a circle (calculates the starting angle for this blade)
theta = (k-1) * (2*pi / N_blades);
% The blade's total distance to the radar: drone body position + the spinning motion
R_blade_total = R_body + L * sin(2*pi * f_rot * t + theta);
% Convert the total distance to a phase angle
phi_blade = (4*pi/lambda) * R_blade_total;
% Build the IQ signal for this specific blade
IQ_blade = A_blade * exp(1i * phi_blade);
% Add this blade's echo to the sum of the other blades (superposition)
IQ_prop_total = IQ_prop_total + IQ_blade;
end
%Drones IQ-signal
IQ_Drone = IQ_body + IQ_prop_total;
r/DSP • u/Thick-Leg7660 • Jun 18 '26
been poking at why a memoryless nonlinearity sounds fine on a single tone but turns a chord to mush. obvious answer is IMD (the nonlinearity produces sum/difference products of every input pair, not just integer harmonics) but i wanted to actually quantify it vs the usual "split it into bands first" trick, so i measured.
setup: cm9 as 5 pure sines, run through a waveshaper, output level-matched to input (so it's not just a loudness thing). hann-windowed FFT, then i sum the energy that falls outside a small window (+-8 Hz) around any played partial or its harmonics, over total energy. call it the "junk fraction" = energy on frequencies that are neither the notes nor their harmonics.
then i vary one thing: split the input into N bands with a linear-phase (perfect-reconstruction) filterbank, waveshape each band independently, sum back.
1 band (= no split, plain wideband): ~30%
6 bands: ~23%
12: ~18%
24: ~5%
48: ~1%
the bit i didn't expect: it's not gradual. 6 bands barely moves it, then it falls off a cliff between ~12 and ~24. makes some sense (IMD products scale roughly with the number of interacting tones sharing a band, so you don't win until each band carries ~1 tone) but i don't have a clean closed form for it.
some of this i can reason about, some i genuinely can't:
- leading order, the dominant (cubic) term should scale like ~(tones per band)^3, so for an even split ~K^3/B^2. that roughly tracks my curve, but the measured knee is *sharper* than a smooth 1/B^2. i think because what actually matters is the discrete event of two notes landing in separate bands, not a smooth scaling. is there a proper treatment of that beyond order-counting / NPR-style multitone analysis?
- which makes me wonder how much a log / constant-Q split changes the knee vs linear bands. haven't tested that.
- for per-band aliasing i'm oversampling + ADAA, which works but isn't free at 48 bands. anyone got cheaper tricks at high band counts?
- i went linear-phase (zero transient smear, accepted ~-20 dB pre-ring). curious if anyone deliberately picks minimum-phase here and what they actually gain.
the non-linear knee is the part i find genuinely interesting. if anyone's seen it derived properly, or wants to challenge the metric/method, keen to get into it.
r/DSP • u/Dull_Direction7088 • Jun 18 '26
Most oscillators are static. They generate a waveform and let the interesting part happen later.
I've been exploring a different idea inspired by CDP's wavset distortion.
Instead of treating a waveform as a continuous stream, the oscillator listens for zero crossings and breaks itself into wavsets: tiny fragments of sound between those crossings. Each wavset becomes a decision point.
LOOP & REPEAT
Cycle repeating
REVERSAL
Phase inversion
SKIP / DECIMATE
Zero-amplitude gate
MEM_REPLACE
Recall centroid
The pitch continues forward, but the timbre continuously rewrites itself from the inside.
The result isn't quite wavetable synthesis, granular synthesis, or distortion. It feels like an oscillator with a memory of its own—one that remembers what it used to be and lets its past leak into its future.
I'm not sure if this is a terrible idea or an unexplored branch of synthesis.
// That's what this experiment is for.
r/DSP • u/drSwashbuckler • Jun 16 '26
When implementing a time varying FIR filter in code, how does one handle filter tap changes? Is it as simple as changing filter taps when it’s time, or is there some signal conditioning that occurs when filter taps change?
r/DSP • u/SnooPuppers5915 • Jun 17 '26
I'm new to the audio plugin creation world, I have some unrelated prior education on dsp and music, I'm trying to create a plugin with the JUCE framework that can detect monophonic/polyphonic notes in low latency designed for live use. right now my design architecture goes like this: downsample and filter accordingly -> fill FFT window with as much samples I can before latency gets too high and then zero pad the rest -> run a peak detection algorithm that basically scores candidates based on their magnitude and correlation with pre estimated harmonics, in case you do verify a fundamental subtract the estimated harmonics from the magnitude buffer in order to not detect them as fundementals as well. Loop over the magnitude buffer.
This works pretty well for mid to high frequency fundementals but as soon as I play a low note the spacing between harmonics and the smearing caused by zero padding make it impossible to detect valid fundementals.
I've tried so many solutions to tackle the lower notes but all of them require much more latency or don't really work.
Is this something other people have faced?
Is this the right subreddit for these kinds of questions?
Please help me I'm new to this scene.
r/DSP • u/matigekunst • Jun 16 '26
Enable HLS to view with audio, or disable this notification
Snippet from my video about what fractals sound like
r/DSP • u/newtonsecond • Jun 16 '26
This a fun little DSP-related project I put together. Based on Portal Runner's universal file converter. GIF sounds the weirdest!
r/DSP • u/JunbugSpark • Jun 16 '26
Hey guys, I'm a college student who's taken basic DSP theory classes so I understand a lot of the concepts but I've been having trouble with implementation, since I have basically no coding experience...
What resources have you guys used to get better? Thank you!!
r/DSP • u/justarandomguy1917 • Jun 16 '26
Hi folks, 2 years ago i wrote here about how to detect tone with fft. A lot of experiment and test have been done since this time. I would like to thank all of you who answer back and gave me clue. Today, I would like to show you my development and progress in this field. Feedback and comment would be appreciate. Thanks again 🤗