This blog discusses the behavior, mathematics, and implementation of cascaded integrator-comb filters.

Cascaded integrator-comb (CIC) digital filters are computationally-efficient implementations of narrowband lowpass filters, and are often embedded in hardware implementations of decimation, interpolation, and delta-sigma converter filtering.

After describing a few...]]>

By continuing to zoom into the signal, we...]]>

Chances are you also already know that you have until the end of the month of February to register for free.

And chances are that you are one of the more than 3000 pro-active engineers who have already registered.

But If you are like me and have...]]>

b = [b0 b1 b2 b1 b0]

These coefficients form a 5-tap symmetrical FIR filter having constant group delay [1,2] over 0 to fs/2 of:

D = (ntaps – 1)/2 = 2 samples

For a symmetrical filter with an odd number of taps, the group delay is always an integer number of samples, while for one with an even...]]>

In MATLAB you have to initialize the two filters:

h = dftmtx (8);

h1 = h (3, :); % The filter of the quiz

h2 = h (7, :); % The mirrored filter

The impulse responses of the filters h1, h2 are complex and the responses to a broadband random signal are also complex. The two...]]>

The z-domain transfer function of the 2-RRS wide-notch comb filter, H2-RRS(z), is:

...]]>Background

Let's first review the behavior of a traditional comb filter. Figure 1(a) shows a traditional comb filter comprising two cascaded recursive running sum (RRS) comb filters. Figure 1(b) shows the filter's co-located dual poles and dual zeros on the z-plane, while Figure...]]>The input signal is processed as a vector of samples (eg from a .wav file), which are converted to a matrix...]]>

Figure 1 is a simplified block diagram of a QAM...]]>

Need for polynomials as general non-linear functions

Many...]]>

Background

Typically when DSP practitioners want to predict the accuracy performance of a digital integrator they compare how...]]>

A circular permutation matrix ${\bf...]]>

Development of a Reduced-Delay 2nd-Order IIR Filter

Maslen's development of a reduced-delay 2nd-order IIR filter begins with a traditional prototype filter, HTrad, shown in...]]>

The terminology of "emitter" and "collector" seems appropriate, but did you ever wonder why the semiconductor block in the center is...]]>

Reducing IIR Filter Computations Using Dual-Path Allpass Filters

We can improve the computational speed of a lowpass or highpass IIR filter by converting that filter into a dual-path filter consisting of allpass...]]>

Figure 1

At a rate of 8000 samples/second, each telephone's audio signal is sampled and converted to a 7-bit binary sequence of pulses. The analog signals at Figure 1's nodes A, B, and C are presented in Figure 2.

...]]>

The DFT of the sampled signal x(n) is defined as:

$$X(k)=\sum_{n=0}^{N-1}x(n)e^{-j2\pi kn/N}...]]>

]]>

- win #1 - Engineers who could not make it to Embedded World would be able to sample the huge event,
- win #2 - The organisation behind EW would benefit from the extra exposure
- win #3 -...]]>
Fri, 01 Mar 2019 08:03:25 +0000 Spread the Word and Run a Chance to Win a Bundle of Goodies from Embedded World https://www.dsprelated.com/showarticle/1232/spread-the-wordDo you have a Twitter and/or Linkedin account? If you do, please consider paying close attention for the next few days to the EmbeddedRelated Twitter account and to my personal Linkedin account (feel free to connect). This is where I will be posting lots of updates about how the EmbeddedRelated.tv live streaming experience is going at Embedded World.

The most...]]>

Thu, 21 Feb 2019 16:37:35 +0000 Launch of EmbeddedRelated.tv https://www.dsprelated.com/showarticle/1231/launch-of-embeddedrelated-tvWith the upcoming Embedded Word just around the corner, I am very excited to launch the EmbeddedRelated.tv platform. This is where you will find the schedule for all the live broadcasts that I will be doing from Embedded World next week. Please note that the schedule will be evolving constantly, even during the show, so I suggest your refresh the page...]]>

Thu, 21 Feb 2019 15:00:12 +0000 Stereophonic Amplitude-Panning: A Derivation of the 'Tangent Law' https://www.dsprelated.com/showarticle/1230.phpIn a recent Forum post here on dsprelated.com the audio signal processing subject of stereophonic amplitude-panning was discussed. And in that Forum thread the so-called "Tangent Law", the fundamental principle of stereophonic amplitude-panning, was discussed. However, none of the Forum thread participants had ever seen a derivation of the Tangent Law. This blog presents such a derivation and...]]> Wed, 20 Feb 2019 17:51:00 +0000 Live Streaming from Embedded World! https://www.dsprelated.com/showarticle/1227/embedded-world-2019-going-liveFor those of you who won't be attending Embedded World this year, I will try to be your eyes and ears by video streaming live from the show floor. I am not talking improvised streaming from a phone, but real, high quality HD streaming with a high-end camera and a device that will bond three internet connections (one wifi and two cellular) to ensure a steady, and hopefully...]]>

To show the power of Romberg integration, and to convince you to continue reading, consider the notion of estimating the area under the continuous x(t) = sin(t) curve based on the five...]]>Wed, 13 Feb 2019 00:36:39 +0000 The Phase Vocoder Transform https://www.dsprelated.com/showarticle/1229.phpI would like to look at the phase vocoder in a fairly ``abstract'' way today. The purpose of this is to discuss a method for measuring the quality of various phase vocoder algorithms, and building off a proposed measure used in [2]. There will be a bit of time spent in the domain of continuous mathematics, thus defining a phase vocoder function or map rather than an algorithm....]]> Tue, 12 Feb 2019 19:33:47 +0000 Compute the Frequency Response of a Multistage Decimator https://www.dsprelated.com/showarticle/1228.phpFigure 1a shows the block diagram of a decimation-by-8 filter, consisting of a low-pass finite impulse response (FIR) filter followed by downsampling by 8 [1]. A more efficient version is shown in Figure 1b, which uses three cascaded decimate-by-two filters. This implementation has the advantages that only FIR 1 is sampled at the highest sample rate, and the total number of filter...]]> Sun, 10 Feb 2019 20:32:27 +0000 What to See at Embedded World 2019 https://www.dsprelated.com/showarticle/1226/what-to-see-at-embedded-world-2019]]> Tue, 05 Feb 2019 15:20:13 +0000 Smaller DFTs from bigger DFTs https://www.dsprelated.com/showarticle/1224.phpLet's consider the following hypothetical situation: You have a sequence $x$ with $N/2$ points and a black box which can compute the DFT (Discrete Fourier Transform) of an $N$ point sequence. How will you use the black box to compute the $N/2$ point DFT of $x$? While the problem may appear to be a bit contrived, the answer(s) shed light on some basic yet...]]> Tue, 22 Jan 2019 06:49:37 +0000 A Brief Introduction To Romberg Integration https://www.dsprelated.com/showarticle/1222.phpThis blog briefly describes a remarkable integration algorithm, called "Romberg integration." The algorithm is used in the field of numerical analysis but it's not so well-known in the world of DSP. Wed, 16 Jan 2019 14:17:45 +0000 Use Matlab Function pwelch to Find Power Spectral Density – or Do It Yourself https://www.dsprelated.com/showarticle/1221.phpIn my last post, we saw that finding the spectrum of a signal requires several steps beyond computing the discrete Fourier transform (DFT)[1]. These include windowing the signal, taking the magnitude-squared of the DFT, and computing the vector of frequencies. The Matlab function pwelch [2] performs all these steps, and it also has the option to use DFT averaging to compute the...]]> Sun, 13 Jan 2019 18:18:48 +0000 Microprocessor Family Tree https://www.dsprelated.com/showarticle/1220.phpBelow is a little microprocessor history. Perhaps some of the ol' timers here will recognize a few of these integrated circuits. I have a special place in my heart for the Intel 8080 chip. Image copied, without permission, from the now defunct Creative Computing magazine, Vol. 11, No. 6, June 1985.

]]>Thu, 10 Jan 2019 22:29:35 +0000 A Markov View of the Phase Vocoder Part 2 https://www.dsprelated.com/showarticle/1219.phpLast post we motivated the idea of viewing the classic phase vocoder as a Markov process. This was due to the fact that the input signal’s features are unknown to the computer, and the phase advancement for the next synthesis frame is entirely dependent on the phase advancement of the current frame. We will dive a bit deeper into this idea, and flesh out some details which...]]> Tue, 08 Jan 2019 18:50:29 +0000 A Markov View of the Phase Vocoder Part 1 https://www.dsprelated.com/showarticle/1218.phpHello! This is my first post on dsprelated.com. I have a blog that I run on my website, http://www.christianyostdsp.com. In order to engage with the larger DSP community, I'd like to occasionally post my more engineering heavy writing here and get your thoughts. Today we will look at the phase vocoder from a different angle by bringing some probability into the...]]>

Tue, 08 Jan 2019 17:18:06 +0000 Evaluate Window Functions for the Discrete Fourier Transform https://www.dsprelated.com/showarticle/1211.phpThe Discrete Fourier Transform (DFT) operates on a finite length time sequence to compute its spectrum. For a continuous signal like a sinewave, you need to capture a segment of the signal in order to perform the DFT. Usually, you also need to apply a window function to the captured signal before taking the DFT [1 - 3]. There are many different window functions and each...]]> Tue, 18 Dec 2018 20:43:38 +0000 Feedback Controllers - Making Hardware with Firmware. Part 10. DSP/FPGAs Behaving Irrationally https://www.dsprelated.com/showarticle/1206.phpThis article will look at a design approach for feedback controllers featuring low-latency "irrational" characteristics to enable the creation of physical components such as transmission lines. Some thought will also be given as to the capabilities of the currently utilized Intel Cyclone V, the new Cyclone 10 GX and the upcoming Xilinx Versal floating-point FPGAs/ACAPs....]]> Thu, 22 Nov 2018 14:56:32 +0000 Polar Coding Notes: A Simple Proof https://www.dsprelated.com/showarticle/1203.phpFor any B-DMC $W$, the channels $\{W_N^{(i)}\}$ polarize in the sense that, for any fixed $\delta \in (0, 1)$, as $N$ goes to infinity through powers of two, the fraction of indices $i \in \{1, \dots, N\}$ for which $I(W_N^{(i)}) \in (1 − \delta, 1]$ goes to $I(W)$ and the fraction for which $I(W_N^{(i)}) \in [0, \delta)$ goes to $1−I(W)^{[1]}$. Mrs. Gerber’s Lemma

Mrs. Gerber’s Lemma...]]>

Thu, 08 Nov 2018 14:13:15 +0000 Polar Coding Notes: Channel Combining and Channel Splitting https://www.dsprelated.com/showarticle/1201.phpChannel Combining Channel combining is a step that combines copies of a given B-DMC $W$ in a recursive manner to produce a vector channel $W_N : {\cal X}^N \to {\cal Y}^N$, where $N$ can be any power of two, $N=2^n, n\le0^{[1]}$.

The notation $u_1^N$ as shorthand for denoting a row vector $(u_1, \dots , u_N)$.

The vector channel $W_N$ is the virtual...]]>

Fri, 19 Oct 2018 09:35:34 +0000 Project Report : Digital Filter Blocks in MyHDL and their integration in pyFDA https://www.dsprelated.com/showarticle/1194.phpThe Google Summer of Code 2018 is now in its final stages, and I’d like to take a moment to look back at what goals were accomplished, what remains to be completed and what I have learnt. The project overview was discussed in the previous blog posts. However this post serves as a guide to anyone who wishes to learn about the project or carry it forward. Hence I will go over the project...]]>

Mon, 13 Aug 2018 12:24:03 +0000 Sensors Expo - Trip Report & My Best Video Yet! https://www.dsprelated.com/showarticle/1187/sensors-expo-my-storyThis was my first time at Sensors Expo and my second time in Silicon Valley and I must say I had a great time. Before I share with you what I find to be, by far, my best 'highlights' video yet for a conference/trade show, let me try to entertain you with a few anecdotes from this trip. If you are not interested by my stories or maybe don't have the...]]>

Fri, 03 Aug 2018 20:30:32 +0000 Design a DAC sinx/x Corrector https://www.dsprelated.com/showarticle/1191.phpThis post provides a Matlab function that designs linear-phase FIR sinx/x correctors. It includes a table of fixed-point sinx/x corrector coefficients for different DAC frequency ranges. A sinx/x corrector is a digital (or analog) filter used to compensate for the sinx/x roll-off inherent in the digital to analog conversion process. In DSP math, we treat the digital signal...]]>

Sun, 22 Jul 2018 17:22:49 +0000 Off Topic: Refraction in a Varying Medium https://www.dsprelated.com/showarticle/1190.phpThis article is another digression from a better understanding of the DFT. In fact, it is a digression from DSP altogether. However, since many of the readers here are Electrical Engineers and other folks who are very scientifically minded, I hope this article is of interest. A differential vector equation is derived for the trajectory of a point particle in a field of...]]> Wed, 11 Jul 2018 20:55:22 +0000 Feedback Controllers - Making Hardware with Firmware. Part 9. Closing the low-latency loop https://www.dsprelated.com/showarticle/1184.phpIt's time to put together the DSP and feedback control sciences, the evaluation electronics, the Intel Cyclone floating-point FPGA algorithms and the built-in control loop test-bed and evaluate some example designs. We will be counting the nanoseconds and looking for textbook performance in the creation of emulated hardware circuits. Along the way, there is a printed circuit board (PCB)...]]> Mon, 09 Jul 2018 14:26:22 +0000 Project update-2 : Digital Filter Blocks in MyHDL and their integration in pyFDA https://www.dsprelated.com/showarticle/1189.phpThis is an exciting update in the sense that it demonstrates a working model of one important aspect of the project: The integration or ‘glue’ between and Pyfda and MyHDL filter blocks. So, why do we need to integrate and how do we go about it?

As discussed in earlier posts, the idea is to provide a workflow in Pyfda that automates the process of Implementing a fixpoint filter in VHDL...]]>

Mon, 09 Jul 2018 10:45:58 +0000 Project update-1 : Digital Filter Blocks in MyHDL and their integration in pyFDA https://www.dsprelated.com/showarticle/1183.phpThis blog post presents the progress made up to week 5 in my GSoC project “Digital Filter blocks and their integration in PyFDA”. Progress was made in two areas of the project. This post will primarily discuss filter block implementation. The interface will be discussed in a later post once...]]>

Fri, 22 Jun 2018 13:22:51 +0000 Linear Feedback Shift Registers for the Uninitiated, Part XVI: Reed-Solomon Error Correction https://www.dsprelated.com/showarticle/1182/linear-feedback-shift-registers-for-the-uninitiated-part-xvi-reed-solomon-error-correctionLast time, we talked about error correction and detection, covering some basics like Hamming distance, CRCs, and Hamming codes. If you are new to this topic, I would strongly suggest going back to read that article before this one. This time we are going to cover Reed-Solomon codes. (I had meant to cover this topic in Part XV, but the article was getting to be too...]]>

Tue, 19 Jun 2018 15:06:45 +0000 Linear Feedback Shift Registers for the Uninitiated, Part XV: Error Detection and Correction https://www.dsprelated.com/showarticle/1180/linear-feedback-shift-registers-for-the-uninitiated-part-xv-error-detection-and-correctionLast time, we talked about Gold codes, a specially-constructed set of pseudorandom bit sequences (PRBS) with low mutual cross-correlation, which are used in many spread-spectrum communications systems, including the Global Positioning System. This time we are wading into the field of error detection and correction, in particular CRCs and Hamming...]]>

Tue, 12 Jun 2018 04:06:17 +0000 Who else is going to Sensors Expo in San Jose? Looking for roommate(s)! https://www.dsprelated.com/showarticle/1169/who-else-is-going-to-sensors-expo-in-san-joseThis will be my first time attending this show and I must say that I am excited. I am bringing with me my cameras and other video equipment with the intention to capture as much footage as possible and produce a (hopefully) fun to watch 'highlights' video. I will also try to film as many demos as possible and share them with you. I enjoy going to shows like this one as it gives me the...]]>

Tue, 29 May 2018 15:15:57 +0000 Digital PLL’s, Part 3 – Phase Lock an NCO to an External Clock https://www.dsprelated.com/showarticle/1177.phpSometimes you may need to phase-lock a numerically controlled oscillator (NCO) to an external clock that is not related to the system clocks of your ASIC or FPGA. This situation is shown in Figure 1. Assuming your system has an analog-to-digital converter (ADC) available, you can sync to the external clock using the scheme shown in Figure 2. This time-domain PLL model is...]]> Sun, 27 May 2018 18:06:07 +0000 Project introduction: Digital Filter Blocks in MyHDL and their integration in pyFDA https://www.dsprelated.com/showarticle/1176.phpHi everyone! After a lot of hesitation and several failed attempts, I have finally entered the world of blogging. A little about myself : My name is Sriyash Caculo and I’m a third year undergrad student at BITS Pilani K.K. Birla Goa Campus pursuing a major in Electronics and Instrumentation engineering. Being an electronics engineer, I developed an interest in Digital Signal Processing...]]> Fri, 25 May 2018 13:39:44 +0000 Two Easy Ways To Test Multistage CIC Decimation Filters https://www.dsprelated.com/showarticle/1171.phpThis blog presents two very easy ways to test the performance of multistage cascaded integrator-comb (CIC) decimation filters [1]. Anyone implementing CIC filters should take note of the following proposed CIC filter test methods. Introduction

