Beating wave frequency detecting

조회 수: 6 (최근 30일)
Kyle
Kyle 2011년 10월 10일
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

채택된 답변

Wayne King
Wayne King 2011년 10월 10일
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
Wayne King
Wayne King 2011년 10월 10일
There is no 1-Hz component in the spectrum of y by the way.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by