The CSP Blog Turns 10

Raise a glass!

I launched the site way back in September 2015. As with most things in my life, the CSP Blog was not the result of some carefully crafted plan, such as to corner the online market on signal-processing instruction, create a side-hustle, or manage my brand, whatever that might mean. It was a lark. I wanted my wife to start a blog or website as a place to share her writing with the world. “Look, dear, it really is super easy to create your own website,” I said to her, after writing a post or two. And it really is easy.

But then the CSP Blog took on a life of its own. Or, better said, it took over my life. Certainly it took a lot of my time, and still does.

Continue reading “The CSP Blog Turns 10”

SPTK: The Matched Filter

Matchmaker, Matchmaker,
Make me a match,
Find me a find,
catch me a catch!
–“Matchmaker” from Fiddler on the Roof

Previous SPTK Post: The Characteristic Function Next SPTK Post: Wavelets

In this post, we take a look at a special linear time-invariant system called the matched filter. It is used to detect the presence of a known signal. In practice, it is often applied to the detection of a periodically repeated known portion of a communication signal, such as a channel-estimation frame or frequency-correction burst. It is also widely used in the detection of radar pulses, where the matched-filtering operation is renamed to pulse compression. Filtering, which implies a convolution operation, and correlation are nearly the same thing. Therefore applying a matched filter is sometimes referred to as applying a correlator.

Continue reading “SPTK: The Matched Filter”

CSP Reduction to Sine-Wave Generation

“Five different voices behind him bellowed, “REDUCTO!” Five curses flew in five different directions and the shelves opposite them exploded as they hit; the towering structure swayed as a hundred glass spheres burst apart, pearly-white figures unfurled into the air and floated there, their voices echoing from who knew what long-dead past amid the torrent of crashing glass and splintered wood now raining down upon the floor…”

J. K. Rowling, Harry Potter and the Order of the Phoenix

We know that if we subject a cyclostationary signal to a squaring or delay-and-multiply operation we will obtain finite-strength additive sine-wave components at the output of the operation, where at least one of the sine waves has a non-zero frequency.

But I want to make a conjecture: All of CSP can be reduced to interpretations involving sine-wave generation by nonlinear operations. Let’s see if we can show this conjecture is true. After I make my attempt, I’ll also show what ChatGPT comes up with. Any guesses about how well it does?

Continue reading “CSP Reduction to Sine-Wave Generation”

Interference Mitigation Course at GTRI

Update December 2024: The likely date for this course at GTRI is February 4-5, 2025.

Update September 2024: This course is postponed until Spring 2025. I’ll post further updates here as they become available.


I’ll be part of a team of researchers and practicing engineers, led by the estimable Dr. Ryan Westafer, that will be teaching a class on radio-frequency interference mitigation in September. The class is hosted by the Georgia Tech Research Institute (GTRI) and will be held on the Georgia Tech campus on September 10-11, 2024.

Continue reading “Interference Mitigation Course at GTRI”

SPTK: I and Q

Where does IQ (or I/Q) data come from?

Previous SPTK Post: Digital Filters Next SPTK Post: The Characteristic Function

Let’s really get into the mathematical details of “IQ data,” a phrase that appears in many CSP Blog posts and an awful lot of machine-learning papers on modulation recognition. Just what are “I” and “Q” anyway?

Continue reading “SPTK: I and Q”

Desultory CSP: What’s That Under the TV?

“Alive in the Superunknown
First it steals your Mind, and then it steals your … Soul”

–Soundgarden

An advantage of using and understanding the statistics of communication signals ™, the basics of signal processing, and the rich details of cyclostationary signal processing is that a practitioner can deal with, to some useful degree, unknown unknowns. The unknown unknowns I’m talking about here on the CSP Blog are, of course, signals. We know about the by-now-familiar known-type detection, multi-class modulation-recognition, and RF scene-analysis problems, in which it is often assumed that we know the signals we are looking for, but we don’t know their times of arrival, some of their parameters, or how they might overlap in time, frequency, and space. Then there are the less-familiar problems involving unknown unknowns.

Sometimes we just don’t know the signals we are looking for. We still want to do as good a job on RF scene analysis as we can, but there might be signals in the scene that do not conform to the body of knowledge we have, to date, of manmade RF signals. Or, in modern parlance, we didn’t even know we left such signals out of our neural-network training dataset; we’re a couple steps back from even worrying about generalization, because we don’t even know we can’t generalize since we are ignorant about what to generalize to.

In this post I look at the broadcast TV band, seen in downtown Monterey, California, sometime in the recent past. I expect to see ATSC DTV signals (of the older 8VSB/16VSB or the newer OFDM types), and I do. But what else is there? Spoiler: Unknown unknowns.

Let’s take a look.

Continue reading “Desultory CSP: What’s That Under the TV?”

SPTK: Digital Filters

A look at general linear time-invariant filtering in the discrete-time domain.

Previous SPTK Post: The Z Transformโ€ƒโ€ƒ Next SPTK Post: IQ Data