Figure 1 presents a multistage decimate by D CIC filter where the number of stages is S = 3. The '↓D' operation represents downsampling by integer D...]]>

Tue, 22 May 2018 18:13:47 +0000 ADC Clock Jitter Model, Part 2 – Random Jitter https://www.dsprelated.com/showarticle/1160.phpIn Part 1, I presented a Matlab function to model an ADC with jitter on the sample clock, and applied it to examples with deterministic jitter. Now we’ll investigate an ADC with random clock jitter, by using a filtered or unfiltered Gaussian sequence as the jitter source. What we are calling jitter can also be called time jitter, phase jitter, or phase noise. It’s...]]> Sun, 22 Apr 2018 17:30:15 +0000 Take Control of Noise with Spectral Averaging https://www.dsprelated.com/showarticle/1159.phpMost engineers have seen the moment-to-moment fluctuations that are common with instantaneous measurements of a supposedly steady spectrum. You can see these fluctuations in magnitude and phase for each frequency bin of your spectrogram. Although major variations are certainly reason for concern, recall that we don’t live in an ideal, noise-free world. After verifying the integrity of your...]]> Fri, 20 Apr 2018 15:00:38 +0000 Linear Feedback Shift Registers for the Uninitiated, Part XIV: Gold Codes https://www.dsprelated.com/showarticle/1158/linear-feedback-shift-registers-for-the-uninitiated-part-xiv-gold-codesLast time we looked at some techniques using LFSR output for system identification, making use of the peculiar autocorrelation properties of pseudorandom bit sequences (PRBS) derived from an LFSR. This time we’re going to jump back to the field of communications, to look at an invention called Gold codes and why a single maximum-length PRBS...]]>

Wed, 18 Apr 2018 05:22:04 +0000 FFT Interpolation Based on FFT Samples: A Detective Story With a Surprise Ending https://www.dsprelated.com/showarticle/1156.phpThis blog presents several interesting things I recently learned regarding the estimation of a spectral value located at a frequency lying between previously computed FFT spectral samples. My curiosity about this FFT interpolation process was triggered by reading a spectrum analysis paper written by three astronomers [1]. My fixation on one equation in that paper led to the creation of this...]]>

Mon, 16 Apr 2018 19:33:09 +0000 ADC Clock Jitter Model, Part 1 – Deterministic Jitter https://www.dsprelated.com/showarticle/1157.phpAnalog to digital converters (ADC’s) have several imperfections that affect communications signals, including thermal noise, differential nonlinearity, and sample clock jitter [1, 2]. As shown in Figure 1, the ADC has a sample/hold function that is clocked by a sample clock. Jitter on the sample clock causes the sampling instants to vary from the ideal sample time. This...]]> Mon, 16 Apr 2018 17:29:19 +0000 Crowdfunding Articles? https://www.dsprelated.com/showarticle/1154/upcoming-articles-maybeMany of you have the knowledge and talent to write technical articles that would benefit the EE community. What is missing for most of you though, and very understandably so, is the time and motivation to do it. But what if you could make some money to compensate for your time spent on writing the article(s)? Would some of you find the motivation and...]]>

Thu, 12 Apr 2018 16:17:50 +0000 How precise is my measurement? https://www.dsprelated.com/showarticle/1150.phpSome might argue that measurement is a blend of skepticism and faith. While time constraints might make you lean toward faith, some healthy engineering skepticism should bring you back to statistics. This article reviews some practical statistics that can help you satisfy one common question posed by skeptical engineers: “How precise is my measurement?” As we’ll see, by understanding how...]]> Wed, 28 Mar 2018 18:12:58 +0000 Embedded World 2018 - More Videos! https://www.dsprelated.com/showarticle/1148/embedded-world-2018-more-videosAfter the interview videos last week, this week I am very happy to release two more videos taken at Embedded World 2018 and that I am proud of. For both videos, I made extensive use of my two new toys, a Zhiyun Crane Gimbal and a Sony a6300 camera.

The use of a gimbal like the Zhiyun makes a big difference in terms of making the footage look much more stable and...]]>

Tue, 27 Mar 2018 20:38:33 +0000 Phase or Frequency Shifter Using a Hilbert Transformer https://www.dsprelated.com/showarticle/1147.phpIn this article, we’ll describe how to use a Hilbert transformer to make a phase shifter or frequency shifter. In either case, the input is a real signal and the output is a real signal. We’ll use some simple Matlab code to simulate these systems. After that, we’ll go into a little more detail on Hilbert transformer theory and design. Sun, 25 Mar 2018 16:43:41 +0000 Feedback Controllers - Making Hardware with Firmware. Part 8. Control Loop Test-bed https://www.dsprelated.com/showarticle/1144.phpThis part in the series will consider the signals, measurements, analyses and configurations for testing high-speed low-latency feedback loops and their controllers. Along with basic test signals, a versatile IFFT signal generation scheme will be discussed and implemented. A simple controller under test will be constructed to demonstrate the analysis principles in preparation for the...]]> Wed, 21 Mar 2018 18:17:29 +0000 Embedded World 2018 - The Interviews https://www.dsprelated.com/showarticle/1146/embedded-world-2018-interviews-demosOnce again this year, I had the chance to go to Embedded World in Nuremberg Germany. And once again this year, I brought my video equipment to try and capture some of the most interesting things at the show. Something new this year, I asked Jacob Beningo if he would partner with me in doing interviews with a few vendors. I would operate the camera while Jacob would...]]>

Wed, 21 Mar 2018 16:25:14 +0000 Phase and Amplitude Calculation for a Pure Complex Tone in a DFT using Multiple Bins https://www.dsprelated.com/showarticle/1143.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving exact formulas to calculate the phase and amplitude of a pure complex tone from several DFT bin values and knowing the frequency. This article is functionally an extension of my prior article "Phase and Amplitude Calculation for a Pure Complex Tone in a DFT"[1]...]]> Wed, 14 Mar 2018 18:22:14 +0000 Linear Feedback Shift Registers for the Uninitiated, Part XIII: System Identification https://www.dsprelated.com/showarticle/1142/linear-feedback-shift-registers-for-the-uninitiated-part-xiii-system-identificationLast time we looked at spread-spectrum techniques using the output bit sequence of an LFSR as a pseudorandom bit sequence (PRBS). The main benefit we explored was increasing signal-to-noise ratio (SNR) relative to other disturbance signals in a communication system. This time we’re going to use a PRBS from LFSR output to do something completely different: system identification....]]>

Mon, 12 Mar 2018 05:24:20 +0000 Coefficients of Cascaded Discrete-Time Systems https://www.dsprelated.com/showarticle/1141.phpIn this article, we’ll show how to compute the coefficients that result when you cascade discrete-time systems. With the coefficients in hand, it’s then easy to compute the time or frequency response. The computation presented here can also be used to find coefficients of mixed discrete-time and continuous-time systems, by using a discrete time model of the continuous-time...]]> Sun, 04 Mar 2018 16:08:17 +0000 Design IIR Filters Using Cascaded Biquads https://www.dsprelated.com/showarticle/1137.phpSun, 11 Feb 2018 21:08:34 +0000 Design IIR Highpass Filters https://www.dsprelated.com/showarticle/1135.phpThis post is the fourth in a series of tutorials on IIR Butterworth filter design. So far we covered lowpass [1], bandpass [2], and band-reject [3] filters; now we’ll design highpass filters. The general approach, as before, has six steps: - Find the poles of a lowpass analog prototype filter with Ωc = 1 rad/s.
- Given the -3 dB frequency of the digital highpass filter,...]]>
Sat, 03 Feb 2018 16:09:47 +0000 Design IIR Band-Reject Filters https://www.dsprelated.com/showarticle/1131.phpIn this post, I show how to design IIR Butterworth band-reject filters, and provide two Matlab functions for band-reject filter synthesis. Earlier posts covered IIR Butterworth lowpass [1] and bandpass [2] filters. Here, the function br_synth1.m designs band-reject filters based on null frequency and upper -3 dB frequency, while br_synth2.m designs them based on lower and upper -3...]]> Wed, 17 Jan 2018 23:54:49 +0000 Design IIR Bandpass Filters https://www.dsprelated.com/showarticle/1128.phpIn this post, I present a method to design Butterworth IIR bandpass filters. My previous post [1] covered lowpass IIR filter design, and provided a Matlab function to design them. Here, we’ll do the same thing for IIR bandpass filters, with a Matlab function bp_synth.m. Here is an example function call for a bandpass filter based on a 3rd order lowpass prototype: N=...]]> Sat, 06 Jan 2018 18:35:44 +0000 Phase and Amplitude Calculation for a Pure Complex Tone in a DFT https://www.dsprelated.com/showarticle/1127.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving exact formulas to calculate the phase and amplitude of a pure complex tone from a DFT bin value and knowing the frequency. This is a much simpler problem to solve than the corresponding case for a pure real tone which I covered in an earlier blog article[1]. In the...]]> Sat, 06 Jan 2018 14:40:23 +0000 Feedback Controllers - Making Hardware with Firmware. Part 7. Turbo-charged DSP Oscillators https://www.dsprelated.com/showarticle/1126.phpComparisons will be made between implementations on Intel Cyclone V and Fri, 05 Jan 2018 11:55:33 +0000 Linear Feedback Shift Registers for the Uninitiated, Part XII: Spread-Spectrum Fundamentals https://www.dsprelated.com/showarticle/1124/linear-feedback-shift-registers-for-the-uninitiated-part-xii-spread-spectrum-fundamentalsLast time we looked at the use of LFSRs for pseudorandom number generation, or PRNG, and saw two things: - the use of LFSR state for PRNG has undesirable serial correlation and frequency-domain properties
- the use of single bits of LFSR output has good frequency-domain properties, and its autocorrelation values are so close to zero that they are actually better than a
Fri, 29 Dec 2017 20:38:40 +0000 An Efficient Linear Interpolation Scheme https://www.dsprelated.com/showarticle/1123.phpThis blog presents a computationally-efficient linear interpolation trick that requires at most one multiply per output sample. Background: Linear Interpolation

Looking at Figure 1(a) let's assume we have two points, [x(0),y(0)] and [x(1),y(1)], and we want to compute the value y, on the line joining those two points, associated with the value x.

Sun, 17 Dec 2017 17:53:33 +0000 Design IIR Butterworth Filters Using 12 Lines of Code https://www.dsprelated.com/showarticle/1119.phpWhile there are plenty of canned functions to design Butterworth IIR filters [1], it’s instructive and not that complicated to design them from scratch. You can do it in 12 lines of Matlab code. In this article, we’ll create a Matlab function butter_synth.m to design lowpass Butterworth filters of any order. Here is an example function call for a 5th order filter: Sun, 10 Dec 2017 19:20:56 +0000 Feedback Controllers - Making Hardware with Firmware. Part 6. Self-Calibration Related. https://www.dsprelated.com/showarticle/1116.phpThis article will consider the engineering of a self-calibration & self-test capability to enable the project hardware to be configured and its basic performance evaluated and verified, ready for the development of the low-latency controller DSP firmware and closed-loop applications. Performance specifications will be documented in due course, on the project website Sun, 03 Dec 2017 17:26:13 +0000 Simplest Calculation of Half-band Filter Coefficients https://www.dsprelated.com/showarticle/1113.phpHalf-band filters are lowpass FIR filters with cut-off frequency of one-quarter of sampling frequency fs and odd symmetry about fs/4 [1]*. And it so happens that almost half of the coefficients are zero. The passband and stopband bandwiths are equal, making these filters useful for decimation-by-2 and interpolation-by-2. Since the zero coefficients make them...]]> Mon, 20 Nov 2017 18:26:41 +0000 Feedback Controllers - Making Hardware with Firmware. Part 5. Some FPGA Aspects. https://www.dsprelated.com/showarticle/1111.phpTue, 14 Nov 2017 17:50:32 +0000 Improved Three Bin Exact Frequency Formula for a Pure Real Tone in a DFT https://www.dsprelated.com/showarticle/1108.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by extending the exact two bin formulas for the frequency of a real tone in a DFT to the three bin case. This article is a direct extension of my prior article "Two Bin Exact Frequency Formulas for a Pure Real Tone in a DFT"[1]. The formulas derived in the previous article are...]]> Mon, 06 Nov 2017 22:24:01 +0000 There's No End to It -- Matlab Code Plots Frequency Response above the Unit Circle https://www.dsprelated.com/showarticle/1102.phpTue, 10 Oct 2017 13:24:18 +0000 Online DSP Classes: Why Such a High Dropout Rate? https://www.dsprelated.com/showarticle/1096.phpHowever, one fact that struck me as important, but not thoroughly addressed in the...]]>

Sat, 07 Oct 2017 11:32:07 +0000 Two Bin Exact Frequency Formulas for a Pure Real Tone in a DFT https://www.dsprelated.com/showarticle/1095.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving exact formulas for the frequency of a real tone in a DFT. This time it is a two bin version. The approach taken is a vector based one similar to the approach used in "Three Bin Exact Frequency Formulas for a Pure Complex Tone in a DFT"[1]. The real valued formula...]]> Wed, 04 Oct 2017 23:19:23 +0000 Errata for the book: 'Understanding Digital Signal Processing' https://www.dsprelated.com/showarticle/1094.phpErrata 3rd Ed. International Version.pdf This blog post provides, in one place, the errata for each of the many different Editions/Printings of my book Understanding Digital Signal Processing.

If you would like the errata for your copy of the book, merely scroll down and click on the...]]>

Wed, 04 Oct 2017 15:43:10 +0000 Feedback Controllers - Making Hardware with Firmware. Part 3. Sampled Data Aspects https://www.dsprelated.com/showarticle/1085.phpThis article will continue to look at some aspects of the controllers and electronics needed to create emulated physical circuits with real-world connectivity and will look at the issues that arise in sampled-data controllers compared to continuous-domain controllers. As such, is not intended as an introduction to...]]> Sat, 09 Sep 2017 13:59:35 +0000 Finally got a drone! https://www.dsprelated.com/showarticle/1082/finally-got-a-droneAs a reader of my blog, you already know that I have been making videos lately and thoroughly enjoying the process. When I was in Germany early this summer (and went 280 km/h in a porsche!) to produce SEGGER's 25th anniversary video, the company bought a drone so we could get an aerial shot of the party (at about the 1:35 mark in this video). Since then, I have been...]]> Mon, 28 Aug 2017 15:10:27 +0000 Feedback Controllers - Making Hardware with Firmware. Part 2. Ideal Model Examples https://www.dsprelated.com/showarticle/1081.phpThis article will describe models for simulating the systems and controllers for the hardware emulation application described in Part 1 of the series. - Part 1: Introduction
- Part 2: Ideal Model Examples
- Part 3: Sampled...]]>
Thu, 24 Aug 2017 17:25:07 +0000 Feedback Controllers - Making Hardware with Firmware. Part I. Introduction https://www.dsprelated.com/showarticle/1077.phpThis is the 1st in a series of articles looking at how we can use DSP and Feedback Control Sciences along with some mixed-signal electronics and number-crunching capability (e.g. FPGA), to create arbitrary (within reason) Electrical/Electronic Circuits with real-world connectivity. Of equal importance will be the evaluation of the functionality and...]]> Tue, 22 Aug 2017 16:24:21 +0000 Exact Near Instantaneous Frequency Formulas Best at Zero Crossings https://www.dsprelated.com/showarticle/1074.phpThis is an article that is the last of my digression from trying to give a better understanding of the Discrete Fourier Transform (DFT). It is along the lines of the last two. In those articles, I presented exact formulas for calculating the frequency of a pure tone signal as instantaneously as possible in the time domain. Although the formulas work for both real and...]]>

Thu, 20 Jul 2017 20:10:39 +0000 SEGGER's 25th Anniversary Video https://www.dsprelated.com/showarticle/1071/segger-s-25th-anniversary-videoChances are you will find this video more interesting to watch if you take five minutes to first read The video is only a little more than 2 minutes long. If you decide to watch it, make sure to go full screen and I would really love to read your thoughts about it in the comments down bellow. Do...]]>

Tue, 18 Jul 2017 18:11:37 +0000 Above-Average Smoothing of Impulsive Noise https://www.dsprelated.com/showarticle/1068.phpIn this blog I show a neat noise reduction scheme that has the high-frequency noise reduction behavior of a traditional moving average process but with much better impulsive-noise suppression. In practice we may be required to make precise measurements in the presence of highly-impulsive noise. Without some sort of analog signal conditioning, or digital signal processing, it can be...]]>

