DSPRelated.com

Bayes meets Fourier

Allen DowneyAllen Downey October 26, 2015

Bayes filters and Fourier transforms turn out to have a neat symmetry: prediction uses convolution, while measurement update uses multiplication. In this post, Allen Downey shows how the characteristic function ties Bayes filtering to the Fourier domain, then uses that connection to sketch an FFT-based implementation that can speed up the predict-update cycle. If you like Bayesian estimation and signal processing, this is a satisfying crossover.


Number Theory for Codes

Mike RosingMike Rosing October 22, 20156 comments

If CRCs have felt like black magic, this post peels back the curtain with basic number theory and polynomial arithmetic over GF(2). It shows how fixed-width processor arithmetic becomes arithmetic in a finite field, how bit sequences are treated as polynomials, and why primitive polynomials generate every nonzero element. You also get practical insights on CRC implementation with byte tables and LFSRs.


Recruiting New Bloggers!

Stephane BoucherStephane Boucher October 16, 20157 comments

EmbeddedRelated is expanding its blogging team, and Stephane Boucher is inviting engineers, students, hobbyists, and researchers to contribute. He points to the success of earlier contributors and says the community has already read their articles more than 1,250,000 times. If you have knowledge to share, this post explains how to pitch a topic and get started.


A New Contender in the Digital Differentiator Race

Rick LyonsRick Lyons September 30, 20159 comments

Rick Lyons presents a compact FIR differentiator that widens the usable linear-frequency range while remaining simple to implement. The five-tap impulse response boosts the linear operating band by roughly 33% over his earlier design, offers exact two-sample group delay and linear phase, and can be realized in a folded multiplier-free form using binary right shifts. The design targets signals below pi/2 radians per sample.


The Most Interesting FIR Filter Equation in the World: Why FIR Filters Can Be Linear Phase

Rick LyonsRick Lyons August 18, 201517 comments

Rick Lyons pulls back the curtain on a little-known coefficient constraint that makes complex-coefficient FIR filters exhibit linear phase. Rather than simple symmetry of real coefficients, the key is a conjugate-reflection relation involving the filter phase at DC, which collapses to ordinary symmetry for real taps. The post includes derivations, intuition using the inverse DTFT, and a Matlab example to verify the result.


Four Ways to Compute an Inverse FFT Using the Forward FFT Algorithm

Rick LyonsRick Lyons July 7, 20155 comments

Rick Lyons lays out four practical techniques to get an inverse FFT when you only have forward FFT software or FPGA cores available. The post highlights a classic data-reversal trick, a conjugate-symmetry optimized flow, and two methods that avoid reversals using data swapping or complex conjugation plus scaling. Each method notes when it is preferable so engineers can pick the least costly implementation.


Correcting an Important Goertzel Filter Misconception

Rick LyonsRick Lyons July 6, 201517 comments

A common claim says the Goertzel algorithm is marginally stable and prone to numerical errors. Rick Lyons shows that the usual second-order Goertzel filter has conjugate poles exactly on the unit circle, so pole placement alone does not make it unstable. The practical limits are coefficient quantization, which reduces frequency precision, and accumulator overflow for very large N.


Fitting a Damped Sine Wave

Detlef AmbergDetlef Amberg July 3, 20155 comments

Detlef Amberg presents a simple linear-algebra approach to recover frequency, phase, amplitude, and damping of a sampled damped sine wave. Instead of nonlinear fitting, the method casts the waveform as a second-order difference equation, uses linear regression to estimate b and omega, and recovers amplitude and phase by mixing with quadrature carriers; amplitude and damping are then fine-tuned with a gradient iteration. MATLAB code is available on File Exchange.


Premium Forum?

Stephane BoucherStephane Boucher May 25, 201514 comments

Stephane Boucher proposes a paid "premium" forum for DSPRelated that would redistribute membership fees to the communitys top contributors via voting. The plan frames the $20/year fee as an incentive mechanism, not a revenue stream, with monthly payouts to the most appreciated posters. Boucher invites reader feedback to decide whether to implement the idea or pursue alternatives.


Phase and Amplitude Calculation for a Pure Real Tone in a DFT: Method 1

Cedron DawgCedron Dawg May 21, 20151 comment

