DSPRelated.com
Online · Live + on demand
February 9-11, 2027
Price goes up Nov 1: register now to lock in today's rate
Register Now →

Filter a Rectangular Pulse with no Ringing

Neil RobertsonNeil Robertson ● May 12, 2016●10 comments

You can filter a rectangular pulse with no ringing simply by using an FIR whose coefficients are all positive, and make them symmetric to get identical leading and trailing edges. This post walks through a MATLAB example that convolves a normalized Hanning window with a 32-sample rectangular pulse, showing that window length controls edge duration and that shorter windows widen the spectrum. It also notes this is not a QAM pulse-shaping solution.


Data Types for Control & DSP

Tim WescottTim Wescott ● April 26, 2016●6 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.


PID Without a PhD

Tim WescottTim Wescott ● April 26, 2016●12 comments

You do not need control theory to implement useful PID loops in embedded projects. Tim Wescott walks through simple, ready-to-use C code, clear explanations of P, I and D terms, and a practical tuning recipe you can apply to motors, precision actuators, and heaters. The article highlights anti-windup, sampling-rate guidance, and when to call in a control expert.


Digital Envelope Detection: The Good, the Bad, and the Ugly

Rick LyonsRick Lyons ● April 3, 2016●23 comments

Envelope detection sounds simple, but implementation choices change everything. Rick Lyons gathers common digital detectors, including half-wave, full-wave, square-law, Hilbert-based complex, and synchronous coherent designs, and explains how harmonics, filtering, and carrier recovery change results. He ranks detectors by output SNR from a representative simulation and offers practical tips on filter cutoff, Hilbert transformer bandwidth, and when a simple detector is good enough.


Harmonic Notch Filter

Mike RosingMike Rosing ● March 28, 2016●15 comments

A practical, DSP-friendly recipe for scrubbing 60 Hz power-line hum and its harmonics from noisy ECG and EEG recordings is presented, using IIR notch filters built from second-order all-pass sections. The post derives how to set all-pass phase to place notches and compute biquad coefficients by solving a simple 2x2 system, then shows C code and precomputed coefficients for cascading the first eight odd harmonics at a 2 kHz sample rate. Engineers get a compact, editable implementation with explicit control over notch bandwidth.


A Useful Source of Signal Processing Information

Rick LyonsRick Lyons ● March 23, 2016●8 comments

A surprisingly handy web tool turned up for finding signal processing material in PDF and PowerPoint form. Rick Lyons shows how a plain-looking site can surface lots of topic-specific documents, using FM demodulation as the example. If you often hunt for reference slides and papers, this is a quick source worth bookmarking.


3 Good News

Stephane BoucherStephane Boucher ● March 9, 2016●1 comment

Stephane Boucher reports three quick wins for the EmbeddedRelated community: two sponsors have seeded a $1,000 rewards pool, the site now serves all pages over HTTPS, and the new forums have their first active discussions. If you want a share of the sponsor-funded rewards, jump into the forums and check the Vendors Directory for opportunities. Stay tuned for more updates.


Padé Delay is Okay Today

Jason SachsJason Sachs ● March 1, 2016●6 comments

High-order Padé approximations for time delays break in surprising ways, but the failure is not magic. Jason Sachs walks through why coefficient-based transfer functions and companion-form state-space are numerically fragile, shows how to compute poles and zeros directly from the hypergeometric form with Newton iteration, and demonstrates building modal or block-diagonal state-space realizations to make high-order Padé delays practical while noting remaining limits.


The New Forum is LIVE!

Stephane BoucherStephane Boucher ● February 18, 2016●1 comment

The EmbeddedRelated forum just got a major interface refresh, and Stephane Boucher is rolling it out in beta. The new editor makes it easier to drop in images and files, add LaTeX equations with MathJax, and publish highlighted code snippets with highlight.js. Access is gated by approval for now, mainly to keep trolls, spammers, and bots out.


Autocorrelation and the case of the missing fundamental

Allen DowneyAllen Downey ● January 21, 2016●10 comments

A short hands-on exploration shows why we perceive the fundamental pitch even when it's absent from the spectrum. Using saxophone recordings, high-pass filtering, and autocorrelation plots, the post demonstrates that the highest ACF peak often predicts perceived pitch rather than the strongest spectral line. The experiments also show that removing high harmonics eliminates the effect, and that autocorrelation is a useful but incomplete model of pitch perception.