Mon, 10 Jul 2017 17:32:07 +0000 Went 280km/h (174mph) in a Porsche Panamera in Germany! https://www.dsprelated.com/showarticle/1062/280kmh_in_a_PorscheThose of you who've been following my blog lately already know that I am going through some sort of mid-life crisis that involves going out there to meet people and make videos. It all started with Embedded World early this year, then continued at ESC Boston a couple of months ago and the latest chapter just concluded as I returned from...]]> Mon, 10 Jul 2017 14:21:15 +0000 Looking For a Second Toolbox? This One's For Sale https://www.dsprelated.com/showarticle/1064.phpThe blue-enameled steel toolbox measures 13 x 7 x 5 inches and, when opened, has a three-section tray attached to the lid. Showing signs of heavy use, the interior, tray, and exterior have collected a fair amount of dirt and grease and bear many scratches. The bottom of the box is worn from having been slid on...]]>

Thu, 29 Jun 2017 13:46:12 +0000 Embedded Toolbox: Programmer's Calculator https://www.dsprelated.com/showarticle/1061/embedded-toolbox-programmer-s-calculatorLike any craftsman, I have accumulated quite a few tools during my embedded software development career. Some of them proved to me more useful than others. And these generally useful tools ended up in my Embedded Toolbox. In this blog, I'd like to share some of my tools with you. Today, I'd like to start with my cross-platform Programmer's Calculator called QCalc. I'm sure that you...]]>

Tue, 27 Jun 2017 19:16:07 +0000 Ten Little Algorithms, Part 6: Green’s Theorem and Swept-Area Detection https://www.dsprelated.com/showarticle/1058/ten-little-algorithms-part-6-green-s-theorem-and-swept-area-detectionOther 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
- Part 5: Quadratic Extremum Interpolation and Chandrupatla's...]]>
Sun, 18 Jun 2017 20:32:01 +0000 Going back to Germany! https://www.dsprelated.com/showarticle/1057/going-back-to-germanyA couple of blog posts ago, I wrote that These feelings were amplified a few days after my return when I received an email from Rolf Segger, the founder of SEGGER Microcontroller (

Tue, 13 Jun 2017 19:22:24 +0000 Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 2) https://www.dsprelated.com/showarticle/1056.phpThis is an article that is a continuation of a digression from trying to give a better understanding of the Discrete Fourier Transform (DFT). It is recommended that my previous article "Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 1)"[1] be read first as many sections of this article are directly dependent upon it. A second family of formulas for...]]>

Short HighlightSun, 11 Jun 2017 22:45:08 +0000 Modeling a Continuous-Time System with Matlab https://www.dsprelated.com/showarticle/1055.phpMany of us are familiar with modeling a continuous-time system in the frequency domain using its transfer function H(s) or H(jω). However, finding the time response can be challenging, and traditionally involves finding the inverse Laplace transform of H(s). An alternative way to get both time and frequency responses is to transform H(s) to a discrete-time system H(z) using the...]]> Tue, 06 Jun 2017 19:55:45 +0000 ESC Boston's Videos are Now Up https://www.dsprelated.com/showarticle/1054/esc-boston-s-videos-are-now-upIn my last blog, I told you about my experience at ESC Boston and the few videos that I was planning to produce and publish. Here they are, please have a look and any feedback (positive or negative) is appreciated. This is a very short (one minute) montage of some of the footage that I shot at the show & conference. In future shows, I absolutely need to...]]>

Mon, 05 Jun 2017 13:53:50 +0000 How to Find a Fast Floating-Point atan2 Approximation https://www.dsprelated.com/showarticle/1052.phpFri, 26 May 2017 15:14:40 +0000 Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 1) https://www.dsprelated.com/showarticle/1051.phpThis is an article that is a another digression from trying to give a better understanding of the Discrete Fourier Transform (DFT). Although it is not as far off as the last blog article. A new family of formulas for calculating the frequency of a single pure tone in a short interval in the time domain is presented. They are a generalization of Equation (1) from Rick...]]>

Fri, 12 May 2017 20:41:59 +0000 Back from ESC Boston https://www.dsprelated.com/showarticle/1048/back-from-esc-bostonNOT going to ESC Boston would have allowed me to stay home, in my comfort zone. NOT going to ESC Boston would have saved me from driving in the absolutely horrible & stressful Boston traffic1.

NOT going to ESC Boston would have saved me from having to go through a full search & questioning session at the Canada Customs on my return2.

Sun, 07 May 2017 00:40:31 +0000 A Beginner's Guide to OFDM https://www.dsprelated.com/showarticle/1046.phpIn the recent past, high data rate wireless communications is often considered synonymous to an Orthogonal Frequency Division Multiplexing (OFDM) system. OFDM is a special case of multi-carrier communication as opposed to a conventional single-carrier system. The concepts on which OFDM is based are so simple that almost everyone in the wireless community is a technical expert in this...]]>

Mon, 01 May 2017 07:02:27 +0000 A Recipe for a Common Logarithm Table https://www.dsprelated.com/showarticle/1047.phpThis is an article that is a digression from trying to give a better understanding to the Discrete Fourier Transform (DFT). A method for building a table of Base 10 Logarithms, also known as Common Logarithms, is featured using math that can be done with paper and pencil. The reader is assumed to have some familiarity with logarithm functions. This material has no...]]>

Sat, 29 Apr 2017 20:42:21 +0000 Sinusoidal Frequency Estimation Based on Time-Domain Samples https://www.dsprelated.com/showarticle/1045.phpThe topic of estimating a noise-free real or complex sinusoid's frequency, based on fast Fourier transform (FFT) samples, has been presented in recent blogs here on dsprelated.com. For completeness, it's worth knowing that simple frequency estimation algorithms exist that do not require FFTs to be performed . Below I present three frequency estimation algorithms that use...]]> Thu, 20 Apr 2017 04:41:51 +0000 Three Bin Exact Frequency Formulas for a Pure Complex Tone in a DFT https://www.dsprelated.com/showarticle/1043.phpThis is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by deriving exact formulas for the frequency of a complex tone in a DFT. This time it is three bin versions. Although the problem is similar to the two bin version in my previous blog article "A Two Bin Exact Frequency Formula for a Pure Complex Tone in a DFT"[1], a slightly...]]> Thu, 13 Apr 2017 19:19:31 +0000 Launch of Youtube Channel: My First Videos - Embedded World 2017 https://www.dsprelated.com/showarticle/1042/launch-of-youtube-channel-my-first-videos-embedded-world-2017I 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 in order to produce a one to three minutes video per booth. So far my experience with making videos was limited to family videos, so I knew I had...]]>

Wed, 05 Apr 2017 16:27:00 +0000 A Two Bin Exact Frequency Formula for a Pure Complex Tone in a DFT https://www.dsprelated.com/showarticle/1039.phpThis 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 given in Exact Frequency Formula for a Pure Real Tone in a DFT. Since a real signal is the sum of two complex signals, the frequency formula for a...]]> Mon, 20 Mar 2017 22:11:47 +0000 DFT Bin Value Formulas for Pure Complex Tones https://www.dsprelated.com/showarticle/1038.phpThis is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by deriving an analytical formula for the DFT of pure complex tones and an alternative variation. It is basically a parallel treatment to the real case given in DFT Bin Value Formulas for Pure Real Tones. In order to understand how a multiple tone signal acts in a DFT it...]]> Fri, 17 Mar 2017 22:32:42 +0000 Multi-Decimation Stage Filtering for Sigma Delta ADCs: Design and Optimization https://www.dsprelated.com/showarticle/1037.phpDuring 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 automate the process of designing the multi-stage decimation filter(s). The toolbox is published as an open-source at the MathWorks web-site. My...]]> Wed, 01 Mar 2017 22:30:45 +0000 Canonic Signed Digit (CSD) Representation of Integers https://www.dsprelated.com/showarticle/1030.phpIn my last post I presented Matlab code to synthesize multiplierless FIR filters using Canonic Signed Digit (CSD) coefficients. I included a function dec2csd1.m (repeated here in Appendix A) to convert decimal integers to binary CSD values. Here I want to use that function to illustrate a few properties of CSD numbers. In a binary signed-digit number system, we allow...]]>

Sat, 18 Feb 2017 16:23:36 +0000 Frequency Translation by Way of Lowpass FIR Filtering https://www.dsprelated.com/showarticle/1028.phpSome weeks ago a question appeared on the dsp.related Forum regarding the notion of translating a signal down in frequency and lowpass filtering in a single operation [1]. It is possible to implement such a process by embedding a discrete cosine sequence's values within the coefficients of a traditional lowpass FIR filter. I first learned about this process from Reference [2]. Here's the...]]> Sat, 04 Feb 2017 19:10:48 +0000 Minimum Shift Keying (MSK) - A Tutorial https://www.dsprelated.com/showarticle/1016.phpMinimum Shift Keying (MSK) is one of the most spectrally efficient modulation schemes available. Due to its constant envelope, it is resilient to non-linear distortion and was therefore chosen as the modulation technique for the GSM cell phone standard. MSK is a special case of Continuous-Phase Frequency Shift Keying (CPFSK) which is a special case of a general class of modulation schemes...]]>

]]>Wed, 25 Jan 2017 06:38:24 +0000 New Video: Parametric Oscillations https://www.dsprelated.com/showarticle/1022.phpI just posted this last night. It's kinda off-topic from the mission of the channel, but I realized that it had been months since I'd posted a video, and having an excuse to build on helped keep me on track. Wed, 04 Jan 2017 20:06:45 +0000 Round Round Get Around: Why Fixed-Point Right-Shifts Are Just Fine https://www.dsprelated.com/showarticle/1015/round-round-get-around-why-fixed-point-right-shifts-are-just-fineToday’s topic is rounding in embedded systems, or more specifically, why you don’t need to worry about it in many cases. One of the issues faced in computer arithmetic is that exact arithmetic requires an ever-increasing bit length to avoid overflow. Adding or subtracting two 16-bit integers produces a 17-bit result; multiplying two 16-bit integers produces a 32-bit result. In...]]>

Tue, 22 Nov 2016 14:26:03 +0000 Some Thoughts on Sampling https://www.dsprelated.com/showarticle/1014.phpSome 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 it possible that during sampling, the frequency axis gets scaled by $1/T_s$ -- a very large number? For an ADC operating at 10 MHz for example, the...]]> Tue, 15 Nov 2016 11:48:56 +0000 Matlab Code to Synthesize Multiplierless FIR Filters https://www.dsprelated.com/showarticle/1011.phpThis article presents Matlab code to synthesize multiplierless Finite Impulse Response (FIR) lowpass filters. A filter coefficient can be represented as a sum of powers of 2. For example, if a coefficient = decimal 5 multiplies input x, the output is $y= 2^2*x + 2^0*x$. The factor of $2^2$ is then implemented with a shift of 2 bits. This method is not efficient for...]]>

Mon, 31 Oct 2016 16:54:27 +0000 Wavelets II - Vanishing Moments and Spectral Factorization https://www.dsprelated.com/showarticle/1006.phpIn the previous blog post I described the workings of the Fast Wavelet Transform (FWT) and how wavelets and filters are related. As promised, in this article we will see how to construct useful filters. Concretely, we will find a way to calculate the Daubechies filters, named after Ingrid Daubechies, who invented them and also laid much of the mathematical foundations for wavelet...]]> Tue, 11 Oct 2016 10:47:33 +0000 Fibonacci trick https://www.dsprelated.com/showarticle/1005.phpI'm working on a video, tying the Fibonacci sequence into the general subject of difference equations. Here's a fun trick: take any two consecutive numbers in the Fibonacci sequence, say 34 and 55. Now negate one and use them as the seed for the Fibonacci sequence, larger magnitude first, i.e.

$-55, 34, \cdots$

Carry it out, and you'll eventually get the Fibonacci sequence, or it's...]]>

Mon, 10 Oct 2016 20:51:17 +0000 The Power Spectrum https://www.dsprelated.com/showarticle/1004.phpOften, when calculating the spectrum of a sampled signal, we are interested in relative powers, and we don’t care about the absolute accuracy of the y axis. However, when the sampled signal represents an analog signal, we sometimes need an accurate picture of the analog signal’s power in the frequency domain. This post shows how to calculate an accurate power...]]> Sat, 08 Oct 2016 21:47:09 +0000 New Comments System (please help me test it) https://www.dsprelated.com/showarticle/1003.phpI thought it would take me a day or two to implement, it took almost two weeks... But here it is, the new comments systems for blogs, heavily inspired by the forum system I developed earlier this year.

Which means that:

- You can easily add images, either by drag and drop or through the 'Insert Image' button
- You can add MathML, TeX and ASCIImath equations and they will be rendered with...]]>
Tue, 04 Oct 2016 17:15:57 +0000 Wavelets I - From Filter Banks to the Dilation Equation https://www.dsprelated.com/showarticle/1000.phpThis is the first in what I hope will be a series of posts about wavelets, particularly about the Fast Wavelet Transform (FWT). The FWT is extremely useful in practice and also very interesting from a theoretical point of view. Of course there are already plenty of resources, but I found them tending to be either simple implementation guides that do not touch on the many interesting and...]]> Wed, 28 Sep 2016 22:29:21 +0000 The Real Star of Star Trek https://www.dsprelated.com/showarticle/995.phpUnless you've been living under a rock recently, you're probably aware that this month is the 50-year anniversary of the original Star Trek show on American television. It's an anniversary worth noting, as did Time and Newsweek magazines with their special editions. Over the years I've come to realize that a major star of the original Star Trek series wasn't an actor....]]>

Sun, 25 Sep 2016 19:26:16 +0000 An s-Plane to z-Plane Mapping Example https://www.dsprelated.com/showarticle/994.phpWhile surfing around the Internet recently I encountered the 's-plane to z-plane mapping' diagram shown in Figure 1. At first I thought the diagram was neat because it's a good example of the old English idiom: "A picture is worth a thousand words." However, as I continued to look at Figure 1 I began to detect what I believe are errors in the diagram. Reader, please take a few moments to...]]>

Sat, 24 Sep 2016 11:51:14 +0000 Should DSP Undergraduate Students Study z-Transform Regions of Convergence? https://www.dsprelated.com/showarticle/993.phpNot 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 a question similar to: "I noticed that you didn't discuss z-plane regions of convergence here. In my...]]>

What I Liked About the ASN...]]>Wed, 14 Sep 2016 13:47:27 +0000 Implementing Impractical Digital Filters https://www.dsprelated.com/showarticle/990.phpThis blog discusses a problematic situation that can arise when we try to implement certain digital filters. Occasionally in the literature of DSP we encounter impractical digital IIR filter block diagrams, and by impractical I mean block diagrams that cannot be implemented. This blog gives examples of impractical digital IIR filters and what can be done to make them...]]> Tue, 19 Jul 2016 13:29:08 +0000 An Astounding Digital Filter Design Application https://www.dsprelated.com/showarticle/980.phpI've recently encountered a digital filter design application that astonished me with its design flexibility, capability, and ease of use. The software is called the "ASN Filter Designer." After experimenting with a demo version of this filter design software I was so impressed that I simply had publicize it to the subscribers here on dsprelated.com. Thu, 07 Jul 2016 19:57:09 +0000 Digital PLL's -- Part 2 https://www.dsprelated.com/showarticle/973.phpIn Part 1, we found the time response of a 2nd order PLL with a proportional + integral (lead-lag) loop filter. Now let’s look at this PLL in the Z-domain [1, 2]. We will find that the response is characterized by a loop natural frequency ωn and damping coefficient ζ. Having a Z-domain model of the DPLL will allow us to do three things:

- Compute the...]]>
Wed, 15 Jun 2016 11:18:41 +0000 The Swiss Army Knife of Digital Networks https://www.dsprelated.com/showarticle/972.phpThis blog describes a general discrete-signal network that appears, in various forms, inside so many DSP applications. Figure 1 shows how the network's structure has the distinct look of a digital filter—a comb filter followed by a 2nd-order recursive network. However, I do not call this useful network a filter because its capabilities extend far beyond simple filtering. Through a...]]>

Mon, 13 Jun 2016 19:56:48 +0000 Digital PLL's -- Part 1 https://www.dsprelated.com/showarticle/967.phpFigure 1.1 is a block diagram of a digital PLL (DPLL). The purpose of the DPLL is to lock the phase of a numerically controlled oscillator (NCO) to a reference signal. The loop includes a phase detector to compute phase error and a loop filter to set loop dynamic performance. The output of the loop filter controls the frequency and phase of the NCO,...]]> Tue, 07 Jun 2016 14:34:38 +0000 Peak to Average Power Ratio and CCDF https://www.dsprelated.com/showarticle/962.phpPeak to Average Power Ratio (PAPR) is often used to characterize digitally modulated signals. One example application is setting the level of the signal in a digital modulator. Knowing PAPR allows setting the average power to a level that is just low enough to minimize clipping. However, for a random signal, PAPR is a statistical quantity. We have to ask, what...]]>

Tue, 17 May 2016 18:55:24 +0000 Filter a Rectangular Pulse with no Ringing https://www.dsprelated.com/showarticle/956.phpTo filter a rectangular pulse without any ringing, there is only one requirement on the filter coefficients: they must all be positive. However, if we want the leading and trailing edge of the pulse to be symmetrical, then the coefficients must be symmetrical. What we are describing is basically a window function. Consider a rectangular pulse 32 samples long with fs ...]]>

