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.


Simple Discrete-Time Modeling of Lossy LC Filters

Neil RobertsonNeil Robertson April 19, 20231 comment

Converting a lossy LC filter into a discrete-time impulse response lets you analyze mixed analog and DSP systems in one time domain. This post walks through computing the LC frequency response via chain (ABCD) parameters including resistive losses, enforcing the Hermitian symmetry required for a real IDFT, and using the IDFT to produce an asymmetrical FIR impulse response. A 5th-order Butterworth example illustrates insertion loss and impulse-shape effects.


The Discrete Fourier Transform as a Frequency Response

Neil RobertsonNeil Robertson February 4, 20238 comments

Neil Robertson shows that the discrete frequency response H(k) of an FIR filter is exactly the DFT of its impulse response h(n). He derives the continuous H(ω) and discrete H(k) using complex exponentials for a four-tap FIR, then replaces h(n) with x(n) to recover the general DFT formula. The post keeps the math simple and calls out topics left for separate treatment, such as windowing and phase.


Simple Concepts Explained: Fixed-Point

Leandro StefanazziLeandro Stefanazzi January 24, 202312 comments

Fixed-point is the bridge between real-world values and integer arithmetic, and this post makes that bridge tangible with a hands-on ADC-to-gain example. It walks through mapping voltages to Q-format integers, choosing gain resolution in bits, and how multiplication adds bit growth and produces quantization error. Read it to build intuition for practical fixed-point choices when implementing DSP on FPGA or ASIC.


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.


Add the Hilbert Transformer to Your DSP Toolkit, Part 2

Neil RobertsonNeil Robertson December 4, 20223 comments

This post shows a simple practical route to a Hilbert transformer by starting from a half-band FIR filter and tweaking its symmetry. It walks through a 19-tap example synthesized with Matlab's firpm (Parks-McClellan), explains the required frequency scaling, and shows how even-numbered taps become (or can be forced) zero through symmetry and coefficient quantization. Useful design rules are summarized for choosing ntaps.


Add the Hilbert Transformer to Your DSP Toolkit, Part 1

Neil RobertsonNeil Robertson November 22, 20224 comments

Learn how the Hilbert transformer creates a 90-degree phase-shifted quadrature component without down-conversion, and why it is simply a special FIR filter. Part 1 defines the transformer, derives its ideal frequency response H(ω)=j for ω<0 and -j for ω≥0, and walks through Matlab examples that demonstrate phase shifting and image attenuation for bandpass signals.


Candan's Tweaks of Jacobsen's Frequency Approximation

Cedron DawgCedron Dawg November 11, 2022

Cedron Dawg shows how small tweaks to Jacobsen's three-bin frequency estimator turn a popular approximation into an exact formula, and how a modest cubic correction yields a near-exact, low-cost alternative. The article derives an arctan/tan exact recovery, relates it to Candan's 2011/2013 tweaks, and supplies reference C code and numerical tables so engineers can see when each formula is sufficient.


A Recipe for a Basic Trigonometry Table

Cedron DawgCedron Dawg October 4, 2022

Cedron Dawg walks through building a degree-based sine and cosine table from first principles, showing both recursive and multiplicative complex-tone generators. The article highlights simple drift-correction tricks such as mitigated squaring and compact normalization, gives series methods to compute one-degree and half-degree values, and includes practical C code that ties the table to DFT usage and frequency estimation.


A New Contender in the Quadrature Oscillator Race

Rick LyonsRick Lyons September 24, 20227 comments

Rick Lyons highlights a compact quadrature oscillator introduced by A. David Levine and Martin Vicanek, offering guaranteed stability, accurate low-frequency tuning, and modest computational cost. The post walks through the simple u, v, w recurrences used for software implementation. Appendices provide transfer functions and an algebraic stability proof for engineers who want formal verification before deployment.


Python scipy.signal IIR Filter Design

Christopher FeltonChristopher Felton May 13, 20124 comments

