DSPRelated.com

A Beginner's Guide to OFDM

Qasim ChaudhariQasim Chaudhari May 1, 20176 comments

Orthogonal Frequency Division Multiplexing made modern high-speed wireless practical by turning one fast serial bitstream into many slow parallel streams carried on orthogonal sinusoids. This beginner guide explains, with minimal math, how the iDFT/DFT pair builds OFDM, how spectral slicing makes each subcarrier effectively flat so equalization reduces to simple divisions, and why a cyclic prefix prevents inter-symbol interference.


A Recipe for a Common Logarithm Table

Cedron DawgCedron Dawg April 29, 2017

Cedron Dawg shows how to construct a base-10 logarithm table from scratch using only pencil-and-paper math. The recipe combines simple series for e and ln(1+x) with clever factoring and neighbor-based recurrences so minimal square-root work is required. Along the way the post explains a practical algorithm, high-accuracy interpolation and inverse-log reconstruction so you can reproduce published log tables by hand.


Sinusoidal Frequency Estimation Based on Time-Domain Samples

Rick LyonsRick Lyons April 20, 201719 comments

Rick Lyons presents three time-domain algorithms for estimating the frequency of real and complex sinusoids from samples. He shows that the Real 3-Sample and Real 4-Sample estimators, while mathematically exact, fail in the presence of noise and can produce biased or invalid outputs. The Complex 2-Sample (Lank-Reed-Pollon) estimator is more robust but can be biased at low SNR and near 0 or Fs/2, so narrowband filtering is recommended.


Three Bin Exact Frequency Formulas for a Pure Complex Tone in a DFT

Cedron DawgCedron Dawg April 13, 20171 comment

Cedron Dawg derives closed-form three-bin frequency estimators for a pure complex tone in a DFT using a linear algebra view that treats three adjacent bins as a vector. He shows any vector K orthogonal to [1 1 1] yields a = (K·Z)/(K·D·Z) and derives practical K choices including a Von Hann (Pascal) kernel and a data-driven projection. The post compares estimators under noise and gives simple selection rules.


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

Stephane BoucherStephane Boucher April 5, 201721 comments

Stephane Boucher turned his Embedded World 2017 trip into a debut YouTube series of short booth highlight videos. He walks through the steep learning curve of trade-show filming, the specific gear he bought and rented to cope with low light and noise, and the practical mistakes he plans to fix. The post lists filmed vendors and asks readers for feedback to improve future episodes.


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

Cedron DawgCedron Dawg March 20, 20179 comments

Cedron Dawg derives an exact two-bin frequency formula for a pure complex tone in the DFT, eliminating amplitude and phase to isolate frequency via a complex quotient and the complex logarithm. He presents an adjacent-bin simplification that replaces a complex multiply with a bin offset plus an atan2 angle, and discusses integer-frequency handling and aliasing. C source and numerical examples show the formula working in practice.


DFT Bin Value Formulas for Pure Complex Tones

Cedron DawgCedron Dawg March 17, 2017

Cedron Dawg derives closed-form DFT bin formulas for single complex exponentials, eliminating the need for brute-force summation and showing how phase acts as a uniform rotation of all bins. He also gives a Dirichlet-kernel form that yields the magnitude as (M/N)|sin(δN/2)/sin(δ/2)|, explains the large-N sinc limit, and includes C code to verify the results.


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

AHMED SHAHEINAHMED SHAHEIN March 1, 20176 comments

A Matlab toolbox streamlines the design and optimization of multi-stage decimation filters for sigma-delta ADCs. MSD-toolbox automates stage-count and decimation-factor selection, generates Parks-McClellan equiripple FIR coefficients, and iteratively selects coefficient quantization to meet in-band noise constraints. It accepts sigma-delta bitstream stimuli for spectral and intra-stage analysis, includes cost estimation routines, and is published open-source on MathWorks with examples and a dissertation reference.


Canonic Signed Digit (CSD) Representation of Integers

Neil RobertsonNeil Robertson February 18, 2017

Canonic Signed Digit (CSD) encoding slashes the number of nonzero bits in integer coefficients, enabling multiplierless FIR filters implemented with shifts and adds. This post uses MATLAB code to demonstrate CSD rules, show how negative values work, and plot the distribution of signed digits as bit width changes. It finishes with practical techniques to minimize signed digits per coefficient for area and power efficient filter designs.


Frequency Translation by Way of Lowpass FIR Filtering

Rick LyonsRick Lyons February 4, 20175 comments

Rick Lyons shows how you can translate a signal down in frequency and lowpass filter it in a single operation by embedding cosine mixing values into FIR coefficients. The post explains how to build the translating FIR, how to choose the number of coefficient sets, and how decimation can dramatically reduce storage needs while noting practical constraints like the requirement that ft be an integer submultiple of fs.


