Unit Testing for Embedded Algorithms
Unit testing is a best practice for embedded algorithm development, and Anthony Ricke shows how to apply it to DSP code so host and target behave identically. He demonstrates writing unit tests, stubbing Blackfin fixed-point functions in the workstation, and using test-driven development to safely port and optimize an average-calculation example. The SourceForge examples make the approach practical to adopt.
Almost 50,000 Members!
I am very happy to announce that DSPRelated.com will reach the 50,000 registered members mark before the end of 2009. To celebrate this milestone, I will buy a BMW 5 to the 50,000th person to register (please make sure to confirm you email address to activate your registration). Please read the fine prints after the picture.
I am just having fun here and it's not even April's fool day. The 50,000th member won't get a BMW (I wish I could offer it!),...
Deesspee #5
Peter Kootsookos's Deesspee #5 is a very short micro-post simply titled "Computers". It acts as a minimalist flag in the Deesspee series pointing readers toward the computing topic on DSPRelated; click through to view the original entry and any context or discussion. This compact post is useful if you track the author's brief topic markers or short-format updates.
Using Mason's Rule to Analyze DSP Networks
When algebra gets messy, Rick Lyons shows how Mason's Rule cuts through the tedium to produce z-domain transfer functions for even nested-feedback DSP networks. The post gives a clear step-by-step procedure, definitions, and worked examples including a biquad, a DC-bias remover, and a complex multi-loop network. It also points to a public MATLAB routine to automate the bookkeeping.
DSPRelated faster than ever!
Stephane Boucher moved DSPRelated's static assets to Amazon CloudFront to shrink page load times worldwide. Images, JavaScript and CSS are now served from the nearest CloudFront edge server, reducing latency especially for readers in Europe and Asia. If you visit regularly, you should notice the speedup, and the author asks readers to report their load-time experience in the comments.
The Nature of Circles
Averaging angles the usual way can produce nonsense: the mean of 0 and 359 degrees is not 179.5 when working with circular data. Peter Kootsookos shows the correct approach using vectorial or phasor averaging, converting angles to unit complex numbers and taking the argument of their sum. The short post points to directional statistics and a related IEEE paper for deeper details.
Simultaneously Computing a Forward FFT and an Inverse FFT Using a Single FFT
Rick Lyons presents a compact seven-step algorithm to compute a forward FFT and an inverse FFT at the same time using a single radix-2 complex FFT. The method builds intermediate sequences v(n) and z(n), exploits conjugate symmetry, and requires only one N-point FFT plus about 2N additions or subtractions. A clear MATLAB implementation accompanies the explanation so you can try it immediately.
Multiplierless Exponential Averaging
Rick Lyons shows how to implement exponential averaging without multiplies by exploiting a rearranged leaky-integrator form and binary shifts. He demonstrates reducing the standard two-multiply averager to a single-multiply form, then eliminating the multiply entirely when the weighting α equals reciprocals or differences of reciprocals of powers of two. The post catalogs practical α choices for fixed-point filters and flags quantization as an open issue.
Free DSP Books on the Internet - Part Deux
Rick Lyons updates his curated list of freely downloadable DSP textbooks, adding titles across communications, implementation, spectral analysis, audio restoration, mathematics and music theory. The post highlights readable introductions like Prandoni and Vetterli's Signal Processing for Communications and Vetterli and Kovacevic's Wavelets and Subband Coding, while reminding readers that these copyrighted books are free only for individual download and not for redistribution.
Computing the Group Delay of a Filter
Rick Lyons presents a neat, practical way to get a filter's group delay directly from its impulse response using only DFTs. The method computes an N-point DFT of h(n) and of n·h(n), divides them in the frequency domain, and takes the real part to obtain group delay in samples, avoiding phase unwrapping. The post includes MATLAB code, a zero-division warning, and a caution that the method is reliable for FIR filters but not always for IIRs.
Collaborative Writing Experiment: Your Favorite DSP Websites
Stephane Boucher invites the DSPRelated community to a live Google Docs experiment to crowdsource the best DSP websites. After a successful run with EmbeddedRelated, he opens a shared document where members can add, edit, and curate links in real time. The post explains the simple rules, notes revision rollback protection, and asks readers to refresh and help keep the list useful and spam-free while watching it evolve.
Update To: A Wide-Notch Comb Filter
This blog presents alternatives to the wide-notch comb filter described in Reference [1]. That comb filter, which for notational reasons I now call a 2-RRS wide notch comb filter, is shown in Figure 1. I use the "2-RRS" moniker because the comb filter uses two recursive running sum (RRS) networks.
The z-domain transfer function of the 2-RRS wide-notch comb filter, H2-RRS(z), is:
References
[1] R. Lyons, "A Wide-Notch Comb Filter", dsprelated.com Blogs, Nov. 24, 2019, Available...
ICASSP 2011 conference lectures online (for free)
For the first time, the oral sessions of ICASSP 2011 were recorded and posted online for free, giving engineers worldwide easy access to the conference. The talks span speech and communication signal processing, plus eclectic topics like bio-inspired methods, where Prof. Sayed uses a distributed LMS model to reproduce group predator and prey behavior. Expect some theoretical material, but many presentations are practical and inspiring for DSP practitioners.
A Markov View of the Phase Vocoder Part 1
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.
ES Week Emphasis on Component Based Design
Howdy everyone from beautiful Salzburg/Austria,
A week full of presentations on embedded systems at ESWeek was quite a mindful. Similar to most academic conferences, there was only a few papers worth taking back home to think about. Amongst these were:
1. Keynote talk by Hermann Eul from Infineon: He presented Infineon's view on SDR and its evolution. This talk was quite inspirational. However the most interesting slide on complexity of SDR evolution was removed. I wish I could give this...
Constrained Integer Behavior
Overflow and underflow are not always bugs, they can be useful in DSP when fixed-width integers wrap during processing. Christopher Felton demonstrates with moving-average (recursive-windowed-averager) and CIC filter examples how 2's complement wraparound in MyHDL's modbv cancels between an integrator and a comb via pole-zero cancellation. He also covers fixed-point resizing choices, saturation versus wrap, and how rounding error can accumulate.
A Useful Source of Signal Processing Information
I just discovered a useful web-based source of signal processing information that was new to me. I thought I'd share what I learned with the subscribers here on DSPRelated.com.
The Home page of the web site that I found doesn't look at all like it would be useful to us DSP fanatics. But if you enter some signal processing topic of interest, say, "FM demodulation" (without the quotation marks) into the 'Search' box at the top of the web page
and click the red 'SEARCH...
Smaller DFTs from bigger DFTs
IntroductionLet's consider the following hypothetical situation: You have a sequence $x$ with $N/2$ points and a black box which can compute the DFT (Discrete Fourier Transform) of an $N$ point sequence. How will you use the black box to compute the $N/2$ point DFT of $x$? While the problem may appear to be a bit contrived, the answer(s) shed light on some basic yet insightful and useful properties of the DFT.
On a related note, the reverse problem of computing an $N$...
Digital Filter Instructions from IKEA?
This is a wordless example of a folded FIR filter. Swedish “Bygglek” = build and play.
Why is Fourier transform broken
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.
State Space Representation and the State of Engineering Thinking
Most, if not all, textbooks in signal processing (SP) thoroughly covers the frequency analysis of signals and systems alike, including the Fourier and the Z-transform that produce the well known Transfer Function. Another way of signal analysis, not as popular in signal processing though, is State Space representation. State space models describes the internal signals of the system or the process and how it affect the output, in contrast to the frequency representation that only describe the...
Matlab Programming Contest
Love puzzles or want to sharpen your MATLAB skills? Christopher Felton highlights MathWorks' biannual MATLAB programming contest, a week-long set of clever algorithm challenges that require only base MATLAB. Whether you're experienced or new, you can compete, compare solutions, or simply study others' code when later phases disclose submissions. No toolboxes or mex files allowed, so it's a pure programming playground for learning and bragging rights.
An Alternative Form of the Pure Real Tone DFT Bin Value Formula
Cedron Dawg derives an alternative exact formula for DFT bin values of a pure real tone, sacrificing algebraic simplicity for better numerical behavior near integer-valued frequencies. By rewriting cosine differences as products of sines and shifting to a delta frame of reference, the derivation avoids catastrophic cancellation and preserves precision for near-integer tones. The analysis also shows the integer-frequency case is a degenerate limit that yields the familiar M/2 e^{iφ} bin value.
Through the tube...
Markus Nentwig explores whether RF power amplifier modeling tricks work for audio tube preamps by modeling a 12AX7 preamp in Matlab. He records input and output with a two-channel reference, fits a simple Wiener-type model, and compares the modeled output to the real tube sound. The model explains over 99 percent of output power and leaves only small residual distortion to investigate further.
Smaller DFTs from bigger DFTs
IntroductionLet's consider the following hypothetical situation: You have a sequence $x$ with $N/2$ points and a black box which can compute the DFT (Discrete Fourier Transform) of an $N$ point sequence. How will you use the black box to compute the $N/2$ point DFT of $x$? While the problem may appear to be a bit contrived, the answer(s) shed light on some basic yet insightful and useful properties of the DFT.
On a related note, the reverse problem of computing an $N$...
Finding the Best Optimum
Optimization is seductive but often misleading, especially when mathematical models don't match messy reality. Tim Wescott shares stories from circuits and communications to show how chasing the theoretical global optimum can waste time and money. He recommends framing 'best' in practical terms, validating models, and optimizing for cost and impact so products ship on time and actually work in the real world.
New Video: Parametric Oscillations
Tim Wescott just posted a short new video titled "Parametric Oscillations." It’s a little off-topic for the channel, but he used the project as an excuse to break a months-long posting drought. If you follow his work, this quick update shows how small builds can rekindle momentum and prompt informal explorations of oscillation behavior.
Pentagon Construction Using Complex Numbers
A method for constructing a pentagon using a straight edge and a compass is deduced from the complex values of the Fifth Roots of Unity. Analytic values for the points are also derived.
Signal Processing Summit - Cancellation Policy
The post announces a flexible cancellation policy for the inaugural Signal Processing Summit, an intimate DSP event limited to 70 seats and scheduled in Silicon Valley this October. It explains refundable options designed to give attendees confidence when registering early: a full refund minus a $95 processing fee for cancellations before the end of September, a 50% refund for cancellations in October before October 6, and no refunds after that date. The policy is positioned to help prospective attendees lock in the Early Bird rate, secure discounted hotel accommodations, and plan travel with reduced risk. The announcement frames the policy as a way to remove barriers to commitment and encourages readers who have been undecided to register now and attend the Summit.
DSPRelated Finally on Twitter!
After resisting social networks, Stephane Boucher announces DSPRelated's move to Twitter and a few site improvements. Users can now sign in once to access DSPRelated, FPGARelated and EmbeddedRelated with the same account, and the site will post updates from @dsprelated, @embeddedrelated and @fpgarelated. To encourage followers, Boucher will occasionally tweet links that award prizes to the first visitors.



