Linear shift-invariant systems are often called digital filters when they are designed objects as opposed to found objects, which are models, really, of systems occurring in the natural world. A basic goal of digital filtering is to perform the same kind of function as does an analog filter, but it is used after sampling rather than before. In some cases, the digitally filtered signal is then converted to an analog signal. These ideas are illustrated in Figure 1.

Figure 1. A typical role for a linear shift-invariant system, or digital filter, in signal processing.
Continue reading “SPTK: Digital Filters”

Infinity, Periodicity, and Frequency: Comments on a Recent Signal-Processing Perspectives Paper ([R195])

If a tool isn’t appropriate for your problem, don’t blame the tool. Find another one.

Let’s take a look at a recent perspectives-style paper published in the IEEE Signal Processing Magazine called “On the Concept of Frequency in Signal Processing: A Discussion [Perspectives],” (The Literature [R195]). While I criticize the paper directly, I’m hoping to use this post to provide my own perspective, and perhaps a bit of a tutorial, on the interrelated concepts of frequency, infinity, sine waves, and signal representations.

I appreciate tutorial papers in the signal-processing literature (see, for example, my positive post on Candan’s article about the Dirac delta [impulse] function), because my jaundiced view of the field is such that I think the basics, both of mathematics and communication-related signal-processing, are neglected in favor of fawning over the research flavor of the month. Over time, everybody–students, researchers, professors–is diminished because of this lack of attention to foundations.

Continue reading “Infinity, Periodicity, and Frequency: Comments on a Recent Signal-Processing Perspectives Paper ([R195])”

SPTK: The Z Transform

I think of the Z transform as the Laplace transform for discrete-time signals and systems.

Previous SPTK Post: Practical Filters Next SPTK Post: Digital Filters

In this Signal Processing ToolKit post, we look at the discrete-time version of the Laplace Transform: The Z Transform.

Continue reading “SPTK: The Z Transform”

SPTK: Practical Filters

We know that ideal filters are not physically possible. Here we take our first steps toward practical–buildable–linear time-invariant systems.

Previous SPTK Post: The Laplace Transform Next SPTK Post: The Z Transform

Before we translate the Laplace transform from continuous time to discrete time, deriving the Z transform, let’s take a step back and look at practical filters in continuous time. Practical here stands in opposition to ideal as in the ideal lowpass, highpass, and bandpass filters we studied earlier in the SPTK thread.

Continue reading “SPTK: Practical Filters”

CSP Blog Interview: Why We Still Need Human Signal Processors with Engineers E. Akamai and D. Peritum

What do practicing engineers think of using large-language models like ChatGPT in their research, development, and writing tasks? And is there a future for humans in signal processing?

Let’s switch things up a bit here at the CSP Blog by presenting an interview on a technical topic. I interview two characters you might recall from the post on the Domain Expertise Trap: Engineers Dan Peritum and Eunice Akamai.

With the splashy entrance of large-language models like ChatGPT into everyday life and into virtually all aspects of science, engineering, and education, we all want to know how our jobs and careers could be affected by widespread use of artificial intelligence constructs like ChatGPT, Dall-E, and Midjourney. In this interview with a couple of my favorite engineers, I get a feel for how non-AI researchers and developers think about the coming changes, and of course how they view the hype, distortions, and fabrications surrounding predictions of those changes. You can find photos of the interviewees and brief biographies at the end of the post.

The interview transcript is carefully contrived lightly edited for believability clarity.

Continue reading “CSP Blog Interview: Why We Still Need Human Signal Processors with Engineers E. Akamai and D. Peritum”

Simply Avert Your Eyes

Everything is just fine.

The IEEE sent me their annual report for 2022. I was wondering how they were responding to the poor quality of many of their published papers, including faked papers and various paper retractions. Let’s take a quick look.

Continue reading “Simply Avert Your Eyes”

SPTK: The Laplace Transform

The Laplace transform easily handles signals that are not Fourier transformable by introducing an exponential damping function inside the transform integral.

Previous SPTK Post: MATLAB’s resample.m Next SPTK Post: Practical Filters

In this Signal Processing ToolKit post, we look at a generalization of the Fourier transform called the Laplace Transform. This is a stepping stone on the way to the Z Transform, which is widely used in discrete-time signal processing, especially in control theory.

Continue reading “SPTK: The Laplace Transform”

Update on DeepSig Datasets

‘Insufficient facts always invite danger.’
Spock in Star Trek TOS Episode “Space Seed”

As most CSP Blog readers likely know, I’ve performed detailed critical analyses (one, two, three, and four) of the modulation-recognition datasets put forth publicly by DeepSig in 2016-2018. These datasets are associated with some of their published or arxiv.org papers, such as The Literature [R138], which I also reviewed here.

My conclusion is that the DeepSig datasets are as flawed as the DeepSig papers–it was the highly flawed nature of the papers that got me started down the critical-review path in the first place.

A reader recently alerted me to a change in the Datasets page at deepsig.ai that may indicate they are listening to critics. Let’s take a look and see if there is anything more to say.

Continue reading “Update on DeepSig Datasets”

The Altar of Optimality