Errata for the book: 'Understanding Digital Signal Processing'

Rick LyonsRick Lyons October 4, 20179 comments

Rick Lyons collects all errata for every edition and printing of his book Understanding Digital Signal Processing into one centralized list, with downloadable PDFs for each variant. The post also shows how to identify your book's printing number for American 1st, 2nd, and 3rd editions and flags a few oddball versions that lack errata.


Live Streaming from Embedded World!

Stephane BoucherStephane Boucher February 12, 2019

Stephane Boucher will bring Embedded World to engineers who cannot attend, streaming high-quality HD video from the show floor. He plans to use a professional camera and a device that bonds three internet links to keep the stream stable, and he is coordinating live sessions with vendors and select talks. Read on to learn how to vote for the presentations you want streamed.


Multiplying Two Binary Numbers

Rick LyonsRick Lyons March 16, 20117 comments

Ancient math gives a modern trick for integer multiplication that uses only shifts, parity checks, and additions. Rick Lyons demonstrates the Russian peasant method, shows why it maps to binary right shifts and least-significant-bit tests, and supplies a MATLAB snippet to run the loop. The post also points out a practical tip: put the smaller operand in the halving register to reduce iterations.


Adaptive Beamforming is like Squeezing a Water Balloon

Christopher HogstromChristopher Hogstrom January 9, 20214 comments

Think of adaptive beamforming as squeezing a water balloon, a simple analogy that reveals how combining multiple antennas creates focused gains and deep nulls. This post walks through the MVDR (Wiener-filter–based) solution, explains steering and scanning vectors, and shows how array geometry and known signal direction control what you can and cannot cancel. Practical tips highlight limits like the N-1 interferer rule.


Discrete Wavelet Transform Filter Bank Implementation (part 2)

David David December 5, 20109 comments

David Valencia walks through practical differences between the discrete wavelet transform and the discrete wavelet packet transform, showing why DWPT yields symmetric frequency resolution while DWT favors a single high-pass branch. He explains how Noble identities let you collapse multi-branch filter banks into equivalent single convolutions, then compares block convolution matrices with chain-processing and links to MATLAB code for both approaches.


Filtering Noise: The Basics (Part 1)

Aditya DuaAditya Dua September 17, 20223 comments

How do you pull signals out of random noise? This post builds intuition from first principles for discrete-time white Gaussian noise and shows how simple linear FIR filtering (averaging) reduces noise. You’ll get derivations for the output mean, variance and autocorrelation, learn why the uniform moving-average minimizes noise under a unity-DC constraint, and why its sinc spectrum can be problematic. Part 1 of a short series.


Are DSPs Dead ?

Jeff BrowerJeff Brower March 25, 20208 comments

Jeff Brower argues that the science of digital signal processing is far from dead, but commercial DSP chips lost momentum when Texas Instruments refused to embrace server-centric AI and 5G markets. He traces how TI's embedded-only culture, halted multicore CPU roadmaps, and lack of server-class products pushed customers to GPUs and FPGAs. A comeback would demand PCIe cards, VM and container support, open-source engagement, and bold leadership.


Do Multirate Systems Have Transfer Functions?

Rick LyonsRick Lyons May 30, 20113 comments

Multirate systems can fool you into thinking standard z-domain analysis always applies. Rick Lyons shows why CIC decimation and Hogenauer implementations do not have a single z-domain transfer function from the input to the downsampled output, because downsampling breaks the one-to-one frequency mapping of LTI systems. Use the cascaded-subfilter H(z) up to the decimation point, then explicitly account for aliasing when predicting the decimated spectrum.


Modeling Anti-Alias Filters

Neil RobertsonNeil Robertson September 26, 2021

Modeling anti-alias filters brings textbook aliasing examples to life. This post shows how to build discrete-time models G(z) for analog Butterworth and Chebyshev lowpass anti-alias filters, compares bilinear transform and impulse invariance, and simulates ADC input/output including aliasing of sinusoids and Gaussian noise. It concludes that impulse invariance gives better stopband accuracy and includes Matlab helper functions.


Feedback Controllers - Making Hardware with Firmware. Part 7. Turbo-charged DSP Oscillators

Steve MaslenSteve Maslen January 5, 20187 comments

You can extract high-quality, high-sample-rate sine waves from FPGAs even when floating-point units are constrained by latency. This article compares Intel's NCO IP (multiplier option) with floating-point recursive biquads on Cyclone V and Cyclone 10 GX, and explains a boosted-sample-rate technique that pushes performance toward a 48Msps DAC target. Practical measurement results, spectral data, and resource/cost trade-offs are highlighted.