Beating wave frequency detecting

Hi all, I know that two sine waves with different frequencies superimposed to create beating patterns, but how to detect the frequency of such beating pattern??
code:
clear;
clc; close
t = linspace(0,10, 1000);
Fs = 100;
f1 = 8;
f2 = 9;
y = sin(2*pi*f1*t) + sin(2*pi*f2*t); %+ randn(size(t));
plot(t, y)
direct fft can only find two peaks at 8-Hz and 9-Hz, but where is the 1-Hz??
I just figure out that fft to abs(y) shows the beating frequency. but is there a way that I can show 1, 8, 9-Hz together in one spectrum?
Thank you for any help Kyle

 Akzeptierte Antwort

Wayne King
Wayne King am 10 Okt. 2011

0 Stimmen

Hi Kyle, the beat is an amplitude modulation at 1 Hz.
You can visualize this by looking at the oscillation in the envelope, which you can isolate with the Hilbert transform
ya = hilbert(y);
plot(t(1:500),abs(ya(1:500)));
grid on;
You can see that the envelope oscillates at 1 Hz, which is your beat frequency.

1 Kommentar

Wayne King
Wayne King am 10 Okt. 2011
There is no 1-Hz component in the spectrum of y by the way.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by