Forum

Einloggen | Registrieren | RSS  

ColonelPanic(R)

18.04.2012,
11:57
 

DFT (Elektronik)

Schoenen guten Tag,
vielen Dank nochmal an alle, die mir beim letzten Mal so gut geholfen haben.

Aktuell muss ich ein Signal aus einem Touchstone-File (s2p), aus Messungen aus einem Frequency Sweep des VNAs mit der iDFT in der Zeit darstellen.

Mein Betreuer meint, ich solle einfach den Vektor mit den Fourierkoeffizienten nehmen und dann mit der DFT-Matrix multiplizieren.

Das sehe ich vollkommen anders, vielleicht liege ich falsch, bin mir aber nicht sicher, hier mal das Problem im Detail an einem vereinfachten Beispiel:


Ich habe die empfangenen Leistungswerte (in DBm) der Impulsantworten zu einer Reihe von Frequenzen von Elementarwellen, die ich von einem Sender zu einem Empfaenger geschickt habe.

Sagen wir der Einfachheit halber, ich habe den Frequenzbereich von 1000 Hz - 1500 Hz und 251 Messpunkte, also einen aequidistanten Abstand von 2 Hz zwischen 2 Frequenzen.

Zu jeder Frequenz habe ich jetzt einen Signalstaerkewert.

Um das nach der Zeit darzustellen, schlaegt mein Betreuer vor, darueber einfach die DFT zu machen.

Mein Probem ist, dass die DFT ja fuer eine Grundschwingung (evtl. vorher noch ne DC-Komponente, aber hier uninteressant) plus eine Reihe von Harmonischen geschaffen ist.

Meine gemessenen Frequenzen sind aber durchaus nicht harmonisch zueinander.

Die meines Erachtens richtige Vorgehensweise waere hier, 2 Hz als Basisfrequennz anzunehmen und meine Signale dann als Harmonische zu 2 Hz anzusehen.

Damit waeren die ersten 500 Koeffizienten 0 und danach haette ich dann meine gemessenen.

Der Unterschied liegt nach meinem Verstaendnis in dem N fuer die Einheitswurzel.

Es macht doch durchaus einen Unterschied, ob ich den Einheitskreis in 251 gleichgrosse Teile aufteile oder in 751, genauso sollte es einen Unterschied machen, ob ich in der DFT:

e^(j (n/251) k) oder e^(j (n/751) k) habe, selbst wenn die ersten 500 Amplituden alle 0 sind und sich das Frequenzspektrum nach 751 Werten wiederholt.

Vielen Dank fuer Eure Hilfe.

Gruesse

Phil.

Altgeselle(R)

E-Mail

18.04.2012,
17:15

@ ColonelPanic

DFT

» Schoenen guten Tag,
» vielen Dank nochmal an alle, die mir beim letzten Mal so gut geholfen
» haben.
»
» Aktuell muss ich ein Signal aus einem Touchstone-File (s2p), aus Messungen
» aus einem Frequency Sweep des VNAs mit der iDFT in der Zeit darstellen.
»
» Mein Betreuer meint, ich solle einfach den Vektor mit den
» Fourierkoeffizienten nehmen und dann mit der DFT-Matrix multiplizieren.
»
» Das sehe ich vollkommen anders, vielleicht liege ich falsch, bin mir aber
» nicht sicher, hier mal das Problem im Detail an einem vereinfachten
» Beispiel:
»
»
» Ich habe die empfangenen Leistungswerte (in DBm) der Impulsantworten zu
» einer Reihe von Frequenzen von Elementarwellen, die ich von einem Sender
» zu einem Empfaenger geschickt habe.
»
» Sagen wir der Einfachheit halber, ich habe den Frequenzbereich von 1000 Hz
» - 1500 Hz und 251 Messpunkte, also einen aequidistanten Abstand von 2 Hz
» zwischen 2 Frequenzen.
»
» Zu jeder Frequenz habe ich jetzt einen Signalstaerkewert.
»
» Um das nach der Zeit darzustellen, schlaegt mein Betreuer vor, darueber
» einfach die DFT zu machen.
»
» Mein Probem ist, dass die DFT ja fuer eine Grundschwingung (evtl. vorher
» noch ne DC-Komponente, aber hier uninteressant) plus eine Reihe von
» Harmonischen geschaffen ist.
»
» Meine gemessenen Frequenzen sind aber durchaus nicht harmonisch
» zueinander.
»
» Die meines Erachtens richtige Vorgehensweise waere hier, 2 Hz als
» Basisfrequennz anzunehmen und meine Signale dann als Harmonische zu 2 Hz
» anzusehen.
»
» Damit waeren die ersten 500 Koeffizienten 0 und danach haette ich dann
» meine gemessenen.
»
» Der Unterschied liegt nach meinem Verstaendnis in dem N fuer die
» Einheitswurzel.
»
» Es macht doch durchaus einen Unterschied, ob ich den Einheitskreis in 251
» gleichgrosse Teile aufteile oder in 751, genauso sollte es einen
» Unterschied machen, ob ich in der DFT:
»
» e^(j (n/251) k) oder e^(j (n/751) k) habe, selbst wenn die ersten 500
» Amplituden alle 0 sind und sich das Frequenzspektrum nach 751 Werten
» wiederholt.
»
» Vielen Dank fuer Eure Hilfe.
»
» Gruesse
»
» Phil.
Hallo,
obwohl ich nicht alle Abkürzungen kenne veruche ich mal
eine Antwort:
Du hast das "Spektrum", also die Amplituden über der
Frequenz eines Signals. 1000Hz ist die niedrigste
vorkommende Frequenz. Dann sollte meiner Auffassung nach
die Periodendauer der Zeitfunktion 1ms sein (wenn die
Funktion periodisch ist).
Grüße
Altgeselle