Cedron Dawg shows how to get exact amplitude and phase for a real sinusoid whose frequency does not land on an integer DFT bin. The method treats a small neighborhood of DFT bins as a complex vector, builds two basis vectors from the cosine and sine transforms, and solves a 2x2 system using conjugate dot products to recover real coefficients that give amplitude and phase. A C++ example and sample output verify the formulas.


Bank-switched Farrow resampler

Markus NentwigMarkus Nentwig August 13, 20112 comments

Markus Nentwig proposes a bank-switched variant of the Farrow resampler that breaks each impulse-response segment into multiple sub-segments, enabling accurate interpolation with lower-order polynomials and fewer multiplications per output. This trades increased total coefficient storage for computational savings. The post explains the concept, connects it to polyphase FIR interpolation, and provides Matlab/Octave and C example code for practical evaluation.


Find Aliased ADC or DAC Harmonics (with animation)

Neil RobertsonNeil Robertson January 11, 20212 comments

If a sinewave drives an ADC or DAC, device nonlinearities create harmonics that can fold back as aliases above Nyquist. This post shows a simple Matlab model, using an NCO, a static nonlinearity, and a DFT to generate spectra and reveal aliased harmonics, with animated illustrations to make aliasing intuitive. The approach works for both ADC and DAC measurement setups and highlights realistic effects like quantization noise.


Feedback Controllers - Making Hardware with Firmware. Part 8. Control Loop Test-bed

Steve MaslenSteve Maslen March 21, 2018

Built around modest FPGA hardware, this post presents a practical test-bed for evaluating high-speed, low-latency feedback controllers. It covers ADC/DAC specifications, basic and arbitrary test signals, and an IFFT-based generator that can produce thousands of simultaneous tones for rapid Bode, phase, and latency measurements. The article also compares two IFFT strategies, explains turbo sampling, and shows open- and closed-loop test configurations.


Interpolator Design: Get the Stopbands Right

Neil RobertsonNeil Robertson July 6, 20236 comments

In this article, I present a simple approach for designing interpolators that takes the guesswork out of determining the stopbands.


Design Square-Root Nyquist Filters

Neil RobertsonNeil Robertson July 13, 2020

A multirate signal processing textbook presents a neat method for designing square-root Nyquist FIR filters that combine zero ISI with strong stopband attenuation. This post walks through the principle that matched transmit and receive filters need square-root Nyquist responses, gives the key design relations for excess bandwidth and stopband edge, and includes a Matlab implementation to produce practical FIR matched filters for QAM-style systems.


Collaborative Writing Experiment: Your Favorite DSP Websites

Stephane BoucherStephane Boucher May 30, 2013

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.


A Matlab Function for FIR Half-Band Filter Design

Neil RobertsonNeil Robertson July 6, 20259 comments

FIR Half-band filters are not difficult to design. In an earlier post [1], I showed how to design them using the window method. Here, I provide a short Matlab function halfband_synth that uses the Parks-McClellan algorithm (Matlab function firpm [2]) to synthesize half-band filters. Compared to the window method, this method uses fewer taps to achieve a given performance.


Project introduction: Digital Filter Blocks in MyHDL and their integration in pyFDA

Sriyash CaculoSriyash Caculo May 25, 20184 comments

Sriyash Caculo is building a bridge between filter design and hardware by implementing digital filter blocks in MyHDL and integrating them with PyFDA as part of a Google Summer of Code project. The work aims to convert PyFDA floating point designs into fixed point MyHDL blocks that automatically generate VHDL or Verilog, with tests and tutorials to ensure correctness and usability.


Multilayer Perceptrons and Event Classification with data from CODEC using Scilab and Weka

David NorwoodDavid Norwood November 25, 2015

For my first blog, I thought I would introduce the reader to Scilab [1] and Weka [2]. In order to illustrate how they work, I will put together a script in Scilab that will sample using the microphone and CODEC on your PC and save the waveform as a CSV file.


A brief look at multipath radio channels

Markus NentwigMarkus Nentwig October 31, 20078 comments

Markus Nentwig walks through a hands-on RF experiment that makes multipath and fading visible using a network analyzer and simple dipole antennas. He shows how reflections produce frequency-domain notches when path differences equal half wavelengths, and how doubling distance increases free-space path loss by roughly 6 dB. The post explains why narrowband signals often see flat fading while wideband links become frequency-selective, motivating OFDM and multi-tap channel models.