Thu, 12 May 2016 13:53:11 +0000 Data Types for Control & DSP https://www.dsprelated.com/showarticle/944/data-types-for-control-dspThere's a lot of information out there on what data types to use for digital signal processing, but there's also a lot of confusion, so the topic bears repeating. I recently posted an entry on PID control. In that article I glossed over the data types used by showing "double" in all of my example code. Numerically, this should work for most control problems, but it can be an extravagant...]]>

Wed, 27 Apr 2016 00:41:49 +0000 PID Without a PhD https://www.dsprelated.com/showarticle/943/pid-without-a-phdI both consult and teach in the area of digital control. Through both of these efforts, I have found that while there certainly are control problems that require all the expertise I can bring to bear, there are a great number of control problems that can be solved with the most basic knowledge of simple controllers, without resort to any formal control theory at all. This article will tell...]]>

Tue, 26 Apr 2016 18:18:10 +0000 Digital Envelope Detection: The Good, the Bad, and the Ugly https://www.dsprelated.com/showarticle/938.phpRecently I've been thinking about the process of envelope detection. Tutorial information on this topic is readily available but that information is spread out over a number of DSP textbooks and many Internet web sites. The purpose of this blog is to summarize various digital envelope detection methods in one place. Here I focus on envelope detection as it is applied to an...]]>

Sun, 03 Apr 2016 14:38:15 +0000 Harmonic Notch Filter https://www.dsprelated.com/showarticle/935.phpMy basement is covered with power lines and florescent lights which makes collecting ECG and EEG data rather difficult due to the 60 cycle hum. I found the following notch filter to work very well at eliminating the background signal without effecting the highly amplified signals I was looking for. The notch filter is based on the a transfer function with the form...]]>

Mon, 28 Mar 2016 21:48:02 +0000 A Useful Source of Signal Processing Information https://www.dsprelated.com/showarticle/932.phpI just discovered a useful web-based source of signal processing information that was new to me. I thought I'd share what I learned with the subscribers here on DSPRelated.com. The Home page of the web site that I found doesn't look at all like it would be useful to us DSP fanatics. But if you enter some signal processing topic of interest, say, "FM demodulation" (without the...]]>

Wed, 23 Mar 2016 16:09:46 +0000 3 Good News https://www.dsprelated.com/showarticle/930/3-good-newsLast week, I announced a new and ambitious reward program that will be funded by the new Vendors Directory. This week, I am happy to announce that we have our firsts two sponsors! Quantum Leaps & Abelon Systems have agreed to pay the sponsorship fee to be...]]>

Wed, 09 Mar 2016 21:12:03 +0000 Padé Delay is Okay Today https://www.dsprelated.com/showarticle/927/pad-delay-is-okay-todayThis article is going to be somewhat different in that I’m not really writing it for the typical embedded systems engineer. Rather it’s kind of a specialized topic, so don’t be surprised if you get bored and move on to something else. That’s fine by me. Anyway, let’s just jump ahead to the punchline. Here’s a numerical simulation of a step response to a \(...]]>

Tue, 01 Mar 2016 14:52:08 +0000 The New Forum is LIVE! https://www.dsprelated.com/showarticle/913/welcome-to-the-new-forumAfter months of hard word, I am very excited to introduce to you the new forum interface. Here are the key features:

1- Easily add images to a post by drag & dropping the images in the editor

2- Easily attach files to a post by drag & dropping the files in the editor

3- Add latex equations to a post and they will be rendered with Mathjax (

Thu, 18 Feb 2016 14:31:48 +0000 Autocorrelation and the case of the missing fundamental https://www.dsprelated.com/showarticle/909.php[UPDATED January 25, 2016: One of the examples was broken, also the IPython notebook links now point to nbviewer, where you can hear the examples.] For sounds with simple harmonic structure, the pitch we perceive is usually the fundamental frequency, even if it is not dominant. For example, here's the spectrum of a half-second recording of a saxophone.

The first three peaks are...]]>

Thu, 21 Jan 2016 19:53:20 +0000 Generating pink noise https://www.dsprelated.com/showarticle/908.phpIn one of his most famous columns for Scientific American, Martin Gardner wrote about pink noise and its relation to fractal music. The article was based on a 1978 paper by Voss and Clarke, which presents, among other things, a simple algorithm for generating pink noise, also known as 1/f noise. The fundamental idea of the algorithm is to add up several sequences of...]]>

Wed, 20 Jan 2016 20:24:05 +0000 Ancient History https://www.dsprelated.com/showarticle/907/ancient-historyThe other day I was downloading an IDE for a new (to me) OS. When I went to compile some sample code, it failed. I went onto a forum, where I was told "if you read the release notes you'd know that the peripheral libraries are in a legacy download". Well damn! Looking back at my previous versions I realized I must have done that and forgotten about it. Everything...]]> Mon, 18 Jan 2016 14:15:28 +0000 Dealing With Fixed Point Fractions https://www.dsprelated.com/showarticle/904/fixed-point-fraction-representationFixed point fractional representation always gives me a headache because I screw it up the first time I try to implement an algorithm. The difference between integer operations and fractional operations is in the overflow. If the representation fits in the fixed point result, you can not tell the difference between fixed point integer and fixed point fractions. When integers...]]> Tue, 05 Jan 2016 15:52:45 +0000 Optimizing the Half-band Filters in Multistage Decimation and Interpolation https://www.dsprelated.com/showarticle/903.phpThis blog discusses a not so well-known rule regarding the filtering in multistage decimation and interpolation by an integer power of two. I'm referring to sample rate change systems using half-band lowpass filters (LPFs) as shown in Figure 1. Here's the story. Figure 1: Multistage decimation and interpolation using half-band filters.

Multistage...]]>Mon, 04 Jan 2016 19:59:52 +0000 The DFT Output and Its Dimensions https://www.dsprelated.com/showarticle/901.phpThe Discrete Fourier Transform, or DFT, converts a signal from discrete time to discrete frequency. It is commonly implemented as and used as the Fast Fourier Transform (FFT). This article will attempt to clarify the format of the DFT output and how it is produced. Living in the real world, we deal with real signals. The data we typically sample does not have an imaginary component....]]>

Tue, 29 Dec 2015 16:56:23 +0000 Amplitude modulation and the sampling theorem https://www.dsprelated.com/showarticle/897.phpI am working on the 11th and probably final chapter of Think DSP, which follows material my colleague Siddhartan Govindasamy developed for a class at Olin College. He introduces amplitude modulation as a clever way to sneak up on the Nyquist–Shannon sampling theorem. Most of the code for the chapter is done:

Fri, 18 Dec 2015 16:24:27 +0000 Exponential Smoothing with a Wrinkle https://www.dsprelated.com/showarticle/896.phpThis is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by providing a set of preprocessing filters to improve the resolution of the DFT. Because of the exponential nature of sinusoidal functions, they have special mathematical properties when exponential smoothing is applied to them. These properties are derived and explained in...]]> Thu, 17 Dec 2015 20:05:19 +0000 Differentiating and integrating discrete signals https://www.dsprelated.com/showarticle/895.phpI am back at work on Think DSP, adding a new chapter on differentiation and integration. In the previous chapter (which you can read here) I present Gaussian smoothing, show how smoothing in the time domain corresponds to a low-pass filter in the frequency domain, and present the Convolution Theorem. In the current chapter, I start with the first difference operation (diff in...]]>

Mon, 14 Dec 2015 15:05:50 +0000 Discrete-Time PLLs, Part 1: Basics https://www.dsprelated.com/showarticle/860.phpDesign Files: Part1.slx Hi everyone,

In this series of tutorials on discrete-time PLLs we will be focusing on Phase-Locked Loops that can be implemented in discrete-time signal proessors such as FPGAs, DSPs and of course, MATLAB.

In the first part of the series, we will be reviewing the basics of continuous-time baseband PLLs and we...]]>

Summary of ROC RulesTue, 01 Dec 2015 04:00:04 +0000 60 numbers https://www.dsprelated.com/showarticle/881.phpThis blog title is inspired from the Peabody award-winning Radiolab episode 60 words. Radiolab is well known for its insightful stories on Science with an amazing sound design. Today's blog is about decoding Radiolab's theme music (actually, just a small "Mmm Newewe" part of it hereafter called the Radiolab...]]> Mon, 30 Nov 2015 06:10:19 +0000 Compressive Sensing - Recovery of Sparse Signals (Part 1) https://www.dsprelated.com/showarticle/880.phpThe amount of data that is generated has been increasing at a substantial rate since the beginning of the digital revolution. The constraints on the sampling and reconstruction of digital signals are derived from the well-known Nyquist-Shannon sampling theorem. To review, the theorem states that a band-limited signal, with the highest frequency of $f_{max}$, can be completely reconstructed...]]> Sun, 29 Nov 2015 02:31:00 +0000 Summary of ROC Rules https://www.dsprelated.com/showarticle/856.phpThis is a very short guide on how to find all possible outcomes of a system where Region of Convergence (ROC) and the original signal is not known. - For a causal system the ROC extends outwards.
- For a non-causal system the ROC extends inwards.
- For a two-sided system, the ROC can extend inwards or outwards from every pole.
- The ROC...]]>
Thu, 26 Nov 2015 07:27:20 +0000 Analytic Signal https://www.dsprelated.com/showarticle/877.phpIn communication theory and modulation theory we always deal with two phases: In-phase (I) and Quadrature-phase (Q). The question that I will discuss in this blog is that why we use two phases and not more. Any real band-limited signal along with its Hilbert transformed pair form an analytic signal. We normally use the analytic signal for modulation. A modulated signal is actually a...]]>

Thu, 26 Nov 2015 05:40:32 +0000 Multilayer Perceptrons and Event Classification with data from CODEC using Scilab and Weka https://www.dsprelated.com/showarticle/875.phpFor my first blog, I thought I would introduce the reader to Scilab [1] and Weka [2]. In order to illustrate how they work, I will put together a script in Scilab that will sample using the microphone and CODEC on your PC and save the waveform as a CSV file. Then, we can take the CSV file and open it in Weka. Once in Weka, we have a lot of paths to consider in order to...]]> Wed, 25 Nov 2015 04:54:49 +0000 Maximum Likelihood Estimation https://www.dsprelated.com/showarticle/872.phpAny observation has some degree of noise content that makes our observations uncertain. When we try to make conclusions based on noisy observations, we have to separate the dynamics of a signal from noise. This is the point that estimation starts. Any time that we analyse noisy observations to make decisions, we are estimating some parameters. Parameters...]]> Tue, 24 Nov 2015 23:53:40 +0000 Implementing Simultaneous Digital Differentiation, Hilbert Transformation, and Half-Band Filtering https://www.dsprelated.com/showarticle/874.phpRecently I've been thinking about digital differentiator and Hilbert transformer implementations and I've developed a processing scheme that may be of interest to the readers here on dsprelated.com. This blog presents a novel method for simultaneously implementing a digital differentiator (DD), a Hilbert transformer (HT), and a half-band lowpass filter (HBF) using a single tapped-delay line...]]>

Tue, 24 Nov 2015 14:42:07 +0000 Multimedia Processing with FFMPEG https://www.dsprelated.com/showarticle/866.phpFFMPEG is a set of libraries and a command line tool for encoding and decoding audio and video in many different formats. It is a free software project for manipulating/processing multimedia data. Many open source media players are based on FFMPEG libraries. FFMPEG is developed under Linux but it can be compiled under most operating systems including Mac OS, Microsoft Windows. For...]]>

Mon, 16 Nov 2015 18:25:12 +0000 Approximating the area of a chirp by fitting a polynomial https://www.dsprelated.com/showarticle/863.phpOnce in a while we need to estimate the area of a dataset in which we are interested. This area could give us, for example, force (mass vs acceleration) or electric power (electric current vs charge). One way to do that is fitting a curve on our data, and let's face it: this is not that easy. In this post we will work on this issue using Python and its packages. If you do not have Python...]]>

Sun, 15 Nov 2015 22:28:17 +0000 Deconvolution by least squares (Using the power of linear algebra in signal processing). https://www.dsprelated.com/showarticle/853.phpWhen we deal with our normal discrete signal processing operations, like FIR/IIR filtering, convolution, filter design, etc. we normally think of the signals as a constant stream of numbers that we put in a sequence, such as $x(n)$ with $n\in\mathbb{Z}$. This is at first the most intuitive way of thinking about it, because normally in a digital signal processing system (especially...]]> Thu, 12 Nov 2015 19:56:55 +0000 Roll Your Own Differentiation Filters https://www.dsprelated.com/showarticle/845.phpThere are many times in digital signal processing that it is necessary to obtain estimates of the derivative of some signal or process from discretely sampled values. Such numerical derivatives are useful in applications such as edge detection, rate of change estimation and optimization, and can even be used as part of quick and efficient dc-blocking filters. Suppose then,...]]>

Wed, 11 Nov 2015 05:30:15 +0000 Helping New Bloggers to Break the Ice: A New Ipad Pro for the Author with the Best Article! https://www.dsprelated.com/showarticle/849/breaking-the-iceBreaking the ice can be tough. Over the years, many individuals have asked to be given access to the blogging interface only to never post an article. Maybe they underestimated the time it takes to write a decent article, or maybe they got cold feet. I don't blame or judge them at all - how many times in my life have I had the intention to do...]]> Mon, 09 Nov 2015 19:16:19 +0000 GPS - some terminology! https://www.dsprelated.com/showarticle/838.phpHi! For my first post, I will share some information about GPS - Global Positioning System. I will delve one step deeper than a basic explanation of how a GPS system works and introduce some terminology.

GPS, like we all know is the system useful for identifying one's position, velocity, & time using signals from satellites (referred to as SV or space vehicle in literature). It uses...]]>

Fri, 30 Oct 2015 05:25:29 +0000 Welcoming MANY New Bloggers! https://www.dsprelated.com/showarticle/837.phpThe response to the latest call for bloggers has been amazing and I am very grateful. In this post I present to you the individuals who, so far (I am still receiving applications at an impressive rate and will update this page as more bloggers are added), have been given access to the blogging interface. I am very pleased with the positive response and I...]]>

Tue, 27 Oct 2015 21:28:04 +0000 Bayes meets Fourier https://www.dsprelated.com/showarticle/836.phpJoseph Fourier never met Thomas Bayes—Fourier was born in 1768, seven years after Bayes died. But recently I have been exploring connections between the Bayes filter and the Fourier transform. By "Bayes filter", I don't mean spam filtering using a Bayesian classifier, but rather recursive Bayesian estimation, which is used in robotics and other domains to estimate the state...]]>

BackgroundMon, 26 Oct 2015 19:20:34 +0000 Number Theory for Codes https://www.dsprelated.com/showarticle/831/number-theory-for-codesEverything in the digital world is encoded. ASCII and Unicode are combinations of bits which have specific meanings to us. If we try to interpret a compiled program as Unicode, the result is a lot of garbage (and beeps!) To reduce errors in transmissions over radio links we use Error Correction Codes so that even when bits are lost we can recover the ASCII or...]]> Thu, 22 Oct 2015 20:01:21 +0000 Recruiting New Bloggers! https://www.dsprelated.com/showarticle/815/recruiting-new-bloggersPrevious calls for bloggers have been very successful in recruiting some great communicators - Rick Lyons, Jason Sachs, Victor Yurkovsky, Mike Silva, Markus Nentwig, Fri, 16 Oct 2015 14:17:01 +0000 A New Contender in the Digital Differentiator Race https://www.dsprelated.com/showarticle/814.phpThis blog proposes a novel differentiator worth your consideration. Although simple, the differentiator provides a fairly wide 'frequency range of linear operation' and can be implemented, if need be, without performing numerical multiplications. In reference [1] I presented a computationally-efficient tapped-delay line digital differentiator whose $h_{ref}(k)$ impulse...]]>

What is the constraint on real- and complex-valued FIR filters that guarantee linear phase behavior in the frequency domain?Wed, 30 Sep 2015 13:25:46 +0000 The Most Interesting FIR Filter Equation in the World: Why FIR Filters Can Be Linear Phase https://www.dsprelated.com/showarticle/808.phpThis blog discusses a little-known filter characteristic that enables real- and complex-coefficient tapped-delay line FIR filters to exhibit linear phase behavior. That is, this blog answers the question: I'll declare two things to convince you to

Tue, 18 Aug 2015 16:33:40 +0000 Four Ways to Compute an Inverse FFT Using the Forward FFT Algorithm https://www.dsprelated.com/showarticle/800.phpIf you need to compute inverse fast Fourier transforms (inverse FFTs) but you only have forward FFT software (or forward FFT FPGA cores) available to you, below are four ways to solve your problem. Preliminaries To define what we're thinking about here, an N-point forward FFT and an N-point inverse FFT are described by:

$$ Forward \ FFT \rightarrow X(m) = \sum_{n=0}^{N-1}...]]>Tue, 07 Jul 2015 20:58:57 +0000 Correcting an Important Goertzel Filter Misconception https://www.dsprelated.com/showarticle/796.phpRecently I was on the Signal Processing Stack Exchange web site (a question and answer site for DSP people) and I read a posted question regarding Goertzel filters [1]. One of the subscribers posted a reply to the question by pointing interested readers to a Wikipedia web page discussing Goertzel filters [2]. I noticed the Wiki web site stated that a Goertzel filter: "...is marginally...]]> Mon, 06 Jul 2015 15:56:55 +0000 Fitting a Damped Sine Wave https://www.dsprelated.com/showarticle/795.phpA damped sine wave is described by $$ x_{(k)} = A \cdot e^{\alpha \cdot k} \cdot cos(\omega \cdot k + p)\tag{1}$$

