Erkennen und markieren maximale peak power spectral analysis plot mit Matlab?

Ich versuche zu finden, die maximale Spitze über eine power spectral density plot in Matlab. Ich kann das Grundstück einfach nur gut, aber habe Schwierigkeiten, richtig zu markieren. Ich verwende die find-Gipfel und die max-Funktion zu finden, die es aber in Matlab nicht richtig markieren. Es findet die richtige Höhe markiert aber es ein wenig nach Links oder rechts. Hier ist der code:

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')

jegliche Hilfe würde sehr geschätzt werden.

InformationsquelleAutor user1359861 | 2012-04-26
Schreibe einen Kommentar