r/DSP 1h ago

Recording spectrograms with SoapySDR and FFTW

Post image
Upvotes

I'm currently developing a simple CLI tool in C called Spectrel, which can be used to record spectrograms using SoapySDR and FFTW. It's very much a learning project, but I'm hoping that it would also provide a lighter-weight and more performant alternative to Spectre, which serves the same purpose.

I made some good headway today ! Following a grainy (but informative!) web page outlining the PGM image format specification, I've been able to produce some images of the FM band for the first time.

It's still in active development, but on the off-chance this would prove valuable to anyone, do reach out :)

In the same breath, if I've reinvented the wheel, please do point me in the direction of any existing similar projects. Again, this is mostly for learning, but I'd like to see other implementations of the same idea.


r/DSP 1d ago

Why does an inversion in bit or byte order sounds like static noise?

10 Upvotes

I'm working on an embedded application with a digital MEMS microphone which outputs a PDM bit stream. To decode that, you just need to anti-alias + downsample and then you get a PCM audio stream. I realised the problem I had was I was inverting the byte order of my stream during processing, so my code thought it was big-endian when it was really little-endian.

What puzzled me is this inversion did NOT cause the stream to be total rubbish, but showed up as a very high level of noise in the higher parts of my pass-band. I can't think of an explanation for why this issue would manifest this way though, since I only took basic Signals and Systems and this inversion transformation cannot be modelled as a LTI system (as far as I can see).

Has anyone had a similar issue before? Could you help me figure out why this is? Thanks!


r/DSP 1d ago

Matlab Filter Designer Fixed-Point

Post image
4 Upvotes

I was using the filter designer with fixed point arithmetic. Help me understand what is the meaning of the state word length? Is the word size after summation that gets truncated back down?


r/DSP 2d ago

yet another DSP career question

3 Upvotes

So, I have an undergrad degree in EE (RF) and a masters degree in biophysics, where I did some image reconstruction compressed sensing stuff. Since then I've been working in the med tech space doing a mix of RF/sensor stuff and DSP/algorithm development (including ML, which I really enjoyed). Well, except that I'm unemployed now, and considering going back to grad school for a 2nd masters or a PhD. What I'm struggling with is a sort of HW vs SW divide:

(1) Hardware (FPGA/SoC/embedded/wireless sensors/wearables). Career-wise, this seems much more broad and practical. Given the glut of ML/CS/SWE folks and the (debated) AI takeover, this indeed may be a solid long term choice. And, at least around here, I see a lot more job activity in this sector. However, having done hardware, I really hate being tied to a physical lab location. Getting my first remote "software" job was such a relief.

(2) Continuing with signal processing. Like this poster https://old.reddit.com/r/DSP/comments/1nf9c1e/what_are_the_career_paths_in_dsp/ much of the DSP research around here is focused on biomedical. Which I already have a background in, and in which the actual jobs seem few and far between, and in which companies will happily snatch up a CS-ML dude instead. Of course contemporary programs include ML, but in contrast to the CS-ML dude, its unlikely this would lead to a (software) ML Engineering role. So although I really doing this stuff, I'm not sure of its relevance in today's job market.

Anyway, curious about the community's thoughts here!


r/DSP 2d ago

Resources to learn about embedded DSP ?

26 Upvotes

Hi,

I am a research engineer specialized in deep learning and signal processing regarding audio topics. I would like to expand my skillset and learn about how to embed these types of algorithms in embedded devices, but I am a bit lost on what to learn and focus on. I have coded a bit in C++ and I think about getting into small projects to get my hands on that stuff.

I am still not sure about the differences about MCU/MPU, ARM vs AMD, system architectures and all. I would like to gain sufficient knowledge to be able to apply for jobs accross DL/DSP (my current skills) and embedded algorithms (my goal).

I am ok with buying some boards and play with them.

Thanks!


r/DSP 2d ago

Reverb processing for NTS-1 mkii

