searchp1.m
来自「快速doa估计方法」· M 代码 · 共 37 行
M
37 行
function result = SearchP1(doa,Npeak)
% SearchP(Y,Npeak)搜索一维向量Y中的极大值点,Npeak:极大值点数目
%从左向右搜索序列Y
%注意:第一和最后一个点可能被当作极值点
N = length(doa);
k = 0;
for i = 2:N-1
if (doa(i)>doa(i-1))&&(doa(i)>doa(i+1))
k = k+1;
Peak1(k,:) = [i,doa(i)];
end
end
Pnum = k;
k = 0;
while k < Npeak % 选峰值最大的Npeak个峰,即为结果
MaxP = max(Peak1(:,2));
for i = 1:Pnum
if Peak1(i,2)==MaxP % 有多个doa Peak 相等的情况
k = k+1;
Peak2(k) = Peak1(i,1); % Peak2(k) = i
Peak1(i,2) = 0;
end
end
end
k = 0;
while k < Npeak % 结果排序,i由小到大
Imin = min(Peak2);
for i = 1:Npeak
if Peak2(i)==Imin
k = k+1;
result(k) = Peak2(i);
Peak2(i) = N;
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?