Ten Little Algorithms, Part 2: The Single-Pole Low-Pass Filter

Jason Sachs
1 comment

Other articles in this series: Part 1: Russian Peasant Multiplication Part 2: The Single-Pole Low-Pass Filter Part 3: Welford’s Method (And Friends) Part 4: Topological Sort I’m writing this article in a room with a bunch of...


Understanding and Implementing the Sliding DFT

Eric Jacobsen
4 comments

Introduction In many applications the detection or processing of signals in the frequency domain offers an advantage over performing the same task in the time-domain.   Sometimes the advantage is just a simpler or more conceptually...


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

Rick Lyons
3 comments

This blog explains why, in the process of time-domain interpolation (sample rate increase), zero stuffing a time sequence with zero-valued samples produces an increased-length time sequence whose spectrum contains replications of the original...


The Exponential Nature of the Complex Unit Circle

Cedron Dawg

Introduction This is an article to hopefully give an understanding to Euler's magnificent equation: $$ e^{i\theta} = cos( \theta ) + i \cdot sin( \theta ) $$ This equation is usually proved using the Taylor series expansion for the given...


The Number 9, Not So Magic After All

Rick Lyons

This blog is not about signal processing. Rather, it discusses an interesting topic in number theory, the magic of the number 9. As such, this blog is for people who are charmed by the behavior and properties of numbers. For decades I've thought...


Signed serial-/parallel multiplication

Markus Nentwig

Keywords: Binary signed multiplication implementation, RTL, Verilog, algorithm Summary A detailed discussion of bit-level trickstery in signed-signed multiplication Algorithm based on Wikipedia example Includes a Verilog implementation with...


Understanding and Preventing Overflow (I Had Too Much to Add Last Night)

Jason Sachs

Happy Thanksgiving! Maybe the memory of eating too much turkey is fresh in your mind. If so, this would be a good time to talk about overflow. In the world of floating-point arithmetic, overflow is possible but not particularly common. You can...


Goertzel Algorithm for a Non-integer Frequency Index

Rick Lyons

If you've read about the Goertzel algorithm, you know it's typically presented as an efficient way to compute an individual kth bin result of an N-point discrete Fourier transform (DFT). The integer-valued frequency index k is in the range of...


Adventures in Signal Processing with Python

Jason Sachs

Author’s note: This article was originally called Adventures in Signal Processing with Python (MATLAB? We don’t need no stinkin' MATLAB!) — the allusion to The Treasure of the Sierra Madre has been removed, in deference to being...


Python scipy.signal IIR Filtering: An Example

Christopher Felton

Introduction In the last posts I reviewed how to use the Python scipy.signal package to design digital infinite impulse response (IIR) filters, specifically, using the iirdesign function (IIR design I and IIR design...