DSPRelated.com

5G NR QC-LDPC Encoding Algorithm

Lyons ZhangLyons Zhang September 10, 20192 comments

Lyons Zhang breaks down the 5G NR QC-LDPC encoding structure, emphasizing the circulant permutation matrices and why QC-LDPC suits simple hardware. The post defines the Q(P) and Q(-1) notation, summarizes BG1 and BG2 dimensions and selection rules, and shows how the parity-check matrix is partitioned for practical encoder implementations.


Interpolation Basics

Neil RobertsonNeil Robertson August 20, 201917 comments

Neil Robertson demonstrates interpolation by an integer factor using a frequency-domain approach, showing how zero-insertion followed by an FIR low-pass filter reconstructs a higher-rate signal. The article walks through spectra, passband and stopband selection, and a 41-tap Parks-McClellan filter example applied to a Chebyshev-window test signal. Matlab code and percent-error plots are included so engineers can reproduce and evaluate the method.


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.


Reduced-Delay IIR Filters

Rick LyonsRick Lyons July 4, 201919 comments

Rick Lyons investigates a simple 2nd-order IIR modification that reduces passband group delay by just under one sample, inspired by Steve Maslen's reduced-delay concept. He walks through the conversion steps and compares z-plane, magnitude, and group-delay plots for Butterworth, elliptic, and Chebyshev prototypes, showing how zeros shift and stopband attenuation degrades. A linked PDF extends the study to 1st-, 3rd-, and 4th-order cases so you can follow the tradeoffs.


Part 11. Using -ve Latency DSP to Cancel Unwanted Delays in Sampled-Data Filters/Controllers

Steve MaslenSteve Maslen June 18, 201917 comments

Negative-latency DSP can cancel ADC, FPGA/DSP, DAC and propagation delays to deliver near-zero unwanted latency filtering. Steve Maslen explains how to split a digital filter into a simple feed gain b0 and an advanced DF3 block that produces samples one sample early, then recombine them so sampled-data delays cancel. MATLAB c2d examples, a PID case study and FPGA test-bed results show the technique is practical and proven, with active IP noted.


A Direct Digital Synthesizer with Arbitrary Modulus

Neil RobertsonNeil Robertson June 3, 20195 comments

Need exact sampled tones on a coarse grid without a huge sine table? This post shows how to build a Direct Digital Synthesizer with an arbitrary modulus so the output frequency is exactly k·fs/L, using a look-up table as small as 20 entries for the 10 MHz/0.5 MHz-step example. It also explains fixed-point LUT rounding, accumulator bit sizing, and how to produce quadrature outputs when L is multiple of 4.


Somewhat Off Topic: Deciphering Transistor Terminology

Rick LyonsRick Lyons May 28, 20194 comments

Rick Lyons unpacks a small linguistic mystery in electronics, revealing why the transistor's middle terminal is called the "base". He traces the name to the 1949 Bell Labs "semiconductor triode", where the device sat on a metal base plate described as a large-area low-resistance contact, and notes that later transistor sandwich designs kept the name for historical reasons. The post includes original references and a few trivia nuggets.


Reducing IIR Filter Computational Workload

Rick LyonsRick Lyons May 24, 20195 comments

Rick Lyons demonstrates a simple, practical way to cut the multiply count for IIR lowpass and highpass filters by converting them into dual-path allpass structures. The conversion preserves the original magnitude response while drastically reducing multiplies per input sample, for example turning a 5th-order IIR that needs 11 multiplies into an equivalent allpass form needing only five. The linked PDF includes theory, implementation notes, a design example, and MATLAB code.


A Lesson In Engineering Humility

Rick LyonsRick Lyons May 20, 20198 comments

Rick Lyons revisits a remarkable 1948 Bell Labs project that implemented a 12-channel telephone PCM transmission system without using transistors. The original two-paper PDF shows how engineers converted analog audio into 7-bit serial pulse-code streams sampled at 8000 samples per second, and Lyons calls studying that work a true lesson in engineering humility. He places the papers alongside 1948 milestones such as Shannon's theory and early transistor developments.


IIR Bandpass Filters Using Cascaded Biquads

