我有一个相对干净的正弦信号(来自薄膜干涉) - 两个数据向量:X 轴(光路长度的差异)和 Y 轴(照明)。我想使用傅里叶变换(在 matlab 中)找到正弦的频率。我怎么做?
谢谢!
我有一个相对干净的正弦信号(来自薄膜干涉) - 两个数据向量:X 轴(光路长度的差异)和 Y 轴(照明)。我想使用傅里叶变换(在 matlab 中)找到正弦的频率。我怎么做?
谢谢!
首先你需要在你的信号中使用一个窗口(汉明,汉恩),现在你需要的是从前半部分幅度平方数据中获取最大值,以找到频率计算“采样率*最大索引/长度数据:
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)