DSPRelated.com

Simulink-Simulation of SSB demodulation

Josef HoffmannJosef Hoffmann June 13, 20211 comment

This post walks through Simulink models that implement SSB demodulation and modulation, using Richard Lyons' phasing method as a foundation. It shows practical models for simple carrier multiplication and for the phasing method with cosine and -sin paths plus Hilbert filtering, and it highlights sampling, decimation, filter choices, and delay alignment to make the techniques work in simulation.


Compute Images/Aliases of CIC Interpolators/Decimators

Neil RobertsonNeil Robertson November 1, 20202 comments

CIC filters provide multiplier-free interpolation and decimation for large sample-rate changes, but their images and aliases can trip up designs. This post supplies two concise Matlab functions and hands-on examples to compute interpolator images and decimator aliases, showing spectra and freqz plots. Readers will learn how interpolation ratio and number of stages alter passband, stopband, and aliasing behavior.


Exploring Human Hearing Range

Stephen MorrisStephen Morris October 31, 20204 comments

Audacity makes it simple to explore the limits of human hearing by generating and inspecting single-tone audio. This post walks through creating a 9 kHz sine tone, noticing the default 44,100 Hz sample rate, and verifying the result with Audacity's Plot Spectrum tool. Follow the steps and use low playback volume to safely try higher or lower test frequencies yourself.


The Zeroing Sine Family of Window Functions

Cedron DawgCedron Dawg August 16, 20202 comments

A previously unrecognized family of DFT window functions is introduced, built from products of shifted sines that deliberately zero out tail samples and control nonzero support. Cedron Dawg presents recursive and semi-root constructions, runnable code, and numerical examples, and shows that the odd-N member L=(N-1)/2 numerically matches a discrete Hermite-Gaussian DFT eigenvector. The post highlights practical properties, an even-N fix, and applications to spectrograms and tone decomposition.


A Fast Real-Time Trapezoidal Rule Integrator

Rick LyonsRick Lyons June 13, 20204 comments

Rick Lyons presents a compact, recursive real-time Trapezoidal Rule integrator that computes N-sample discrete integration using only four arithmetic operations per input sample. The proposed network yields a finite-length, linear-phase impulse response with constant group delay (N-1)/2 and cuts substantial computation compared with a tapped-delay implementation, making it useful for speeding Romberg-based digital filters.


Digging into an Audio Signal and the DSP Process Pipeline

Stephen MorrisStephen Morris March 9, 20206 comments
In this post, I'll look at the benefits of using multiple perspectives when handling signals.A Pre-existing Audio File

Let's say we have an audio file of interest. Let's load it into Audacity and zoom in a little (using View → Zoom → Zoom In, multiple times). The figure illustrates the audio signal: just a basic single-tone signal.

By continuing to zoom into the signal, we eventually get to the point of seeing individual samples as illustrated below. Notice that I've marked one...


A Free DSP Laboratory

Stephen MorrisStephen Morris December 18, 2019

You don't need expensive gear to start exploring audio DSP, free open-source tools are enough. This post shows how to build a simple audio DSP laboratory with Audacity, covering signal generation, playback, waveform zooming, exporting to WAV/MP3/OGG, and viewing spectra. It's a short, practical intro to inspecting signals in both time and frequency domains with minimal setup.


A Two Bin Solution

Cedron DawgCedron Dawg July 12, 2019

Cedron Dawg shows how a real sinusoid's frequency, amplitude and phase can be recovered from only two adjacent DFT bins. The article derives exact two-bin formulas, gives a clear Gambas reference implementation, and demonstrates that accurate parameters can be obtained with very few samples when the tone lies between the bins. It also explains when the method breaks down and how the real-valued unfurling improves robustness.


Generating Partially Correlated Random Variables

Harry ComminHarry Commin March 23, 201921 comments

Designing signals to match a target covariance is simpler than it sounds. This post shows how to build partially correlated complex signals by hand for the two-signal case, then generalizes to N signals using the Cholesky decomposition. Short MATLAB examples demonstrate the two-line implementation and the article highlights numerical caveats when a covariance is only positive semidefinite.


Angle Addition Formulas from Euler's Formula

Cedron DawgCedron Dawg March 16, 20199 comments

