DSPRelated.com

Computing FFT Twiddle Factors

Rick LyonsRick Lyons August 8, 201019 comments

Rick Lyons gives two compact algorithms to compute individual twiddle factors for radix-2 DIF and DIT FFTs, handy when you need only a subset of outputs such as in pruned FFTs. He explains stage indexing, provides closed-form formulas including the bit-reversal step for DIT, and walks through N=8 examples so you can implement the twiddle-angle calculations directly.


Knowledge Mine for Embedded Systems

Sami AldalahmehSami Aldalahmeh June 25, 20101 comment

A little-known interactive portal makes learning embedded systems surprisingly practical and visual. The site is organized into four main areas: embedded systems design, design lifecycle, design methods, and design tools. Each section uses clickable system block diagrams so you can jump from a block, for example a MAC unit, to a focused page with detailed explanations. It’s a handy, ready reference for DSP and embedded engineers.


Hidden Linear Algebra in DSP

Sami AldalahmehSami Aldalahmeh June 17, 20105 comments

Linear algebra is hiding in plain sight inside many DSP techniques, not just abstract theory. By treating linear systems as matrix operators y = A x you reveal Toeplitz structure in LTI systems, connect to covariance matrices, and gain geometric intuition via eigenvalues and eigenvectors. This matrix viewpoint complements convolution-based thinking and offers practical tools for filter and channel analysis.


Accelerating Matlab DSP Code on the GPU

Seth Seth March 25, 20102 comments

Seth Benton spent a few days testing Jacket to accelerate MATLAB on NVIDIA GPUs, and found it surprisingly easy to speed up DSP code. He ran 2D FFT and interp2 benchmarks on a MacBook Air with a GeForce 9400M, seeing impressive speedups for large images while hitting GPU memory and precision limits at high sizes. The post shares practical tips on casting to GPU types, minimizing CPU-GPU transfers, and when GPU acceleration is most useful.


Googling: a now-required skill

Seth Seth March 7, 2010

Finding the right DSP answer often starts with finding the right search term, not the right textbook. Seth Benton shares the web resources he leans on, from comp.dsp and the MATLAB File Exchange to Google tricks like related searches and the tilde operator. It is a practical reminder that better keywords can cut straight through the rabbit hole.


OpenCV for DSP/GPU, MSDN equivalent for CCS, and more

Shehrzad Shehrzad February 17, 20108 comments

Porting OpenCV to DSPs could be a real business opportunity, but it is far from trivial, writes Shehrzad Qureshi. He highlights major obstacles: the engineering scale, mixed open-source licenses, and hard-to-parallelize primitives like connected components. He also criticizes Code Composer Studio's help system compared with MSDN, notes an ATI Stream talk, and announces a CUDA walkthrough on FFT-based image filtering.


Computing an FFT of Complex-Valued Data Using a Real-Only FFT Algorithm

Rick LyonsRick Lyons February 9, 20103 comments

Rick Lyons shows a compact trick to get an N-point complex FFT using only real-input FFT routines by transforming the real and imaginary parts separately and recombining their outputs. The post presents a one-line recombination formula, Xc(m) = real[Xr(m)] - imag[Xi(m)] + j{imag[Xr(m)] + real[Xi(m)]}, and an algebraic derivation based on the two-real-in-one-complex FFT identity. Useful for systems that only provide real-only FFTs.


Random GPGPU Musings

Shehrzad Shehrzad January 20, 2010

Shehrzad Qureshi argues that general-purpose GPU computing is poised to reshape engineering workloads, and contrasts Nvidia's CUDA ecosystem with ATI's Stream and OpenCL. He points out that GPU architectures and programming models are similar across vendors, but Nvidia's head start in sample code and developer community gives CUDA a practical advantage. Read for a concise industry perspective on choosing a GPGPU platform.


GPGPU DSP

Shehrzad Shehrzad January 16, 20101 comment

Shehrzad Qureshi kicks off his DSP blog by championing GPGPU, focusing on Nvidia's CUDA and real-product experience. He argues that with CPU clock speeds stalled, large-scale parallelism on GPUs is the practical path forward for many signal-processing tasks. The post traces GPGPU history from shader 'hacks' to modern APIs and previews future posts comparing CUDA vs OpenCL, Intel's Larrabee, and Nvidia Fermi.


Some Thoughts on a German Mathematician

Rick LyonsRick Lyons January 11, 20106 comments

Rick Lyons revisits the remarkable career of Carl Friedrich Gauss, mixing memorable anecdotes with technical highlights. The post links Gauss’s work on the Gaussian curve, complex-plane representation, orbit prediction, and early telegraph experiments to ideas familiar to DSP engineers, and notes historical evidence that he developed trigonometric series before Fourier. It’s a short, engaging reminder of Gauss’s broad influence.