Danger Will Robinson! Non-technical post approaching!

When I was a wee engineer, I’d sometimes clash with other engineers that sneered at technical approaches that didn’t set up a linear-algebraic optimization problem as the first step. Never mind that I’ve been relentlessly focused on single-sensor problems, rather than array-processing problems, and so the naturalness of the linear-algebraic mathematical setting was debatable–however there were still ways to fashion matrices and compute those lovely eigenvalues. The real issue wasn’t the dimensionality of the data model, it was that I didn’t have a handy crank I could turn and pop out a provably optimal solution to the posed problem. Therefore I could be safely ignored. And if nobody could actually write down an optimization problem for, say, general radio-frequency scene analysis, then that problem just wasn’t worth pursuing.

Those critical engineers worship at the altar of optimality. Time for another rant.

Continue reading “The Altar of Optimality”

SPTK Addendum: Problems with resampling using MATLAB’s resample.m

Sometimes MATLAB’s resample.m gives results that can be trouble for subsequent CSP.

Previous SPTK Post: Echo Detection Next SPTK Post: The Laplace Transform

In this brief Signal Processing Toolkit note, I warn you about relying on resample.m to increase the sampling rate of your data. It works fine a lot of the time, but when the signal has significant energy near the band edges, it does not.

Continue reading “SPTK Addendum: Problems with resampling using MATLAB’s resample.m”

Frequency Shift (FRESH) Filtering for Single-Sensor Cochannel Signal Separation

CSP can be used to separate cochannel contemporaneous signals. The involved signal-processing structure is linear but periodically time-varying.

In most of the posts on the CSP Blog we’ve applied the theory and tools of CSP to parameter estimation of one sort or another: cycle-frequency estimation, time-delay estimation, synchronization-parameter estimation, and of course estimation of the spectral correlation, spectral coherence, cyclic cumulant, and cyclic polyspectral functions.

In this post, we’ll switch gears a bit and look at the problem of waveform estimation. This comes up in two situations for me: single-sensor processing and array (multi-sensor) processing. At some point, I’ll write a post on array processing for waveform estimation (using, say, the SCORE algorithm The Literature [R102]), but here we restrict our attention to the case of waveform estimation using only a single sensor (a single antenna connected to a single receiver). We just have one observed sampled waveform to work with. There are also waveform estimation methods that are multi-sensor but not typically referred to as array processing, such as the blind source separation problem in acoustic scene analysis, which is often solved by principal component analysis (PCA), independent component analysis (ICA), and their variants.

The signal model consists of the noisy sum of two or more modulated waveforms that overlap in both time and frequency. If the signals do not overlap in time, then we can separate them by time gating, and if they do not overlap in frequency, we can separate them using linear time-invariant systems (filters).

Relevant FRESH filtering publications include My Papers [45, 46] and The Literature [R6].

Continue reading “Frequency Shift (FRESH) Filtering for Single-Sensor Cochannel Signal Separation”

ChatGPT and CSP

Am I out of a job?

Update January 31, 2023: I’ve added numbers in square brackets next to the worst of the wrong things. I’ll document the errors at the bottom of the post.


Of course I have to see what ChatGPT has to say about CSP. Including definitions, which I don’t expect it to get too wrong, and code for estimators, which I expect it to get very wrong.

Let’s take a look.

Continue reading “ChatGPT and CSP”

SPTK: Echo Detection and the Prisoner’s Dilemma

Let’s apply some of our Signal Processing ToolKit tools to a problem in forensic signal processing!

Previous SPTK Post: The Sampling Theorem Next SPTK Post: Resampling in MATLAB

No, not that prisoner’s dilemma. The dilemma of a prisoner that claims, steadfastly, innocence. Even in the face of strong evidence and a fair jury trial.

In this Signal Processing ToolKit cul-de-sac of a post, we’ll look into a signal-processing adventure involving a digital sting recording and a claim of evidence tampering. We’ll be able to use some of our SPTK tools to investigate a real-world data record that might, just might, have been tampered with. (But most probably not!)

Continue reading “SPTK: Echo Detection and the Prisoner’s Dilemma”

Correcting the Record: Comments On “Wireless Signal Representation Techniques for Automatic Modulation Classification,” by X. Liu et al

It’s too close to home, and it’s too near the bone …

Park the car at the side of the road
You should know
Time’s tide will smother you…
And I will too

“That Joke Isn’t Funny Anymore” by The Smiths

I applaud the intent behind the paper in this post’s title, which is The Literature [R183], apparently accepted in 2022 for publication in IEEE Access, a peer-reviewed journal. That intent is to list all the found ways in which researchers preprocess radio-frequency data (complex sampled data) prior to applying some sort of modulation classification (recognition) algorithm or system.

The problem is that this attempt at gathering up all of the ‘representations’ gets a lot of the math wrong, and so has a high potential to confuse rather than illuminate.

There’s only one thing to do: correct the record.

Continue reading “Correcting the Record: Comments On “Wireless Signal Representation Techniques for Automatic Modulation Classification,” by X. Liu et al”