A Recipe for a Basic Trigonometry Table
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 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.
A New Related Site!
The post announces the launch of MLRelated, a new Related site dedicated to machine learning and deep learning. It positions MLRelated as complementary to existing Related sites by highlighting cross-cutting interests: TinyML for embedded developers, machine/deep learning applications in signal processing, and FPGA-based AI/ML implementations. The new site debuts with a modest amount of content and is expected to expand rapidly through contributions from the Related community in the form of blogs, forum threads, and webinars. The author invites readers to report navigation errors, share feedback, and propose ideas to help steer MLRelated into a practical, community-driven resource for researchers and practitioners in ML and adjacent domains.
Filtering Noise: The Basics (Part 1)
How do you pull signals out of random noise? This post builds intuition from first principles for discrete-time white Gaussian noise and shows how simple linear FIR filtering (averaging) reduces noise. You’ll get derivations for the output mean, variance and autocorrelation, learn why the uniform moving-average minimizes noise under a unity-DC constraint, and why its sinc spectrum can be problematic. Part 1 of a short series.
Book Recommendation "What is Mathematics?"
Richard Courant and Herbert Robbins' What is Mathematics? is a lucid, classic survey that still rewards engineers who want a concept-first refresher. The author praises the book's calculus chapters as concise and readable, recommending specific sections on complex numbers, functions and limits, and calculus for practical study. Note that linear algebra is not covered and the 1996 edition adds a short Ian Stewart chapter on recent developments.
Evaluate Noise Performance of Discrete-Time Differentiators
Differentiators can be wildly different at rejecting noise, even when they share the same usable bandwidth. Neil Robertson introduces the Differentiator Noise Power Ratio, a practical Gaussian-noise metric and a compact formula that uses the filter coefficients to quantify output noise and SNR loss. The post also gives MATLAB guidance for designing and comparing FIR differentiators so you can pick or build filters with much better noise performance.
Off-Topic: A Fluidic Model of the Universe
Cedron Dawg develops a Newtonian, fluidic model where space is a compressible "fluff" and particle motion is governed by a simple refractive steering equation. He shows how rho = ln n links index, permittivity and permeability to a gravity-like potential, derives a massive-particle steering law, and works through orbit and disk solutions that produce MOND-like effects while conflicting with General Relativity. The paper highlights concrete formulas and numerics to test the hypothesis.
Learn About Transmission Lines Using a Discrete-Time Model
A simple discrete-time approach makes lossless transmission-line behavior easy to simulate and visualize. The post introduces MATLAB functions tline and wave_movie to model uniform lossless lines with resistive terminations, compute time and frequency responses, and animate travelling waves. A microstrip pulse example shows how reflections produce ringing and how source matching nearly eliminates it, making this a practical learning tool.
Determination of the transfer function of passive networks with MATLAB Functions
Starting the calculation from the output makes deriving a passive network transfer function simple, and this post shows how to do it in MATLAB using a sixth-order low-pass example. The walkthrough uses tf('s') to build a symbolic H(s), extracts coefficients with tfdata, and shows numerical frequency-response plotting via freqs or direct j*omega evaluation, with code and component values to reproduce the results.
A DSP Quiz Question
A short visual puzzle from Rick Lyons shows how a common plotting trick can fool even experienced DSP engineers. He presents a 3D circular plot that looks like a triangular window but is actually a 32-point hann window, then explains why the circular projection distorts the view. The post highlights the importance of checking equations and 2D plots before naming a window by sight.
Using Mason's Rule to Analyze DSP Networks
When algebra gets messy, Rick Lyons shows how Mason's Rule cuts through the tedium to produce z-domain transfer functions for even nested-feedback DSP networks. The post gives a clear step-by-step procedure, definitions, and worked examples including a biquad, a DC-bias remover, and a complex multi-loop network. It also points to a public MATLAB routine to automate the bookkeeping.
Design IIR Butterworth Filters Using 12 Lines of Code
Build a working lowpass IIR Butterworth filter from first principles in just 12 lines of Matlab using Neil Robertson's butter_synth.m. The post walks through the analog prototype poles, frequency pre-warping, bilinear transform pole mapping, adding N zeros at z = -1, and gain normalization so the result matches Matlab's built-in butter function. It's a compact, hands-on guide with clear formulas and code.
The 2024 DSP Online Conference
The post announces the fifth annual DSP Online Conference, marking the event’s 5th anniversary and featuring renowned DSP practitioners including fred harris, Rick Lyons, Julius Orion Smith III, and Dan Boschen. It outlines access options—purchased passes provide on-demand viewing of all sessions through September 2025—and explains the daily release structure, with new sessions posted at 6 AM EDT and a chat/forum for each presentation. The article describes select live Q&A interactions hosted via Zoom (informal, 30-minute sessions) and lists three scheduled live presentations: Dan Boschen’s workshop on October 30 at 11 AM EDT and Fred Harris’s talks on October 31 at 10 AM and noon EDT. Recordings of live presentations are promised to appear on-demand shortly after they conclude.
How the Cooley-Tukey FFT Algorithm Works | Part 3 - The Inner Butterfly
At the heart of the Cooley-Tukey FFT algorithm lies a butterfly, a simple yet powerful image that captures the recursive nature of how the FFT works. In this article we discover the butterfly’s role in transforming complex signals into their frequency components with efficiency and elegance. Starting with the 2-point DFT, we reveal how the FFT reuses repeated calculations to save time and resources. Using a divide-and-conquer approach, the algorithm breaks signals into smaller groups, processes them through interleaving butterfly diagrams, and reassembles the results step by step.
A Beginner's Guide to OFDM
Orthogonal Frequency Division Multiplexing made modern high-speed wireless practical by turning one fast serial bitstream into many slow parallel streams carried on orthogonal sinusoids. This beginner guide explains, with minimal math, how the iDFT/DFT pair builds OFDM, how spectral slicing makes each subcarrier effectively flat so equalization reduces to simple divisions, and why a cyclic prefix prevents inter-symbol interference.
Interpolation Basics
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.
The Beginning of a New Chapter
After years of hesitation, Stephane Boucher and Jacob Beningo finally turned their virtual events into an in-person reality with the inaugural Signal Processing Summit and Embedded Systems Summit at the Sonesta Silicon Valley. The post captures the logistics, a last-minute travel scare during a US government shutdown, the joy of meeting speakers like Fred Harris, and practical lessons for future technical events. It closes by inviting community feedback and venue suggestions.
Back from Embedded World 2019 - Funny Stories and Live-Streaming Woes
Stephane Boucher tried live-streaming multiple talks from Embedded World 2019 and turned a chaotic experiment into a useful set of lessons for embedded engineers. Between broken tripods, flaky venue WiFi, tricky German SIM purchases, and audio nightmares, he learned practical fixes for reliable streams and better video quality. Read this if you want candid, tactical advice on streaming hardware, connectivity, and on-site troubleshooting.
GPGPU DSP
Shehrzad Qureshi kicks off his DSP blog by championing GPGPU, focusing on Nvidia's CUDA and real-product experience. He argues that with CPU clock speeds stalled, large-scale parallelism on GPUs is the practical path forward for many signal-processing tasks. The post traces GPGPU history from shader 'hacks' to modern APIs and previews future posts comparing CUDA vs OpenCL, Intel's Larrabee, and Nvidia Fermi.
Free DSP Books on the Internet
Finding reliable DSP textbooks online is hit-or-miss. Rick Lyons assembled a curated list of over forty legally downloadable signal processing books, organized by topic from theory and communications to audio, image processing, and implementation. The post points to vendor manuals, MATLAB and algorithm resources, and clear copyright guidance so engineers can grab useful references without breaking licensing rules.
Plotting Discrete-Time Signals
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.
Polyphase filter / Farrows interpolation
Markus Nentwig shows how polyphase filtering and the Farrow interpolator provide a practical, computation‑efficient way to realize sub-sample delays and variable resampling. He starts from the upsample-filter-decimate view, explains how polyphase decomposition reduces per-phase work, then describes how the Farrow structure fits polynomials to coefficient banks for continuous fractional-delay control. The post includes warnings about filter choices and links to code and references.
The Number 9, Not So Magic After All
Rick Lyons dismantles the mystique around the number 9 by showing its 'magic' stems from our base-10 system rather than any unique numeral power. He walks through classic 9 tricks, including digit-sum divisibility, digital-root behavior, and division patterns, then generalizes them to base-B where digit B-1 plays the same role. The post is a short, playful link between recreational arithmetic and radix thinking.
Free Goodies from Embedded World - Full Inventory and Upcoming Draw Live-Streaming Date
Stephane came back from Embedded World with a massive haul of development kits, tools and swag and decided to give it away to multiple winners. Read the full inventory, learn how to enter by liking or sharing the LinkedIn and Twitter posts, and tune in Friday March 29 at 1pm EST on EmbeddedRelated.tv for the live draw where winners will pick their prizes.
FFT Interpolation Based on FFT Samples: A Detective Story With a Surprise Ending
Rick Lyons follows a numerical mismatch from a published astronomy paper into a short detective story about FFT interpolation. He shows a commonly published interpolation formula produces large errors, explains why the algebraic approximations fail, and presents several correct alternatives with algebraic simplifications that greatly reduce computation. Engineers get both the debugging lesson and practical, lower‑cost formulas for evaluating X(k) between FFT bins.
Generating pink noise
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.
Optimizing the Half-band Filters in Multistage Decimation and Interpolation
Multistage decimation and interpolation by powers of two get a lot cheaper if you size each half-band filter differently. Rick Lyons walks through spectra for three-stage examples that show why early stages can use narrower filters for decimation while interpolation reverses the order, and how aliasing and images are handled by later stages. Learn a simple rule to cut multipliers without sacrificing performance.
Frequency Dependence in Free Space Propagation
Free-space propagation of electromagnetic waves is essentially independent of frequency, a counterintuitive conclusion Eric Jacobsen demonstrates step by step. He shows the λ^2 factor in the Friis transmission equation comes from antenna effective area and gain, not from the space between antennas, explaining why dipoles favor lower bands while dishes improve with frequency. The post also reminds engineers that material penetration and atmospheric absorption remain genuine frequency dependent concerns.
Phase or Frequency Shifter Using a Hilbert Transformer
A Hilbert transformer converts a real input into an analytic I+jQ pair, enabling phase shifts and frequency shifts while keeping real inputs and outputs. This article shows Matlab implementations (31-tap FIR with Hamming or Blackman windows), derives y = I cosθ - Q sinθ for phase and frequency shifting, and highlights practical limits from finite taps and coefficient/NCO quantization.
Digital PLL's -- Part 2
Neil Robertson builds a Z-domain model of a second-order digital PLL with a proportional-plus-integral loop filter, then derives closed-form formulas for KL and KI from the desired loop natural frequency and damping. The post explains the s → (z - 1)/Ts approximation, shows how to form the closed-loop IIR CL(z) for step and frequency responses, and highlights when the linear Z-domain model falls short of nonlinear acquisition behavior.
DSP Related Math: Nice Animated GIFs
Stephane Boucher collected a compact set of animated GIFs that make common DSP math click visually. He spotted popular posts on the ECE subreddit and aggregated DSP-focused GIFs in one place to speed intuition and teaching. Examples include the relationship between sin and cos with right triangles, constructing a square wave from an infinite series, and the continuous Fourier transform pair of the rect and sinc functions.
DSPRelated and EmbeddedRelated now on Facebook & I will be at EE Live!
Stephane Boucher announces two practical updates for DSPRelated readers. He launched Facebook pages for DSPRelated and EmbeddedRelated so members can get faster updates, and he will be attending EE Live in San Jose from March 30 to April 3 with a $100-off promo code for early registration. He also asks the community for ideas on how to make his conference coverage most useful.
Collaborative Writing Experiment: Your Favorite DSP Websites
Stephane Boucher invites the DSPRelated community to a live Google Docs experiment to crowdsource the best DSP websites. After a successful run with EmbeddedRelated, he opens a shared document where members can add, edit, and curate links in real time. The post explains the simple rules, notes revision rollback protection, and asks readers to refresh and help keep the list useful and spam-free while watching it evolve.
DSPRelated Finally on Twitter!
After resisting social networks, Stephane Boucher announces DSPRelated's move to Twitter and a few site improvements. Users can now sign in once to access DSPRelated, FPGARelated and EmbeddedRelated with the same account, and the site will post updates from @dsprelated, @embeddedrelated and @fpgarelated. To encourage followers, Boucher will occasionally tweet links that award prizes to the first visitors.
Two jobs
Stephane Boucher explains why EmbeddedRelated went quiet for a few months after a volunteer project demanded more of his time. He and his wife organized a clown-gymnastics show with 15 kids, sold more than 700 of 800 tickets, and raised $2,700 for the Tree of Hope. Now the shows are done and he plans to resume regular posting with new site features.
Do you like the new Comments System?
Stephane Boucher has just rolled out a new comments system for the DSPRelated blogs and wants feedback from readers. He’s asking the community to try it out, share thoughts, and help shake out any issues before it gets expanded to the code snippets and papers sections.
DSP Papers, Articles, Theses, etc
Stephane Boucher invites the DSP community to help expand DSPRelated's Papers and Theses repository, which currently lists just over 100 documents. He asks contributors to find and submit recent DSP PDFs, ideally from the last ten years, and notes that each approved submission enters the submitter into a draw for Michael Parker's Digital Signal Processing 101; the draw is planned for early April.
Code Snippets Suggestions
The DSPRelated Code Snippet section is growing fast, but Stephane Boucher wants to accelerate it further with a new incentive. He is offering a one-time $20 payment for each of the next 100 submitted snippets, and he has also launched a page where readers can suggest the DSP code examples they want most. One lucky suggestion will win a copy of Notes on Digital Signal Processing.
Latest DSP Books
Rick Lyons' third edition of Understanding Digital Signal Processing has arrived, and Stephane Boucher says the new material justifies upgrading older copies. He also highlights a new title, C. Britton Rorabaugh's Notes On Digital Signal Processing, as another recent release to watch. In addition, dsprelated.com's books listing now sorts by publication date rather than database addition, making it easier to find newly published DSP titles.
Code Snippets Section Now LIVE
A new code-sharing section on DSPRelated is now live, giving engineers a central place to browse and share DSP code snippets. Take a few minutes to rate and comment on snippets you can judge, or apply to become a contributor and upload your own examples. You can also learn about the contributor reward program and send feedback to help the community grow, says Stephane Boucher.


















