# Error Vectors, Steganography, and Hiding in Plain Sight

Blog Post created by benz on Oct 13, 2016

Originally posted Aug 10, 2015

Fascinating connections between very different phenomena

In engineering, one of the most interesting experiences is to encounter an analog of something familiar, but in an entirely different field. I bet we’ve all had this recognition of similarity and felt the intellectual thrill of discovering parallels and symmetry. It’s also the source of theoretical breakthroughs, as described in Thomas Kuhn’s classic The Structure of Scientific Revolutions.

I can claim nothing so grand, but thought it might be interesting to summarize the journey that began with my efforts to understand and explain digital demodulation and the resulting error vector signals 20 years ago.

In a previous post, I explained the meaning of the error vector signal and how it represented the residual after the intended digital modulation was removed from a signal. The magnitude of the error vector signal (EVM) is well known and frequently used as an overall quality metric; however, the full, complex signal is more powerful in terms of diagnostics and insight.

The error vector is calculated as the complex difference between a measured signal and one with the same symbol sequence and perfect modulation. In performing demodulation with a vector signal analyzer, I figured it should be possible to hide a small modulated signal inside a larger one, making it almost impossible to detect unless one already knew of its presence. The error vector residual after demodulation should then be due mostly to the hidden signal and one should be able to demodulate it. Here’s an example of my signal spectra and results.

One signal—about 30 dB smaller—is hidden inside another in the spectrum at left. After the larger signal is demodulated and removed, the resulting error vector signal is successfully demodulated at right.

I was surprised at how well this process worked, even with differences in signal power of 30 dB or more. Noise didn’t seem to be a major problem unless it caused a significant number of symbol errors at the physical layer. When those occurred, they fouled up the calculation of the perfect signal that is subtracted from the received one, preventing accurate calculation of the residual.

I explained these experiments to a VSA-savvy R&D project manager: he said it looked like I’d “created an oddball version of CDMA.” It took me a while to appreciate the significance of what he’d said, but it did indeed seem to be an analog to CDMA.

When I ran across a paper about steganography, however, I recognized the similarity immediately. Though steganography comes in many forms and has a long history, I find the most instructive and satisfying examples to be graphic ones such as this pair.

The image of the cat at right is hidden in the image of the tree at left. The hidden image is recovered from the cover (carrier?) image by removing everything but the two least significant bits of the color channels and re-scaling the result. (Images from Wikimedia Commons)

A critical element in any version of this process is how the respective signals from the cover and hidden image are separated. Orthogonal codes and image intensity are just two of many approaches; you can see others at the Wikipedia link above.

The examples of different steganography types and signal-separation techniques are nearly endless, and in wireless communications I suspect MIMO is another one. In wireless it also seems that processing tasks such as separating signals from noise or dealing with low—or even negative—signal-to-noise ratios can be viewed through the lens of steganography.