# 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 Commented Mar 31, 2015 at 15:32
• You'll get a beat frequency for each pair of inputs. Just write out the full equation and separate the terms. Commented Mar 31, 2015 at 15:43

## 2 Answers

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$$, and beats can be heard after these time intervals. Their LCM is $$1 s$$. So, after $$1 s$$, the whole wave will have the same phase and amplitude, and there will be a strong beat. The frequency of this strong beat is $$1 Hz$$.

See the other answer for a numerical verification.

• A closely related question from JEE Mains. The time periods come out to be $1,1,1/2$ whose LCM is $1$, but it doesnt seem to be quite the answer they expect Commented Jun 16, 2021 at 6:34