Compute Images/Aliases of CIC Interpolators/Decimators

Neil Robertson

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


Exploring Human Hearing Range

Stephen Morris

Human Hearing Range In this post, I'll look at an interesting aspect of Audacity – using it to explore the threshold of human hearing. In my book Digital Signal Processing: A Gentle Introduction with Audio Examples, I go into this topic...


The Zeroing Sine Family of Window Functions

Cedron Dawg

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


Design Square-Root Nyquist Filters

Neil Robertson

In his book on multirate signal processing, harris presents a nifty technique for designing square-root Nyquist FIR filters with good stopband attenuation [1]. In this post, I describe the method and provide a Matlab function for designing the filters. You can find a Matlab function by harris for designing the filters at [2].


Make Hardware Great Again

Jeff Brower

By now you're aware of the collective angst in the US about 5G. Why is the US not a leader in 5G ? Could that also happen -- indeed, is it happening -- in AI ? If we lead in other areas, why not 5G ? What makes it so hard ? This...


A Fast Real-Time Trapezoidal Rule Integrator

Rick Lyons

This article presents a computationally-efficient network for computing real?time discrete integration using the Trapezoidal Rule.


Third-Order Distortion of a Digitally-Modulated Signal

Neil Robertson

Analog designers are always harping about amplifier third-order distortion. Why? In this article, we'll look at why third-order distortion is important, and simulate a QAM signal with third order distortion.


A Narrow Bandpass Filter in Octave or Matlab

Paul Lovell

The design of a very narrow bandpass FIR filter, coded in either Octave or Matlab, can prove challenging if a computationally-efficient  filter is required. This is especially true if the sampling rate is high relative to the filter's center...


IIR Bandpass Filters Using Cascaded Biquads

Neil Robertson

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.


Second Order Discrete-Time System Demonstration

Neil Robertson

Discrete-time systems are remarkable: the time response can be computed from mere difference equations, and the coefficients ai, bi of these equations are also the coefficients of H(z). Here, I try to illustrate this remarkableness by converting a continuous-time second-order system to an approximately equivalent discrete-time system. With a discrete-time model, we can then easily compute the time response to any input. But note that the goal here is as much to understand the discrete-time model as it is to find the response.