假设我对一组数据执行了FFT,并且我有频率和幅度值。 我想在每个FFT块中找到最高幅度。我需要找到至少大于最大振幅0.4倍的点的频率和幅度,并将它们保存在一个数组中。我怎么能这样做? 我试着通过以下方法获得一个空矩阵....
% the code after FFT
peak_points = [];
fmin = 60;
fmax = 1000;
region_of_interest = fmax>f & f>fmin;
froi = f(region_of_interest);
[p_max,loc] = max(seg_fft2(region_of_interest));
p_max;
fpeaks = froi(loc);
[points, locatn] = findpeaks(seg_fft2(region_of_interest));
if points > 0.4*p_max
peak_points = [peak_points ; points locatn]
end
我对数组很不好..所以我似乎无法弄清楚这一点。非常感谢别人的帮助...提前致谢...
答案 0 :(得分:1)
您打算在感兴趣区域逻辑阵列上执行seg_ffr2还是在froi上执行?
或者点可能是矢量,你应该有:
aboveMax = points > 0.4*p_max;
if any(aboveMax)
peak_points = [peak_points ; points(aboveMax) locatn(aboveMax)]
end