DSPRelated.com

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.


The Phase Vocoder Transform

Christian YostChristian Yost February 12, 2019

Treating the phase vocoder as a continuous transform, this post frames PV(x,α,β) as a bijection on signal space and derives the domain constraints needed for an inverse mapping. It uses geometric intuition and group-theory analogies to explain negative and zero scalings, then brings the idea back to DSP to show how aliasing and phase artifacts appear. The Laroche and Dolson consistency measure D_M plus MATLAB experiments are used to compare classic and identity phase-locking reconstructions.


Compute the Frequency Response of a Multistage Decimator

Neil RobertsonNeil Robertson February 10, 20192 comments

This post shows a practical way to compute the full frequency response of a multistage decimator by representing every stage at the input sample rate. The author walks through upsampling lower-rate FIR coefficients, convolving to form the overall impulse response, and taking a DFT, then demonstrates how aliasing and stopband placement affect the aliased components. Example Matlab code and plots illustrate each step.


What to See at Embedded World 2019

Stephane BoucherStephane Boucher February 5, 2019

Skip the overwhelm at Embedded World 2019, Stephane Boucher lays out a practical preview of what to see and how to prioritize your time. The post helps embedded engineers focus on demos, vendor booths, and sessions that matter without getting lost on the show floor. Read it to plan a short, efficient visit that maximizes technical takeaways and networking opportunities.


Smaller DFTs from bigger DFTs

Aditya DuaAditya Dua January 22, 20198 comments

A neat DFT puzzle turns into a tour of three useful spectral tricks. Given only an N point DFT black box, the post shows how to recover the N/2 point DFT of a shorter sequence by zero padding, zero interlacing, or repeating the data. Along the way, it highlights why some methods smooth the spectrum, why others replicate it, and how these operations relate to FFT fundamentals.


A Brief Introduction To Romberg Integration

Rick LyonsRick Lyons January 16, 201911 comments

Romberg integration delivers dramatic accuracy gains for definite integrals by combining multiple trapezoidal approximations into a single highly accurate result. Rick Lyons demonstrates how just five samples can achieve 0.0038% error versus a trapezoidal rule needing 100 samples, and a 17-sample example hits 3.6×10−4% error. The post outlines the N-segment procedure, cost scaling, and links to MATLAB code.


Use Matlab Function pwelch to Find Power Spectral Density -- or Do It Yourself

Neil RobertsonNeil Robertson January 13, 201938 comments

Neil Robertson walks through using Matlab's pwelch and shows how to implement PSD estimation yourself with fft. The post uses concrete examples and complete m-files to demonstrate window selection, converting pxx (W/Hz) to W/bin, Welch DFT averaging, and a worked C/N0 calculation. Readers get practical, runnable recipes for accurate spectrum units, variance reduction with averaging, and peak-power extraction.


Microprocessor Family Tree

Rick LyonsRick Lyons January 10, 20195 comments

Rick Lyons shares a compact, nostalgic microprocessor family tree that highlights early integrated circuits and his fondness for the Intel 8080. The post invites engineers to spot classic chips they remember, pairing brief commentary with a scanned image from Creative Computing, June 1985, copied without permission. It’s a short historical snapshot for anyone interested in vintage CPU lineage.


A Markov View of the Phase Vocoder Part 2

Christian YostChristian Yost January 8, 2019

This post builds a Markov-chain transition graph to guide phase vocoder time-frequency decisions, using spectral correlation data from a Bach violin sonata. It shows how FFT size and the time-stretch factor alpha change bin-to-bin correlations, proposes an inverse-square plus log-boundary probability model for transitions, and demonstrates practical limits and implementation choices with accompanying MATLAB code.


A Markov View of the Phase Vocoder Part 1

Christian YostChristian Yost January 8, 2019

The phase vocoder is reframed here as a Markov process, letting simple statistics reveal how sinusoidal energy migrates across frequency bins. The author shows how per-bin amplitude-difference correlations produce a data-driven transition picture, and provides MATLAB code and practical gating strategies to make those estimates robust. The results explain common phase-vocoder heuristics and point toward improved, structure-aware time-frequency processing.


