Matlab で作成されたパワー スペクトル密度プロットで最大ピークを見つけようとしています。プロットは問題なく作成できますが、正しくマークするのに苦労しています。find peaks と max 関数を使用して見つけましたが、Matlab では正しくマークできません。正しい高さを見つけますが、少し左または右にマークします。コードは次のとおりです。
data = load ('EEGData(test1).txt', '-ascii');
figure(1)
plot(data)
Y =fft(data,251);
Pyy = Y.*conj(Y)/251;
f = 1000/251*(0:127);
figure(2)
plot(f,Pyy(1:128))
title('Power spectral density')
xlabel('Frequency (Hz)')
[a,b] = findpeaks(Pyy(1:128));
MAX = max(a);
hold on
plot(f(b), MAX,'or')
どんな助けでも大歓迎です。