# Beat frequency for 3 waves

Consider 3 waves of frequency 101, 103, 106 hz, and of same intensity. What should be the beat frequencies?

Now I can calc it for 2 waves, and i know how to write the combined equation of the two. But the addition of a third causes lots of problems...the equation is getting cumbersome. Can you please help me here? I dug around online, and some responses were neglecting the third wave as it was too close to one of the waves. If I want to avoid that, is there any other solution?

• A quick check of WolframAlpha didn't give a simple reduction which showed beating for cos(x)+cos(y)+cos(z). I believe that the solution will be cumbersome, as you say. The mathematical problem seems to be that the amplitude after combining the first two terms is different from the third. Audibly, what you're approaching is a chorus effect. I posted a short Python program that generates a wave file for 3 sine waves if you want to hear: physics.stackexchange.com/q/159182 – Bill N Mar 31 '15 at 15:32
• You'll get a beat frequency for each pair of inputs. Just write out the full equation and separate the terms. – Carl Witthoft Mar 31 '15 at 15:43

A simple Python script gives some insight - here is what I calculate for the sum of the three frequencies:

There is obviously a strong beat at 1 Hz - this is when all three frequencies are (back) in phase. There are minor peaks in between - of which I would consider 5 Hz the most visible component.

This matches intuition - you would expect the difference frequencies of 2 Hz, 3 Hz and perhaps 5 Hz to show up, but they will be muddled. And sure enough, 5 Hz is there; the two bigger peaks around 0.5 s are indicative of the 2 Hz signal; while the 3 Hz signal cannot be separately seen.

Here is the code I used to plot this graph:

# beat frequencies
import numpy as np
import matplotlib.pyplot as plt
from math import pi

f = [101,103,106];
Ns = 8*1024
t = np.linspace(0,2,Ns);
a = np.zeros((Ns),'double')
for fi in f:
a = a + np.cos(2*pi*fi*t)

plt.figure(figsize=(10,5))
plt.plot(t, a)
plt.title('three frequencies beating')
plt.xlabel('time (s)')
plt.ylabel('amplitude')
plt.show()


The waves with separately produce beat with frequencies of $$2, 3$$ and $$5$$ $$Hz$$.

These beats have time periods $$1/2, 1/3,$$and $$1/5 s$$. Their LCM is $$1 s$$. So, after $$1 s$$, the whole wave will have the same phase and amplitude. Thus the beat frequency is $$1 Hz$$