matlab求频谱图的峰值点

xiaoxiao2021-03-01  86

可以利用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中的数据是我随意写的,大家根据自己的要求放入数据。

转载请注明原文地址: https://www.6miu.com/read-3650335.html

最新回复(0)