import matplotlib
if not hasattr(matplotlib.RcParams, "_get"):
matplotlib.RcParams._get = dict.get
6.1 Sidebands#
Here is a fixed carrier at 240 Hz ring-modulated by a modulator whose frequency climbs from 3 Hz to 48 Hz:
A fixed 240 Hz carrier, ring-modulated at increasing rates.
An interesting perceptual shift emerges. At 3 Hz we clearly hear a single tone with fast tremolo. But by 48 Hz, we no longer hear tremolo at all. Instead we hear two distinct tones. Why does modulating a single frequency produce what sounds like multiple frequencies?
The answer is that ring modulation has a striking effect in the frequency domain. From two “input” sinusoids at frequencies \(\red{\omega_c}\) and \(\blue{\omega_m}\), it produces two completely different “output” sinusoids, at the sum and difference frequencies \(\purple{\omega_c + \omega_m}\) and \(\purple{\omega_c - \omega_m}\). The original input frequencies vanish from the spectrum entirely. These new frequencies are called sidebands, a general term for the frequency content that modulation creates on either side of a carrier. We will see sidebands emerge from every modulation technique in this chapter.
This behavior follows directly from a trigonometric identity. Recall the angle-sum and angle-difference identities for cosine:
Subtracting the first from the second cancels the cosine terms and leaves \(\cos(A - B) - \cos(A + B) = 2 \sin A \sin B\). Rearranging gives a product-to-sum identity that turns a product of sines into a sum:
Substituting \(A = \red{\omega_c} t\) and \(B = \blue{\omega_m} t\), we can rewrite ring modulation as a sum of two sinusoids:
There they are: two sinusoids, at \(\purple{\omega_c - \omega_m}\) and \(\purple{\omega_c + \omega_m}\), each with amplitude \(\tfrac{1}{2}\), and a phase shift from \(\sin\) to \(\cos\). The carrier and modulator frequencies themselves are nowhere to be found.
Fig. 23 The frequency-domain view of ring modulation. The input frequencies \(\blue{\omega_m}\) and \(\red{\omega_c}\) (dashed) disappear, replaced by two sidebands at \(\purple{\omega_c - \omega_m}\) and \(\purple{\omega_c + \omega_m}\) (solid), each with amplitude \(\tfrac{1}{2}\).#
Note
The minus sign on the upper sideband, \(-\tfrac{1}{2}\cos((\purple{\omega_c + \omega_m})t)\), does not change its amplitude. Since \(-\cos(\theta) = \cos(\theta + \pi)\), the sign is just a phase shift of \(\pi\) radians, which we cannot hear. Both sidebands have amplitude \(\tfrac{1}{2}\) in the amplitude spectrum. We will return to this connection between signs and phase in a moment.
This explains the perceptual shift we heard. When \(\blue{\omega_m}\) is small, the two sidebands \(\purple{\omega_c \pm \omega_m}\) sit very close together (for the 3 Hz example, at 237 and 243 Hz), and our ear fuses them into a single tone that seems to beat, or pulse. As \(\blue{\omega_m}\) grows, the sidebands spread apart (for the 48 Hz example, to 192 and 288 Hz), far enough that our ear resolves them as two separate tones. The underlying mathematics are the same in both cases, but our perception differs! Past a certain threshold of modulation frequency, our perception shifts from tremolo (an “effect” applied to a single tone) to polyphony (two separate tones).
The widget below sweeps the same transition continuously. Drag the modulating frequency up from a slow wobble and listen for the moment one pulsing tone becomes two.
Drag \(f_m\) from a slow wobble up to an audible rate. On the left, the time axis always spans four cycles of the modulator, and the gray outline is the envelope it traces around the carrier. On the right, the two purple sidebands slide apart around the dashed carrier at 240 Hz. The audio card plays the current setting, so you can hear the moment one pulsing tone becomes two steady ones.