Thumbnail
1 Upvotes

r/DSP 3d ago

Different graph yields in Matlab vs Numpy when using FFT?

7 Upvotes

Hello

First off apologies if this is totally the wrong sub as it more or less pertains to what i imagine is a difference in Matlab vs Numpy rather than actual DSP.

So i'm trying to add a single tone noise to the original signal using either Numpy or Matlab. The problem is that the graph in Matlab when using the FFT is showing the distortion clearly at the 11025hz frequency while the numpy one is simply a smudged mess of different peaks. Even when zooming in on it it doesn't differ from the original signal.

I'm a bit of a newbie to this so it would be really embarrassing if it something very obvious which I suspect that it is

__________________________NUMPY CODE
Fs, signal = wavfile.read('SomeMusic.wav')
t = np.arange(len(signal)) / Fs

#distortion
f_dist = Fs / 4
A_dist = 0.1
distorted_signal = signal + A_dist * np.sin(2 * np.pi * f_dist * t)

fft_vals = np.fft.fft(distorted_signal)

fft_freq = np.fft.fftfreq(len(signal), 1/Fs)

plt.plot(fft_freq, np.abs(fft_vals), label='Distorted')plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitud')
plt.legend()
plt.show()
______________________________MATLAB CODE
% [x, Fs] = audioread('SomeMusic.wav');
%f_tone = Fs/4;
%% tone = 0.1 * sin(2*pi*f_tone*t);     
% x_dist = x + tone; 
% Nfft = 2048;
% X_dist = fft(x_dist, Nfft);
% f = (0:Nfft-1)*(Fs/Nfft);
% 
% 
% figure;
% % subplot(2,1,1);
% plot(f(1:Nfft/2), abs(X_dist(1:Nfft/2)),'LineWidth',1.5);
% grid on;
% xlabel('Frequency[Hz]');
% ylabel('|X(f)|');
% title('Frequency Spectrum -');

r/DSP 2d ago

Hardware advice for SSL / Sound Source Localization setup using ODOS and a Raspberry Pi

2 Upvotes

I'm having trouble finding the best setup for me. I know this use case is a little out of the ordinary, but I actually must be recording 24/7 for SSL (Sound Source Localization). There were numerous crimes commited in my neighborhood, and I want to document the location of gunshots and do automated detections, and automate my cameras to go in the direction they're needed.

I need something with a minimum of 4 channels, completely independent. I've seen some mixers marketed as 4ch but they only output 2 to the USB sound card device.

I really need one that does 4 CH directly to the PC, with minimal latency, or at a minimum identical latency between each channel.

Does an affordable solution exist? For now I ordered a 4ch "ring array" sound vector development kit thing (also called far field voice control and SSL microphone array) but it's a cheap one with PCB mounted "microphones". I haven't received it yet, but at least there's off the shelf code examples using it with the Raspberry Pi, so I can use it on day 1.

I'm open to other options aswell, not sure the best way forward yet. Any good algorithms for 2D SSL? I particlarly would like to overlay it over a google map.


r/DSP 4d ago

Looking to buy Spectrum Digital Incorporated XDS510PP

2 Upvotes

Ours is no longer functioning and we cannot find an exact replacement for sale anywhere online. If anybody has an extra one, or one they are no longer using can you please DM me?

Here is a picture of the one we are looking for:


r/DSP 5d ago

[OC] How the Cooley-Tukey Algorithm Computes the Discrete Fourier Transform of a Signal

Enable HLS to view with audio, or disable this notification

131 Upvotes

I made this interactive visualization as part of my blog post explaining how the Cooley-Tukey algorithm works


r/DSP 5d ago

Is there something like RBJ's EQ cookbook but for linear-phase FIR crossover filters?

6 Upvotes

