Algorithmen (FFT)


Eine diskrete Fourier-Transformation (DFT) konvertiert ein Signal im Zeitbereich in seine Gegenstücke im Frequenzbereich. Angenommen, (x_i) ist eine Sequenz der Länge N, dann ist die DFT die Sequenz (F_n) gegeben von

F_n=\sum_{i=0}^{N-1}x_ie^{-\frac{2\pi j}{N}ni}

Origin verwendet eine FFTW-Bibliothek, um die Fourier-Transformation durchzuführen. Mit den transformierten Daten kann Origin die Amplitude, den Betrag und die Leistungsdichte berechnen.

FFTW

In FFTW wird die Berechnung der FFT von einem ausführenden Element durchgeführt, das aus C-Code-Blöcken besteht, den so genannten "Codelets". Jedes Codelet ist für einen Teil der Transformation spezialisiert. Mit diesen Codelets implementiert das ausführende Element den FFT-Algorithmus nach Cooley-Turkey, der die Größe des Eingabesignals faktoriert. Durch rekursive Faktorzerlegung wird das Signal in kürzere Teile gebrochen. Die Ergebnisse der Transformationen der kurzen Teile werden multipliziert; schließlich wird die Transformation des ursprünglichen Signals berechnet. Weitere Informationen zu FFTW finden Sie unter http://fftw.org/.

Leistungsdichte

Definitionsgemäß kann die Leistungsdichte oder das Spektrum mit der folgenden Gleichung berechnet werden:

P_{xx}(e^{j\omega })=\sum_{m=-\infty }^\infty r_{xx}(m)e^{-j\omega m}

wobei r_{xx}(m)\,\! die Autokorrelationsfunktion des Eingabesignals ist.

Wir haben jedoch eine endliche Anzahl von Stichproben für das Eingabesignal. Daher ist das Berechnen des Leistungsspektrums mit der Definition nicht möglich, da nur bestimmte Methoden verwendet werden können, um das Leistungsspektrum zu schätzen. Die in Origin verwendete Methode ist das Periodogramm, das die Leistung aus der Amplitude der transformierten Fourier-Daten schätzt. Während allgemein anerkannt wird, dass die quadratische Amplitude proportional zur Amplitude des Leistungsspektrum ist, existieren zahlreiche Konventionen zum Beschreiben der Normierung des Leistungsspektrums in jeder Domäne. Die drei Beschreibungen, die Origin verwendet, sind die "mittlere quadratische Amplitude" (MSA), die "Summe der quadratischen Amplitude" (SSA) und das "Zeitintegral der quadratischen Amplitude" (TISA). Sie können wie folgt ausgedrückt werden:

Power Density(two-sided)=\begin{cases}\frac{{Re}^2+{Im}^2}{n^2},for MSA\\\frac{{Re}^2+{Im}^2}n,for SSA\\\frac{\Delta t({Re}^2+{Im}^2)}n,for TISA\end{cases}

wobei Re\,\! und Im\,\! die realen und imaginären Teile der transformierten Daten darstellen; n\,\! ist die Länge der Eingabesequenz; \Delta t\,\! ist das Abtastintervall.

Das Leistungsspektrum kann entweder einseitig (einzelseitig) oder zweiseitig (doppelseitig) sein, abhängig davon, ob Zweiseitig (2) oder Einseitig (1) für Spektrumstyp (st) ausgewählt ist. Zum Berechnen einer einseitigen Leistungsdichte ist es erforderlich, zuerst die zweiseitige Leistungsdichte zu berechnen. Das Ergebnis wird dann mit Hilfe der folgenden Gleichungen in das einseitige Leistungsspektrum konvertiert:

P_s(i)=P_d(i),i=0\,\!

P_s(i)=2P_d(i),i=1,2,\cdots \frac n2-1

wobei P_s(i)\,\! das einseitige Leistungsspektrum und P_d(i)\,\! das zweiseitige Leistungsspekrum ist.

Wenn eine Fensterfunktion angewendet wird, wird das Leistungsergebnis zum Ausgleich mit einem Faktor multipliziert, der definiert ist mit :

N/{\sum_{n=0}^{N-1}w(n)^2}, wobei w(n) die unten definierte Fensterfunktion ist.

Weitere Ergebnisse

Origin kann den Betrag, die Phase, die Amplitude und weitere Eigenschaften der transformierten Daten berechnen. Es wird angenommen, dass Re\,\! und Im\,\! die realen und imaginären Teile der transformierten Daten sind und n\,\! die Größe des Eingabesignals ist. Verwenden Sie \Delta t\,\!, um das Abtastintervall darzustellen. Angenommen, die Variable norma ist auf 0 gesetzt (Normierung wird nicht verwendet). Weitere Ausgaben werden mit den folgenden Formeln berechnet:

Spektrumstyp
ist zweiseitig
(i=1-n/2 ~ n/2)
Spektrumstyp
ist einseitig
(i=0 ~ n)

Phase

\arctan (\frac{Im}{Re})\,

Betrag

\sqrt{Re^2+Im^2}\,

Amplitude

\sqrt{Re^2+Im^2}/n\,

\sqrt{Re^2+Im^2}/n, i=0\mbox{ or }i=n/2\,
2*\sqrt{Re^2+Im^2}/n, \mbox{ otherwise }\,

dB

20log(Amplitude)\,

Normierte Amplitude in dB

dB-max(dB)\,

RMS-Amplitude

\frac{\sqrt{2}}2Amplitude\,

Normierung

Die oben stehenden Berechnungen basieren tatsächlich auf der Annahme, dass die Variable norma auf falsch gesetzt ist. Wenn diese Variable auf wahr gesetzt ist, werden die komplexen, realen und imaginären Ergebnisse sowie die Ergebnisse von Betrag und quadratischem Betrag normiert. Beachten Sie, dass Phase, Leistung, Amplitude, normierte Amplitude, db und quadratischer Amplitude nicht von der Variable norma beeinflusst werden.

Wenn Zweiseitig (2) für Spektrumstyp (st) ausgewählt und Normieren (norma) auf wahr gesetzt ist, werden die komplexen, realen und imaginären Ergebnisse sowie die Ergebnisse für Betrag und quadratischem Betrag durch n\, geteilt, wobei n\, die Größe des Eingabesignals ist.

Wenn Einseitig (1) für Spektrumstyp (st) ausgewählt und Normieren (norma) auf wahr gesetzt ist, werden die komplexen, realen und imaginären Ergebnisse folgendermaßen normiert. Angenommen, res_s'\, ist das normierte Ergebnis:

res_s'(i) =  \begin{cases}  res_s(i)/n, & \mbox{if } i=0 \\ 2*res_s(i)/n, & \mbox{otherwise}  \end{cases}

Automatische Berechnung des Abtastintervalls

Das automatisch berechnete Abtastintervall ist das durchschnittliche Inkrement der Zeitsequenz, die normalerweise aus der X-Spalte kommt, die mit dem Eingabesignal verbunden ist. Gibt es keine verbundene X-Spalte, werden die Zeilennummern verwendet. Beachten Sie, dass das Abtastintervall auf 1 gesetzt wird, wenn Origin das durchschnittliche Inkrement nicht erhält.

Frequenz

Die Frequenzspalte wird durch das Abtastintervall Fft1 help English files image014.gif und die Anzahl der Eingabedatenpunkte N erstellt. Das n-te Frequenzdatum ist gegeben durch:

f_n=\frac n{N\Delta t}

Wenn es N Eingabedatenpunkte gibt, hat der Frequenzbereich ebenfalls N Punkte mit der maximalen Frequenz, f_{\max }\,\! gleich\frac 1{\Delta t}(1-\frac 1N). Ist die Option Ergebnis verschieben nicht aktiviert, wird die Transformation von 0 bis f_{\max }\,\! angezeigt. Ansonsten wird die verschobene Transformation von -\frac{f_{\max }}2 bis \frac{f_{\max }}2 angezeigt.

Fenster

Fenster werden zum Unterdrücken von Verlusten verwendet. Verschiedene Fenstertypen werden in Origin wie folgt definiert.

In den untenstehenden Gleichungen ist n der Datenindex und N die Gesamtanzahl des Datensatzes.

Rechteckiges Fenster:

w[n]=1\,\!

Welch-Fenster:

w[n]=1-\left( \frac{n-\frac 12(N-1)}{\frac 12(N+1)}\right) ^2

Dreieckiges Fenster:

Ungerade: w(n)=\frac 2{N+1}(\frac {N+1}2-|n+1-\frac {N+1}2|)
Gerade: w(n)=\frac 2N(\frac N2-|n+1-\frac {N+1}2|)

Bartlett-Fenster:

w(n)=\frac 2{N-1}(\frac{N-1}2-|n-\frac{N-1}2|)

Hanning-Fenster:

w[n]=\frac 12[1-\cos (\frac{2\pi n}{N-1})]

Hamming-Fenster:

w[n]=0,54-0,46\cos (\frac{2\pi n}{N-1})

Blackman-Fenster:

w[n]=0.42-0.5\cos (\frac{2\pi n}{N-1})+0.08\cos (\frac{4\pi n}{N-1})

Gaussian-Fenster:

w[n]=exp(-0.5(Alpha( \frac{2n}{N-1}-1 ))^2) \,\!

Kaiser-Fenster:

w[n]=I(beta*\sqrt{1-(\frac{2n}{N-1}-1)^2}) / I(beta) \,\!