Improved Three Bin Exact Frequency Formula for a Pure Real Tone in a DFT

Cedron DawgCedron Dawg November 6, 2017

Cedron Dawg extends his two-bin exact frequency formulas to a three-bin DFT estimator for a pure real tone, and presents the derivation in computational order for practical use. The method splits complex bin values into real and imaginary parts, forms vectors A, B, and C, applies a sqrt(2) variance rescaling, and computes frequency via a projection-based closed form. Numerical tests compare the new formula to prior work and show improved accuracy when the tone lies between bins.


Update to a Narrow Bandpass Filter in Octave or Matlab

Paul LovellPaul Lovell March 29, 2021

Paul Lovell presents an updated, compact Octave/Matlab implementation of a narrow bandpass FIR that runs about four times faster and uses float32 to cut processing cost. The design combines a single matrix IFIR stage with three moving-sum (RRS) stages per baseband, auto-calculates the IFIR expansion factor, and adds easier parameter setup plus WAV I/O and FFT plots. A TensorFlow Colab demo is also provided.


Project update-1 : Digital Filter Blocks in MyHDL and their integration in pyFDA

Sriyash CaculoSriyash Caculo June 22, 2018

By week 5 the project delivered parameterized MyHDL implementations of multiple digital filter topologies and started integration with PyFDA. The post walks through a behavioral direct-form I FIR, cascaded second-order-section implementations for FIR and IIR using structural modeling, and a parallel IIR design that concatenates per-section outputs for final summation. All designs infer order and coefficients from PyFDA, with examples in the filter-blocks repository.


Exact Near Instantaneous Frequency Formulas Best at Peaks (Part 2)

Cedron DawgCedron Dawg June 11, 20174 comments

Cedron Dawg derives a second family of exact time domain formulas for single-tone frequency estimation that trade a few extra calculations for improved noise robustness. Built from [1+cos]^k binomial weighting of neighbor-pair sums, the closed-form estimators are exact and are best evaluated at signal peaks for real tones, while complex tones do not share the zero-crossing limitation. Coefficients up to k=9 are provided.


Of Forests and Trees and DSP

Tim WescottTim Wescott February 10, 20082 comments

Too often DSP engineers fixate on algorithms and miss the rest of the product. Tim Wescott uses the humble Korg CA-20 chromatic tuner to show that a great algorithm alone does not make a usable device, you also need good data acquisition, adequate processing, sensible precision, a usable UI, and appropriate casing and cost. The post gives practical do's and don'ts for system-level DSP design.


Why is Fourier transform broken

Sami AldalahmehSami Aldalahmeh October 4, 20112 comments

Many engineers know the Gibbs phenomenon without grasping its root cause. This post shows that the problem comes from using the incomplete metric space of continuous functions, C[a,b], for Fourier series, and explains how switching to Lp spaces resolves convergence in the mean but allows functions to differ on sets of measure zero. It also reminds readers that Fourier analysis gives no time localization, so be mindful of its limits.


Engineering the Statistics

Sami AldalahmehSami Aldalahmeh March 26, 20122 comments

Statistical analysis can get messy fast when theory and MATLAB simulations refuse to agree. This post shares a graduate student’s hard-earned shortcuts for taming random variables, from deriving a CDF or moments to using Gaussian or Gamma approximations, and falling back on Chernoff bounds when the exact PDF stays out of reach.


Project update-2 : Digital Filter Blocks in MyHDL and their integration in pyFDA

Sriyash CaculoSriyash Caculo July 9, 2018

This update shows a working integration between Pyfda and MyHDL using a compact API that passes fixed-point coefficients, stimulus data, and returns simulated filter responses. It walks through two usage styles, constructor-based and setter-method-based, and demonstrates a Pyfda workflow from specs to MyHDL simulation and plotting. Future plans include HDL code generation and API extension as filters grow.


Digging into an Audio Signal and the DSP Process Pipeline

Stephen MorrisStephen Morris March 9, 20206 comments

Zooming into an audio waveform can be misleading if you rely on only one view. This post compares Audacity with a simple C++ WAV reader and shows how the same samples can look like zero in a GUI, while the raw data reveals a small nonzero value. It is a practical reminder that multiple tools help you inspect and verify signal data more accurately.


State Space Representation and the State of Engineering Thinking

Sami AldalahmehSami Aldalahmeh November 23, 20102 comments

State space is common in control, but it shows up much less often in signal processing. This post argues that the difference is really about engineering priorities: for many DSP problems, transfer functions are enough, while state space becomes valuable when internal behavior matters, like filter scaling or Kalman filtering. It is a short, practical look at why engineers choose one model over the other.