with frequency $\omega$ , phase p , initial amplitude A and damping constant $\alpha$ . The $x_{(k)}$ are the samples of the function at equally spaced points in time.

With $x_{(k)}$ given, one often has to find the unknown parameters of the function. This can be achieved...]]>

Fri, 03 Jul 2015 13:11:58 +0000 Premium Forum? https://www.dsprelated.com/showarticle/788.phpChances are that by now, you have had a chance to browse the new design of the *related site that I published several weeks ago. I have been working for several months on this and I must admit that I am very happy with the results. This new design will serve as a base for many new exciting developments. I would love to hear your comments/suggestions if you have any, please use the...]]> Mon, 25 May 2015 16:11:17 +0000 Phase and Amplitude Calculation for a Pure Real Tone in a DFT: Method 1 https://www.dsprelated.com/showarticle/787.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving exact formulas for the phase and amplitude of a non-integer frequency real tone in a DFT. The linearity of the Fourier Transform is exploited to reframe the problem as the equivalent of finding a set of coordinates in a specific vector space. The found...]]> Thu, 21 May 2015 20:04:23 +0000 Handy Online Simulation Tool Models Aliasing With Lowpass and Bandpass Sampling https://www.dsprelated.com/showarticle/782.phpAnalog Devices Inc. has posted a neat software simulation tool on their corporate web site that graphically shows the aliasing effects of both lowpass and bandpass periodic sampling. This is a nice tutorial tool for beginners in DSP. The tool shows four important characteristics of periodic sampling:

Characteristic# 1: All input analog spectral components,...]]>Mon, 04 May 2015 13:13:44 +0000 Ten Little Algorithms, Part 2: The Single-Pole Low-Pass Filter https://www.dsprelated.com/showarticle/779/ten-little-algorithms-part-2-the-single-pole-low-pass-filterOther articles in this series: - Part 1: Russian Peasant Multiplication
- Part 3: Welford's Method (And Friends)
- Part 4: Topological Sort
- Part 5: Quadratic Extremum Interpolation and Chandrupatla's Method
- Part 6: Green’s Theorem and Swept-Area...]]>
Mon, 27 Apr 2015 15:46:56 +0000 Understanding and Implementing the Sliding DFT https://www.dsprelated.com/showarticle/776.phpIn 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 straightforward algorithm, and often the largest barrier to working in the frequency domain is the complexity or latency involved in the Fast Fourier...]]> Thu, 23 Apr 2015 20:10:04 +0000 Exact Frequency Formula for a Pure Real Tone in a DFT https://www.dsprelated.com/showarticle/773.phpThis is an article to hopefully give a better understanding of the Discrete Fourier Transform (DFT) by deriving an exact formula for the frequency of a real tone in a DFT. According to current teaching, this is not possible, so this article should be considered a major theoretical advance in the discipline. The formula is presented in a few different formats. Some sample...]]> Mon, 20 Apr 2015 14:24:06 +0000 DFT Bin Value Formulas for Pure Real Tones https://www.dsprelated.com/showarticle/771.phpThis is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by deriving an analytical formula for the DFT of pure real tones. The formula is used to explain the well known properties of the DFT. A sample program is included, with its output, to numerically demonstrate the veracity of the formula. This article builds on the ideas...]]> Fri, 17 Apr 2015 13:21:07 +0000 DFT Graphical Interpretation: Centroids of Weighted Roots of Unity https://www.dsprelated.com/showarticle/768.phpThis is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by framing it in a graphical interpretation. The bin calculation formula is shown to be the equivalent of finding the center of mass, or centroid, of a set of points. Various examples are graphed to illustrate the well known properties of DFT bin values. This treatment will...]]> Fri, 10 Apr 2015 16:26:22 +0000 Why Time-Domain Zero Stuffing Produces Multiple Frequency-Domain Spectral Images https://www.dsprelated.com/showarticle/761.phpThis 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 time sequence's spectrum. Background

The traditional way to interpolate (sample rate increase) an x(n) time domain sequence is shown in...]]>

Mon, 23 Mar 2015 13:42:20 +0000 The Exponential Nature of the Complex Unit Circle https://www.dsprelated.com/showarticle/754.phpThis 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 functions, but this approach fails to give an understanding to the equation and the ramification for the behavior of complex numbers. Instead an...]]>

Tue, 10 Mar 2015 15:11:37 +0000 Complex Down-Conversion Amplitude Loss https://www.dsprelated.com/showarticle/753.phpThis blog illustrates the signal amplitude loss inherent in a traditional complex down-conversion system. (In the literature of signal processing, complex down-conversion is also called "quadrature demodulation.") The general idea behind complex down-conversion is shown in Figure 1(a). And the traditional hardware block diagram of a complex down-converter is shown in Figure...]]>

]]>Tue, 03 Mar 2015 14:37:22 +0000 The Sampling Theorem - An Intuitive Approach https://www.dsprelated.com/showarticle/733.phpScott Kurtz from DSPSoundWare.com has put together a video presentation that aims to help DSPers gain a better intuitive understanding of the Sampling Theorem. Feel free to have a look and share your thoughts by commenting this blog post. Mon, 26 Jan 2015 20:50:43 +0000 A poor man's Simulink https://www.dsprelated.com/showarticle/707.phpGlue between Octave and NGSPICE for discrete- and continuous time cosimulation ( Many DSP problems have close ties with the analog world. For example, a switched-mode audio power amplifier uses a digital control loop to open and close power transistors driving an analog filter. There are commercial tools for digital-analog cosimulation:...]]>

Sat, 24 Jan 2015 10:41:34 +0000 A Complex Variable Detective Story – A Disconnect Between Theory and Implementation https://www.dsprelated.com/showarticle/664.phpRecently I was in the middle of a pencil-and-paper analysis of a digital 5-tap FIR filter having complex-valued coefficients and I encountered a surprising and thought-provoking problem. So that you can avoid the algebra difficulty I encountered, please read on. A Surprising Algebra Puzzle

I wanted to derive the H(ω) equation for the frequency response of my FIR digital filter whose...]]>

Tue, 14 Oct 2014 18:54:50 +0000 The Number 9, Not So Magic After All https://www.dsprelated.com/showarticle/645.phpThis 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 the number 9 had tricky, almost magical, qualities. Many people feel the same way. I have a book on number theory, whose chapter 8 is titled "Digits...]]>

Thu, 02 Oct 2014 01:28:49 +0000 Sum of Two Equal-Frequency Sinusoids https://www.dsprelated.com/showarticle/635.phpSome time ago I reviewed the manuscript of a book being considered by the IEEE Press publisher for possible publication. In that manuscript the author presented the following equation: Being unfamiliar with Eq. (1), and being my paranoid self, I wondered if that equation is indeed correct. Not finding a stock trigonometric identity in my favorite math reference book to verify Eq. (1), I...]]>

Thu, 04 Sep 2014 18:18:04 +0000 The DFT Magnitude of a Real-valued Cosine Sequence https://www.dsprelated.com/showarticle/607.phpThis blog may seem a bit trivial to some readers here but, then again, it might be of some value to DSP beginners. It presents a mathematical proof of what is the magnitude of an N-point discrete Fourier transform (DFT) when the DFT's input is a real-valued sinusoidal sequence. To be specific, if we perform an N-point DFT on N real-valued time-domain samples of a discrete cosine wave, having...]]>

Tue, 17 Jun 2014 14:23:16 +0000 Specifying the Maximum Amplifier Noise When Driving an ADC https://www.dsprelated.com/showarticle/604.phpI recently learned an interesting rule of thumb regarding the use of an amplifier to drive the input of an analog to digital converter (ADC). The rule of thumb describes how to specify the maximum allowable noise power of the amplifier [1]. The Problem Here's the situation for an ADC whose maximum analog input voltage range is –VRef to +VRef. If we drive an ADC's analog input with an sine...]]>

Building with IntegersMon, 09 Jun 2014 19:47:38 +0000 Constrained Integer Behavior https://www.dsprelated.com/showarticle/580.phpInteger arithmetic is ubiquitous in digital hardware implementations, it's prolific in the control and data-paths. When using fixed width (constrained) integers, overflow and underflow is business as usual. The subtitle of this post mentions a wheel - before I get to the wheel I want...]]>

IntroductionMon, 26 May 2014 16:26:13 +0000 Spline interpolation https://www.dsprelated.com/showarticle/594.phpA cookbook recipe for segmented y=f(x) 3rd-order polynomial interpolation based on arbitrary input data. Includes Octave/Matlab design script and Verilog implementation example. Keywords: Spline, interpolation, function modeling, fixed point approximation, data fitting, Matlab, RTL, Verilog Splines describe a smooth function with a small number of parameters. They are...]]>

The relationship between sin, cos, and right triangles: Constructing a square wave...]]>Sun, 11 May 2014 10:47:57 +0000 DSP Related Math: Nice Animated GIFs https://www.dsprelated.com/showarticle/584.phpI was browsing the ECE subreddit lately and found that some of the most popular posts over the last few months have been animated GIFs helping understand some mathematical concepts. I thought there would be some value in aggregating the DSP related gifs on one page. Thu, 24 Apr 2014 17:26:55 +0000 DSPRelated and EmbeddedRelated now on Facebook & I will be at EE Live! https://www.dsprelated.com/showarticle/556.phpI have two news to share with you today. The first one is that I finally created Facebook pages for DSPRelated.com and EmbeddedRelated (DSPRelated page - EmbeddedRelated page). For a long time I didn't feel that this was something that was needed, but it seems that these days more and more people are using their Facebook account to stay updated with their favorite websites. In any event, if you...]]>

SummaryThu, 27 Feb 2014 16:31:57 +0000 Signed serial-/parallel multiplication https://www.dsprelated.com/showarticle/555.phpKeywords: Binary signed multiplication implementation, RTL, Verilog, algorithm - A detailed discussion of bit-level trickstery in signed-signed multiplication
- Algorithm based on Wikipedia example
- Includes a Verilog implementation with parametrized bit width

A straightforward method to multiply two binary numbers is to repeatedly shift...]]>

Sun, 16 Feb 2014 14:37:19 +0000 A Remarkable Bit of DFT Trivia https://www.dsprelated.com/showarticle/538.phpI recently noticed a rather peculiar example of discrete Fourier transform (DFT) trivia; an unexpected coincidence regarding the scalloping loss of the DFT. Here's the story. DFT SCALLOPING LOSS As you know, if we perform an N-point DFT on N real-valued time-domain samples of a discrete sine wave, whose frequency is an integer multiple of fs/N (fs is the sample rate in Hz), the peak magnitude...]]>

Thu, 26 Dec 2013 16:43:09 +0000 Understanding and Preventing Overflow (I Had Too Much to Add Last Night) https://www.dsprelated.com/showarticle/532/overflow-i-had-too-much-to-add-last-nightHappy 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 get it when numbers become too large; IEEE double-precision floating-point numbers support a range of just...]]>

Wed, 04 Dec 2013 15:21:26 +0000 Finding the Best Optimum https://www.dsprelated.com/showarticle/53.phpWhen I was in school learning electrical engineering I owned a large mental pot, full of simmering resentment against the curriculum as it was being taught. It really started in my junior year, when we took Semiconductor Devices, or more accurately "how to build circuits using transistors". I had been seduced by the pure mathematics of sophomore EE courses, where all the circuit elements...]]>

Mon, 04 Nov 2013 19:10:45 +0000 Computing Translated Frequencies in Digitizing and Downsampling Analog Bandpass Signals https://www.dsprelated.com/showarticle/523.phpIn digital signal processing (DSP) we're all familiar with the processes of bandpass sampling an analog bandpass signal and downsampling a digital bandpass signal. The overall spectral behavior of those operations are well-documented. However, mathematical expressions for computing the translated frequency of individual spectral components, after bandpass sampling or downsampling, are not...]]> Thu, 31 Oct 2013 17:54:32 +0000 Goertzel Algorithm for a Non-integer Frequency Index https://www.dsprelated.com/showarticle/495.phpIf 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 zero to N-1 and the standard block diagram for the Goertzel algorithm is shown in Figure 1. For example, if you want to efficiently compute just the 17th...]]> Mon, 07 Oct 2013 14:23:37 +0000 Is It True That <i>j</i> is Equal to the Square Root of -1 ? https://www.dsprelated.com/showarticle/475.phpA few days ago, on the YouTube.com web site, I watched an interesting video concerning complex numbers and the j operator. The video's author claimed that the statement "j is equal to the square root of negative one" is incorrect. What he said was: He justified his claim by going through the following exercise, starting with:

Based on the algebraic...]]>

Mon, 16 Sep 2013 18:48:39 +0000 Signal Processing Contest in Python (PREVIEW): The Worst Encoder in the World https://www.dsprelated.com/showarticle/444/signal-processing-contest-in-python-dealing-with-the-worst-encoder-in-the-worldWhen I posted an article on estimating velocity from a position encoder, I got a number of responses. A few of them were of the form "Well, it's an interesting article, but at slow speeds why can't you just take the time between the encoder edges, and then...." My point was that there are lots of people out there which take this approach, and don't take into account that the time between...]]> Sat, 07 Sep 2013 21:59:03 +0000 A Table of Digital Frequency Notation https://www.dsprelated.com/showarticle/199.phpWhen we read the literature of digital signal processing (DSP) we encounter a number of different, and equally valid, ways to algebraically represent the notion of frequency for discrete-time signals. (By frequency I mean a measure of angular repetitions per unit of time.) The various mathematical expressions for sinusoidal signals use a number of different forms of a frequency variable and...]]>

Mon, 05 Aug 2013 15:50:06 +0000 Shared-multiplier polyphase FIR filter https://www.dsprelated.com/showarticle/198.phpKeywords: FPGA, interpolating decimating FIR filter, sample rate conversion, shared multiplexed pipelined multiplier Discussion, working code (parametrized Verilog) and Matlab reference design for a FIR polyphase resampler with arbitrary interpolation and decimation ratio, mapped to one multiplier and RAM.

IntroductionA polyphase filter can be as straightforward as multirate DSP ever gets,...]]>

Wed, 31 Jul 2013 09:31:00 +0000 Adventures in Signal Processing with Python https://www.dsprelated.com/showarticle/359/adventures-in-signal-processing-with-python-matlab-we-don-t-need-no-stinkin-matlabAuthor’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 a good neighbor to The MathWorks. While I don’t make it a secret of my dislike of many aspects of MATLAB — which I mention later in this...]]> Sun, 23 Jun 2013 17:56:52 +0000 Collaborative Writing Experiment: Your Favorite DSP Websites https://www.dsprelated.com/showarticle/195.phpYou are invited to contribute to the content of this blog post through the magic of Google Docs' real time collaboration feature. I discovered this tool several months ago when I was looking for a way to coordinate our annual family halloween party (potluck) and avoid the very unpleasant situation of ending up with too much chips and not enough chocolate (first world problem!). It was...]]>

Thu, 30 May 2013 20:40:29 +0000 Python scipy.signal IIR Filtering: An Example https://www.dsprelated.com/showarticle/194.phpIn 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 II ). In this post I am going to conclude the IIR filter design review with an example. Previous posts:

Sun, 19 May 2013 14:58:37 +0000 A Quadrature Signals Tutorial: Complex, But Not Complicated https://www.dsprelated.com/showarticle/192.phpIntroduction Quadrature signals are based on the notion of complex numbers and perhaps no other topic causes more heartache for newcomers to DSP than these numbers and their strange terminology of j operator, complex, imaginary, real, and orthogonal. If you're a little unsure of the physical meaning of complex numbers and the j = √-1 operator, don't feel bad because you're in good company....]]>

Fri, 12 Apr 2013 13:19:56 +0000 Polyphase Filters and Filterbanks https://www.dsprelated.com/showarticle/191.phpALONG CAME POLY Polyphase filtering is a computationally efficient structure for applying resampling and filtering to a signal. Most digital filters can be applied in a polyphase format, and it is also possible to create efficient resampling filterbanks using the same theories.

This post will walk through a reference implementation of both the downsampling polyphase filter and a downsampling...]]>

Wed, 20 Mar 2013 02:49:55 +0000 Beat Notes: An Interesting Observation https://www.dsprelated.com/showarticle/189.phpSome weeks ago a friend of mine, a long time radio engineer as well as a piano player, called and asked me, "When I travel in a DC-9 aircraft, and I sit back near the engines, I hear this fairly loud unpleasant whump whump whump whump sound. The frequency of that sound is, maybe, two cycles per second. I think that sound is a beat frequency because the DC-9's engines are turning at a slightly...]]>

Wed, 13 Mar 2013 14:25:33 +0000 DSPRelated Finally on Twitter! https://www.dsprelated.com/showarticle/188.phpHello! It's been a while since you've heard from me - and there are many reasons why:

1 - I've made a clown of myself (video here)

2 - I've been working on unifying the user management system. You can now participate to the three related sites (DSPRelated, FPGARelated and EmbeddedRelated) with only one account (same login info).

3- I've been working on getting up to...]]>

Wed, 20 Feb 2013 15:56:07 +0000 Using the DFT as a Filter: Correcting a Misconception https://www.dsprelated.com/showarticle/187.phpI have read, in some of the literature of DSP, that when the discrete Fourier transform (DFT) is used as a filter the process of performing a DFT causes an input signal's spectrum to be frequency translated down to zero Hz (DC). I can understand why someone might say that, but I challenge that statement as being incorrect. Here are my thoughts. Using the DFT as a Filter It may seem strange to...]]>

Mon, 18 Feb 2013 19:11:42 +0000 The Little Fruit Market https://www.dsprelated.com/showarticle/186.phpThere used to be a fruit market located at 391 San Antonio Road in Mountain View, California. In the 1990's I worked part time in Mountain View and drove past this market's building, shown in Figure 1, many times, unaware of its history. What happened at that fruit market has changed the lives of almost everyone on our planet. Here's the story. William Shockley In 1948 the brilliant...]]>

Mon, 14 Jan 2013 14:19:46 +0000 Noise shaping https://www.dsprelated.com/showarticle/184.phpeywords: Quantization noise; noise shaping A brief introduction to noise shaping, with firm resolve not to miss the forest for the trees. We may still stumble over some assorted roots. Matlab example code is included.

QuantizationFig. 1 shows a digital signal that is reduced to a lower bit width, for example a 16 bit signal being sent to a 12 bit digital-to-analog converter. Rounding to...]]>

Sun, 09 Dec 2012 15:56:03 +0000 Two jobs https://www.dsprelated.com/showarticle/313/two-jobsFor those of you following closely embeddedrelated and the other related sites, you might have noticed that I have been less active for the last couple of months, and I will use this blog post to explain why. The main reason is that I got myself involved into a project that ended up using a better part of my cpu than I originally thought it would. edit - video of the event:

Wed, 05 Dec 2012 13:52:05 +0000 Coupled-Form 2nd-Order IIR Resonators: A Contradiction Resolved https://www.dsprelated.com/showarticle/183.phpThis blog clarifies how to obtain and interpret the z-domain transfer function of the coupled-form 2nd-order IIR resonator. The coupled-form 2nd-order IIR resonator was developed to overcome a shortcoming in the standard 2nd-order IIR resonator. With that thought in mind, let's take a brief look at a standard 2nd-order IIR resonator. Standard 2nd-Order IIR Resonator A block diagram of the...]]>

IntroductionFri, 23 Nov 2012 15:49:55 +0000 Setting the 3-dB Cutoff Frequency of an Exponential Averager https://www.dsprelated.com/showarticle/182.phpThis blog discusses two ways to determine an exponential averager's weighting factor so that the averager has a given 3-dB cutoff frequency. Here we assume the reader is familiar with exponential averaging lowpass filters, also called a "leaky integrators", to reduce noise fluctuations that contaminate constant-amplitude signal measurements. Exponential averagers are useful because they allow...]]> Mon, 22 Oct 2012 15:02:15 +0000 'z' as in 'Zorro': Frequency Masking FIR https://www.dsprelated.com/showarticle/180.phpAn efficient way to implement FIR filters. Matlab / Octave example included. Keywords: Frequency masking FIR filter implementation An "upsampled" FIR filter uses multiple-sample delays between the taps, compared to the unity delays in a conventional FIR filter. The resulting frequency response has steeper edges, but contains periodic images along the frequency axis (Fig. 1). ...]]>

Tue, 02 Oct 2012 15:39:03 +0000 Do you like the new Comments System? https://www.dsprelated.com/showarticle/179.phpI have just finished implementing a new comments system for the blogs. Do you like it? Please share your thoughts with me by adding a comment.

I'll wait a few days and make sure it works properly and then I'll port it to the code snippets and papers section.

Thanks!

]]>Wed, 19 Sep 2012 19:29:15 +0000 FIR sideways (interpolator polyphase decomposition) https://www.dsprelated.com/showarticle/178.phpAn efficient implementation of a symmetric-FIR polyphase 1:3 interpolator that doesn't follow the usual tapped delay line-paradigm. The example exploits the impulse response symmetry and avoids four multiplications out of 10. keywords: symmetric polyphase FIR filter implementation ASIC Matlab / Octave implementation Introduction An interpolating FIR filter can be implemented with a...]]>

Wed, 12 Sep 2012 20:20:17 +0000 Design of an anti-aliasing filter for a DAC https://www.dsprelated.com/showarticle/177.php - Octaveforge / Matlab design script. Download: here
- weighted numerical optimization of Laplace-domain transfer function
- linear-phase design, optimizes vector error (magnitude and phase)
- design process calculates and corrects group delay internally
- includes sinc() response of the sample-and-hold stage in the ADC
- optionally includes multiplierless FIR...]]>
Sat, 18 Aug 2012 17:09:33 +0000 Understanding the 'Phasing Method' of Single Sideband Demodulation https://www.dsprelated.com/showarticle/176.phpThere are four ways to demodulate a transmitted single sideband (SSB) signal. Those four methods are: - synchronous detection,
- phasing method,
- Weaver method, and
- filtering method.

Here we review synchronous detection in preparation for explaining, in detail, how the phasing method works. This blog contains lots of preliminary information, so if you're already familiar with SSB...]]>

Wed, 08 Aug 2012 13:28:11 +0000 Frequency-Domain Periodicity and the Discrete Fourier Transform https://www.dsprelated.com/showarticle/175.phpIntroduction Some of the better understood aspects of time-sampled systems are the limitations and requirements imposed by the Nyquist sampling theorem [1]. Somewhat less understood is the periodic nature of the spectra of sampled signals. This article provides some insights into sampling that not only explain the periodic nature of the sampled spectrum, but aliasing, bandlimited sampling,...]]>

Mon, 06 Aug 2012 21:51:40 +0000 Time-Domain Periodicity and the Discrete Fourier Transform https://www.dsprelated.com/showarticle/174.phpIntroduction The Discrete Fourier Transform (DFT) and it's fast-algorithm implementation, the Fast Fourier Transform (FFT), are fundamental tools for processing and analysis of digital signals. While the continuous Fourier Transform and its inverse integrate over all time from minus infinity to plus infinity, and all frequencies from minus infinity to plus infinity, practical application of...]]>

PurposeFri, 13 Jul 2012 14:52:35 +0000 Python scipy.signal IIR Filter Design Cont. https://www.dsprelated.com/showarticle/170.phpIn the previous post the Python scipy.signal iirdesign function was disected. We reviewed the basics of filter specification and reviewed how to use the iirdesign function to design IIR filters. The previous post I only demonstrated low pass filter designs. The following are examples how to use the iirdesign function for highpass, bandpass, and stopband filters...]]> Tue, 19 Jun 2012 04:17:48 +0000 TCP/IP interface (Matlab/Octave) https://www.dsprelated.com/showarticle/169.phpCommunicate with measurement instruments via Ethernet (no-toolbox-Matlab or Octave) Measurement automation is digital signal processing in a wider sense: Getting a digital signal from an analog world usually involves some measurement instruments, for example a spectrum analyzer. Modern instruments, and also many off-the-shelf prototyping boards such as FPGA cards [1] or...]]>

Sun, 17 Jun 2012 12:38:08 +0000 Understanding and Relating E<sub>b</sub>/N<sub>o</sub>, SNR, and other Power Efficiency Metrics https://www.dsprelated.com/showarticle/168.phpIntroduction Evaluating the performance of communication systems, and wireless systems in particular, usually involves quantifying some performance metric as a function of Signal-to-Noise-Ratio (SNR) or some similar measurement. Many systems require performance evaluation in multipath channels, some in Doppler conditions and other impairments related to mobility. Some have interference...]]>

Tue, 29 May 2012 19:09:37 +0000 How Discrete Signal Interpolation Improves D/A Conversion https://www.dsprelated.com/showarticle/167.phpDownload here. Earlier this year, for the Linear Audio magazine, published in the Netherlands whose subscribers are technically-skilled hi-fi audio enthusiasts, I wrote an article on the fundamentals of interpolation as it's used to improve the performance of analog-to-digital conversion. Perhaps that article will be of some value to the...]]>

Mon, 28 May 2012 12:17:47 +0000 Weighted least-squares FIR with shared coefficients https://www.dsprelated.com/showarticle/165.phpFIR design with arbitrary routing between delay line and coefficient multipliers. Includes a commented implementation of a generic IRLS FIR design algorithm.

Introduction: Reverse EngineeringWhile looking for numerical IIR filter optimization, a Matlab program in [1] for the design of FIR filters caught my attention. The equations looked familiar, sort of, but on closer examination the...]]>

Thu, 24 May 2012 00:22:41 +0000 How Not to Reduce DFT Leakage https://www.dsprelated.com/showarticle/166.phpThis blog describes a technique to reduce the effects of spectral leakage when using the discrete Fourier transform (DFT). In late April 2012 there was a thread on the comp.dsp newsgroup discussing ways to reduce the spectral leakage problem encountered when using the DFT. One post in that thread caught my eye [1]. That post referred to a website presenting

Filter...]]>Wed, 23 May 2012 18:49:21 +0000 Python scipy.signal IIR Filter Design https://www.dsprelated.com/showarticle/164.phpThe following is an introduction on how to design an infinite impulse response (IIR) filters using the Python scipy.signal package. This post, mainly, covers how to use the scipy.signal package and is not a thorough introduction to IIR filter design. For complete coverage of IIR filter design and structure see one of the references. Mon, 14 May 2012 02:30:06 +0000 Instant CIC https://www.dsprelated.com/showarticle/163.phpSummary: A floating point model for a CIC decimator, including the frequency response.

Description:

A CIC filter relies on a peculiarity of its fixed-point implementation: Normal operation involves repeated internal overflows that have no effect to the output signal, as they cancel in the following stage.

One way to put it intuitively is that only the speed (and rate of change) of every...]]>

Tue, 08 May 2012 13:48:06 +0000 Curse you, iPython Notebook! https://www.dsprelated.com/showarticle/162.phpFirst, I think ipython is great. I use it daily and always have an ipython terminal open. But just recently, I was showing off the ipython 0.12 notebook and in the process created a lengthy example while demonstrating the cool features of the ipython notebook. The example included LaTeX equations, plots, etc. Since the notebook session was on something of...]]>

Wed, 02 May 2012 02:16:34 +0000 Engineering the Statistics https://www.dsprelated.com/showarticle/161.phpDo you remember the probability course you took in undergrad? If you were like me, you would consider it one of those courses that you get out of confused. But maybe a time will come where you regret skipping class because of the lecturer's persisting attempts to scare you with mathematical involved nomenclature.As you might have guessed, I had this moment few months back where I had to go...]]> Mon, 26 Mar 2012 22:09:02 +0000 The History of CIC Filters: The Untold Story https://www.dsprelated.com/showarticle/160.phpIf you have ever studied or designed a cascaded integrator-comb (CIC) lowpass filter then surely you've read Eugene Hogenauer's seminal 1981 IEEE paper where he first introduced the CIC filter to the signal processing world [1]. As it turns out, Hogenauer's famous paper was not the first formal document describing and proposing CIC filters. Here's the story. In the Fall of 1979 Eugene...]]>

Mon, 20 Feb 2012 13:52:38 +0000 scipy.signal calling all developers https://www.dsprelated.com/showarticle/158.phpThere has been some chatter on the scipy-dev mailing list lately about enhancing the scipy.signal package. Unfortunately, there seems to be a split. Some are going off and starting a new package scikit-signal. The original developer, Travis Oliphant, appears to have strong interest in seeing the scipy.signal evovle. If you are...]]> Thu, 19 Jan 2012 13:01:01 +0000 Oscilloscope Dreams https://www.dsprelated.com/showarticle/268/oscilloscope-dreamsMy coworkers and I recently needed a new oscilloscope. I thought I would share some of the features I look for when purchasing one. When I was in college in the early 1990's, our oscilloscopes looked like this:

Now the cathode ray tubes have almost all been replaced by digital storage scopes with color LCD screens, and they look like these:

Oscilloscopes...]]>

IntroductionSun, 15 Jan 2012 03:14:49 +0000 [Book Review] Numpy 1.5 Beginner's Guide https://www.dsprelated.com/showarticle/157.phpFull Disclosure: The publisher of this book, PACKT, was soliciting reviewers. I volunteered to review the book and the publisher sent me an e-version of the book. The following is a review of "Numpy 1.5 Beginner's Guide", "Learn by doing: less theory, more results" by Ivan Idris. As the title...]]>

Sat, 07 Jan 2012 21:08:22 +0000 Design study: 1:64 interpolating pulse shaping FIR https://www.dsprelated.com/showarticle/156.phpThis article is the documentation to a code snippet that originated from a discussion on comp.dsp. The task is to design a root-raised cosine filter with a rolloff of a=0.15 that interpolates to 64x the symbol rate at the input.

The code snippet shows a solution that is relatively straightforward to design...]]>

Mon, 26 Dec 2011 23:33:51 +0000 Accurate Measurement of a Sinusoid's Peak Amplitude Based on FFT Data https://www.dsprelated.com/showarticle/155.phpThere are two code snippets associated with this blog post: and

Testing the Flat-Top Windowing Function

This blog discusses an accurate method of estimating time-domain sinewave peak amplitudes based on fast Fourier transform (FFT) data. Such an operation sounds simple, but...]]>

Wed, 14 Dec 2011 13:56:48 +0000 Generating Complex Baseband and Analytic Bandpass Signals https://www.dsprelated.com/showarticle/153.phpThere are so many different time- and frequency-domain methods for generating complex baseband and analytic bandpass signals that I had trouble keeping those techniques straight in my mind. Thus, for my own benefit, I created a kind of reference table showing those methods. I present that table for your viewing pleasure in this blog. For clarity, I define a complex baseband signal as...]]>

Wed, 02 Nov 2011 13:32:26 +0000 Why is Fourier transform broken https://www.dsprelated.com/showarticle/152.phpEvery engineer who took a basic signal processing course is familiar with the Gibbs phenomenon, however, not all know why it occurs, I mean really why! The answer lies in the mathematical background that is almost always skipped in signal processing courses. Moreover, from my experience at least, many textbooks present the theory, e.g. the Fourier transform, as infallible and no discussion of...]]>

Tue, 04 Oct 2011 10:03:15 +0000 Python number crunching faster? Part I https://www.dsprelated.com/showarticle/151.phpEveryone has their favorite computing platform, regardless if it is Matlab, Octave, Scilab, Mathematica, Mathcad, etc. I have been using Python and the common numerical and scientific packages available. Personally, I have found this to be very useful in my work. Lately there has been some chatter on speeding up Python. Here is the link for it:

To be more useful here are few MATLAB books:

Tue, 13 Sep 2011 18:00:02 +0000 Bank-switched Farrow resampler https://www.dsprelated.com/showarticle/149.phpA 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 achieved with a lower polynomial order, requiring fewer multiplications per output sample at the expense of a higher overall number of...]]> Sat, 13 Aug 2011 11:19:36 +0000 Impulse Response Approximation https://www.dsprelated.com/showarticle/138.phpRecently, I stumbled upon a stepped-triangular (ST) approximation that can be implemented as a cascade of recursive running sum (RRS) filters. The following is a short introduction to the stepped-triangular approximation.The stepped-triangular approximation was introduced by Jovanovic-Dolecek and Mitra [1] as a quantized approximation of a low-pass filter (LPF). Figure 1 shows an...]]> Sat, 06 Aug 2011 02:40:43 +0000 Orfanidis Textbooks are Available Online https://www.dsprelated.com/showarticle/148.phpI have just learned that Sophocles J. Orfanidis, the well-known professor with the ECE Department of Rutgers University, has made two of his signal processing textbooks available for downloading on the Internet. The first textbook is: "Introduction to Signal Processing" available at: http://eceweb1.rutgers.edu/~orfanidi/intro2sp/ Happily, also available at the above web site...]]>

Tue, 12 Jul 2011 12:40:28 +0000 ICASSP 2011 conference lectures online (for free) https://www.dsprelated.com/showarticle/147.phpFor the first time, the oral presentations of the International Conference on Accoustics, Speech, and Signal Processing (ICASSP) were recorded and posted online for free. This conference is the best in signal processing and it's diverse as well. It has a bit speech processing, communication signal processing, and some interesting stuff like bio-inspired signal processing, where Prof. Sayed...]]>

Tue, 05 Jul 2011 23:29:17 +0000 Do Multirate Systems Have Transfer Functions? https://www.dsprelated.com/showarticle/143.phpThe following text describes why I ask the strange question in the title of this blog. Some months ago I was asked to review a article manuscript, for possible publication in a signal processing journal, that presented a method for improving the performance of cascaded integrator-comb (CIC) decimation filters [1]. Thinking about such filters, Figure 1(a) shows the block diagram of a...]]>

Mon, 30 May 2011 15:01:22 +0000 FREE Peer-reviewed IEEE signal processing courses https://www.dsprelated.com/showarticle/140.phpThe IEEE signal processing society is offereing FREE peer reviewed courses, though not many, they are peer reviewed and span differenet topics like; wavelets, speech analysis, and statistical detection. Enjoy

http://cnx.org/lenses/ieeesps/endorsements?b_start:int=0&-C=

]]>Tue, 26 Apr 2011 14:47:32 +0000 A Fixed-Point Introduction by Example https://www.dsprelated.com/showarticle/139.phpThe finite-word representation of fractional numbers is known as fixed-point. Fixed-point is an interpretation of a 2's compliment number usually signed but not limited to sign representation. It extends our finite-word length from a finite set of integers to a finite set of rational real numbers Mon, 25 Apr 2011 09:58:23 +0000 DSP Algorithm Implementation: A Comprehensive Approach https://www.dsprelated.com/showarticle/128.phpAs DSP engineers, ultimately we are required to design and implement specific DSP algorithms. The first step is to make a choice on which algorithm to use, e.g. for filtering should we use FIR or IIR. Then we can go a little bit deeper into the, high level, implementation details, e.g. use the symmetry in FIR filter to reduce complexity. When the algorithm is clear, the first step is to...]]> Wed, 13 Apr 2011 21:44:49 +0000 DSP Papers, Articles, Theses, etc https://www.dsprelated.com/showarticle/137.phpAs you may already know, there is a 'Papers and Theses' section on DSPRelated: Thu, 17 Mar 2011 19:32:39 +0000 Some Observations on Comparing Efficiency in Communication Systems https://www.dsprelated.com/showarticle/136.phpEngineering is usually about managing efficiencies of one sort or another. One of my favorite working definitions of an engineer says, "An engineer is somebody who can do for a nickel what any damn fool can do for a dollar." In that case, the implication is that the cost is one of the characteristics being optimized. But cost isn't always the main efficiency metric, or at least...]]> Thu, 17 Mar 2011 13:08:32 +0000 Multiplying Two Binary Numbers https://www.dsprelated.com/showarticle/134.phpI just encountered what I think is an interesting technique for multiplying two integer numbers. Perhaps some of the readers here will also find it interesting. Here's the technique: assume we want to multiply 18 times 17. We start by writing 18 and 17, side-by-side in column A and column B, as shown at the top of Figure 1. Next we divide the 18 at the top of column A by two, retaining only...]]>

Wed, 16 Mar 2011 23:08:21 +0000 Implementing a full-duplex UART using the TMS320VC33 serial port https://www.dsprelated.com/showarticle/135.phpAlthough the TMS320VC33 serial port was designed to be used as a synchronous port, it can also be used as an asynchronous port under software control. This post describes the hardware and software needed to use a TMS320VC33 serial port as a full-duplex UART port. A schematic diagram and a lengthy code listing are provided to illustrate the solution. This note discusses the implementation of an...]]> Wed, 16 Mar 2011 05:42:00 +0000 How to build a test environment for audio DSP code in C using GNU/Linux https://www.dsprelated.com/showarticle/131.phpThis may be useful for people that want to try audio DSP algorithms in C. You will need:

- Hardware: You will need regular a PC (not older than a Pentium 3) or small PC will do the job.
- Sound card: This PC should have a soundcard, at least with one mic input and one headphones output.
- I/O: You will need, speakers or headphones and a microphone, or some cable the connect the source of the...]]>
Sat, 12 Feb 2011 14:02:02 +0000 Code Snippets Suggestions https://www.dsprelated.com/showarticle/129.phpDespite being only a couple of months old, the Code Snippet section ( DSPRelated.com/code.php ) already contains tens of snippets, thanks to the contributors who have taken the time to share their code. But let's not stop here - there is room for several hundreds more snippets before the database can be said to cover a decent portion of the DSP field.

To keep the...]]>

]]>Wed, 19 Jan 2011 17:57:52 +0000 We are famous!! https://www.dsprelated.com/showarticle/127.phpToday one of my supervisor said to me that the IEEE Signal Processing eNewsletter mentioned me, well sort of:) It actually talked about Social media resources for DSP and pointed to this website's blog section. You check it out here http://tinyurl.com/36dga4n. Wed, 08 Dec 2010 23:11:02 +0000 Discrete Wavelet Transform Filter Bank Implementation (part 2) https://www.dsprelated.com/showarticle/126.phpFollowing the previous blog entry: http://www.dsprelated.com/showarticle/115.php Difference between DWT and DWPT Before getting to the equivalent filter obtention, I first want to talk about the difference between DWT(Discrete Wavelet Transform) and DWPT (Discrete Wavelet Packet Transform). The latter is used mostly for image processing.

While DWT has a single "high-pass" branch that...]]>

Sun, 05 Dec 2010 17:29:59 +0000 Latest DSP Books https://www.dsprelated.com/showarticle/125.phpAs you may already know, Rick Lyons has just published a new edition of his highly acclaimed book: "Understanding Digital Signal Processing". This book has been getting very high ratings and positive reviews from the DSP community since the publication of the first edition. The 3rd edition seems to contain more than enough new material to...]]> Wed, 01 Dec 2010 19:40:19 +0000 Half-band filter on Xilinx FPGA https://www.dsprelated.com/showarticle/124.phpThere are many DSP48 Slices in most Xilinx® FPGAs, one DSP48 slice in Spartan6® FPGA is shown in Figure 1, the structure may different depending on the device, but broadly similar. Figure 1: A whole DSP48A1 Slice in Spartan6 (www.xilinx.com)

2. Symmetric Systolic Half-band FIRFigure 2: Symmetric Systolic Half-band FIR Filter

3....]]>Tue, 30 Nov 2010 12:58:29 +0000 State Space Representation and the State of Engineering Thinking https://www.dsprelated.com/showarticle/123.phpMost, if not all, textbooks in signal processing (SP) thoroughly covers the frequency analysis of signals and systems alike, including the Fourier and the Z-transform that produce the well known Transfer Function. Another way of signal analysis, not as popular in signal processing though, is State Space representation. State space models describes the internal signals of the system or the...]]> Tue, 23 Nov 2010 08:25:47 +0000 "Neat" Rectangular to Polar Conversion Algorithm https://www.dsprelated.com/showarticle/122.phpThe subject of finding algorithms that estimate the magnitude of a complex number, without having to perform one of those pesky square root operations, has been discussed many times in the past on the comp.dsp newsgroup. That is, given the complex number R + jI in rectangular notation, we want to estimate the magnitude of that number represented by M as: On August 25th, 2009, Jerry...]]>

Mon, 15 Nov 2010 19:07:29 +0000 Matlab Programming Contest https://www.dsprelated.com/showarticle/121.phpEvery 6 months Mathworks hosts an online Matlab programming contest. If you love or hate Matlab check out the contest. The group does a really good job putting together the puzzles. The contest runs for a week and starts today at noon EST (10 Nov 2010). If you are an experienced Matlab programmer or new to Matlab it is worth checking out. Even if you do not...]]>

Wed, 10 Nov 2010 14:52:37 +0000 Improved Narrowband Lowpass IIR Filters https://www.dsprelated.com/showarticle/120.phpHere's a neat IIR filter trick. It's excerpted from the "DSP Tricks" chapter of the new 3rd edition of my book "Understanding Digital Signal Processing". Perhaps this trick will be of some value to the subscribers of dsprelated.com. Due to their resistance to quantized-coefficient errors, traditional 2nd-order infinite impulse response (IIR) filters are the fundamental building blocks in...]]>

Introduction to multiuser waterfilling.Sat, 06 Nov 2010 12:43:10 +0000 A multiuser waterfilling algorithm https://www.dsprelated.com/showarticle/119.phpHello,this blog entry documents a code snippet for a multi-user waterfilling algorithm. It's heuristic and relatively straightforward, making it easy to implement additional constraints or rules.I rewrote parts of it to improve readability, but no extensive testing took place afterwards. Please double-check that it does what it promises. Background...]]>

Fri, 05 Nov 2010 04:46:17 +0000 Code Snippets Section Now LIVE https://www.dsprelated.com/showarticle/118.phpThe new code sharing section is now live and can be accessed HERE. Please take a few minutes to rate and/or comment the snippets that you have the expertise to judge.

If you think of some code snippets that you would like to share with the DSP community, please apply to become a contributor HERE.

If you are not aware of the reward program for contributors, your can learn about it...]]>

Tue, 02 Nov 2010 12:28:19 +0000 Discrete Wavelet Transform Filter Bank Implementation (part 1) https://www.dsprelated.com/showarticle/115.phpUPDATE: Added graphs and code to explain the frequency division of the branches The focus of this article is to briefly explain an implementation of this transform and several filter bank forms. Theoretical information about DWT can be found elsewhere.

First of all, a 'quick and dirty' simplified explanation of the differences between DFT and DWT:

The DWT (Discrete...]]>

Thu, 28 Oct 2010 00:19:52 +0000 Personal presentation and greetings https://www.dsprelated.com/showarticle/113.phpHello fellow DSPrelated readers! First of all, my name is David Valencia, I live in Mexico City and study in the Instituto Politécnico Nacional [IPN] (or National Polytechnic Institute) with a major in Telematic engineering. I'm 21 years old and have interest in telecommunications, signal transmission and networking.

I'm honored with the chance to cooperate with this great...]]>

Wed, 27 Oct 2010 21:40:00 +0000 Least-squares magic bullets? The Moore-Penrose Pseudoinverse https://www.dsprelated.com/showarticle/112.phpHello, the topic of this brief article is a tool that can be applied to a variety of problems: The Moore-Penrose Pseudoinverse.While maybe not exactly a magic bullet, it gives us least-squares optimal solutions, and that is under many circumstances the best we can reasonably expect.

I'll demonstrate its use on a short example. More details can be found for example on

Sun, 24 Oct 2010 14:56:19 +0000 New Code Sharing Section & Reward Program for Contributors! https://www.dsprelated.com/showarticle/109.phpUPDATE (11/02/2010): The code section is now live. UPDATE 2 (01/31/2011): The reward program has changed. A flat fee of $20 per code snippet submitted will now be paid.

_______________

I am very happy to finally announce the imminent launch of the new code sharing section. My vision for this new section is a rich library of high quality code snippets for the DSP...]]>

]]>Fri, 15 Oct 2010 14:48:45 +0000 Fitting Filters to Measured Amplitude Response Data Using invfreqz in Matlab https://www.dsprelated.com/showarticle/110.phpThis blog post has been moved to the code snippet section and can now be found HERE. Please update your bookmark. Thanks! Mon, 11 Oct 2010 22:10:22 +0000 Radio Frequency Distortion Part II: A power spectrum model https://www.dsprelated.com/showarticle/111.phpThis article presents a ready-to-use model for nonlinear distortion caused by radio frequenfcy components in wireless receivers and linear transmitters. Compared to the similar model presented in my earlier blog entry, it operates on expectation values of the the power spectrum instead of the signal itself: Use the signal-based model to generate distortion on a signal,...]]> Mon, 11 Oct 2010 18:54:21 +0000 Understanding Radio Frequency Distortion https://www.dsprelated.com/showarticle/108.phpThe topic of this article are the effects of radio frequency distortions on a baseband signal, and how to model them at baseband. Typical applications are use as a simulation model or in digital predistortion algorithms. Introduction Transmitting and receiving wireless signals usually involves analog radio frequency circuits, such as power amplifiers in a transmitter or...]]>

Sun, 26 Sep 2010 14:18:29 +0000 Computing FFT Twiddle Factors https://www.dsprelated.com/showarticle/107.phpSome days ago I read a post on the comp.dsp newsgroup and, if I understood the poster's words, it seemed that the poster would benefit from knowing how to compute the twiddle factors of a radix-2 fast Fourier transform (FFT). Then, later it occurred to me that it might be useful for this blog's readers to be aware of algorithms for computing FFT twiddle factors. So,... what follows are two...]]>

Sun, 08 Aug 2010 03:16:36 +0000 Knowledge Mine for Embedded Systems https://www.dsprelated.com/showarticle/106.phpI stumbled upon a great website (actually I found it on the google ads in gmail!) with comprehensive and deep information on embedded systems. The website talks about four main categories in embedded systems:

1) Embedded Systems Design.

2) Design Life cycle.

3) Design Methods.

4) Design Tools.

I won't claim being an expert. There are other blogs for that. But I thought I'd share a few...]]>

Sun, 07 Mar 2010 20:31:37 +0000 OpenCV for DSP/GPU, MSDN equivalent for CCS, and more https://www.dsprelated.com/showarticle/98.phpA great business opportunity might await anyone brave enough to attempt a port of the OpenCV (Open Computer Vision) library to a DSP platform. OpenCV is the lingua franca of "industrial grade" image processing, and it's my sense that the DSP imaging libraries out there pale in comparison to the breadth of features offered by OpenCV. When writing my book for example, I fielded...]]> Wed, 17 Feb 2010 05:08:46 +0000 Computing an FFT of Complex-Valued Data Using a Real-Only FFT Algorithm https://www.dsprelated.com/showarticle/97.phpSomeone recently asked me if I knew of a way to compute a fast Fourier transform (FFT) of complex-valued input samples using an FFT algorithm that accepts only real-valued input data. Knowing of no way to do this, I rifled through my library of hardcopy FFT articles looking for help. I found nothing useful that could be applied to this problem. After some thinking, I believe I have a solution...]]>

Tue, 09 Feb 2010 16:40:04 +0000 Random GPGPU Musings https://www.dsprelated.com/showarticle/95.phpAs I procastinate actually sitting down and writing some CUDA kernels to walk you through some of the nuances of CUDA based signal-processing, I hope I can atone for my sins by discussing a few GPGPU items of note. First, today I had a fruitful discussion with a well-known DSP consulting house, and a major topic of discussion was CUDA. This conversation reinforced my view that...]]> Wed, 20 Jan 2010 05:24:35 +0000 GPGPU DSP https://www.dsprelated.com/showarticle/94.phpGreetings dear readers and welcome to my inaugural blog posting! I'm new to this blogging thing so I hope there is a grace period while I get acclimated. Before I jump into the meat of this posting allow me to introduce myself and briefly discuss where I intend to go with this blog.Until quite recently I was Director of Software Engineering at a medical device startup, before...]]> Sat, 16 Jan 2010 04:51:19 +0000 Some Thoughts on a German Mathematician https://www.dsprelated.com/showarticle/93.phpCarl Friedrich Gauss Here are a few interesting facts about the great Carl Friedrich Gauss (1777-1855), considered by some historians to have been the world's greatest mathematician. The overused phrase of "genius" could, with full justification, be used to describe this man. (How many people do you know that could have discovered the law of quadratic reciprocity in number theory at the age...]]>

Mon, 11 Jan 2010 16:49:48 +0000 50,000th Member Announced! https://www.dsprelated.com/showarticle/92.phpIn my last post, I wrote that DSPRelated.com was about to reach the 50,000 members mark. Well, I am very happy to announce that it happened during the holidays, and the lucky person is Charlie Tsai from Taiwan. Charlie is an assistant professor in the Department of Electrical Engineering at the National Central University in Taiwan where he teaches the "Biomedical Signal...]]> Mon, 11 Jan 2010 16:22:13 +0000 Unit Testing for Embedded Algorithms https://www.dsprelated.com/showarticle/84.phpHappy Holidays! For my premier article, I am writing about my favorite technique to use when designing and developing software- unit testing. Unit testing is a best practice when designing software. It allows the designer to verify the behavior of the software units before the entire system is complete, and it facilitates the change and growth of the software system because the developer...]]>

]]>Mon, 21 Dec 2009 04:08:01 +0000 Almost 50,000 Members! https://www.dsprelated.com/showarticle/90.phpI am very happy to announce that DSPRelated.com will reach the 50,000 registered members mark before the end of 2009. To celebrate this milestone, I will buy a BMW 5 to the 50,000th person to register (please make sure to confirm you email address to activate your registration). Please read the fine prints after the picture. Thu, 17 Sep 2009 02:44:14 +0000 Using Mason's Rule to Analyze DSP Networks https://www.dsprelated.com/showarticle/76.phpThere have been times when I wanted to determine the z-domain transfer function of some discrete network, but my algebra skills failed me. Some time ago I learned Mason's Rule, which helped me solve my problems. If you're willing to learn the steps in using Mason's Rule, it has the power of George Foreman's right hand in solving network analysis problems.

This blog discusses a...]]>

Mon, 31 Aug 2009 23:06:18 +0000 DSPRelated faster than ever! https://www.dsprelated.com/showarticle/75.phpif you are visiting DSPRelated.com on a regular basis, you should observe that the site loads significantly faster in your browser than it used to, especially if you are in Europe or in Asia. The main reason for this is that I am now using Amazon's CloudFront service for the delivery of most static content on DSPRelated.com (images, javascripts, css). The cloudFront service...]]> Mon, 02 Mar 2009 16:46:35 +0000 The Nature of Circles https://www.dsprelated.com/showarticle/57.phpWhen calculating the mean of a list of numbers, the obvious approach is to sum them and divide by how many there are. Suppose I give you a list of two numbers:

- 0
- 359

What is their mean? The obvious answer is 179.5.

If I told you that the numbers were compass bearings in degrees, what would your answer be then? Does 179.5 seem correct?

In the case of compass...]]>

Sat, 21 Feb 2009 22:21:35 +0000 Simultaneously Computing a Forward FFT and an Inverse FFT Using a Single FFT https://www.dsprelated.com/showarticle/74.phpMost of us are familiar with the processes of using a single N-point complex FFT to: (1) perform a 2N-point FFT on real data, and (2) perform two independent N-point FFTs on real data [1–5]. In case it's of interest to someone out there, this blog gives the algorithm for simultaneously computing a forward FFT and an inverse FFT using a single radix-2 FFT. Our algorithm is depicted by the...]]>

Figure 1 Exponential averaging: (a) standard network; (b) single-multiply...]]>Tue, 13 Jan 2009 17:44:13 +0000 Multiplierless Exponential Averaging https://www.dsprelated.com/showarticle/72.phpThis blog discusses an interesting approach to exponential averaging. To begin my story, a traditional exponential averager (also called a "leaky integrator"), shown in Figure 1(a), is commonly used to reduce noise fluctuations that contaminate relatively constant-amplitude signal measurements. Fri, 05 Dec 2008 15:11:40 +0000 Free DSP Books on the Internet - Part Deux https://www.dsprelated.com/showarticle/71.phpSince Stephane Boucher posted my "Free DSP Books on the Internet" blog here in February 2008, I have learned of additional books on the Internet that are related to signal processing. I list those books below. Again, the listed books are copyrighted. The books' copyright holders have graciously provided their books free of charge for downloading for individual use, but multiple copies must...]]> Thu, 04 Dec 2008 13:06:33 +0000 Computing the Group Delay of a Filter https://www.dsprelated.com/showarticle/69.phpI just learned a new method (new to me at least) for computing the group delay of digital filters. In the event this process turns out to be interesting to my readers, this blog describes the method. Let's start with a bit of algebra so that you'll know I'm not making all of this up. Assume we have the N-sample h(n) impulse response of a digital filter, with n being our time-domain index, and...]]>

Wed, 19 Nov 2008 13:15:14 +0000 Music/Audio Signal Processing https://www.dsprelated.com/showarticle/65.phpGreetings, This is my blog from the point of view of a music/audio DSP research engineer / educator. It is informal and largely nontechnical because nearly everything I have to say about signal processing is (or will be) somewhere in my four-book series: Mathematics of DFT with Audio Applications, [i]...]]>

Wed, 14 May 2008 23:59:33 +0000 Pulse Shaping in Single-Carrier Communication Systems https://www.dsprelated.com/showarticle/60.phpSome common conceptual hurdles for beginning communications engineers have to do with "Pulse Shaping" or the closely-related, even synonymous, topics of "matched filtering", "Nyquist filtering", "Nyquist pulse", "pulse filtering", "spectral shaping", etc. Some of the confusion comes from the use of terms like "matched filter" which has a broader meaning in the more general field of signal...]]> Thu, 10 Apr 2008 16:56:41 +0000 Linear-phase DC Removal Filter https://www.dsprelated.com/showarticle/58.phpThis blog describes several DC removal networks that might be of interest to the dsprelated.com readers. Back in August 2007 there was a thread on the comp.dsp newsgroup concerning the process of removing the DC (zero Hz) component from a time-domain sequence [1]. Discussed in that thread was the notion of removing a signal's DC bias by subtracting the signal's moving average from that...]]>

Sun, 30 Mar 2008 11:04:20 +0000 New Papers / Theses Section https://www.dsprelated.com/showarticle/47.phpThe new 'Papers & Theses' section is now online: http://www.dsprelated.com/documents.phpThe idea is to list and organize in one place as many DSP related dissertations (PhD & Masters) and papers/articles as possible.If you are the author of a thesis or paper and would like to have it listed on DSPRelated.com, please follow these steps:- Make sure that you are allowed to share the ...]]> Fri, 21 Mar 2008 12:58:14 +0000 Time Machine, Anyone? https://www.dsprelated.com/showarticle/54.phpAbstract: Dispersive linear systems with negative group delay have caused much confusion in the past. Some claim that they violate causality, others that they are the cause of superluminal tunneling. Can we really receive messages before they are sent? This article aims at pouring oil in the fire and causing yet more confusion :-). Please know, all of the listed books are copyrighted. The copyright holders have graciously provided their books free...]]>

Sun, 24 Feb 2008 01:04:57 +0000 Benford's law solved with DSP https://www.dsprelated.com/showarticle/55.phpI have a longtime interest in the mystery of 1/f noise. A few years ago I came across Benford’s law, another puzzle that seemed to have many of the same characteristics. Suppose you collect a large group of seemingly random numbers, such as might appear in a newspaper or financial report. Benford’s law relates to the leading digit of each number, such as "4" in 4.268,...]]>

Sat, 23 Feb 2008 01:04:12 +0000 Correlation without pre-whitening is often misleading https://www.dsprelated.com/showarticle/52.phpCorrelation, as one of the first tools DSP users add to their tool box, can automate locating a known signal within a second (usually larger) signal. The expected result of a correlation is a nice sharp peak at the location of the known signal and few, if any, extraneous peaks. A little thought will show this to be incorrect: correlating a signal with itself is only guaranteed to...]]>

Tue, 19 Feb 2008 03:26:04 +0000 Handling Spectral Inversion in Baseband Processing https://www.dsprelated.com/showarticle/51.phpThe problem of "spectral inversion" comes up fairly frequently in the context of signal processing for communication systems. In short, "spectral inversion" is the reversal of the orientation of the signal bandwidth with respect to the carrier frequency. Rick Lyons' article on "Spectral Flipping" at Mon, 11 Feb 2008 15:16:16 +0000 Of Forests and Trees and DSP https://www.dsprelated.com/showarticle/50.phpWhen Stephane invited me to write a blog for dsprelated.com I immediately came up with a flood of ideas for highly detailed, technical, narrowly focused articles related to the intersection of DSP and control systems. Then the USENET groups that I frequent received a spate of posts from people that were either asking about how to implement highly detailed, narrowly focused algorithms in...]]>

Sun, 10 Feb 2008 20:19:19 +0000 Instantaneous Frequency Measurement https://www.dsprelated.com/showarticle/48.phpI would like to talk about the oft used method of measuring the carrier frequency in the world of Signal Collection and Characterization world. It is an elegant technique because of its simplicity. But, of course, with simplicity, there come drawbacks (sometimes...especially with this one!). In the world of Radar detection and characterization, one of the key characteristics of interest is the...]]>

Tue, 05 Feb 2008 01:00:40 +0000 A Simple Complex Down-conversion Scheme https://www.dsprelated.com/showarticle/46.phpMon, 21 Jan 2008 14:03:53 +0000 Waveforms that are their own Fourier Transform https://www.dsprelated.com/showarticle/45.phpMea Culpa There are many scary things about writing a technical book. Can I make the concepts clear? It is worth the effort? Will it sell? But all of these pale compared to the biggest fear: What if I'm just plain wrong? Not being able to help someone is one thing, but leading them astray is far worse.

My book on DSP has now been published for almost ten years. I've found lots of typos, a...]]>

Wed, 16 Jan 2008 19:28:13 +0000 Computing Chebyshev Window Sequences https://www.dsprelated.com/showarticle/42.phpChebyshev windows (also called Dolph-Chebyshev, or Tchebyschev windows), have several useful properties. Those windows, unlike the fixed Hanning, Hamming, or Blackman window functions, have adjustable sidelobe levels. For a given user-defined sidelobe level and window sequence length, Chebyshev windows yield the most narrow mainlobe compared to any fixed window functions. Tue, 08 Jan 2008 04:12:57 +0000 SDR: Does it makes sense? Part 1/2 https://www.dsprelated.com/showarticle/43.phpHowdie all, One of the things I personaly have been debating is SDR ready for deployment? Plenty of companies have come around with commericial solutions like Silicon Hive, NXP (former Philips), Infineon, Sandbridge, and others. For the un-initiated, SDR is the basic idea of if many wireless standards on a single chip.

One of the reasons I strongly believe it may just work is the...]]>

Mon, 07 Jan 2008 22:37:03 +0000 An Interesting Fourier Transform - 1/f Noise https://www.dsprelated.com/showarticle/40.phpPower law functions are common in science and engineering. A surprising property is that the Fourier transform of a power law is also a power law. But this is only the start- there are many interesting features that soon become apparent. This may even be the key to solving an 80-year mystery in physics. It starts with the following Fourier...]]>

Fri, 23 Nov 2007 23:49:51 +0000 Components in Audio recognition - Part 1 https://www.dsprelated.com/showarticle/39.phpAudio recognition is defined as the task of recognizing a particular piece of audio (could be music, ring-tone, and speech as well), from a given sample set of audio tracks. The Human Auditory System (HAS) is unique in that the tasks of "familiarisation" of unknown tracks, and finding "similar" tracks come naturally to us. Tunes from the not-so-recent past can still...]]>

Tue, 20 Nov 2007 09:18:59 +0000 TI goes the Open Source way! https://www.dsprelated.com/showarticle/38.phpHello all, Most of you probably know about Google's Summer of Code project. One of the great things that came out of that project is TI deciding to give out their compiler for free.

This is an important first step to getting open source codecs running on the DSP of the OSD, as well as for other projects which make use of TI's DM320 or other products containing a c54x DSP. Unfortunately this...]]>

Mon, 19 Nov 2007 12:52:51 +0000 Resolving 'Can't initialize target CPU' on TI C6000 DSPs - Part 2 https://www.dsprelated.com/showarticle/33.phpConfiguration The previous article discussed CCS configuration. The prerequisite for the following discussion is a valid CCS configuration file. All references will be for CCS 3.3, but they may be used or adapted to other versions of CCS. From the previous discussion, we know that the configuration file is located at 'C:\CCStudio_v3.3\cc\bin\brddat\ccBrd0.dat'.

XDS510...]]>

Mon, 12 Nov 2007 05:39:11 +0000 Spectral Flipping Around Signal Center Frequency https://www.dsprelated.com/showarticle/37.phpMost of us are familiar with the process of flipping the spectrum (spectral inversion) of a real signal by multiplying that signal's time samples by (-1)n. In that process the center of spectral rotation is fs/4, where fs is the signal's sample rate in Hz. In this blog we discuss a different kind of spectral flipping process. Consider the situation where we need to flip the X(f) spectrum in...]]>

Radio channels, their effects on communications links and how to model them are a popular topic on comp.dsp. Unfortunately, for many of us there is little or no opportunity to get any "hands-on" experience with radio-related issues, because the required RF measurement equipment is not that easily available....]]>Thu, 08 Nov 2007 01:41:32 +0000 A Differentiator With a Difference https://www.dsprelated.com/showarticle/35.phpSome time ago I was studying various digital differentiating networks, i.e., networks that approximate the process of taking the derivative of a discrete time-domain sequence. By "studying" I mean that I was experimenting with various differentiating filter coefficients, and I discovered a computationally-efficient digital differentiator. A differentiator that, for low fequency signals, has...]]> Sat, 03 Nov 2007 10:25:05 +0000 A brief look at multipath radio channels https://www.dsprelated.com/showarticle/32.phpSummary: Discussion of multipath propagation and fading in radio links Wed, 31 Oct 2007 16:53:29 +0000 Resolving 'Can't initialize target CPU' on TI C6000 DSPs - Part 1 https://www.dsprelated.com/showarticle/31.phpIntroduction Today I am going to discuss some of the basics that can help prevent errors that frustrate some users. The information is directed toward TI C6000 family DSPs, but much of it also applies to other TI DSPs. In many cases they represent the user's first involvement with using Code Composer Studio [CCS] and a target board. It has been my experience that the primary cause of the...]]>

Tue, 30 Oct 2007 05:28:02 +0000 Modelling a Noisy Communication Signal in MATLAB for the Analog to Digital Conversion Process https://www.dsprelated.com/showarticle/20.phpA critical thing to realize while modeling the signal that is going to be digitally processed is the SNR. In a receiver, the noise floor (hence the noise variance and hence its power) are determined by the temperature and the Bandwidth. For a system with a constant bandwidth, relatively constant temperature, the noise power remains relatively constant as well. This implies that the noise...]]>

Tue, 30 Oct 2007 05:26:40 +0000 Embedded TMS320C6000 Information Kick Off https://www.dsprelated.com/showarticle/30.phpBefore I get off on some embedded C6000 rant, I thought that I would try to express some of my background, interests and areas of expertise. Fast forwarding through vacuum tube and transistor computers, punched cards, 14 inch hard disks, delay line memory, RTL ICs, bit slice minicomputers, and an unknown number of microprocessors will almost get me from my past to the present. My computer...]]> Thu, 25 Oct 2007 05:02:43 +0000 ES Week Emphasis on Component Based Design https://www.dsprelated.com/showarticle/28.phpHowdy everyone from beautiful Salzburg/Austria, A week full of presentations on embedded systems at ESWeek was quite a mindful. Similar to most academic conferences, there was only a few papers worth taking back home to think about. Amongst these were:

1. Keynote talk by Hermann Eul from Infineon: He presented Infineon's view on SDR and its evolution. This talk was quite inspirational. However...]]>

IntroductionSun, 07 Oct 2007 19:55:14 +0000 Delay estimation by FFT https://www.dsprelated.com/showarticle/26.phpThis article relates to the Matlab / Octave code snippet: Delay estimation with subsample resolution It explains the algorithm and the design decisions behind it. There are many DSP-related problems, where an unknown...]]>

Sat, 22 Sep 2007 11:48:26 +0000 Software Defined Radio at SAMOS https://www.dsprelated.com/showarticle/27.phpLets start off with so 'hot' SDR track held at SAMOS conference this year. The academic community relatively active in the SDR architecture domain including UMich, WisMad, Linkoping, IMEC and others all presented their views on Software Defined Radio and unveiled a part of their work. We from IMEC 'finally' made our SyncPro architecture public. You can find more about our vector...]]> Sat, 22 Sep 2007 10:49:08 +0000 TI DSP Predictions https://www.dsprelated.com/showarticle/25.phpI think it might be interesting to blog a couple of "Texas Instruments DSP predictions". The following are just my opinion, they do not result in any way from inside / confidential information to which I'm privy in working closely with TI for many years. Of course I could be dead wrong, but at least I can say, "if they should occur, it would have a huge impact on the TI DSP...]]> Thu, 20 Sep 2007 01:24:29 +0000 The Freshers Interview Guide https://www.dsprelated.com/showarticle/24.phpAt Signalogic I'm in hiring mode right now, looking for a couple of entry-level engineers. After several interviews over the last few weeks I find troubling patterns... things young engineers should know, but they don't. Things they put on their resume but shouldn't, things they say or do in the interview they should not, and things they fail to say or do. Then I see questions for...]]>

Wed, 19 Sep 2007 23:40:16 +0000 New Blog Section! https://www.dsprelated.com/showarticle/23.phpBy now, chances are you have noticed the new blogs section (you are actually in it right now!). Following an email I sent to the members of the site, a few weeks ago, asking for dsp engineers willing to blog here, I received around 50 propositions. I have selected an initial set of 10 bloggers (that I will soon introduce into a seperate post) and I am currently in the process of creating...]]>

Wed, 19 Sep 2007 19:06:42 +0000 Polyphase filter / Farrows interpolation https://www.dsprelated.com/showarticle/22.phpHello, this article is meant to give a quick overview over polyphase filtering and Farrows interpolation.

A good reference with more depth is for example Fred Harris' paper: http://www.signumconcepts.com/IP_center/paper018.pdf

The task is as follows: Interpolate a band-limited discrete-time signal at a variable offset between samples.In other words:Delay the signal by a given amount with...]]>

Tue, 18 Sep 2007 19:47:40 +0000 Through the tube... https://www.dsprelated.com/showarticle/19.phpHello all, something completely different...

there was some recent discussion on the forum about modeling guitar amplifiers.I have been wondering for quite a while, whether the methods that I use to model radio frequency power amplifiers might also work for audio applications.

It's been a rainy day, so I found the time and energy for some experiments. Just for fun.

The device-under-test is a...]]>

Sat, 15 Sep 2007 21:52:02 +0000 Hello and Introduction https://www.dsprelated.com/showarticle/13.phpHello all. I would like to take this chance to talk a little about what I am going to try and do in this blog. While working in the field, I have come across some interesting techniques. It has, at times, taken some time and effort to understand these techniques. Ever since I was a kid, I have overestimated my capacity to remember everything that I learn. So, I had decided to start keeping a...]]>

Fri, 14 Sep 2007 11:25:03 +0000 New Discussion Group: DSP & FPGA https://www.dsprelated.com/showarticle/9.phpI have just created a new discussion group for engineers implementing DSP functions on FPGAs. The creation of this group has been on my todo list for a long time. If you want to join the group, send a blank email to: fpgadsp-subscribe@yahoogroups.com As usual, it should take a few weeks before there are enough members for interesting discussions to get...]]>

Tue, 11 Sep 2007 13:25:59 +0000