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

  • 9
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值