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

March 20, 20179 comments
Introduction

This is an article to hopefully give a better understanding to the Discrete Fourier Transform (DFT) by deriving an exact formula for the frequency of a complex tone in a DFT. It is basically a parallel treatment to the real case 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 single complex tone signal is a lot less complicated than for the real case.

Theoretical...

## DFT Bin Value Formulas for Pure Complex Tones

March 17, 2017
Introduction

This 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 is necessary to first understand how a single pure tone acts. Since a DFT is a linear transform, the...

## Multi-Decimation Stage Filtering for Sigma Delta ADCs: Design and Optimization

March 1, 20176 comments

During 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 dissertation is open for public online as well. The toolbox has a wide set of examples to guide the user...

## Canonic Signed Digit (CSD) Representation of Integers

February 18, 2017

In 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 each binary digit to have one of the three values {0, 1, -1}.  Thus, for example, the binary value 1 1...

## Frequency Translation by Way of Lowpass FIR Filtering

February 4, 20175 comments

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

Traditional Frequency Translation Prior To Filtering

Think about the process shown in...

## Minimum Shift Keying (MSK) - A Tutorial

January 25, 201717 comments

Minimum 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 known as Continuous-Phase Modulation (CPM). It is worth noting that CPM (and hence CPFSK) is a...

## New Video: Parametric Oscillations

January 4, 2017

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

## Round Round Get Around: Why Fixed-Point Right-Shifts Are Just Fine

November 22, 20163 comments

Today’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 fixed-point arithmetic we typically multiply and shift right; for example, if we wanted to multiply some...

## Some Thoughts on Sampling

November 15, 20162 comments

Some 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 amplitude of the desired spectrum and spectral replicas is $10^7$! I thought that there must be...

## Matlab Code to Synthesize Multiplierless FIR Filters

October 31, 20163 comments

This 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 coefficients having a lot of 1’s, e.g. decimal 31 = 11111.  To reduce the number of non-zero...

## Two Easy Ways To Test Multistage CIC Decimation Filters

May 22, 20182 comments

This 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 (discard all but every Dth sample), and n is the time index.

If the Figure 3 filter's...

## Embedded World 2018 - More Videos!

March 27, 20181 comment

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

As for the Sony camera, it takes fantastic slow-motion footage and...

## The Little Fruit Market: The Beginning of the Digital Explosion

January 14, 20135 comments

There 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 physicist William Shockley, along with John Bardeen and Walter Brattain, co-invented the transistor at Bell...

## A multiuser waterfilling algorithm

November 5, 20101 comment

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

Introduction to multiuser waterfilling.

Background information can be found for example in the presentation from Yosia Hadisusanto,

## Matlab Code to Synthesize Multiplierless FIR Filters

October 31, 20163 comments

This 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 coefficients having a lot of 1’s, e.g. decimal 31 = 11111.  To reduce the number of non-zero...

## Discrete Wavelet Transform Filter Bank Implementation (part 2)

December 5, 20109 comments

Following 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 filters the signal with the h1 filter, the DWPT separates branches symmetricaly: this means that one...

May 25, 201514 comments

Chances 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 comments system at the bottom of this page.

First on my list would be to build and launch a new forum...

## Multiplierless Exponential Averaging

December 5, 200811 comments

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

Figure 1 Exponential averaging: (a) standard network; (b) single-multiply network.

That exponential averager's difference equation is

y(n) = αx(n) + (1 –...

## Linear Feedback Shift Registers for the Uninitiated, Part XIV: Gold Codes

April 18, 2018

Last 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 isn’t enough to save the world using spread-spectrum technology. We have to cover two little side discussions before we can get into Gold...

## Spread the Word and Run a Chance to Win a Bundle of Goodies from Embedded World

February 21, 2019

Do 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 successful this live broadcasting experience will be, the better the chances that I will be able to do it...