Christopher Felton walks through designing infinite impulse response filters using scipy.signal in Python, focusing on practical specs and functions rather than theoretical derivations. He explains normalized passband and stopband definitions, gpass and gstop, and shows how iirdesign and iirfilter differ. Plots compare elliptic, Chebyshev, Butterworth and Bessel responses, highlighting steep transitions versus near-linear phase tradeoffs.


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.


Simplest Calculation of Half-band Filter Coefficients

Neil RobertsonNeil Robertson November 20, 20179 comments

Half-band FIR filters put the cutoff at one-quarter of the sampling rate, and nearly half their coefficients are exactly zero, which makes them highly efficient for decimation-by-2 and interpolation-by-2. This post shows the straightforward window-method derivation of half-band coefficients from the ideal sinc impulse response, providing a clear, hands-on explanation for engineers learning filter design. It also points to equiripple options such as Matlab's firhalfband and a later Parks-McClellan implementation.


Interpolation Basics

Neil RobertsonNeil Robertson August 20, 201917 comments

Neil Robertson demonstrates interpolation by an integer factor using a frequency-domain approach, showing how zero-insertion followed by an FIR low-pass filter reconstructs a higher-rate signal. The article walks through spectra, passband and stopband selection, and a 41-tap Parks-McClellan filter example applied to a Chebyshev-window test signal. Matlab code and percent-error plots are included so engineers can reproduce and evaluate the method.


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.


PID Without a PhD

Tim WescottTim Wescott April 26, 201612 comments

You do not need control theory to implement useful PID loops in embedded projects. Tim Wescott walks through simple, ready-to-use C code, clear explanations of P, I and D terms, and a practical tuning recipe you can apply to motors, precision actuators, and heaters. The article highlights anti-windup, sampling-rate guidance, and when to call in a control expert.


Feedback Controllers - Making Hardware with Firmware. Part 10. DSP/FPGAs Behaving Irrationally

Steve MaslenSteve Maslen November 22, 2018

A practical approach to emulating lossy transmission lines in real time, using pole-zero approximations to replace irrational s-domain behaviors and enable FPGA implementation. The author shows 8-pole/zero fits for Zo(s) and a 6-pole/zero plus delay for P(s), validated against LTSpice and MATLAB. Conversion to sampled-data Zo(z) and biquad implementations is detailed, along with issues in single-precision arithmetic and mitigations such as mixed sample rates and partial-fraction decomposition.


Round Round Get Around: Why Fixed-Point Right-Shifts Are Just Fine

Jason SachsJason Sachs November 22, 20163 comments

Jason Sachs explains why, in most embedded systems, simple bitwise right-shifts are an acceptable way to do fixed-point division rather than paying the runtime cost to round. He shows the cheap trick of adding 2^(N-1) to implement round-to-nearest, explains unbiased "round-to-even" issues, and compares arithmetic error to much larger ADC and sensor errors. The takeaway: save cycles unless your algorithm or inputs require extra precision.


Plotting Discrete-Time Signals

Neil RobertsonNeil Robertson September 15, 20195 comments

Neil Robertson demonstrates a practical interpolate-by-8 FIR approach to make sampled signals look like their continuous-time counterparts when plotted. The post explains a 121-tap filter designed for signals up to 0.4*fs, shows Matlab examples for a sinusoid and a filtered pulse, and highlights the transient and design trade-offs so you can reproduce clean plots with the supplied interp_by_8.m code.


Second Order Discrete-Time System Demonstration

Neil RobertsonNeil Robertson April 1, 20202 comments

Want a hands-on way to see how continuous second-order dynamics appear in discrete time? Neil Robertson converts a canonical H(s) to H(z), shows z-plane pole mapping for different damping ratios, and walks through impulse-invariance scaling and zero placement. The post includes a MATLAB function so_demo.m that computes numerator and denominator coefficients, plots poles, and compares impulse and frequency responses so you can experiment with sampling effects.


Back from ESC Boston

Stephane BoucherStephane Boucher May 6, 20172 comments

Stephane nearly skipped ESC Boston, but going turned into a productive mix of networking, informal meetups, and on-the-floor filming. He captures candid encounters with speakers and vendors, learns how small shows differ from larger expos, and outlines practical follow-ups like booth highlight videos and speaker hospitality suggestions. The post is an encouraging read for engineers weighing the value of regional conferences and DIY event coverage.


Launch of Youtube Channel: My First Videos - Embedded World 2017

Stephane BoucherStephane Boucher April 5, 201721 comments

Stephane Boucher turned his Embedded World 2017 trip into a debut YouTube series of short booth highlight videos. He walks through the steep learning curve of trade-show filming, the specific gear he bought and rented to cope with low light and noise, and the practical mistakes he plans to fix. The post lists filmed vendors and asks readers for feedback to improve future episodes.


New Comments System (please help me test it)

Stephane BoucherStephane Boucher October 4, 201617 comments

DSPRelated just got a practical upgrade, Stephane Boucher has released a new comments system built from his earlier forum work. It supports drag-and-drop or Insert Image uploads, MathML, TeX and ASCIImath rendered by MathJax, syntax-highlighted code via highlight.js, and in-place editing and deletion of comments. Improved email notifications alert authors and commenters to replies, and readers are invited to post test comments and report problems.


3 Good News

Stephane BoucherStephane Boucher March 9, 20161 comment

Stephane Boucher reports three quick wins for the EmbeddedRelated community: two sponsors have seeded a $1,000 rewards pool, the site now serves all pages over HTTPS, and the new forums have their first active discussions. If you want a share of the sponsor-funded rewards, jump into the forums and check the Vendors Directory for opportunities. Stay tuned for more updates.


The New Forum is LIVE!

Stephane BoucherStephane Boucher February 18, 20161 comment

After months of hard word, I am very excited to introduce to you the new forum interface.  

Here are the key features:

1- Easily add images to a post by drag & dropping the images in the editor

2- Easily attach files to a post by drag & dropping the files in the editor

3- Add latex equations to a post and they will be rendered with Mathjax (tutorial)

4- Add a code snippet and surround the code with


Helping New Bloggers to Break the Ice: A New Ipad Pro for the Author with the Best Article!

Stephane BoucherStephane Boucher November 9, 2015

Breaking the ice can be tough. Over the years, many individuals have asked to be given access to the blogging interface only to never post an article.


Welcoming MANY New Bloggers!

Stephane BoucherStephane Boucher October 27, 20153 comments

A big influx of new voices just joined DSPRelated, and Stephane Boucher introduces the growing roster of contributors and their backgrounds. The post lists dozens of newly approved bloggers, highlights the range of DSP and embedded expertise they bring, and asks readers to leave constructive feedback on posts. It also explains why some applicants may not have been accepted yet and how to apply properly.


Recruiting New Bloggers!

Stephane BoucherStephane Boucher October 16, 20157 comments

Previous calls for bloggers have been very successful in recruiting some great communicators - Rick LyonsJason Sachs, Victor Yurkovsky, Mike Silva, Markus NentwigGene BrenimanStephen Friederichs,


Premium Forum?

Stephane BoucherStephane Boucher May 25, 201514 comments

Stephane Boucher proposes a paid "premium" forum for DSPRelated that would redistribute membership fees to the communitys top contributors via voting. The plan frames the $20/year fee as an incentive mechanism, not a revenue stream, with monthly payouts to the most appreciated posters. Boucher invites reader feedback to decide whether to implement the idea or pursue alternatives.


The Sampling Theorem - An Intuitive Approach

Stephane BoucherStephane Boucher January 26, 20151 comment

Scott Kurtz from DSPSoundWare.com has put together a video presentation that aims to give DSP engineers an intuitive grasp of the Sampling Theorem. The short, approachable video focuses on conceptual understanding of sampling and aliasing rather than mathematical formality. Watch the presentation on DSPRelated and share your reactions in the post comments to join the discussion.