Forum: Mikrocontroller und Digitale Elektronik fft Messergebnis auswertung


von Pedde (Gast)


Lesenswert?

Hi,

ich hab eine Frage bezüglich der FFT. Und zwar hab ich mit einem 
Netzwerkanalysator ein System durchgemessen. Ich besitze jetzt Messwerte 
von 10Mhz bis 10GHz. Die Messwerte haben einen Abstand von 10MHz. D.h. 
ich habe also 1001 Messpunkte. Die Messdaten liegen mir bereits im 
Frequenzbereich vor.

Als erstes habe ich dann in meinem Matlab-Programm zu den Messwerten an 
der Frequenz 0 noch den Wert 0 eingefügt, da kein DC-Anteil vorhanden 
sind. Es sind jetzt also 1002 Messpunkte.

Nun zu meiner Frage:
Wenn ich das System jetzt als Übertragungsfunktion verwenden möchte muss 
ich ja noch nullen hinten dran hängen, da ja sonst bei der 
Rücktransformation mit ifft ein falsches Ergebnis kommt.

Ich dachte da an sowas:

meineFFt = complexeMesswerte(1:end);
meineFFT(end+1:2*length(complexeMesswerte)) = 0;

Nun ist die FFT doppel so lang und der Zweite Teil wegen der 
Spiegelfrequenz mit nullen aufgefüllt.

Wenn ich jedoch jetzt zurück in den Zeitbereich transformiere erhalte 
ich eine Falsche Impulsantwort.
Wenn ich jedoch die zweite Zeile durch

meinefft(end,2*length(complexeMesswerte)-1)=0;

ersetze sieht die Impulsantwort eher richtig aus.

Kann mir jemand von euch erklären ab welcher Stelle ich die Werte zu 
null setzen muss und wie viele? Stehe da gerade ziemlich aufm Schlauch. 
Wär euch echt sehr Dankbar für eure Hilfe,

Viele Grüße,
Petra

von Stock (Gast)


Lesenswert?

Du hast keine komplexen werte, sondern allenfalls das powerspektrum.

von Pedde (Gast)


Lesenswert?

Der netwerkanalysator hat mir jeweils imaginär und realteil ausgegeben. 
Die Ausgabe konnte ich auswählen

von Kai S. (kai1986)


Lesenswert?

Hallo,

wie genau du deine Messwerte aufarbeiten musst hängt von dem verwendeten 
Algorithmus ab (und davon gibt es sehr viele unterschiedliche). Dazu 
sollte die Hilfe/Dokumentation auskunft geben. Wenn die Signalhöhe 
interessant ist, musst du zusätzlich aufpassen, welche Vorfaktoren 
verwendet werden (in der Mathematik, Physik und Signalverarbeitung 
werden da im Allegmeinen unterschiedliche verwendet). Ein allgemeiner 
Algorithmus hat üblicherweise komplexe Zahlen als Ein- und Ausgabe. Wenn 
du nur Realteil hast musst du alle Imaginärteile mit Nullen ergänzen.

Zum Testen, ob man den Algorithmus richtig bedient bietet es sich an, 
eine Funktion zu verwenden, von der man das Ergebnis kennt und es damit 
überprüfen kann. Hier bietet sich z.B. eine Gaußfunktion an.

Fouriertransformation für Fußgänger von Tilman Butz ist ein sehr schön 
geschriebenes Buch, in dem die Fouriertransformation von den 
mathematischen Grundlagen bis zur praktischen Anwendung gut beschrieben 
und mit Beispielen veranschaulicht wird.

Gruß Kai

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.