DSPRelated.com

A New Contender in the Digital Differentiator Race

Rick LyonsRick Lyons September 30, 20159 comments

Rick Lyons presents a compact FIR differentiator that widens the usable linear-frequency range while remaining simple to implement. The five-tap impulse response boosts the linear operating band by roughly 33% over his earlier design, offers exact two-sample group delay and linear phase, and can be realized in a folded multiplier-free form using binary right shifts. The design targets signals below pi/2 radians per sample.


The Most Interesting FIR Filter Equation in the World: Why FIR Filters Can Be Linear Phase

Rick LyonsRick Lyons August 18, 201517 comments

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.


Four Ways to Compute an Inverse FFT Using the Forward FFT Algorithm

Rick LyonsRick Lyons July 7, 20155 comments

Rick Lyons lays out four practical techniques to get an inverse FFT when you only have forward FFT software or FPGA cores available. The post highlights a classic data-reversal trick, a conjugate-symmetry optimized flow, and two methods that avoid reversals using data swapping or complex conjugation plus scaling. Each method notes when it is preferable so engineers can pick the least costly implementation.


Correcting an Important Goertzel Filter Misconception

Rick LyonsRick Lyons July 6, 201517 comments

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.


Handy Online Simulation Tool Models Aliasing With Lowpass and Bandpass Sampling

Rick LyonsRick Lyons May 4, 20151 comment

Rick Lyons walks through Analog Devices' Frequency Folding Tool, a hands-on simulator that makes aliasing intuitive. The post shows step-by-step demos for lowpass and bandpass sampling and highlights four key behaviors: all analog components fold below Fs/2, bandpass translation, harmonic bandwidth growth, and aliased harmonics interfering with fundamentals. It’s a practical tutorial for engineers learning sampling effects.


Why Time-Domain Zero Stuffing Produces Multiple Frequency-Domain Spectral Images

Rick LyonsRick Lyons March 23, 20154 comments

Zero stuffing in the time domain creates spectral copies, and Rick Lyons walks through why that happens using DFT and DFS viewpoints. He shows that inserting L-1 zeros between samples yields a longer DFT with replicated spectral blocks, and that true interpolation requires lowpass filtering to remove those images. The post uses a concrete L=3 example and an inverse-DFT summation proof to make the effect intuitive.


Complex Down-Conversion Amplitude Loss

Rick LyonsRick Lyons March 3, 20157 comments

Rick Lyons shows why a standard complex down-converter seems to halve amplitudes yet only imposes a -3 dB power loss. He walks through mixing math from an RF cosine to i and q paths, demonstrates that each path has peak A/2 but the complex output has half the average power, and offers practical guidance for software modeling and avoiding spectral interpretation traps.


A Complex Variable Detective Story – A Disconnect Between Theory and Implementation

Rick LyonsRick Lyons October 14, 2014

A subtle phase-wrap gotcha turned a clean pencil-and-paper derivation into a software mismatch for a 5-tap FIR filter with complex coefficients. Rick Lyons shows why two algebraically equivalent-looking expressions can disagree in code, and traces the real culprit to angle limits in rectangular-form complex arithmetic. The fix is simple once you see it, but the trap is easy to miss.


The Number 9, Not So Magic After All

Rick LyonsRick Lyons October 1, 20146 comments

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.


Sum of Two Equal-Frequency Sinusoids

Rick LyonsRick Lyons September 4, 20146 comments

Rick Lyons exposes a frequent trig mistake and delivers complete closed-form expressions for collapsing two equal-frequency sinusoids into a single sinusoid. Using complex-exponential phasor addition and equating real and imaginary parts, he compiles easy-to-use tables for cosine+cosine, sine+sine, and cosine+sine cases and shows how to derive each form. Engineers get corrected identities and compact derivations useful for analysis and communications.


Reduced-Delay IIR Filters

Rick LyonsRick Lyons July 4, 201919 comments

Rick Lyons investigates a simple 2nd-order IIR modification that reduces passband group delay by just under one sample, inspired by Steve Maslen's reduced-delay concept. He walks through the conversion steps and compares z-plane, magnitude, and group-delay plots for Butterworth, elliptic, and Chebyshev prototypes, showing how zeros shift and stopband attenuation degrades. A linked PDF extends the study to 1st-, 3rd-, and 4th-order cases so you can follow the tradeoffs.