Compute the Frequency Response of a Multistage Decimator

Neil RobertsonNeil Robertson February 10, 20192 comments

This post shows a practical way to compute the full frequency response of a multistage decimator by representing every stage at the input sample rate. The author walks through upsampling lower-rate FIR coefficients, convolving to form the overall impulse response, and taking a DFT, then demonstrates how aliasing and stopband placement affect the aliased components. Example Matlab code and plots illustrate each step.


Python scipy.signal IIR Filter Design Cont.

Christopher FeltonChristopher Felton June 19, 20127 comments

Christopher Felton continues his practical tour of SciPy's iirdesign, moving beyond lowpass examples to show highpass, bandpass, and stopband designs with concise, code-focused explanations. He highlights how ellip and cheby2 let you tighten specifications for sharper transitions, and shows that the iirdesign workflow is consistent across filter types. Read for clear, reusable examples to produce IIR filter coefficients with scipy.signal.


Wavelets I - From Filter Banks to the Dilation Equation

Vincent HerrmannVincent Herrmann September 28, 20169 comments

Starting from a practical cascaded FIR filter bank, this post derives the key equations behind the Fast Wavelet Transform. It shows how conjugate-quadrature analysis and synthesis filters give perfect reconstruction and how iterating the cascade produces the scaling function, leading to the dilation equation. DB4 coefficients are used as a concrete example and a linear-system trick yields exact integer-sample values of the scaling function.


Design of an anti-aliasing filter for a DAC

Markus NentwigMarkus Nentwig August 18, 2012

If you need a practical way to design an anti-aliasing filter for a DAC, this post delivers an Octave/Matlab script that numerically optimizes a Laplace-domain transfer function for linear phase and arbitrary magnitude. The routine models the DAC sample-and-hold sinc response, compensates group delay automatically, and can include an optional multiplierless FIR equalizer. An example shows a 5.4 dB objective improvement and reduced analog Q for easier implementation.


Spline interpolation

Markus NentwigMarkus Nentwig May 11, 20147 comments

Markus Nentwig provides a cookbook for segmented cubic spline interpolation that turns scattered or noisy data into efficient fixed-point functions. The article shows how to build third-order polynomial segments with explicit value and slope control via basis functions, solve scaling factors by least-squares in Octave/Matlab, and export coefficients for Verilog RTL evaluation using the Horner scheme and practical fixed-point tips.


An Astounding Digital Filter Design Application

Rick LyonsRick Lyons July 7, 201613 comments

Rick Lyons was astonished by the ASN Filter Designer, a hands-on filter design tool that makes tweaking frequency responses as simple as dragging markers with your mouse. The software updates magnitude plots, z-plane pole/zero locations, and filter coefficients in real time, and it also includes a signal analyzer plus a MATLAB-like scripting language for custom coefficient generation. The post links to a demo and user guides so you can try it yourself.


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.


Welcoming MANY New Bloggers!

Stephane BoucherStephane Boucher October 27, 20153 comments

A big influx of new voices just joined DSPRelated, and Stephane Boucher introduces the growing roster of contributors and their backgrounds. The post lists dozens of newly approved bloggers, highlights the range of DSP and embedded expertise they bring, and asks readers to leave constructive feedback on posts. It also explains why some applicants may not have been accepted yet and how to apply properly.


Data Types for Control & DSP

Tim WescottTim Wescott April 26, 20166 comments

Control engineers often default to double precision, but Tim Wescott shows that choice can waste CPU cycles on embedded targets. He separates numeric representation into floating point, integer, and fixed-point, then walks through the tradeoffs, including quantization, overflow, and performance. A concrete PID example highlights why integrator precision and ADC scaling should drive your choice of data type rather than habit.


The Discrete Fourier Transform and the Need for Window Functions

Neil RobertsonNeil Robertson November 15, 20212 comments

The FFT alone can mislead: capturing a finite-length signal with a rectangular window smears energy across frequency, producing spectral leakage that hides real components. This post explains the origin of leakage, shows how tapered windows such as the Hanning window suppress sidelobes, and demonstrates the tradeoff between sidelobe suppression and mainlobe widening while covering practical tips on zero-padding and record length.