Neil RobertsonNeil Robertson April 20, 201911 comments

This post provides a Matlab function that builds Butterworth bandpass IIR filters by cascading second-order biquad sections. The biquad approach, implemented in Direct Form II, reduces sensitivity to coefficient quantization, which matters most for narrowband filters. The included biquad_bp function computes each section's feedforward and feedback coefficients plus gains from a lowpass prototype order, center frequency, bandwidth, and sampling rate.


TCP/IP interface (Matlab/Octave)

Markus NentwigMarkus Nentwig June 17, 201210 comments

Markus Nentwig supplies a compact set of mex C functions that let you control Ethernet-enabled measurement instruments directly from Matlab or Octave on Windows. The code opens raw TCP/IP sockets, sends SCPI commands, and handles ASCII and binary replies including binary-length headers. It intentionally avoids instrument-control toolboxes and timeouts for simplicity, and includes instrIf_socket, instrIf_write, instrIf_read and instrIf_close with simple usage examples.


Discrete-Time PLLs, Part 1: Basics

Reza AmeliReza Ameli December 1, 20159 comments

In this series of tutorials on discrete-time PLLs we will be focusing on Phase-Locked Loops that can be implemented in discrete-time signal proessors such as FPGAs, DSPs and of course, MATLAB.


Setting the 3-dB Cutoff Frequency of an Exponential Averager

Rick LyonsRick Lyons October 22, 20126 comments

Many engineers use a simple exponential averager but need the correct α to achieve a specified 3-dB cutoff. Rick Lyons compares a common approximation with the exact closed-form solution, shows when the approximation is valid, and derives the exact α in the appendix. The approximation works well for fc < 0.1fs, but it becomes noticeably inaccurate as the normalized cutoff increases.


Beat Notes: An Interesting Observation

Rick LyonsRick Lyons March 13, 20137 comments

Rick Lyons overturns a common intuition about beat notes, showing that adding two nearby audio tones yields an average-frequency tone whose amplitude fluctuates, rather than a separate low-frequency sinusoid. He contrasts multiplication and summation of sines, provides simple trigonometric insight, and includes Matlab audio demos to explain why aircraft engine "whump" sounds are amplitude fluctuations of the average engine frequency.


Spread the Word and Run a Chance to Win a Bundle of Goodies from Embedded World

Stephane BoucherStephane Boucher February 21, 2019

Do you have a Twitter and/or Linkedin account?

If you do, please consider paying close attention for the next few days to the EmbeddedRelated Twitter account and to my personal Linkedin account (feel free to connect).  This is where I will be posting lots of updates about how the EmbeddedRelated.tv live streaming experience is going at Embedded World.

The most successful this live broadcasting experience will be, the better the chances that I will be able to do it...


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.


The DSP Online Conference - Right Around the Corner!

Stephane BoucherStephane Boucher September 20, 2020

Three months after a forum post, Stephane Boucher and Jacob Beningo pulled together the DSP Online Conference, a two-day virtual event featuring 14 talks from leading DSP experts. Most sessions are 30 to 60 minutes with a 30-minute Zoom Q&A, while extended deep dives from speakers like fred harris are included. Registered attendees get one-year on-demand access, and free or reduced passes are available.


Using Mason's Rule to Analyze DSP Networks

Rick LyonsRick Lyons August 31, 20096 comments

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.


Dealing With Fixed Point Fractions

Mike RosingMike Rosing January 5, 20163 comments

Fixed-point fractional math is easy to botch, and this post lays out pragmatic ways to avoid those mistakes. It clarifies the difference between integer and fractional overflow, shows how Q notation helps track binary-point scaling, and explains why multiplies add sign bits that may require shifting. Read for concrete FPGA strategies: keeping bit growth, selective shifts, or aggressive normalization, plus testing tips.


Two jobs

Stephane BoucherStephane Boucher December 5, 201223 comments

Stephane Boucher explains why EmbeddedRelated went quiet for a few months after a volunteer project demanded more of his time. He and his wife organized a clown-gymnastics show with 15 kids, sold more than 700 of 800 tickets, and raised $2,700 for the Tree of Hope. Now the shows are done and he plans to resume regular posting with new site features.