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

 Réponse acceptée

Wayne King
Wayne King le 10 Oct 2011

0 votes

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 commentaire

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by