Beating wave frequency detecting
6 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Transforms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!