DSPRelated.com

Stereophonic Amplitude-Panning: A Derivation of the 'Tangent Law'

Rick LyonsRick Lyons February 20, 20198 comments

Rick Lyons presents a clear geometrical derivation of the stereophonic amplitude-panning Tangent Law, filling a gap left by common references. Using vector components and the equidistant speaker assumption to keep signals in phase, he arrives at the Tangent Law and isolates practical gain formulas gL and gR needed to place an apparent source at a desired panning angle. Engineers can apply Eqs. (12) and (14) directly.


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.


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.


How the Cooley-Tukey FFT Algorithm Works | Part 1 - Repeating Calculations

Mark NewmanMark Newman November 11, 20244 comments

The Fourier Transform is a powerful tool, used in many technologies, from audio processing to wireless communication. However, calculating the FT can be computationally expensive. The Cooley-Tukey Fast Fourier Transform (FFT) algorithm provides a significant speedup. It exploits the repetitive nature of calculations within the Discrete Fourier Transform (DFT), the mathematical foundation of the FT. By recognizing patterns in the DFT calculations and reusing intermediate results, the FFT vastly reduces the number of operations required. In this series of articles, we will look at how the Cooley-Tukey FFT algorithm works.


Why Time-Domain Zero Stuffing Produces Multiple Frequency-Domain Spectral Images

Rick LyonsRick Lyons March 23, 20154 comments

Zero stuffing in the time domain creates spectral copies, and Rick Lyons walks through why that happens using DFT and DFS viewpoints. He shows that inserting L-1 zeros between samples yields a longer DFT with replicated spectral blocks, and that true interpolation requires lowpass filtering to remove those images. The post uses a concrete L=3 example and an inverse-DFT summation proof to make the effect intuitive.


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.


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.


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.


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.


A Simple Complex Down-conversion Scheme

Rick LyonsRick Lyons January 21, 20087 comments

Rick Lyons shows a compact way to turn a real bandpass signal centered at ±fs/4 into a complex, zero-centered analytic signal. The trick uses a delay, a Hilbert transform filter, and a 4:1 downsample, with a small compensation filter to widen the usable passband. He also points out a no-multiplier implementation using shift-and-add coefficients, or a higher-attenuation version with two multiplies per output sample.


Demonstrating the Periodic Spectrum of a Sampled Signal Using the DFT

Neil RobertsonNeil Robertson March 9, 201920 comments

This post makes a basic DSP principle tangible by computing the DFT over an extended set of bins and plotting the results. It demonstrates that a sampled signal's spectrum repeats every sampling rate, explains the k-to-frequency mapping, and contrasts common bin ranges such as 0..N-1 and -N/2..N/2-1. The write-up also highlights symmetry for real sequences and recommends using the FFT for efficiency.