60-Hz Noise and Baseline Drift Reduction in ECG Signal Processing

Rick LyonsRick Lyons January 23, 20217 comments

Rick Lyons shows a very efficient way to clean up ECGs when both baseline drift and 60 Hz power-line interference are getting in the way. He starts from a linear-phase DC removal filter, reshapes it into a notch filter that hits both 0 Hz and 60 Hz, and then tests it on a noisy real-world ECG. The payoff is a practical design that uses only two multiplications and five additions per sample.


A Fast Real-Time Trapezoidal Rule Integrator

Rick LyonsRick Lyons June 13, 20204 comments

Rick Lyons presents a compact, recursive real-time Trapezoidal Rule integrator that computes N-sample discrete integration using only four arithmetic operations per input sample. The proposed network yields a finite-length, linear-phase impulse response with constant group delay (N-1)/2 and cuts substantial computation compared with a tapped-delay implementation, making it useful for speeding Romberg-based digital filters.


A New Contender in the Digital Differentiator Race

Rick LyonsRick Lyons September 30, 20159 comments

Rick Lyons presents a compact FIR differentiator that widens the usable linear-frequency range while remaining simple to implement. The five-tap impulse response boosts the linear operating band by roughly 33% over his earlier design, offers exact two-sample group delay and linear phase, and can be realized in a folded multiplier-free form using binary right shifts. The design targets signals below pi/2 radians per sample.


Algebra's Laws of Powers and Roots: Handle With Care

Rick LyonsRick Lyons September 25, 202319 comments

Rick Lyons shows that familiar power and root rules from algebra can break down when exponents are complex. He tests common identities for two scenarios, real and fully complex exponents, with positive and negative mantissas, and compiles a table of cases that sometimes fail. The post includes MATLAB examples that reproduce counterexamples and a clear warning to numerically verify algebraic steps involving complex powers.


A Brief Introduction To Romberg Integration

Rick LyonsRick Lyons January 16, 201911 comments

Romberg integration delivers dramatic accuracy gains for definite integrals by combining multiple trapezoidal approximations into a single highly accurate result. Rick Lyons demonstrates how just five samples can achieve 0.0038% error versus a trapezoidal rule needing 100 samples, and a 17-sample example hits 3.6×10−4% error. The post outlines the N-segment procedure, cost scaling, and links to MATLAB code.


A Fast Guaranteed-Stable Sliding DFT Algorithm

Rick LyonsRick Lyons June 15, 202342 comments

Rick Lyons presents a compact, computationally efficient sliding DFT that computes a single N-point DFT bin output for each input sample in real time. The design replaces the traditional complex resonator with a 2nd-order real resonator and uses pole/zero cancellation to match the DFT bin response. Crucially, the resonator poles remain on the z-plane unit circle even with quantized coefficients, guaranteeing numerical stability.


Multiplierless Exponential Averaging

Rick LyonsRick Lyons December 5, 200811 comments

Rick Lyons shows how to implement exponential averaging without multiplies by exploiting a rearranged leaky-integrator form and binary shifts. He demonstrates reducing the standard two-multiply averager to a single-multiply form, then eliminating the multiply entirely when the weighting α equals reciprocals or differences of reciprocals of powers of two. The post catalogs practical α choices for fixed-point filters and flags quantization as an open issue.


Do Multirate Systems Have Transfer Functions?

Rick LyonsRick Lyons May 30, 20113 comments

Multirate systems can fool you into thinking standard z-domain analysis always applies. Rick Lyons shows why CIC decimation and Hogenauer implementations do not have a single z-domain transfer function from the input to the downsampled output, because downsampling breaks the one-to-one frequency mapping of LTI systems. Use the cascaded-subfilter H(z) up to the decimation point, then explicitly account for aliasing when predicting the decimated spectrum.


Computing Chebyshev Window Sequences

Rick LyonsRick Lyons January 8, 200811 comments

Rick Lyons gives a compact, practical recipe for building M-sample Chebyshev (Dolph) windows with user-set sidelobe levels, not just theory. The post walks through computing α and A(m), evaluating the Nth-degree Chebyshev polynomial, doing an inverse DFT, and the simple postprocessing needed to form a symmetric time-domain window. A worked 9-sample example and an implementation caveat for even-length windows make this immediately usable.