我正在使用
[pks,locs] = findpeaks(x,'MINPEAKHEIGHT',20/100*max)那么如何正确地应用梳状滤镜呢?
发布于 2014-08-21 05:33:47
你的代码在我看来没问题。我修改了doc (taken here)中的示例,其中的峰不等距,并且不考虑小于最大值高度的20%的峰。也许我没有理解你的问题。无论如何,下面是代码:
clc
clear
x = linspace(0,1,1024);
Pos = [0.1 0.13 0.15 0.23 0.25 0.40 0.44 0.65 0.76 0.78 0.81];
Hgt = 4*[4 5 3 1 5 4.2 2.1 4.3 3.1 5.1 0.6];
Wdt = [0.005 0.005 0.006 0.01 0.01 0.03 0.01 0.01 0.005 0.008 0.005];
PeakSig = zeros(size(x));
for n = 1:length(Pos)
PeakSig = PeakSig + Hgt(n)./(1 + abs((x - Pos(n))./Wdt(n))).^4;
end
[pks,locs] = findpeaks(PeakSig,'MINPEAKHEIGHT',20/100*max(Hgt(:)));
%pks = pks/max(pks(:))
plot(x,PeakSig/max(pks(:))),
hold on
% Offset values of peak heights for plotting
plot(x(locs),(pks/max(pks(:))+0.01),'k^','markerfacecolor',[1 0 0])
line([0 x(end)],[0.2 0.2],'Color','k','LineWidth',2);
hold off

这是你要找的东西吗?
https://stackoverflow.com/questions/25414412
复制相似问题