DSPRelated.com
Setting Carrier to Noise Ratio in Simulations

Setting Carrier to Noise Ratio in Simulations

Neil Robertson
TimelessIntermediate

When simulating digital receivers, we often want to check performance with added Gaussian noise.  In this article, I’ll derive the simple equations for the rms noise level needed to produce a desired carrier to noise ratio (CNR or...


Update to a Narrow Bandpass Filter in Octave or Matlab

Update to a Narrow Bandpass Filter in Octave or Matlab

Paul Lovell
Still RelevantIntermediate

Following my earlier blog post (June 2020) featuring a Narrow Bandpass Filter, I’ve had some useful feedback and suggestions. This has inspired me to come up with an updated version, incorporating the following changes compared to the earlier...


An Efficient Full-Band Sliding DFT Spectrum Analyzer

An Efficient Full-Band Sliding DFT Spectrum Analyzer

Rick Lyons
Still RelevantAdvanced

In this blog I present two computationally efficient full-band discrete Fourier transform (DFT) networks that compute the 0th bin and all the positive-frequency bin outputs for an N-point DFT in real-time on a sample-by-sample basis. An Even-N...


Add a Power Marker to a Power Spectral Density (PSD) Plot

Add a Power Marker to a Power Spectral Density (PSD) Plot

Neil Robertson
Still RelevantIntermediate

Perhaps we should call most Power Spectral Density (PSD) calculations relative PSD, because usually we don’t have to worry about absolute power levels.  However, for cases (e.g., measurements or simulations) where we are concerned with...


A Simpler Goertzel Algorithm

A Simpler Goertzel Algorithm

Rick Lyons
TimelessIntermediate

In this blog I propose a Goertzel algorithm that is simpler than the version of the Goertzel algorithm that is traditionally presented DSP textbooks. Below I very briefly describe the DSP textbook version of the Goertzel algorithm followed by a...


60-Hz Noise and Baseline Drift Reduction in ECG Signal Processing

60-Hz Noise and Baseline Drift Reduction in ECG Signal Processing

Rick Lyons
Still RelevantIntermediate

Electrocardiogram (ECG) signals are obtained by monitoring the electrical activity of the human heart for medical diagnostic purposes [1]. This blog describes a very efficient digital filter used to reduce both 60 Hz AC powerline noise and...


Find Aliased ADC or DAC Harmonics (with animation)

Find Aliased ADC or DAC Harmonics (with animation)

Neil Robertson
TimelessIntermediate

When a sinewave is applied to a data converter (ADC or DAC), device nonlinearities produce harmonics.  If a harmonic frequency is greater than the Nyquist frequency, the harmonic appears as an alias.  In this case, it is not at once...


Adaptive Beamforming is like Squeezing a Water Balloon

Adaptive Beamforming is like Squeezing a Water Balloon

Christopher Hogstrom
Still RelevantIntermediate

Adaptive beamforming was first developed in the 1960s for radar and sonar applications. The main idea is that signals can be captured using multiple sensors and the sensor outputs can be combined to enhance the signals propagating from...


Compute Images/Aliases of CIC Interpolators/Decimators

Compute Images/Aliases of CIC Interpolators/Decimators

Neil Robertson
TimelessIntermediate

Cascade-Integrator-Comb (CIC) filters are efficient fixed-point interpolators or decimators.  For these filters, all coefficients are equal to 1, and there are no multipliers.  They are typically used when a large change in sample...


Exploring Human Hearing Range

Exploring Human Hearing Range

Stephen Morris
Still RelevantIntermediate

Human Hearing Range In this post, I'll look at an interesting aspect of Audacity – using it to explore the threshold of human hearing. In my book Digital Signal Processing: A Gentle Introduction with Audio Examples, I go into this topic...