Angenommen, man speist in einen VDHL-FFT-Core 128 Werte ein, dann erhält
man 2x64 Frequenz/Intensitäts-Paare. Wenn die Daten aus einem ADC
stammen, der mit 32kHz abgetastet wurde, müsste die Auflösung dann
32.000/128 - oder 32000/64 sein?
Sinn ergibt ja eigentlich nur das erste, wobei man zu einer Auflösung
von 1:250 gelangt. Wie genau ist da die Zuordnung?
Heisst dass, dass der erste Wert die Bereiche 0 ... 299 Hz abdeckt und
de zweite 250Hz ... 499 Hz oder muss ich das überlappend interpretieren?
Nummer 0: 0,00 ... 499,99 mit Schwerpunkt bei 250
Nummer 1: 250,00 ... 749,99 mit Schwerpunkt bei 500
Nummer 1: 500,00 ... 999,99 mit Schwerpunkt bei 750
?
Ach ja, noch vergessen:
Reicht es, die erste und die letze Nummer zu ignorieren, wenn man den
Gleichanteil und das AA im oberen Bereich weg haben will?
Naja, die Daten sind ja spiegelsymmetrisch und daher mehr oder weniger
indentisch.
Der DC-Anteil müsste meines Erachtens in der ersten Datengruppe
enthalten sein, weil alle Frequenzen ab 0 enthalten sind.
Ranga Yogibaer schrieb:> Der DC-Anteil müsste meines Erachtens in der ersten Datengruppe> enthalten sein, weil alle Frequenzen ab 0 enthalten sind.
Der 0. Wert enthält nicht den DC Anteil, sondern IST der DC Anteil.
Ranga Yogibaer schrieb:> Nummer 0: 0,00 ... 499,99 mit Schwerpunkt bei 250> Nummer 1: 250,00 ... 749,99 mit Schwerpunkt bei 500> Nummer 1: 500,00 ... 999,99 mit Schwerpunkt bei 750
Nix Schwerpunkt usw.
Wert 0 ist DC (Frequenz 0)
Wert 1 ist 250 Hz
Wert 2 ist 500 Hz usw.
Die FFT ist eine Frequenzzerlegung, bei 128 Stützpunkten bekommst Du 64
Frequenzwerte.
Außerdem solltest Du beachten, dass die Ergebniswerte komplexe Zahlen
sind.
Wie ist es denn bei dem IP-Core mit der Genauigkeit. Normalerweise
bekommt man ja immer Float oder Double Werte zurück. Wie ist des denn
bei dem IP-Core?
> Der 0. Wert enthält nicht den DC Anteil, sondern IST der DC Anteil.
Wo bleiben dann die Frequenzen, die kleiner sind, als der Erstwert?
Wie bilden sich Zwischenfrequenzen ab? - Die FFT enthält ja nicht nur
die ein Freqqenz, die angegeben ist, sondern eine Bandbreite.
Frager schrieb:>> Der 0. Wert enthält nicht den DC Anteil, sondern IST der DC Anteil.> Wo bleiben dann die Frequenzen, die kleiner sind, als der Erstwert?>> Wie bilden sich Zwischenfrequenzen ab? - Die FFT enthält ja nicht nur> die ein Freqqenz, die angegeben ist, sondern eine Bandbreite.
Eine DFT (Discrete Fourier Transformation) Zerlegung, von der die FFT
ein Spezialfall ist, enthält keine Zwischenfrequenzen!
Da möchte ich hier nicht erkären, das soll man sich im Netz nachlesen.
Die Wikipedia-Seiten sind recht hochmathematisch, sicherlich finden sich
auch verständlichere Darstellungen.
Es ist jedenfalls so, dass man, je weniger Abtastpunkte man verwendet,
umso weniger Frequenzpunkte zurückbekommt. Will man das Signalspektrum
höher auflösen (mehr Frequenzpunkte) muss man die FFT länger machen.
Klaus Falser schrieb:> Eine DFT (Discrete Fourier Transformation) Zerlegung, von der die FFT> ein Spezialfall ist, enthält keine Zwischenfrequenzen!
Allerdings möchte ich behaupten, dass im angesprochenen Beispiel (mit
250Hz Abstand) durchaus auch eine Frequenz mit 249,9 Hz oder gar 375Hz
im Spektrum auftauchen wird...
Lothar Miller schrieb:> Klaus Falser schrieb:>> Eine DFT (Discrete Fourier Transformation) Zerlegung, von der die FFT>> ein Spezialfall ist, enthält keine Zwischenfrequenzen!> Allerdings möchte ich behaupten, dass im angesprochenen Beispiel (mit> 250Hz Abstand) durchaus auch eine Frequenz mit 249,9 Hz oder gar 375Hz> im Spektrum auftauchen wird...
Lothar,
deine Aussagen sind normalerweise qualifiziert, aber in diesem Fall
entgeht mir der Sinn.
Bei einer DFT wird ein zeitlich begrenztes Signal als Summe von
Sinusschwingungen interpretiert. Die DFT liefert dazu die Koeffizienten,
also Phase und Amplitude dieser Schwingungen.
Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64
Frequenzen + DC um das Signal exakt darzustellen und diese Frequenzen
sind gleichmäßig gestaffelt. Um beim ursprünglichen Beispiel zu bleiben,
250 Hz, 500 Hz ... usw.
Es gibt KEINE Zwischenfrequenzen, weil ein derart kurzer Ausschnitt
nicht komplex genug ist, um aus mehr Frequenzen aufgebaut zu werden.
Erst wenn man den Ausschnitt verlängert, macht es Sinn von mehr
Frequenzen zu reden.
Klaus Falser schrieb:> Lothar,> deine Aussagen sind normalerweise qualifiziert,> aber in diesem Fall entgeht mir der Sinn.
Ist ja auch schon gute 15 Jahre her, seit ich die letzte FFT auf einem
68332 gehackt habe, mag sein, dass mir die Terminologie nicht mehr so
geläufig ist... ;-)
> Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64> Frequenzen + DC um das Signal exakt darzustellen
Genau das ist der Knackpunkt, denn in der "realen" Welt gibt es auch
noch jede Menge "Zwischenschritte" bzw. "Zwischenfrequenzen", und diese
werden nicht abgebildet...
> Es gibt KEINE Zwischenfrequenzen,
Das ist soweit klar, diese äquidistante Einteilung liegt in der Natur
der FFT. Aber es ist einfach so, dass sich ein Signal, dessen Frequenz
z.B. mit 375Hz genau zwischen zwei "Stützpunkten" (250 und 500Hz) ist,
(mindestens) auf diese beiden abgebildet wird.
BTW:
> Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64> Frequenzen + DC um das Signal exakt darzustellen
Was würde eigentlich passieren, wenn die Abtastpunkte nicht die selben
Zeitabstände hätten (Jitter, ungewollt oder gewollt)?
Lothar Miller schrieb:>> Es gibt KEINE Zwischenfrequenzen,> Das ist soweit klar, diese äquidistante Einteilung liegt in der Natur> der FFT. Aber es ist einfach so, dass sich ein Signal, dessen Frequenz> z.B. mit 375Hz genau zwischen zwei "Stützpunkten" (250 und 500Hz) ist,> (mindestens) auf diese beiden abgebildet wird.
Die DFT geht davon aus, dass das Signal periodisch fortgesetzt wird. Ein
Signal mit 375 Hz, 32000 KHz Abtastrate, aus dem man 128 Punkte
ausschneidet, lässt sich eben nicht kontinuierlich fortsetzen. An den
Stoßstellen bilden sich Diskontinuitäten, die dann höhere Frequenzen
erzeugen. Aber Du hast recht, man wird an 250 und 500 einen Peak
bekommen.
Diese Diskontinuitäten an des Stosstellen sind übrigens der Grund, warum
man nicht das Signal direkt nimmt, sondern nochmals mit einem Fenster
(z.B. Hamming) gewichtet.
Wer probieren will, kann sich ja einmal mit einem freien
Mathematikprogramm spielen.
> BTW:>> Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64>> Frequenzen + DC um das Signal exakt darzustellen> Was würde eigentlich passieren, wenn die Abtastpunkte nicht die selben> Zeitabstände hätten (Jitter, ungewollt oder gewollt)?
Sollte meines Wissens Rauschen erzeugen, also einen kleinen zufälligen
Beitrag zu den ein einzelnen Frequenzen.
> Bei einem Signal, das 128 Punkte lang ist, braucht man> genau 64 Frequenzen + DC um das Signal exakt darzustelle
Das wären 65! wo stecken die? Soweit mir bekannt, ist die FFT gespiegelt
und voll symmetrisch. Die ersten 64 Werte wäre also:
Frequenz 0
Frequenz 1/64
Frequenz 2/64
...
Frequenz 63/64
ab dann rückwärts
Frequenz 64/64 gibt es dann nicht?
> jede Menge "Zwischenschritte" bzw. "Zwischenfrequenzen", und diese> werden nicht abgebildet...
Bei meinem Spektrumanalyzer ist das aber kontinuierlich, wenn ich einen
Sinus drauf gebe und durch-"sweepe". Liegt es an der Auflösung und der
Breitbandigkeit?
Ich meine eher, dass sich das so verhält, wie bei einem Equalizer: Eine
Zwischenfrequenz wird zu 0,5 oder 0,7 auf die Nachbarn verteilt.
> Hamming
Also erst durch das Fenster wird ein zustand erzeugt, dass die
Zwischenfrequenzen vernüftig sichtbar werden?
Ranga Yogibaer schrieb:> Also erst durch das Fenster wird ein zustand erzeugt, dass die> Zwischenfrequenzen vernüftig sichtbar werden?
Nein, dadurch wird ein Zustand erzeugt, dass keine (unverhofften)
"Pseudofrequenzen" auftreten...
Ranga Yogibaer schrieb:>> Bei einemreellen>> Signal, das 128 Punkte lang ist, braucht man>> genau 64 Frequenzen + DC um das Signal exakt darzustelle>> Das wären 65! wo stecken die?
Da DC und fs/2 reell sind (Symmetrie des Spektrums) werden die beiden
Werte meistens als Real- und Imaginärteil im 1. Frequenzbin
zusammengefasst. Sollte in der Dokumentation stehen.
Hallo Lothar,
>> Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64>> Frequenzen + DC um das Signal exakt darzustellen> Genau das ist der Knackpunkt, denn in der "realen" Welt gibt es auch> noch jede Menge "Zwischenschritte" bzw. "Zwischenfrequenzen", und diese> werden nicht abgebildet...
Der Knackpunkt liegt m. E. darin, daß Ihr Euch nicht klar darüber seid,
welche Signale vorliegen.
Die (kontinuierliche) Fouriertransformation transformiert Analogsignale
endlicher Signalenergie in ein kontinuierliches Fourierspektrum:
Wenn wir ein endlich langes Zeitfenster aus einem Analogsignal
betrachten, so liegt ein Signal vor, das in dem betrachteten Zeitverlauf
einen charakteristischen Verlauf hat und davor und danach exakt gleich
Null ist. Die kontinuierliche Fouriertransformation enthält also an den
Rändern den evtl. vorhandenen Sprung zu s(t)=0 und reproduziert den
langen Bereich mit den Nullen ebenfalls.
Die DFT/FFT transformiert endlich lange (nur zu diskreten Zeitpunkten
definierte) Signale in ein diskretes Spektrum gleicher Länge. Im
Gegensatz zur kontinuierlichen FT geht die DFT/FFT aber gerade nicht
davon aus, daß das Signal am Signalrand verschwindet, sondern vielmehr,
daß es sich dort periodisch wiederholt (d. h. es liegt ein anderer
"Sprung" am Rand und anderer Verlauf außerhalb des betrachteten
Zeitfensters vor).
Die DFT/FFT und die kontinuierliche Fouriertransformation bringen
dementsprechend grundsätzlich andere "Sprünge" und an den Rändern auch
andere Signalverläufe(!) hervor. Nur, wenn die Signalränder nicht
interessieren (weil Du beispielsweise sehr gut abtastest und lange
Signale betrachtest), kannst Du diesen Einfluß vernachlässigen.
>> Es gibt KEINE Zwischenfrequenzen,> Das ist soweit klar, diese äquidistante Einteilung liegt in der Natur> der FFT. Aber es ist einfach so, dass sich ein Signal, dessen Frequenz> z.B. mit 375Hz genau zwischen zwei "Stützpunkten" (250 und 500Hz) ist,> (mindestens) auf diese beiden abgebildet wird.
Man möchte hier sagen "ja und nein". Ja, weil das Signal auf die
Nachbarfrequenzen abgebildet wird, und nein, weil in Wirklichkeit kein
Signal von 375 Hz vorliegt.
Ein Signal von (exakt) 375 Hz liegt nur dann vor, wenn das Signal
periodisch und somit unendlich lang ist.
Bei Digitalsignalen lautet die Frage nicht: Ist das Signal unendlich
lang und ist überall sinusförmig, sondern "Ist das Signal überall
sinusförmig, und paßt es exakt in das Zeifenster hinein?".
Paßt die Periodendauer exakt ist das Zeitfenster, das Du betrachtest, so
ergänzt die DFT das Signal periodisch, und Du erhältst wie gewünscht
durch die Periodisierung einen unendlich langen Sinus. Das Ergebnis ist
ein Peak bei exakt 375 Hz (dieser Wert ist - ohne daß es sich um Zufall
handelt - im Spektrum dann auch immer vorhanden).
Wenn das Spektrum keine Koordinate f=375 Hz hat, so wird das Signal
durch das Zeitfenster irgendwo mittendrin "abgeschnitten". Dieses
"Abschneiden" (d. h. der damit verbundene Signalsprung an den Rändern,
oder manchmal auch nur ein Sprung in der Ableitung des Signals) bewirkt,
daß das Signal tatsächlich auch andere Frequenzen enthält. Meist ergibt
sich durch das Abschneiden sogar ein Gleichanteil.
Da die eigentliche Frequenz sich in die Nachbarfrequenzen "leckt",
spricht man vom sogenannten Leakage-Effekt.
> BTW:>> Bei einem Signal, das 128 Punkte lang ist, braucht man genau 64>> Frequenzen + DC um das Signal exakt darzustellen> Was würde eigentlich passieren, wenn die Abtastpunkte nicht die selben> Zeitabstände hätten (Jitter, ungewollt oder gewollt)?
Die Abtastung kannst Du Dir als Multiplikation des Signals mit einem
Dirac-Kamm vorstellen.
Das Spektrum des abgetasteten Signals ist dementsprechend das Spektrum
des Analogsignals gefaltet mit dem Spektrum des Dirac-Kamms.
Wenn die Zeitabstände des Dirac-Kamms ungleichmäßig sind, so ist das
Spektrum des Dirackamms komplexer als im Idealfall. M. E. gibst Du im
Signalspektrum dann andere als die "tatsächlichen" Frequenzen an.
Meßtechnisch ist ein Jitter ja nichts so Ungewöhnliches.
Gruß,
Michael
Klaus Falser schrieb:> Es ist jedenfalls so, dass man, je weniger Abtastpunkte man verwendet,> umso weniger Frequenzpunkte zurückbekommt. Will man das Signalspektrum> höher auflösen (mehr Frequenzpunkte) muss man die FFT länger machen.
Mehr Frequenzpunkte würde man aber auch durch zero-padding
(zero-stuffing) erhalten, oder?
@Michael, was den Leakage-Effekt betrifft, die Signalenergie müsste auf
die benachbarten frequency bins aufgeteilt werden -> könnte dann durch
passendes Windowing verhindert werden? Ist das auch das Problem was man
als Zaunlatteneffekt bezeichnet?
Bzgl. dem genauen 375 Hz Signal und dem Zeitfenster meinst du das
Problem, das sich ergibt wenn das zeitlich begrenzte Signal
transformiert wird und dessen Periode bei der Transformation nicht
ganzzahlig im Zeitfenster liegt, hoffe ich habe das richtig verstanden.
Hallo Andi,
> Klaus Falser schrieb:>> Es ist jedenfalls so, dass man, je weniger Abtastpunkte man verwendet,>> umso weniger Frequenzpunkte zurückbekommt. Will man das Signalspektrum>> höher auflösen (mehr Frequenzpunkte) muss man die FFT länger machen.>> Mehr Frequenzpunkte würde man aber auch durch zero-padding> (zero-stuffing) erhalten, oder?
Ja. Es ist bloß so, daß die Nullen durchaus das Spektrum verändern.
> @Michael, was den Leakage-Effekt betrifft, die Signalenergie müsste auf> die benachbarten frequency bins aufgeteilt werden -> könnte dann durch> passendes Windowing verhindert werden?> Ist das auch das Problem was man als Zaunlatteneffekt bezeichnet?
Ich kenne das noch al Leckeffekt; der Begriff Zaunlatteneffekt ist mir
nicht geläufig.
Fenstern glättet das Spektrum, es löst aber nicht das grundlegende
Problem, daß Du mit dem Spektrum im Ergebnis etwas haben willst, was Du
als Zeitsignal nicht reinsteckst:
- Denn ein bandbeschränktes Spektrum (egal, ob analog oder digital) sagt
immer etwas über den gesamten Zeitbereich [-oo,+oo] aus. Wenn Dein
Signal kürzer als unendlich lang ist, mußt Du Dich entscheiden, welche
Signalform Dein Signal vor dem Starten und nach dem Beenden der Messung
haben soll. Da Du das nicht wissen kannst, hast Du immer eine gewisse
Unbestimmtheit im Spektrum.
Die Tatsache, daß bandbeschränkte Signale zeitlich unendlich lang sind,
geht letztlich darauf zurück, daß die Aufbaufunktionen des Signals (die
Sinus/Cosinusfunktionen) undendlich lang sind. Das Problem ist also
direkt in der Begrifflichkeit und der zugrundeliegenden Transformation
enthalten und kann im Rahmen des Begriffes "eine Frequenz aufweisen"
nicht gelöst werden.
Die Verwendung von Fensterfunktionen (Hannfenster, Gaußfenster u. ä.)
ist ein pragmatischer Umgang in der Praxis. Beachte jedoch, daß Du mit
den Fenstern Dein Meßsignal sogar in dem Zeitbereich, für den Dir
Meßwerte vorliegen, verfälschst.
Eine ähnliche Methode wie die Fensterung besteht darin, das Signal an
den Signalrändern zu spiegeln, anschließend periodisch fortzusetzen und
dann zu transformieren. Damit verhindert man die Signalsprünge an den
Rändern, ohne sonst allzu viel zu verändern. Doch auch hier gilt: Man
muß sich (willkürlich) festlegen, was vor und nach dem eigentlichen
Meßsignal gewesen sein soll und beeinflußt damit das Spektrum.
> Bzgl. dem genauen 375 Hz Signal und dem Zeitfenster meinst du das> Problem, das sich ergibt wenn das zeitlich begrenzte Signal> transformiert wird und dessen Periode bei der Transformation nicht> ganzzahlig im Zeitfenster liegt, hoffe ich habe das richtig verstanden.
Ja.
Gruß,
Michael