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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sobald ich das getestet habe deinen code wie durch den Austausch von Daten mit
...Ich fand, dass der lokale peak-Standorten gekennzeichnet durch die roten o-Marker wurden in die richtigen Speicherorte. Es war nur so, dass alle peaks wurden markiert auf der Höhe des maximalen peak.
Bin ich mir nicht 100% sicher, was Sie zu tun versuchen, aber es sieht aus, als wenn Sie versuchen, nur den maximalen peak. Wenn dies der Fall ist, dann müssen Sie nicht die Funktion findpeaks. Ersetzen Sie einfach die letzten paar Zeilen code mit dem folgenden ...