/r/DSP

Photograph via snooOG

Anything related to digital signal processing (DSP), including image and video processing (papers, books, questions, hardware, algorithms, news, etc.)

Interesting technical papers or articles are particularly welcome!


Recommended subreddits

/r/DSP

23,455 Subscribers

0

Career advice from firmware engineer.

I was graduated in 2008 as an electronic engineer in UK. I was interested in DSP and my project was digital communications. After graduation, I went back to my home country and struggled to find a DSP job, and eventually went for DSP firmware jobs. There aren't much DSP related task in those jobs. I was thinking of going back to UK as there were much more DSP career there. Long story short, I have now settled in UK with ILR after working as embedded software engineer for 5 year. I find myself kind of stuck and unable to find a good DSP job opportunity to move on. DSP jobs in UK seems scarce as compare with 5 to 10 years ago. Do you think it's a good move to jump to DSP from embedded software. If so which direction to go? I'm into digital telecommunication or audio.

0 Comments
2025/01/17
07:22 UTC

4

DUC and Interpolation use on RFSoC

Hello, i want to generate a sine wave with frequency 1.2GHz. Is this possible that i will generate a signal in few MHz like 100MHz than DUC will increase its frequency. I am new to signal processing so dont have clear image of DUC what i know is it can up sample the input signal so my doubt is can it increase freq also? Also I am using ZCU111 RFSoC. if anyone have done such work before please help me. Also i have to use only PL part of the RFSoC.

2 Comments
2025/01/16
04:07 UTC

7

Plate Reverb Dispersion

Does anyone have any idea on how to replicate plate reverb dispersion in an algorithmic reverb? I've had success modeling the dispersion within a spring reverb where the high frequencies take longer to travel through cascaded allpass filters in a fb loop. However, this method does not work in the opposite way, that is to slow down the travel of low frequency. I can't find any resources on how folk go about doing this but I've seen it done in many a lot of vst such as Valhalla Plate.

2 Comments
2025/01/15
17:05 UTC

5

Can someone explain me what the graph of different PSD mean?

This is the graph. I think I understood the demonstration to get both the general definition of PSD and the one for unipolar NRZ, but I still don't get how to read these graphs. Can someone enlight me?

9 Comments
2025/01/15
15:32 UTC

10

Embedded DSP Software Books and Resources

I am interested in learning more about embedded DSP software. I have a modest background in audio DSP, and I have been reading Making Embedded Systems by Elecia White. I would be really interested in putting the two together, or at least reading about how that would work. Any recommendations or resources on the topic would be much appreciated!

4 Comments
2025/01/14
22:35 UTC

2

Choosing a workflow for developing and testing algorithms and programs in C/C++

Currently working on a bunch of audio projects for a low end mcu, one being speech coding, which further proved I need better workflow for testing/tuning the algorithms. Current one is the IDE for the microcontroller and an online c++ compiler for writing and testing the individual pieces and whole algorithm. Also visualizing the results on plotly online. Biggest problem is not being able to hear the results while developing, except for actually flashing my custom dsp board with each change and processing the audio with it, that's a huge hassle since I have to constantly reconnect audio and programming cables.

I usually start mocking up concepts in a DAW or pure data, but in some cases the only way to test a theory is directly writing it in C.

Basically I need a way to write and test dsp programs in C/C++ on windows or mac os with a simple audio interface api and console output for debugging. Also I really want to avoid Visual Studio.

2 Comments
2025/01/14
19:22 UTC

13

Learning Materials for Adaptive Algorithms, Estimation, and Detection Theory

Anybody have any thoughts on this course on statistical signal processing?.

Part of my job is developing adaptive beamforming algorithms, i know how to code the algorithms from papers/book, feed the data and interpret the result but most of the time i wonder how exactly this adaptive/estimation process even work, i can understand some of it but not all of it and it takes a lot of time going through papers and articles to comprehend it and even then, i am not even sure i understood it.

I realized i have a shaky foundation in this, which is why i plan on taking a course or a couple of lectures. I am looking for a course/book that goes through the fundamentals of adaptive, estimation and detection theory, any suggestion?

10 Comments
2025/01/14
17:14 UTC

1

Spotify Audio Analysis Alternative

1 Comment
2025/01/14
14:23 UTC

2

Increase in energy spectral density with distance from digital blast vibration signal?

Hello guys!

