⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchp2.m

📁 快速doa估计方法
💻 M
字号:
function result=SearchP2(doa,Npeak)
% SearchP(Y,Npeak)搜索2维向量Y中的极大值点,Npeak:极大值点数目
%从左向右搜索序列Y
%注意:第一和最后一个点可能被当作极值点

[M,N] = size(doa);
k = 0;
for i = 2:M-1
    for j = 2:N-1
        if (doa(i,j) > doa(i-1,j))&&(doa(i,j) > doa(i+1,j))&&(doa(i,j) > doa(i,j-1))&&(doa(i,j) > doa(i,j+1))
            k = k+1;
            Peak1(k,:) = [i,j,doa(i,j)];
        end
    end
end
Pnum = k;
k = 0;
while k < Npeak                % 选峰值最大的Npeak个峰,即为结果
    MaxP = max(Peak1(:,3)); 
    for i = 1:Pnum
        if Peak1(i,3)==MaxP    % 有多个doa Peak 相等的情况
            k = k+1;
            Peak2(k,:) = Peak1(i,1:2);    % Peak2(k,:) = [i,j]
            Peak1(i,3) = 0;
        end
    end
end

k = 0;
while k < Npeak               % 结果排序,由小到大,i优先
    Imin = min(Peak2(:,1));
    for i = 1:Npeak
        if Peak2(i,1)==Imin
            k = k+1;
            result(k,:) = Peak2(i,:);
            Peak2(i,1) = M;
        end
    end
end

index = 1;
while index                 % 结果排序,由小到大,再j优先
    index = 0;
    for i = 2:Npeak
        if result(i,1)==result(i-1,1)
            if result(i,2) < result(i-1,2)
                tmp = result(i-1,2);
                result(i-1,2) = result(i,2);
                result(i,2) = tmp;
                index = 1;
            end
        end
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -