DSPRelated.com

Embedded Toolbox: Programmer's Calculator

Miro SamekMiro Samek June 27, 20178 comments

A tiny but powerful cross-platform tool, QCalc evaluates full C-syntax expressions so you can paste results straight into firmware. It handles bitwise ops, mixed hex/decimal/binary constants, and scientific math, and it automatically shows integer results in formatted hex and binary. The post explains key features, variable handling, error messages, and how to run qcalc.tcl with the wish Tk interpreter.


Ten Little Algorithms, Part 6: Green’s Theorem and Swept-Area Detection

Jason SachsJason Sachs June 18, 20173 comments

Jason shows how Green's Theorem becomes a practical, low-cost method to detect real-time rotation from two orthogonal sensors by accumulating swept area. The post derives a compact discrete integrator S[n] = S[n-1] + (x[n]*(y[n]-y[n-1]) - y[n]*(x[n]-x[n-1]))/2, compares integer and floating implementations, and analyzes noise scaling and sampling rate tradeoffs. Includes Python demos and threshold guidance.


Going back to Germany!

Stephane BoucherStephane Boucher June 13, 20176 comments

A conference conversation turned into a return trip to Germany for Stephane Boucher, this time to visit SEGGER’s headquarters in Dusseldorf and produce videos. The post shares how a chance introduction at ESC Boston led to the invitation, and it teases coverage from SEGGER’s 25th anniversary celebration. He also invites local tips and customer questions before the trip.


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.


Modeling a Continuous-Time System with Matlab

Neil RobertsonNeil Robertson June 6, 20172 comments

Neil Robertson demonstrates a practical workflow for converting a continuous-time transfer function H(s) into an exact discrete-time H(z) using Matlab's impinvar. He walks through a 3rd-order Butterworth example, shows how to match impulse and step responses, and compares frequency response and group delay so engineers can see where the discrete model stays accurate and when sampling-rate limits cause departure.


ESC Boston's Videos are Now Up

Stephane BoucherStephane Boucher June 5, 2017

Stephane Boucher shares the videos he produced from ESC Boston, including a short highlight montage, a booth video for DLOGIC, and full talk clips from the conference. He also reflects on what he learned shooting on the show floor, especially the challenge of getting engineers on camera. It’s a quick behind-the-scenes look at technical event videography, with a preview of his next stop in Germany.


How to Find a Fast Floating-Point atan2 Approximation

Nic TaylorNic Taylor May 26, 201716 comments

This post shows how a compact, fast atan2 can be built from a Remez-derived arctangent approximation and a matching 3rd-order polynomial. It walks through using Boost's remez_minimax to recover coefficients 0.97239411 and -0.19194795, integrating the polynomial into an atan2 with quadrant reduction, and applying branch reduction, bit tricks, and SSE2 SIMD to cut runtime while keeping max error under about 0.005 radians.


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

Cedron DawgCedron Dawg May 12, 2017

Cedron Dawg presents a new family of exact time-domain formulas to estimate the instantaneous frequency of a single pure tone. The methods generalize a known one-sample formula into k-degree neighbor-pair sums with spacing d, giving exact results in the noiseless case and tunable robustness in noise. The paper explains why real-tone estimates must be taken at peaks and shows the formulas also work for complex tones.


Back from ESC Boston

Stephane BoucherStephane Boucher May 6, 20172 comments

Stephane nearly skipped ESC Boston, but going turned into a productive mix of networking, informal meetups, and on-the-floor filming. He captures candid encounters with speakers and vendors, learns how small shows differ from larger expos, and outlines practical follow-ups like booth highlight videos and speaker hospitality suggestions. The post is an encouraging read for engineers weighing the value of regional conferences and DIY event coverage.


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 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.


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.


The First-Order IIR Filter -- More than Meets the Eye

Neil RobertsonNeil Robertson November 16, 20257 comments

While we might be inclined to disdain the simple first-order infinite impulse response (IIR) filter, it is not so simple that we can’t learn something from it. Studying it can teach DSP math skills, and it is a very useful filter in its own right. In this article, we’ll examine the time response of the filter, compare the first-order IIR filter to the FIR moving average filter, use it to smooth a noisy signal, compute the functional form of the impulse response, and find the frequency response.


A Fast Guaranteed-Stable Sliding DFT Algorithm

Rick LyonsRick Lyons June 15, 202342 comments

Rick Lyons presents a compact, computationally efficient sliding DFT that computes a single N-point DFT bin output for each input sample in real time. The design replaces the traditional complex resonator with a 2nd-order real resonator and uses pole/zero cancellation to match the DFT bin response. Crucially, the resonator poles remain on the z-plane unit circle even with quantized coefficients, guaranteeing numerical stability.


Two Easy Ways To Test Multistage CIC Decimation Filters

Rick LyonsRick Lyons May 22, 20182 comments

Rick Lyons shows that you can validate multistage CIC decimation filters with just two obvious tests, no elaborate spectral setup required. Apply a unit-sample impulse to check a combinatorial yout(1) value when D ≥ S, or feed an all-ones step to confirm an S-sample transient followed by a DS steady state; the Appendix ties both checks to Pascal's triangle and binomial math.


Computing Chebyshev Window Sequences

Rick LyonsRick Lyons January 8, 200811 comments

Rick Lyons gives a compact, practical recipe for building M-sample Chebyshev (Dolph) windows with user-set sidelobe levels, not just theory. The post walks through computing α and A(m), evaluating the Nth-degree Chebyshev polynomial, doing an inverse DFT, and the simple postprocessing needed to form a symmetric time-domain window. A worked 9-sample example and an implementation caveat for even-length windows make this immediately usable.


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.


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.


Multiplierless Exponential Averaging

Rick LyonsRick Lyons December 5, 200811 comments

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.


Specifying the Maximum Amplifier Noise When Driving an ADC

Rick LyonsRick Lyons June 9, 20148 comments

You can quantify how much amplifier noise is acceptable before adding gain actually hurts an ADC's output SNR. Rick Lyons presents a compact rule showing the amplifier input-referred noise power must be less than (1 - 1/α^2) times the ADC's q^2/12 quantization noise power, with Eq. (8) and a pair of figures that make it easy to pick or specify the right amplifier for a given gain α.