I have a question about fast fourier transforms and energy spectral density. I have vibration recorders at distance 5, 10 and 15 m from a blast with explosives. The vibration recorders are placed directly at bedrock to measure vibration velocities. When i process the signal from velocity and time to energy spectral density and frequency, i can see that the energy increases for some frequencies at increasing distance? I would greatly appreciate som input on whether this can be correct? My initial though was that i had processed the signal wrong, as i was expecting the energy spectral density to decrease as the seismic waves traveled through the ground?

Thanks in advance for any replies and help!

13 Comments
2025/01/14
12:18 UTC

17

Pursuing a DSP Career as an Electrical Engineer?

I am an Electrical (Electronics and Communications to be exact) Engineer undergraduate and apart from my coding classes the ones that I enjoy the most are revolves mostly around signal processing. I am currently studying AI/ML by myself on the side as well with some CV projects.

Also I was really into DAW’s and making electronic music when I was a kid. So taking the major subfields of EE into account, I feel like DSP is the way to go for me. However I can also go for a SWE route and not really get into this rabbit hole even more, as some people in this subreddit said it’s hard work for less money than a SWE.

So I have a few questions.

Would you recommend pursuing DSP? Are you happy with it?

Does it cross boundaries with ML? Can I do AI/Data stuff with it?

How is the competition and pay like, is it stressful?

16 Comments
2025/01/12
22:32 UTC

6

Do pretty much all real-time audio systems contain undefined behavior?

Apologies in advance because this question is about audio programming in general, not dsp specifically

In most (all?) real-time audio programs, a common artifact caused by a slow process function is audible crackling and popping. Does this imply that somewhere in the codebase of pretty much all real-time audio systems, there's some thread performing an unsynchronized read on a buffer of audio samples with the assumption that some other writer thread has already finished its work? I don't see any other way these kinds of artifacts could arise. I mean, what's perceived as a crackle or a pop is just the sound of playback crossing boundary between valid audio data and partially written or unwritten data, right?

If this is the case, then that would obviously be undefined behavior in C and C++. Is my understanding here correct? Or am I missing something

17 Comments
2025/01/12
04:53 UTC

3

Audio Analysis Project Using PCEN. I would greatly appreciate help and feedback, please DM me if you have additional insight.

My project involves various audio preprocessing techniques for classifying lung sounds, particularly on Per-Channel Energy Normalization (PCEN). To create a comprehensive set of labeled audio clips covering a range of respiratory conditions, we combined and augmented two primary datasets: one from the ICBHI 2017 Challenge and another from Kaggle. Using these datasets, we pursued three classification tasks: multi-diagnosis (classification between ), distinguishing between wheezes, crackles, and everyday sounds, and differentiating between normal and abnormal lung sounds. Each dataset was processed using several methods, including log-mel spectrograms, Mel-Frequency Cepstral Coefficients (MFCCs), and PCEN spectrograms. These were then fed into a convolutional neural network (CNN) for training and evaluation. Given PCEN’s noise suppression and enhancement of transient features, I hypothesized it would outperform spectrograms and MFCCs in capturing subtle lung sound patterns. While validation loss during training was often better with PCEN, evaluation metrics (precision, recall, F1-score) were unexpectedly lower compared to spectrograms. This discrepancy raised questions about why PCEN might not be performing as well in this context.

I did a bit more research and was particularly intrigued by an approach to gradient descent self-calibration for PCEN’s five coefficients. I’d like to explore implementing this in my project but am unsure how to apply it effectively. I made it work, but the val accuracy and loss are stuck around 88% which is substantially lower than all the other methods.

Some potential reasons for PCEN not performing as well include:

  1. Data imbalance between diagnostic categories may skew results.
  2. Suboptimal parameter values for PCEN coefficients that might not align with the nuances of lung sound data. (The parameters I have currently for PCEN are, α=0.98, 𝛿=2.0, r=0.5, ε=1×10^-6, and T=0.03.)
  3. Given the unexpected validation vs. evaluation performance gap, there may be possible inaccuracies in my actual evaluation metrics.

I would be incredibly grateful for your insights on applying gradient-based optimization to PCEN coefficients or any recommendations to improve its application to this dataset. I also have a GitHub repo for the project if you would like to take a look at it. DM me if you're interested in seeing it.

Thank you all for your time, and I look forward to hearing your thoughts. If you have any questions please let me know.

0 Comments
2025/01/11
19:43 UTC

5