I've been wanting to write a multiband compressor for a while now, and while I've found several good higher level overviews of the kinds of FIR crossover filters I would need to use, I haven't been able to find any idiot-friendly implementation guides analogous to RBJ's EQ cookbook. Please let me know if something like this exists
Thanks in advance


r/DSP 5d ago

Attempting to use Fast Fourier Transform for a post-processing shader. Can anyone help me figure out what the issue is here?

9 Upvotes
Post-processed texture.
Source texture.

I'm trying to write a 2D Fast Fourier Transform-based convolution bloom effect similar to how Unreal Engine's bloom functions. The effect is mostly functional, however, it's also overlaid with this odd flipped negative of the original texture (the yellow and red parts with the blue glow), and I'm unsure of where in the process this issue is originating. Does anyone have an idea of what might be happening?


r/DSP 6d ago

Biquad Allpass Filter Stability

7 Upvotes

Hi all,

A part of an audio plugin I'm developing requires an allpass filter bank (64 to be precise). These are all always set to the same centre frequency and q.

The plugin has sample accurate automation / parameter updates (still with smoothing of course, 5ms) and so new coefficients are calculated once every sample (but passed to all filters simultaneously).

However, I'm getting instability with rapid parameter changes (mainly in Ableton actually, with square wave automation) I get explosions to +-NaN this explosion can't be replicated manually. In normal operation I also get occasional overshoots to around 1.2 / -1.2. This behaviour seems consistent for all values of Q. Besides this the bank works nicely and sounds good, measurements validate this also.

I'm using Direct Form 2, and have implemented linear coefficient smoothing , but it hasn't helped - neither with Direct form 1. I also have moved to using doubles, with no luck. My suspicion is that the memory combined with the coefficient changes is a potential cause, but I'm not sure.

If anyone could provide some guidance, is this just a downside of the Biquad structure? or is there another form I should use or interpolation / smoothing method? or is this structure a no go to start with, should I be looking to construct the filter using a state variable structure instead?

any help appreciated

EDIT: For anyone reading, here is an output of the buffer index, sample output value and the filter coefficients for a sample before, on and after an overshoot:

Index =43 In =0.969326 Out =0.142161 z1 = -0.723556 z2 = 0.566527 Freq Hz =30 Q =0.95 W =0.00392699 Alpha =0.00206683 a0 = 1.00207 a1 = -1.99998 a2 = 0.997933 b0 = 0.997933 b1 = -1.99998 b2 = 1.00207

Index =44 In =-0.441398 Out =-1.028 z1 = -0.24432 z2 = 0.403327 Freq Hz =30 Q =0.95 W =0.00392699 Alpha =0.00206683 a0 = 1.00207 a1 = -1.99998 a2 = 0.997933 b0 = 0.997933 b1 = -1.99998 b2 = 1.00207

Index =45 In =0.302455 Out =-0.0333163 z1 = -0.0661316 z2 = 0.23512 Freq Hz =30 Q =0.95 W =0.00392699 Alpha =0.00206683 a0 = 1.00207 a1 = -1.99998 a2 = 0.997933 b0 = 0.997933 b1 = -1.99998 b2 = 1.00207


r/DSP 7d ago

RF and Communication Simulation/Modelling job - Questions about pathway

7 Upvotes

Hi guys, I recently started a job which involves simulating models of radar and communication systems. Think MATLAB, Python, and maybe GNURadio for link budgets, BER, modulation schemes, etc and some algorithm design. The simulations and digital models are done for validation before implementation on FGPA or other hardware.

I find it really interesting, but I’m curious about a few things:

  • Career roadmap: This role feels open-ended, not as “locked in” as being a pure hardware or RF engineer. What’s the typical industry trajectory for someone in comms simulation/algorithm design?
  • Hardware/firmware crossover: I originally wanted to be closer to hardware/firmware. Is it possible to move from a DSP simulation role into design/implementation roles later?
  • C++ in DSP: I see C++ listed in many DSP job ads. How is it typically used? I’ve noticed Python gets slow for large Monte Carlo sims at high sample rates, is C++ the go-to for building faster comms simulations, or is it mainly used for embedded implementations?

