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

●1 commentOther 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

●4 commentsIntroduction 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

●3 commentsThis 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

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

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

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)

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

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

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

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...

## Bank-switched Farrow resampler

Bank-switched Farrow resampler Summary A modification of the Farrow structure with reduced computational complexity.Compared to a conventional design, the impulse response is broken into a higher number of segments. Interpolation accuracy is...

## Adaptive Beamforming is like Squeezing a Water Balloon

Adaptive beamforming was first developed in the 1960s for radar and sonar applications. The main idea is that signals can be captured using multiple sensors and the sensor outputs can be combined to enhance the signals propagating from...

## Compute Images/Aliases of CIC Interpolators/Decimators

Cascade-Integrator-Comb (CIC) filters are efficient fixed-point interpolators or decimators. For these filters, all coefficients are equal to 1, and there are no multipliers. They are typically used when a large change in sample...

## The Zeroing Sine Family of Window Functions

Introduction This is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by introducing a class of well behaved window functions that the author believes to be previously unrecognized. The definition...

## IIR Bandpass Filters Using Cascaded Biquads

In an earlier post [1], we implemented lowpass IIR filters using a cascade of second-order IIR filters, or biquads. This post provides a Matlab function to do the same for Butterworth bandpass IIR filters. Compared to conventional implementations, bandpass filters based on biquads are less sensitive to coefficient quantization [2]. This becomes important when designing narrowband filters.

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

I went to Embedded World 2017 in Nuremberg with an ambitious plan; I would make video highlights of several exhibits (booths) to be presented to the *Related sites audience. I would try to make the vendors focus their pitch on the essential...

## A Two Bin Exact Frequency Formula for a Pure Complex Tone in a DFT

●1 commentIntroduction This is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by deriving an exact formula for the frequency of a complex tone in a DFT. It is basically a parallel treatment to the real case...

## Multi-Decimation Stage Filtering: Design and Optimization

●1 commentDuring my research on digital FIR decimation filters I have been developing various Matlab scripts and functions. In which I have decided later on to consolidate it in a form of a toolbox. I have developed this toolbox to assist and...

## Some Thoughts on Sampling

●1 commentSome time ago, I came across an interesting problem. In the explanation of sampling process, a representation of impulse sampling shown in Figure 1 below is illustrated in almost every textbook on DSP and communications. The question is: how is...

## Should DSP Undergraduate Students Study Z-transform Regions of Convergence?

●2 commentsNot long ago I presented my 3-day DSP class to a group of engineers at Tektronix Inc. in Beaverton Oregon [1]. After I finished covering my material on IIR filters' z-plane pole locations and filter stability, one of the Tektronix engineers asked...