Up sampling and Downsampling Irregularly Sampled Data

Hey everyone this is potentially a basic question.

I have some data which is almost regularly sampled (10Hz but occasionally a sample is slightly faster or slower or very rarely quite out). I want this data to be regularly sampled at 10Hz instead of sporadic. My game plan was to use numpy.interp to sample it to 20Hz so it is regularly spaced so I can filter. I then apply a butterworth filter at 10Hz cutoff, then use numpy.interp again on the filtered data to down sample it back to 10Hz regularly spaced intervals. Is this a valid approach? Is there a more standard way of doing this? My approach was basically because the upsampling shouldn’t affect the frequency spectrum (I think) then filter for anti-aliasing purposes, then finally down sample again to get my 10Hz desired signal.

Any help is much appreciated and hopefully this question makes sense!

35 Comments
2025/01/11
03:49 UTC

4

DSP Programming

Hello all,
I want to learn dsp programming but don't know where to start. I couldn't find much help on the internet except the datasheet. Could you guys help suggest a source to learn the installation, coding, of dsp tms320f28335?

13 Comments
2025/01/10
15:52 UTC

4

Super Resolution Implementations? (MUSIC, SVD, etc)

I need to implement MUSIC in C++ and am trying not to reinvent the wheel. Is anyone aware of any C++ opensources of the MUSIC algorithm for sinusoidal estimation? If not, are there any good opensources that have some of the pieces needed for the algorithm built up, like an a function to do the SVD / Eigenvalue retrieval?

Thanks!

9 Comments
2025/01/10
14:46 UTC

15

Good online lectures or sources for learning Probability&Stochastic Process

EEE student here, and I’m really interested in fields like DSP and Communication. I think I have a good ubderstanding of concepts from the Signals and Systems course, but I’m weak in Probability. Both fields rely on it heavily, and it’s super useful for a lot of things. So, I’ve decided to properly learn it this time (didn’t really bother learning it during the course and barely passed).

Do you guys know any lectures or video series that could help? Also, is there a book you’d recommend? I was considering Probability and Stochastic Processes by Roy D. Yates.

12 Comments
2025/01/09
22:15 UTC

6

Regarding windows, why are the width of the main lobe and level of the sidelobes a concern?

Heya, I hope this isn't an overly common beginner question, I just wasn't able to find satisfying explanations online. I'm aware my issue is likely a result of a misunderstanding about windowing, and I would like to clear it up.

As far as I understand, the most ideal kind of window is one with a narrow main lobe and low sidelobes. My textbook goes so far as to say we seek our window to be as close to delta as possible in the frequency domain. In practice, there is a tradeoff between the two, which is really the tradeoff between frequency resolution and dynamic range. If we take the rectangular window for example, even though it seems perfect from a time domain perspective, it is largely undesirable because its high sidelobes in the frequency domain cause a poor dynamic range. My question is, why are those things even desirable?

It is inevitable that the window changes the frequency content. It modifies the signal so only a short snippet of it is captured. That's a modification in the time domain. And because there is a 1-1 mapping between time and frequency representations, the frequency content of the short snippet must be modified as well. For example, if we take a window at some point in time, and the sidelobes cause an amplification of some weak frequency, it means that in that time and only in that time, that frequency really is stronger than usual.

All in all, it seems to me that the undesirable corruption introduced by wide main lobes and high sidelobes is a necessary part of windowing. Basically, it's a feature, not a bug. So why are they considered undesirable?

10 Comments
2025/01/09
17:17 UTC

1

Seeking Mentorship

I am approaching my final semester of Electrical engineering undergrad at the University of Maryland and am starting to apply to various graduate programs with an intended focus on Signal Processing / Communication. (Is grad school the right move?)

I’m submitting to the reality that I know relatively nothing in the grand scheme of the subject beyond what these intro/elective classes have taught me.

I have taken basic signals and systems courses and just finished a communication system elective course. Next semester I am taking a DSP course and Communication system design lab where we are using C on actual DSPs. I’ve also been doing independent learning on embedded C and will be starting C++ soon. (I’ve taken a controls elective and will be taking a machine learning with MATLAB elective but I know those are separate subjects)

I would love the opportunity of an apprenticeship. I am seeking a mentor, somebody with a high level of understanding or mastery of signal processing to guide me down the right path and teach me from their experiences. Thank you

10 Comments
2025/01/07
23:30 UTC

1