Complex numbers are rotations and scalings in the plane, and Cedron Dawg walks through polar and Cartesian representations to make that concrete. Using Euler's formula, the article shows how multiplying complex numbers multiplies magnitudes and adds angles, and how that directly yields the sine and cosine angle-addition formulas. Practical notes cover using atan2/arg and a brief Gambas example to verify results.


Pulse Shaping in Single-Carrier Communication Systems

Eric JacobsenEric Jacobsen April 10, 200833 comments

Eric Jacobsen clears up common confusion around pulse shaping in single-carrier communications, focusing on matched filtering, Nyquist filtering, and related terminology. He uses the NRZ rectangular pulse as a concrete example to show how the transmit spectrum becomes a sinc envelope when the bitstream has enough randomness, and he highlights how bit patterns and context-sensitive terms can change the observed behavior.


Frequency Dependence in Free Space Propagation

Eric JacobsenEric Jacobsen May 14, 20088 comments

Free-space propagation of electromagnetic waves is essentially independent of frequency, a counterintuitive conclusion Eric Jacobsen demonstrates step by step. He shows the λ^2 factor in the Friis transmission equation comes from antenna effective area and gain, not from the space between antennas, explaining why dipoles favor lower bands while dishes improve with frequency. The post also reminds engineers that material penetration and atmospheric absorption remain genuine frequency dependent concerns.


An s-Plane to z-Plane Mapping Example

Rick LyonsRick Lyons September 24, 201610 comments

A misleading online diagram prompted Rick Lyons to reexamine how s-plane points map to the z-plane. He spotted apparent errors in the original figure, drew a corrected mapping, and invites readers to inspect both diagrams and point out any remaining mistakes. The short post is a quick visual primer for engineers who rely on accurate s-plane to z-plane mappings in analysis and design.


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.


Take Control of Noise with Spectral Averaging

Sam ShearmanSam Shearman April 20, 20183 comments

Spectral averaging turns noisy FFT outputs into repeatable, measurable spectra by trading time for noise control. This post explains the practical difference between RMS averaging, which reduces variance without changing the noise floor, and vector averaging, which can lower the noise floor but requires phase-coherent, triggered inputs. It also shows how linear and exponential weighting affect reaction time for live displays and measurement accuracy.


An Efficient Linear Interpolation Scheme

Rick LyonsRick Lyons December 27, 201725 comments

A simple trick slashes the cost of linear interpolation to at most one multiply per output sample, and often to none. The post shows a zero-order-hold based network that preserves input samples, has a short L-1 transient, and lets 1/L scaling be implemented as a binary shift when L is a power of two. It also gives a fixed-point layout that moves scaling to the end to reduce quantization distortion.


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.


Sampling bandpass signals

Josef HoffmannJosef Hoffmann June 26, 20215 comments

Bandpass signals can be sampled at rates below the usual Nyquist limit, and this note shows how the band-limited spectrum appears in baseband after sampling. Using a simple example figure, it defines the center frequency fc = (fmax + fmin)/2 and bandwidth Δf = fmax - fmin, and highlights that choosing fs less than twice the signal's highest frequency violates the sampling theorem.


Signed serial-/parallel multiplication

Markus NentwigMarkus Nentwig February 16, 2014

Struggling with costly wide adders for signed multiplication on FPGAs? Markus Nentwig unpacks a neat bit-level trick that turns two's-complement signed-signed multiplication into a serial-parallel routine using only a one-bit wider adder. Learn how flipping sign bits and a small, controlled constant cancel lets you avoid full sign-extension, and get a parametrized Verilog RTL plus synthesis notes to try it yourself.


Sinusoidal Frequency Estimation Based on Time-Domain Samples

Rick LyonsRick Lyons April 20, 201719 comments

Rick Lyons presents three time-domain algorithms for estimating the frequency of real and complex sinusoids from samples. He shows that the Real 3-Sample and Real 4-Sample estimators, while mathematically exact, fail in the presence of noise and can produce biased or invalid outputs. The Complex 2-Sample (Lank-Reed-Pollon) estimator is more robust but can be biased at low SNR and near 0 or Fs/2, so narrowband filtering is recommended.