Sonos, Shut Up and Take My Money! - Is Spatial Audio Finally Here?

Stephane BoucherStephane Boucher ● May 24, 2023●1 comment

Stephane bought a Sonos ERA 300 and discovered that spatial audio can finally feel convincing from a single wireless speaker, provided you set it up correctly. The trick is using Dolby Atmos tracks played inside the Sonos app, plus Sonos' calibration and a close listening position. The post shares setup tips, vivid listening impressions, and encouragement for more spatial mixes to come.


Ancient History

Mike RosingMike Rosing ● January 18, 2016●8 comments

Technology moves fast, and the tools, platforms, and assumptions you rely on can become outdated almost overnight. In this reflective post, the author contrasts the rapid evolution of embedded development with the much slower pace of social change, from programming turnaround times to the underrepresentation of women in engineering. It is a reminder to keep learning, but also to think about how we work and who gets included.


Some Thoughts on Sampling

Qasim ChaudhariQasim Chaudhari ● November 15, 2016●2 comments

Sampling's 1/Ts amplitude factor is not a paradox but a consequence of axis scaling and impulse density, once you view the units correctly. This post walks through impulse trains in continuous and discrete time, uses DFT examples and Parseval's relation, and shows how downsampling and time scaling produce the familiar spectral replicas and their amplitudes. The geometry of the axes resolves the confusion.


Feedback Controllers - Making Hardware with Firmware. Part 3. Sampled Data Aspects

Steve MaslenSteve Maslen ● September 9, 2017

This article digs into practical sampled-data issues you must address when building feedback controllers for circuit emulation. It highlights a common MATLAB versus Simulink discrepancy caused by DAC holding, explains why FOH (ramp-invariant) c2d conversion matters, and surveys latency, bit depth, filter and precision trade-offs. It also lists candidate ADCs, DACs and FPGAs used in a real evaluation platform to guide hardware choices.


Model Signal Impairments at Complex Baseband

Neil RobertsonNeil Robertson ● December 11, 2019●7 comments

Neil Robertson presents compact complex-baseband channel models for common signal impairments, implemented as short Matlab functions of up to seven lines. Using QAM examples and constellation plots, he demonstrates how interfering carriers, two-path multipath, sinusoidal phase noise, and Gaussian noise distort constellations and affect MER. The examples are lightweight and practical, making it easy to test receiver diagnostics and prototype adaptive-equalizer scenarios.


Feedback Controllers - Making Hardware with Firmware. Part 9. Closing the low-latency loop

Steve MaslenSteve Maslen ● July 9, 2018

This article demonstrates combining DSP and feedback-control on an Intel Cyclone floating-point FPGA to build low-latency closed-loop circuit emulators and controllers. Using a single floating-point biquad at 1.6 Msps, an IFFT multi-tone 4.096 ms capture for wideband measurement, and MATLAB references for verification, the author achieves sub-nanosecond timing insight and applies DSP phase compensation to cancel about 100 pF of PCB parasitics.


DSP Related Math: Nice Animated GIFs

Stephane BoucherStephane Boucher ● April 24, 2014●3 comments

Stephane Boucher collected a compact set of animated GIFs that make common DSP math click visually. He spotted popular posts on the ECE subreddit and aggregated DSP-focused GIFs in one place to speed intuition and teaching. Examples include the relationship between sin and cos with right triangles, constructing a square wave from an infinite series, and the continuous Fourier transform pair of the rect and sinc functions.


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.


Modeling a Continuous-Time System with Matlab

Neil RobertsonNeil Robertson ● June 6, 2017●2 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.


Feedback Controllers - Making Hardware with Firmware. Part 2. Ideal Model Examples

Steve MaslenSteve Maslen ● August 24, 2017

An engineer's guide to building ideal continuous-time models for hardware emulation, using TINA Spice, MATLAB and Simulink to validate controller and circuit behavior. The article shows how a passive R-C network can be emulated by an amplifier, a current measurement and a summer, with Spice, MATLAB and Simulink producing coincident Bode responses. Small phase differences between MATLAB and Simulink are noted, and sampled-data issues are slated for the next installment.