E0 or A7? Spectral frequency displays

If you took a tone of 3520Hz, snipped out a 0.03 second section and repeated it 20 times per second, would a spectral frequency display (like that in Adobe Audition) show it as a dotted line of A7 notes, or a solid line around E0? Or both?

.. I could do this experiment, but wonder whether anyone knows how it works?

I've been thinking about spectral frequency displays generally - they seem to plot frequency against time, but it doesn't really make sense - because frequency is already in the time dimension, right? I guess they must analyse the frequencies across small samples of time and interpolate between them to kind of 'fudge' an x/y view?

3 Comments
2025/01/07
18:10 UTC

11

Affordable DSP boards?

I am quite new with DSP in general, so I need help from someone with more experience.

I was planning to build a hardware sampler with gui using a Raspberry Pi 4 or 5 but after doing some research I came across statements that Pi is not good for real-time DSP and was introduced to RTOS. Later I wondered if I can use Pi without an OS and actually right my own firmware that would do only stuff I need it to do (for performance).

Note: I don’t know how to do any of this stuff, but I am fine with spending some time learning it.

Now my question is: am I looking at completely wrong things here? Is Pi even the thing one would look into with this kind of learning projects in mind? Any suggestions and advices would be appreciated.

25 Comments
2025/01/07
07:51 UTC

1

Waveform-like Shapes Within Spectrograms?

Pardon my lack of fluency in DSP, but I hope you all could provide some direction in where I should go with an inquiry.

Is it a common occurrence to see a waveform shape within a spectrogram? My Original thought is no since Spectrograms are just plots of all the frequencies a sound input has at a given time, but with how some video games hide secrets within sepctrograms, I do not know if what the Tunic community had found is truly a waveform that can be extracted from a spectrogram.

Are waveforms the result of how some sound produced? Or does it need to be manually crafted within the audio source for it to show up?

12 Comments
2025/01/06
20:12 UTC

14

[HIRING] DSP SIGINT Engineer

HIRING DSP SIGINT Engineer

Gainesville, VA | Denver, CO

UP to $220,000

⚠️ Must have a U.S. Security Clearance

• Languages used include C, C++, Python, Java, as well as GUI related technologies.

• Strong candidates will have at least three of the following qualifications:

• Bachelors or masters degree in Electrical Engineering

• Demonstrated experience with C/C++, GNU Radio, X-MIDAS, Python, or JAVA within Unix/Linux programming environments

• Digital Signal Processing (DSP) background with strong understanding of communication systems design and theory

• Experience in communications or SIGINT systems development and test

Highly Desired:

• Experience with CUDA and GPU HW acceleration for DSP applications

13 Comments
2025/01/06
17:09 UTC

22

How to prepare for a DSP audio internship interview in C++

I have an interview coming up for a DSP audio internship in a 5 days. While I'm well-versed with DSP using python and MATLAB, there may be questions in C++. I have rudimentary knowledge in C++ while working within JUCE framework for making audio plugins.

After looking online, it seems like questions would be related to fixed point coding, floating point representation and memory optimization. Are there any resources of quick courses I could take that are audio specific and deal with these topics so I can brush up on these concepts?

22 Comments
2025/01/05
23:46 UTC

1

Looking for recommendations for components to build a compact and reliable 2 or 4-channel EEG device (bipolar)

Hi everyone,

I’m working on designing a small, reliable 2 or 4-channel EEG device that can function as a bipolar system without a reference electrode. The focus is on precision, minimal noise, and compactness, as the device is intended to be worn continuously and operate outdoors.

I would like recommendations for:

  • Chips: Which ADC or other chips are best suited for a reliable 2- or 4-channel EEG system? (Compact size and low power consumption are key.)
  • Noise reduction: What components or techniques should I use for effective noise reduction (e.g., shielding, filters, etc.)?
  • Other essential components: What additional parts (e.g., capacitors, amplifiers, or filters) are crucial for achieving a clean signal in a compact design?

I’m particularly looking for solutions that are practical for a small PCB design. The device is intended for real-time data processing, so any advice on suitable microcontrollers would also be greatly appreciated.

Thank you for your help and expertise!

2 Comments
2025/01/05
21:25 UTC

17

What sort of jobs to look out for considering there aren't a lot of them for DSP engineers

Hey everyone!! I have a strong interest in DSP, and have been meticulously studying and working on projects related to it. I was just casually checking for DSP/sp engineering jobs, and i literally didn't find any. While, DSP was mentioned as one of the skillset, it was never in the job title.