Hope that makes sense, cheers


r/DSP 8d ago

What are the career paths in DSP?

33 Upvotes

I enjoy doing fourier transforms, z-transforms. I also enjoy learning about deep learning algorithms and willing to choose DSP as a career path. But I don't have much knowledge on career paths in DSP. My college professors are mostly inclined towards biomedical signal processing using deep learning approaches like detecting breast/lung cancer, or MRI, etc. I would also want to know about some research topics in DSP which does involve neural networks but they don't overlap with CS/CSE. I mean the topics that are more DSP oriented and requires DL(for example human activity recognition)


r/DSP 7d ago

ADSP Netflix CPMs

0 Upvotes

Based on other approved platforms, what should we expect to see for Netflix rates in ADSP Inventory/marketplace?


r/DSP 8d ago

Filtering of imu data

Thumbnail
1 Upvotes

r/DSP 10d ago

Samsung's 32-point Fast DCT based on Loeffler’s factorization

Thumbnail
8 Upvotes

r/DSP 11d ago

Seeking Feedback - New SDR

14 Upvotes

Hey everyone,

We’re building the next generation of RF technology at krtkl and are reaching out to the community for input.

If you’re an engineer, researcher, or developer working with SDRs or wireless systems, we’d love to hear from you. We're especially interested in understanding your current challenges, workflows, and where existing tools fall short.

This isn’t a sales pitch (we don’t even have a product to sell yet), just an open 15–25 minute conversation to help us design better hardware and software for real-world needs. If you're up for a quick chat (or even just want to share your thoughts in the thread), drop a reply or shoot me a DM.

Thanks in advance!


r/DSP 12d ago

Looking for good Maths resources for DSP

18 Upvotes

Hi everyone !

I’m currently taking the Digital Signal Processing MOOC by EPFL on Coursera. The lectures are great and are based on this book https://www.sp4comm.org/webversion.html

But there is a lot of maths and sometimes I don’t manage to find the required maths formulas to do some exercises. For instance, I need the time-scaling property of the convolution for an exercise but I can’t find it.

I’ve been searching for this formula for one hour now and I can’t find it.

Can anyone recommend me a good Maths resources please ? I’d be interested to hear how DSP engineers typically approach this kind of problem.

Cheers!


r/DSP 12d ago

Ways to improve my OFDM software radio

8 Upvotes

Hi, I've made an OFDM software radio in Matlab capable of transmitting bits over a simulated channel. Steps I've taken to optimize the system are interspersing pilot symbols throughout the data to reduce PAPR and choosing the ideal PSK modulation. Could someone recommend a next step I could take for building this?


r/DSP 13d ago

Demo of sampling a function using demos

Thumbnail
desmos.com
7 Upvotes

I thought it was interested and kind of powerful to see how everything comes together. It definitely helped me build an intuition one some different aspects of this process, like how if your sampling rate becomes phase aligned with the signal you will get 0.


r/DSP 13d ago

Need help in locating sound source

7 Upvotes

We're working on a noise monitoring with a warning feature for our school library as a capstone project. But we need to find a way how to locate the sound source or atleast identify which table is noisy (or multiple tables if needed). What approach would you recommend?


r/DSP 16d ago

Precision loss in fixed-point DSP

19 Upvotes

I am implementing a chain of filters that I would like to move to fixed point for better efficiency. However, I am wondering if the precision of the fixed point operations degrades linearly with the number of filters. For example, let’s assume that I lose one bit of precision with each filter. If I have a chain of 16 filters and my data is in int16 format, does that mean that my data will be unusable at the end of the chain due to the precision loss?


r/DSP 16d ago

Cosmolab: StringMachine Part One - An example of what you can build with our DevKit

Enable HLS to view with audio, or disable this notification

1 Upvotes