|
OVGU-MSPGler |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 16.11.08
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 14:10
Titel: FFT Plot max Amplitude
|
|
Eine kurze Frage, kann mir jemand sagen, wie mir der X-Wert der maximalen Amplitude eines Diagramms nach einer FFT ausgegeben werden kann?
Danke bereits für Eure Antworten!!
Zuletzt bearbeitet von OVGU-MSPGler am 05.05.2009, 17:57, insgesamt einmal bearbeitet
|
|
|
|
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 15:44
Titel:
|
|
Hi,
meinst du so?:
b ist dann der x Wert.
Viele Grüße,
der Oli
|
|
|
OVGU-MSPGler |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 16.11.08
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 16:31
Titel:
|
|
an sich schon....habe es mit max auch bereits versucht, aber leider bekomm ich da nie die Hz Zahl als Ausgabe, bei der der höchste Peak ist. Siehe Matlab-Fig
|
|
|
OVGU-MSPGler |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 16.11.08
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 17:56
Titel:
|
|
ich füg mal noch die Grafik ein, um die es geht
Beschreibung: |
|
Download |
Dateiname: |
Figure.jpg |
Dateigröße: |
13.22 KB |
Heruntergeladen: |
967 mal |
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.05.2009, 18:24
Titel:
|
|
Hallo
versuch's doch mal mit der find-Funktion:
%MAX-PEAK 11 -100 Hz
a_peak2=max(ftdb(11:100));
index2=find(ftdb==a_peak2);
%if a_peak2 > a_peak1
plot(f(index2(1)),ftdb(index2(1)),'-r.','MarkerSize',5);
if i==2
text(f(index2(1)),ftdb(index2(1))*1.05, ['\color{blue}',num2str(index2(1)),', ',...
num2str(ftdb(index2(1)),4)],'VerticalAlignment','bottom');
elseif i==3
text(f(index2(1)),ftdb(index2(1))*1.05, ['\color{red}',num2str(index2(1)),', '...
,num2str(ftdb(index2(1)),4)],'VerticalAlignment','bottom');
end; % end;
Achtung: der Frequenz-Vektor muss mit 1 beginnen, sonst stimmt die Markierung nicht
|
|
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 18:39
Titel:
|
|
Normalerweise sollte es mit max gehen, wahrscheinlich musst du das Ergebnis noch in Hz umrechnen, wenn du eine FFT bildest, hast du ja nicht die Hz Werte, dh du musst mit max, den Peak finden und diesen dann in deinen Umrechnungvektor eingeben.
Viele Grüße,
der Oli
|
|
|
OVGU-MSPGler |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 16.11.08
|
|
|
|
Wohnort: Magdeburg
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 05.05.2009, 20:33
Titel:
|
|
Also Oli ich bekomm es einfach nicht gerissen....
Also so sieht meine Datei aus:
Zitat: |
%data: Signalvektor Übergabe über den Import Wizard
%fs: Abtastfrequenz in Hz
x=data; %Übergabe an x
npoint=32768; %Anzahl der Punkte, muss 2er Potenz sein
n = length(x); %Übernahme der Signalvektors
c = fft(x)/n; %FFT Erzeugung
amp = 2*abs(c); %Amplitude wird verstärkt
%% Darstellung Spektrum 1
fig=figure(1);
%amp(1) = amp(1)/2;
m = floor(npoint/2);
area(linspace(0,(m-1)*fs/n,m), amp(1:m))
title('Verbrennungslärm ohne Rohr')
xlabel('Frequenz [Hz]')
ylabel('Amplitude')
[a,b]=(max(amp));
b
|
Wo liegt denn mein Fehler? Jetzt noch einmal b in die FFT zu jagen kann doch eigentlich nichts bringen, da nun ja ein Skalar ohne 2er Potenz vorliegt...oder nicht? Hat übrigens auch das selbe Ergebnis gebracht
@Gast.... deine Idee ist zwar sehr interessant, aber scheint mir die If Schleife da vielleicht doch etwas zu aufwendig... hat auch nicht gleich geklappt...
|
|
|
derOli |
Forum-Meister
|
|
Beiträge: 579
|
|
|
|
Anmeldedatum: 19.03.08
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: 2010a
|
|
|
|
|
|
Verfasst am: 12.05.2009, 15:37
Titel:
|
|
Hi,
dass ist das was ich meine:
Wenn du linspace weglässt, zeigt dir max auch den richtigen Peak.
Du müsstest also den linspace abschnitt vorher speichern und dann in diesem vektor nach der max Bildung nachgucken:
Viele Grüße,
der Oli
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|