Now that I'm good at the fundamentals of dsp, I have no idea what to navigate to, there are embedded, ic design, pcb, vlsi but I still really want to do something that aligns with DSP. Please let me know if I'm missing something, any and all advice would be greatly appreciated!

32 Comments
2025/01/04
21:41 UTC

12

This is from Jon Dattorro 1997 paper. The bandwith constant is said to attenuate high frequencies, but wouldn't multiplying by the negative of bandwith actually boost the signal at the Nyquist frequency instead of attenuating?

7 Comments
2025/01/04
17:05 UTC

5

Statistics course related to DSP: Bayesian Statistics or Time Series Analysis?

Doing a statistics minor on top of an EE degree, and plan to apply to grad school. I already have courses in probability, data analysis, random processes, probabilistic reasoning, and machine learning. I was wondering if Bayesian statistics or time series analysis is more relevant to learn.

5 Comments
2025/01/04
13:12 UTC

16

Maths for DSP

Hi, I have a common (I guess) problem: To understand DSP as good as it should, we need to be familiar with math (linear algebra, calculus, probability theory),

Could you be so kind and suggest the roadmap(don’t like this word but it’s the easiest way to describe it) and most useful books, which really helped you to get through it?

I am on my 3d year of Bachelor Degree and now we do mostly engineering, practical things and I feel like I am forgetting the math(probably because my first year was chaotic and I hardly passed all the exams; and to be fair, I don’t think teachers and courses related to math that I had, were inspiring me, like it was with DSP, Modulation and Electromagnetism Subjects). I am really interested in it, but scared to choose wrong materials to learn and just lose my time. Thank you for your replies and suggestion!

8 Comments
2025/01/03
17:42 UTC

11

Decent dsp knowledge from classes but horrible programming skills, what kind of projects should I work on that can help me?

Title

13 Comments
2025/01/02
16:36 UTC

10

Oscillator hard-sync - overlapping polybleps question

I'm trying to build a hard-synced polyblep oscillator. The amount of resources for this is pretty limited online, and I feel like, I'm pretty close to my goal, but there's a final thing I cannot solve.

I have an issue with overlapping BLEPS, and I can't get my head around a solution. The issue is very disturbing at higher master oscillator frequencies and is less audible on lower ones. I've recorded a small video that showcases the issue:
https://youtu.be/CEfn0LMmjGk

It can be seen on the scope called BLEP, that the effect appears when two BLEP's overlap (the blue and orange ones).

I'm programming the oscillator in LUA (I'm not a coder anyway), since Alpha Forever has a LuaJIT compiler, and this allows me for quick prototyping and measuring. I'm calculating two BLEP's. The size of the BLEPs is 4 samples (that's why I have to mix them with 2 samples delay).

    local F={F1,F2}
    local p2=phase[2]
    for i=1,2 do
        inc[i]=F[i]*sRR -- calculate the incremental
        inc[i]=min(inc[i],0.25) -- limit the incremental
        phase[i]=phase[i]+inc[i] -- update the phase
        flip[i]=trunc(phase[i]) -- if phase>=1 then flip=1
    end
    if phase[1]>1 then
        phase[1]=phase[1]-1 -- reset phase 1
        d[1]=phase[1]/inc[1] -- calculate the intersample position of the phase crossing 1
        phase[2]=d[1]*inc[2] -- reset phase 2 with respect to phase 1
        scale=p2-phase[2]+inc[2] -- calculate the scaling factor for the blep based on the new value of phase 2
        polyBlep(blep[1],d[1],blepIndex,scale) -- calculate the blep
    elseif phase[2]>1 then
        phase[2]=phase[2]-1 -- reset phase 2
        d[2]=phase[2]/inc[2] -- calculate the intersample position of the phase crossing 1
        polyBlep(blep[2],d[2],blepIndex,1) -- calculate the blep
    end
    y=z[2]-blep[1][blepIndex]-blep[2][blepIndex] -- calculate the output
    for i=1,2 do
        blep[i][blepIndex]=0 -- reset the blep
    end
    z[2]=z[1] -- sample delay
    z[1]=phase[2] -- another delay
    blepIndex=(blepIndex%4)+1 -- increment the blep index
    return y*2-1
7 Comments
2025/01/02
11:47 UTC

Back To Top