DSPRelated.com

Sonos, Shut Up and Take My Money! - Is Spatial Audio Finally Here?

Stephane BoucherStephane Boucher May 24, 20231 comment

Stephane bought a Sonos ERA 300 and discovered that spatial audio can finally feel convincing from a single wireless speaker, provided you set it up correctly. The trick is using Dolby Atmos tracks played inside the Sonos app, plus Sonos' calibration and a close listening position. The post shares setup tips, vivid listening impressions, and encouragement for more spatial mixes to come.


Overview of my Articles

Cedron DawgCedron Dawg December 10, 20221 comment

Cedron presents a guided tour of his DSPRelated articles that teach the discrete Fourier transform through derivations, numerical examples, and sample code. The collection centers on novel "bin value" formulas and exact frequency estimators for complex and real tones, with methods for phase and amplitude recovery and iterative multitone resolution. The overview also points to a zeroing-sine window family and an integer pseudo-differentiator for efficient peak and zero-crossing detection.


In Search of The Fourth Wave

Allen DowneyAllen Downey September 25, 20214 comments

While working on Think DSP the presenter ran into a curious spectral pattern: sawtooth waves have all harmonics with amplitudes that scale like 1/f, square waves keep only odd harmonics with 1/f, and triangle waves keep odd harmonics with 1/f^2. That observation motivates a simple question: is there a basic waveform that has all integer harmonics but a 1/f^2 rolloff? The talk walks through four solution approaches, a fifth idea from the audience, and links to a runnable Colab notebook.


Adaptive Beamforming is like Squeezing a Water Balloon

Christopher HogstromChristopher Hogstrom January 9, 20214 comments

Think of adaptive beamforming as squeezing a water balloon, a simple analogy that reveals how combining multiple antennas creates focused gains and deep nulls. This post walks through the MVDR (Wiener-filter–based) solution, explains steering and scanning vectors, and shows how array geometry and known signal direction control what you can and cannot cancel. Practical tips highlight limits like the N-1 interferer rule.


Exploring Human Hearing Range

Stephen MorrisStephen Morris October 31, 20204 comments

Audacity makes it simple to explore the limits of human hearing by generating and inspecting single-tone audio. This post walks through creating a 9 kHz sine tone, noticing the default 44,100 Hz sample rate, and verifying the result with Audacity's Plot Spectrum tool. Follow the steps and use low playback volume to safely try higher or lower test frequencies yourself.


Digging into an Audio Signal and the DSP Process Pipeline

Stephen MorrisStephen Morris March 9, 20206 comments
In this post, I'll look at the benefits of using multiple perspectives when handling signals.A Pre-existing Audio File

Let's say we have an audio file of interest. Let's load it into Audacity and zoom in a little (using View → Zoom → Zoom In, multiple times). The figure illustrates the audio signal: just a basic single-tone signal.

By continuing to zoom into the signal, we eventually get to the point of seeing individual samples as illustrated below. Notice that I've...


A Free DSP Laboratory

Stephen MorrisStephen Morris December 18, 2019

You don't need expensive gear to start exploring audio DSP, free open-source tools are enough. This post shows how to build a simple audio DSP laboratory with Audacity, covering signal generation, playback, waveform zooming, exporting to WAV/MP3/OGG, and viewing spectra. It's a short, practical intro to inspecting signals in both time and frequency domains with minimal setup.


The Phase Vocoder Transform

Christian YostChristian Yost February 12, 2019

Treating the phase vocoder as a continuous transform, this post frames PV(x,α,β) as a bijection on signal space and derives the domain constraints needed for an inverse mapping. It uses geometric intuition and group-theory analogies to explain negative and zero scalings, then brings the idea back to DSP to show how aliasing and phase artifacts appear. The Laroche and Dolson consistency measure D_M plus MATLAB experiments are used to compare classic and identity phase-locking reconstructions.


A Markov View of the Phase Vocoder Part 2

Christian YostChristian Yost January 8, 2019

This post builds a Markov-chain transition graph to guide phase vocoder time-frequency decisions, using spectral correlation data from a Bach violin sonata. It shows how FFT size and the time-stretch factor alpha change bin-to-bin correlations, proposes an inverse-square plus log-boundary probability model for transitions, and demonstrates practical limits and implementation choices with accompanying MATLAB code.


A Markov View of the Phase Vocoder Part 1

Christian YostChristian Yost January 8, 2019

The phase vocoder is reframed here as a Markov process, letting simple statistics reveal how sinusoidal energy migrates across frequency bins. The author shows how per-bin amplitude-difference correlations produce a data-driven transition picture, and provides MATLAB code and practical gating strategies to make those estimates robust. The results explain common phase-vocoder heuristics and point toward improved, structure-aware time-frequency processing.


Digital Envelope Detection: The Good, the Bad, and the Ugly

Rick LyonsRick Lyons April 3, 201623 comments

Envelope detection sounds simple, but implementation choices change everything. Rick Lyons gathers common digital detectors, including half-wave, full-wave, square-law, Hilbert-based complex, and synchronous coherent designs, and explains how harmonics, filtering, and carrier recovery change results. He ranks detectors by output SNR from a representative simulation and offers practical tips on filter cutoff, Hilbert transformer bandwidth, and when a simple detector is good enough.


Python scipy.signal IIR Filtering: An Example

Christopher FeltonChristopher Felton May 19, 2013

Christopher Felton walks through using scipy.signal IIR filters to demodulate PWM signals, using spectrum and spectrogram analysis to show what works and what does not. He demonstrates using filtfilt to avoid phase delay, compares a single narrow IIR to a very high order FIR, and shows how staged IIR filtering and multirate ideas give much better attenuation. Includes an FPGA-ready MyHDL PWM model.


How to Find a Fast Floating-Point atan2 Approximation

Nic TaylorNic Taylor May 26, 201716 comments

This post shows how a compact, fast atan2 can be built from a Remez-derived arctangent approximation and a matching 3rd-order polynomial. It walks through using Boost's remez_minimax to recover coefficients 0.97239411 and -0.19194795, integrating the polynomial into an atan2 with quadrant reduction, and applying branch reduction, bit tricks, and SSE2 SIMD to cut runtime while keeping max error under about 0.005 radians.


Music/Audio Signal Processing

Julius Orion Smith IIIJulius Orion Smith III September 5, 20087 comments

Julius Orion Smith III traces his journey from musician to music/audio DSP researcher, sharing the choices that shaped his career and research focus. He recounts work on violin modeling and waveguide synthesis, then highlights modern prototyping tools like Faust and Octave that accelerate experimentation. Read for practical career advice on coursework, publishing, and why free open-source tools matter for rapid audio research.


Generating pink noise

Allen DowneyAllen Downey January 20, 20161 comment

This post implements a stochastic Voss-McCartney pink-noise generator in Python, tackling why incremental per-sample algorithms do not map well to NumPy batch operations. It presents a practical NumPy/Pandas approach that uses geometric-distributed update events and pandas' fillna for column-wise zero-order hold to make batch generation efficient. The generated noise shows a power-spectrum slope near -1, matching expected 1/f behavior.


Wavelets II - Vanishing Moments and Spectral Factorization

Vincent HerrmannVincent Herrmann October 11, 2016

This post walks through how vanishing moments turn into concrete algebraic constraints on wavelet filter coefficients, and why that leads to Daubechies filters. It explains how a wavelet with A vanishing moments is orthogonal to all polynomials up to degree A minus one, and it shows how those continuous conditions become discrete sums like sum_k k^n h1(k)=0. Expect clear links between approximation power and filter length.


Beat Notes: An Interesting Observation

Rick LyonsRick Lyons March 13, 20137 comments

Rick Lyons overturns a common intuition about beat notes, showing that adding two nearby audio tones yields an average-frequency tone whose amplitude fluctuates, rather than a separate low-frequency sinusoid. He contrasts multiplication and summation of sines, provides simple trigonometric insight, and includes Matlab audio demos to explain why aircraft engine "whump" sounds are amplitude fluctuations of the average engine frequency.


Wavelets I - From Filter Banks to the Dilation Equation

Vincent HerrmannVincent Herrmann September 28, 20169 comments

Starting from a practical cascaded FIR filter bank, this post derives the key equations behind the Fast Wavelet Transform. It shows how conjugate-quadrature analysis and synthesis filters give perfect reconstruction and how iterating the cascade produces the scaling function, leading to the dilation equation. DB4 coefficients are used as a concrete example and a linear-system trick yields exact integer-sample values of the scaling function.


Amplitude modulation and the sampling theorem

Allen DowneyAllen Downey December 18, 20156 comments

I am working on the 11th and probably final chapter of Think DSP, which follows material my colleague Siddhartan Govindasamy developed for a class at Olin College.  He introduces amplitude modulation as a clever way to sneak up on the Nyquist–Shannon sampling theorem.

Most of the code for the chapter is done: you can check it out in this IPython notebook.  I haven't written the text yet, but I'll outline it here, and paste in the key...


Sonos, Shut Up and Take My Money! - Is Spatial Audio Finally Here?

Stephane BoucherStephane Boucher May 24, 20231 comment

Stephane bought a Sonos ERA 300 and discovered that spatial audio can finally feel convincing from a single wireless speaker, provided you set it up correctly. The trick is using Dolby Atmos tracks played inside the Sonos app, plus Sonos' calibration and a close listening position. The post shares setup tips, vivid listening impressions, and encouragement for more spatial mixes to come.