matlab求频谱图的峰值点
·
可以利用matlab中自带的findpeaks函数来寻找频谱图的峰值和位置。
1.其功能是在范围内只找一个峰值,且为此范围内最大的peak。
[pks,locs] = findpeaks(data,x,'MinPeakDistance',6);
2.设定峰值的最小高度
[pks,locs] = findpeaks(data,x,'minpeakheight',6);
3.根据以上的两个函数,我们可以先求出范围内的峰值,然后再设定一个高度来找到需要的峰值
freq = [1,2,3,4,5,6];
% [maxv,maxl]=findpeaks(freq,'minpeakheight',3);
%maxv峰峰值点 maxl:峰峰值点对应的位置
[maxv,maxl]=findpeaks(freq,'minpeakdistance',200); %设定两峰值间的最小间隔数,200
if freq(maxl)>3 %设定峰值的最小高度3
figure,
plot(maxl,maxv,'*','color','R'); %绘制最大值点
else
figure,
end
其中freq中的数据是我随意写的,大家根据自己的要求放入数据。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)