Microprocessor Family Tree
Rick Lyons shares a compact, nostalgic microprocessor family tree that highlights early integrated circuits and his fondness for the Intel 8080. The post invites engineers to spot classic chips they remember, pairing brief commentary with a scanned image from Creative Computing, June 1985, copied without permission. It’s a short historical snapshot for anyone interested in vintage CPU lineage.
Two Easy Ways To Test Multistage CIC Decimation Filters
Rick Lyons shows that you can validate multistage CIC decimation filters with just two obvious tests, no elaborate spectral setup required. Apply a unit-sample impulse to check a combinatorial yout(1) value when D ≥ S, or feed an all-ones step to confirm an S-sample transient followed by a DS steady state; the Appendix ties both checks to Pascal's triangle and binomial math.
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.
An Efficient Linear Interpolation Scheme
A simple trick slashes the cost of linear interpolation to at most one multiply per output sample, and often to none. The post shows a zero-order-hold based network that preserves input samples, has a short L-1 transient, and lets 1/L scaling be implemented as a binary shift when L is a power of two. It also gives a fixed-point layout that moves scaling to the end to reduce quantization distortion.
Online DSP Classes: Why Such a High Dropout Rate?
Rick Lyons digs into a startling statistic: online DSP courses reported a 97% dropout rate. He argues the main culprits are math-heavy curricula that overwhelm beginners and rigid, non-self-paced schedules that demand sustained 8-10+ hours per week. Rick urges course creators to rethink pacing and mathematical depth to improve completion rates and student engagement.
Errata for the book: 'Understanding Digital Signal Processing'
Rick Lyons collects all errata for every edition and printing of his book Understanding Digital Signal Processing into one centralized list, with downloadable PDFs for each variant. The post also shows how to identify your book's printing number for American 1st, 2nd, and 3rd editions and flags a few oddball versions that lack errata.
Above-Average Smoothing of Impulsive Noise
This post introduces a smoothing trick that behaves a lot like a moving average for high-frequency noise, but does a much better job of suppressing impulsive spikes. Rick Lyons shows how the corrected average is computed from the sample count, the sample imbalance around the mean, and the total deviation. He also compares the method against a standard moving average on a noisy step signal, where the improvement is easy to see.
Looking For a Second Toolbox? This One's For Sale
A battered blue toolbox once used by Steve Wozniak during Apple’s early days is now up for auction, complete with a self-adhesive label bearing his name. Rick Lyons notes the 13 x 7 x 5 inch steel box shows heavy wear and includes a three-section lid tray, it currently resides in Italy and is listed with an estimated price around $25,000, shippable to buyers.
Sinusoidal Frequency Estimation Based on Time-Domain Samples
Rick Lyons presents three time-domain algorithms for estimating the frequency of real and complex sinusoids from samples. He shows that the Real 3-Sample and Real 4-Sample estimators, while mathematically exact, fail in the presence of noise and can produce biased or invalid outputs. The Complex 2-Sample (Lank-Reed-Pollon) estimator is more robust but can be biased at low SNR and near 0 or Fs/2, so narrowband filtering is recommended.
Frequency Translation by Way of Lowpass FIR Filtering
Rick Lyons shows how you can translate a signal down in frequency and lowpass filter it in a single operation by embedding cosine mixing values into FIR coefficients. The post explains how to build the translating FIR, how to choose the number of coefficient sets, and how decimation can dramatically reduce storage needs while noting practical constraints like the requirement that ft be an integer submultiple of fs.
An s-Plane to z-Plane Mapping Example
A misleading online diagram prompted Rick Lyons to reexamine how s-plane points map to the z-plane. He spotted apparent errors in the original figure, drew a corrected mapping, and invites readers to inspect both diagrams and point out any remaining mistakes. The short post is a quick visual primer for engineers who rely on accurate s-plane to z-plane mappings in analysis and design.
Generating Complex Baseband and Analytic Bandpass Signals
Rick Lyons gathers and compares practical methods for creating complex baseband and analytic bandpass signals in one compact reference. The post clarifies definitions, lists time and frequency domain techniques from quadrature sampling to FFT-based analytic generation, and notes implementation tradeoffs such as sample-rate constraints, Hilbert transformer use, and phase linearity concerns. Engineers get a quick Hit Parade of options and pointers to deeper references.
Setting the 3-dB Cutoff Frequency of an Exponential Averager
Many engineers use a simple exponential averager but need the correct α to achieve a specified 3-dB cutoff. Rick Lyons compares a common approximation with the exact closed-form solution, shows when the approximation is valid, and derives the exact α in the appendix. The approximation works well for fc < 0.1fs, but it becomes noticeably inaccurate as the normalized cutoff increases.
The Most Interesting FIR Filter Equation in the World: Why FIR Filters Can Be Linear Phase
Rick Lyons pulls back the curtain on a little-known coefficient constraint that makes complex-coefficient FIR filters exhibit linear phase. Rather than simple symmetry of real coefficients, the key is a conjugate-reflection relation involving the filter phase at DC, which collapses to ordinary symmetry for real taps. The post includes derivations, intuition using the inverse DTFT, and a Matlab example to verify the result.
Correcting an Important Goertzel Filter Misconception
A common claim says the Goertzel algorithm is marginally stable and prone to numerical errors. Rick Lyons shows that the usual second-order Goertzel filter has conjugate poles exactly on the unit circle, so pole placement alone does not make it unstable. The practical limits are coefficient quantization, which reduces frequency precision, and accumulator overflow for very large N.
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.
Linear-phase DC Removal Filter
Rick Lyons presents a practical, multiplier-free way to remove DC while preserving linear phase by cascading D-point moving-average filters. He shows how choosing D as a power of two gives bit-shift scaling, how a dual-MA yields a narrow transition band with modest ripple, and how a quad-MA drives ripple down to near inaudible levels while noting the fixed-point accumulator sizing required.
A Simpler Goertzel Algorithm
Rick Lyons presents a streamlined Goertzel algorithm that simplifies computing a single DFT bin by removing the textbook method's extra shift and zero-input steps. The proposed network changes the numerator so you run the main stage N times then perform one final output stage, making the implementation cleaner and slightly cheaper computationally. Rick also points out that common textbook forms differ from Gerald Goertzel's 1958 original.
Computing Large DFTs Using Small FFTs
Rick Lyons demonstrates a practical trick for computing large N-point DFTs by combining multiple smaller radix-2 FFTs when only limited FFT sizes are available. He walks through 16-point and 24-point examples using two and three 8-point FFTs, shows how to assemble outputs with twiddle factors, and explains a symmetry that reduces twiddle storage to N/4 values. The method supports non-power-of-two DFT lengths.
Sinusoidal Frequency Estimation Based on Time-Domain Samples
Rick Lyons presents three time-domain algorithms for estimating the frequency of real and complex sinusoids from samples. He shows that the Real 3-Sample and Real 4-Sample estimators, while mathematically exact, fail in the presence of noise and can produce biased or invalid outputs. The Complex 2-Sample (Lank-Reed-Pollon) estimator is more robust but can be biased at low SNR and near 0 or Fs/2, so narrowband filtering is recommended.
Spectral Flipping Around Signal Center Frequency
Most DSP engineers know that multiplying a real signal by (-1)^n inverts its spectrum about fs/4, but that trick fails when you need to flip around a specific carrier. Rick Lyons presents two practical techniques: a multirate upsample-by-two solution using paired lowpass filters and cosine mixing, and a computationally heavier complex-multiply plus real-part method attributed to Dirk Bell, both yielding the desired fcntr-centered flip.
Generating Complex Baseband and Analytic Bandpass Signals
Rick Lyons gathers and compares practical methods for creating complex baseband and analytic bandpass signals in one compact reference. The post clarifies definitions, lists time and frequency domain techniques from quadrature sampling to FFT-based analytic generation, and notes implementation tradeoffs such as sample-rate constraints, Hilbert transformer use, and phase linearity concerns. Engineers get a quick Hit Parade of options and pointers to deeper references.
How Discrete Signal Interpolation Improves D/A Conversion
Digital interpolation can drastically simplify the analog filtering that follows a DAC, lowering cost and improving output quality. Rick Lyons explains how inserting zeros and applying a digital lowpass filter (interpolation-by-two) raises the effective sample rate, reduces the DAC sin(x)/x droop, and widens the analog filter transition band. The post gives practical intuition and spectral illustrations engineers can reuse in real designs.
Goertzel Algorithm for a Non-integer Frequency Index
Rick Lyons demonstrates how to run the Goertzel algorithm with a non-integer frequency index k, letting you target DTFT frequencies that do not align with DFT bin centers. He interprets Rajmic and Sysel's generalization, provides a simple implementation, and presents a real-valued reformulation that reduces the final multiplies for real inputs. Example Matlab code is included to reproduce and adapt the technique.
Sinusoidal Frequency Estimation Based on Time-Domain Samples
Rick Lyons presents three time-domain algorithms for estimating the frequency of real and complex sinusoids from samples. He shows that the Real 3-Sample and Real 4-Sample estimators, while mathematically exact, fail in the presence of noise and can produce biased or invalid outputs. The Complex 2-Sample (Lank-Reed-Pollon) estimator is more robust but can be biased at low SNR and near 0 or Fs/2, so narrowband filtering is recommended.
The History of CIC Filters: The Untold Story
Hogenauer's 1981 paper is the canonical CIC reference, but this post uncovers an earlier, practical origin story: engineer Richard Newbold used and documented a CIC decimation filter in late 1979. Rick Lyons recounts how Newbold’s HP-35 calculations produced the now-familiar frequency-response plot that appeared in Hogenauer's paper, why managers feared a pole at DC, and how demonstrations won adoption.
Setting the 3-dB Cutoff Frequency of an Exponential Averager
Many engineers use a simple exponential averager but need the correct α to achieve a specified 3-dB cutoff. Rick Lyons compares a common approximation with the exact closed-form solution, shows when the approximation is valid, and derives the exact α in the appendix. The approximation works well for fc < 0.1fs, but it becomes noticeably inaccurate as the normalized cutoff increases.
Beat Notes: An Interesting Observation
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.
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.
Using the DFT as a Filter: Correcting a Misconception
Some sources claim the DFT, when used as a filter, shifts spectral energy down to DC. Rick Lyons shows that this is not true for consecutive DFT-bin outputs and explains the cause of the confusion: the FIR interpretation requires reversing the usual twiddle-factor order. He derives the DFT-bin frequency response, shows the bandpass center at 2πm/N, and explains when decimation does produce a translation to zero Hz.







