找到简单的正弦波频率(matlab)

时间:2013-10-26 20:24:32

标签: matlab frequency sine

我有一个相对干净的正弦信号(来自薄膜干扰) - 两个数据矢量:X轴(光程长度差)和Y轴(照明)。 我想使用傅里叶变换(在matlab中)找到正弦频率。我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:-1)

你需要在你的信号中使用一个窗口(汉明,汉),现在你需要的是从上半场幅度平方DATA得到最大值,找到频率计算“采样率*最大指数/长度DATA:

t  = [ 0 : 1 : 100000];          
f  = 200;        % F0 here           
Fs = 44100;                    
data = sin(2*pi*f/Fs*t)';  
data = data .* hanning(length(data));    
Y = fft(data);    
Mag=abs(Y(1:length(data)/2)).^2;    
[a,b]=max(Mag);    
% Result    
Fs*b/length(data)