ColonelPanic(R)

18.04.2012,
18:29

@ Altgeselle

DFT

» obwohl ich nicht alle Abkürzungen kenne veruche ich mal
» eine Antwort:
» Du hast das "Spektrum", also die Amplituden über der
» Frequenz eines Signals. 1000Hz ist die niedrigste
» vorkommende Frequenz. Dann sollte meiner Auffassung nach
» die Periodendauer der Zeitfunktion 1ms sein (wenn die
» Funktion periodisch ist).
» Grüße
» Altgeselle

Vielen Dank fuer die Antwort, was Du sagst ist durchaus richtig, hat aber nichts mit dem zu tun, was meine Intention war, vielleicht habe ich meine Frage einfach konfus gestellt.

Ich habe auch inzwischen die Antwort gefunden.

Ich nehme dazu mal ein noch einfacheres Beispiel.

Sagen wir, ich habe eine Grundfrequenz bei 6 Hz und aufsteigend in 2 Hz-Schritten ein Frequenzspektrum bis 10 Hz, also die Frequenzen 6, 8, 10 Hz.

Diese sind nicht harmonisch zueinander, wenn man als Grundfrequenz 6 naehme, da z.B. 8 kein ganzzahliges Vielfaches von 6 ist.

Die DFT rechnet aber mit einer Grundfrequenz plus einer Reihe von Harmonischen.

also a_k = Summe(von n=0 bis N) a_n * e^(j * 2 * Pi *(n/N) * k)

bei der DFT ist vereinfacht gesagt die Grundfrequenz auf 1 Hz normiert und damit e^(j * 2 * Pi * 1 * k), wobei k ein diskreter Zeitpunkt ist.

Die Harmonischen sind ganzzahlige Vielfache davon,
also e^(j * 2 * Pi * n * k), hier fuer n=0 bis N in Schritten von 1.

Da das in Phasorschreibweise als N. Einheitswurzeln vorliegt, entspricht das einer Einteilung des Einheitskreises in N Teile, was dann

e^(j * 2 * Pi * (n/N) * k) Damit haben wir unsere DFT, wenn wir noch fuer jedes n mit der entsprechenden Feldstaerke multiplizieren.

Soweit so gut.

Hat man jetzt 6, 8, 10 Hz, ist die Grundfrequenz der Abstand zweier Frequenzen also 2 Hz.

Das waere einfach ein doppelter Frequenzanstieg zu den 1 Hz in der DFT, macht sich nicht bemerkbar, da die Zeitfunktion nur etwas weiter gestaucht wird.

Nun habe ich die Grundfrequenz 2 Hz nicht und auch nicht die 1. HArmonische bei 4 Hz.

Sagen wir, wir haben eine Amplitude von 1 dBm jeweils bei 6, 8, 10 Hz, dann muesste man logischerweise die Fourierkoeffizienten (Phasenverschiebung lassen wir mal aussen vor) (0, 0, 1, 1, 1) haben.

Dennoch kann man die ersten beiden 0en bei der Berechnung der DFT einfach weglassen, das hatte ich nicht verstanden.

Da das nicht nur verschwindende Faktoren sind, sondern diese auch den Wert von N um 2 erhoehen.

Wenn ich aber nun N = 3 haette statt N = 5, indem ich die ersten beiden weglassen wuerde, waere das

e^(j * 2 * Pi * (n/5) * k) = e^(j * 2 * Pi * (n/(1,7 * 3)) * k) = (e^(j * 2 * Pi * (n/3) * k))^(17/10)

und durch die Wurzel und den Exponenten wuerde die Funktion nur breiter oder schmaler werden, aber die Struktur der Daten bliebe gleich.

Damit kann man also auch fuer nichtharmonische Frequenzen einfach die DFT anwenden und bekommt nur eine Verfaelschung in der Stauchung.

Gerald Hellinghaus

21.04.2012,
12:43

@ ColonelPanic

DFT

Du musst die FFT/DFt-Auflösung freilich so gestalten, dass alle Frequenzen erfasst sind.

Das ist so eine Art von Abtastproblem.

Wenn Du 6,8,10 erfassen willst, musst Du 6x8x10 x 2 = 960 Werte abtasten, um sauber genug aufzulösen -> 1024er

Bei den drei Werten könnte aber auch Görtzel helfen.