Andrei Shelkovenko. Einer der Entwickler und Gründer von Vibromera.
Die Übersetzung des Artikels kann Ungenauigkeiten enthalten.
- Fouriertransformation und Signalspektrum
In vielen Fällen stellt sich die Aufgabe, das Spektrum eines Signals zu ermitteln (zu berechnen), wie folgt. Es gibt einen ADC, der mit der Abtastfrequenz Fd ein kontinuierliches Signal, das während der Zeit T an seinem Eingang ankommt, in digitale Abtastwerte - N Stück - umwandelt. Dann wird dieses Array von Abtastwerten in ein Programm eingespeist (zum Beispiel FourierScope), die N/2 einige numerische Werte ausgibt.
Um zu prüfen, ob das Programm korrekt funktioniert, bilden wir ein Array von Stichproben als Summe von zwei sin(10*2*pi*x)+0,5*sin(5*2*pi*x) und geben es in das Programm ein. Das Programm zeichnete das Folgende:
Es gibt zwei Oberschwingungen auf dem Spektraldiagramm - 5 Hz mit einer Amplitude von 0,5 V und 10 Hz mit einer Amplitude von 1 V, alles ist wie in der Formel des Originalsignals. Alles ist in Ordnung, das Grogramm funktioniert korrekt.
Das heißt, wenn wir ein reales Signal aus einer Mischung von zwei Sinuskurven in den ADC-Eingang einspeisen, erhalten wir ein ähnliches Spektrum, das aus zwei Oberwellen besteht.
Also, unser real gemessenes Signal von 5 Sek. Dauerdigitalisiert durch ADC, d.h. dargestellt in diskreter Form Proben, hat eine diskret nichtperiodisch Spektrum.
Wie viele Fehler sind - mathematisch gesehen - in diesem Satz enthalten?
Versuchen wir nun, das gleiche Signal 0,5 Sekunden lang zu messen.
Hier stimmt etwas nicht! Die Oberschwingung bei 10 Hz wird normal gezeichnet, und statt der Oberschwingung bei 5 Hz gibt es einige unklare Oberschwingungen.
Im Internet heißt es, man müsse am Ende der Probe Nullen hinzufügen, und das Spektrum werde normal gezeichnet.
Das ist es ganz und gar nicht. Ich werde mich mit der Theorie befassen müssen. Gehen wir zu wikipedia - die Quelle des Wissens.
2. Kontinuierliche Funktion und ihre Darstellung in Fourier-Reihen
Mathematisch gesehen ist unser Signal mit einer Dauer von T Sekunden eine Funktion f(x), die auf dem Intervall {0, T} gegeben ist (X ist in diesem Fall die Zeit). Eine solche Funktion kann immer als Summe von harmonischen Funktionen (Sinus oder Kosinus) der Form dargestellt werden:
k ist die Nummer der trigonometrischen Funktion (die Nummer der harmonischen Komponente, die Nummer der Oberschwingung)
T - Segment, in dem die Funktion definiert ist (die Dauer des Signals)
Ak- Amplitude der k-ten harmonischen Komponente,
θk- die Anfangsphase der k-ten harmonischen Komponente
Was bedeutet es, "die Funktion als die Summe der Reihen darzustellen"? Es bedeutet, dass wir durch Addition der Werte der harmonischen Komponenten der Fourier-Reihe an jedem Punkt den Wert unserer Funktion an diesem Punkt erhalten.
(Genauer gesagt, die mittlere quadratische Abweichung der Reihe von der Funktion f(x) tendiert gegen Null, aber trotz der mittleren quadratischen Konvergenz muss die Fourier-Reihe einer Funktion im Allgemeinen nicht Punkt für Punkt zu ihr konvergieren. )
Diese Reihe kann auch in der Form geschrieben werden:
wobei die k-te komplexe Amplitude.
oder
Die Beziehung zwischen den Koeffizienten (1) und (3) wird durch die folgenden Formeln ausgedrückt:
Beachten Sie, dass alle drei Darstellungen von Fourier-Reihen vollkommen gleichwertig sind. Manchmal ist es bei der Arbeit mit Fourier-Reihen bequemer, die Exponenten des imaginären Arguments anstelle von Sinus und Kosinus zu verwenden, d. h. die Fourier-Transformation in komplexer Form zu benutzen. Für uns ist es jedoch bequemer, Formel (1) zu verwenden, in der die Fourier-Reihe als Summe von Kosinusfunktionen mit entsprechenden Amplituden und Phasen dargestellt wird. In jedem Fall ist es falsch zu sagen, dass das Ergebnis der Fourier-Transformation des reellen Signals komplexe harmonische Amplituden sind. Wie Wiki richtig sagt: "Die Fourier-Transformation (ℱ) ist eine Operation, die eine Funktion einer reellen Variablen auf eine andere Funktion ebenfalls einer reellen Variablen abbildet."
Unterm Strich:
Die mathematische Grundlage für die Spektralanalyse von Signalen ist die Fourier-Transformation.
Die Fourier-Transformation ermöglicht die Darstellung einer kontinuierlichen Funktion f(x) (Signal), die auf dem Intervall {0, T} definiert ist, als Summe einer unendlichen Anzahl (unendliche Reihe) trigonometrischer Funktionen (Sinus und/oder Kosinus) mit bestimmten Amplituden und Phasen, die ebenfalls auf dem Intervall {0, T} betrachtet werden. Eine solche Reihe wird Fourier-Reihe genannt.
Beachten Sie einige weitere Punkte, deren Verständnis für die korrekte Anwendung der Fourier-Transformation auf die Signalanalyse erforderlich ist. Wenn wir die Fourier-Reihe (Summe der Sinuskurven) auf der gesamten X-Achse betrachten, werden wir sehen, dass die Fourier-Reihenfunktion außerhalb des Intervalls {0, T} unsere Funktion periodisch wiederholt.
In der Grafik in Abb. 7 ist die ursprüngliche Funktion beispielsweise auf dem Intervall {-T\2, +T\2} definiert, und die Fourier-Reihe stellt eine periodische Funktion dar, die auf der gesamten x-Achse definiert ist.
Das liegt daran, dass die Sinuskurven selbst periodische Funktionen sind, so dass ihre Summe ebenfalls eine periodische Funktion ist.
So:
Unsere ursprüngliche Funktion ist eine kontinuierliche, nicht-periodische Funktion, die auf einem Segment der Länge T definiert ist.
Das Spektrum dieser Funktion ist diskret, d.h. es wird als eine unendliche Reihe von harmonischen Komponenten dargestellt - eine Fourier-Reihe.
In der Tat definiert die Fourier-Reihe eine periodische Funktion, die mit unserer Funktion im Intervall {0, T} übereinstimmt, aber für uns ist diese Periodizität nicht wesentlich.
Nächste.
Die Perioden der harmonischen Komponenten sind Vielfache des Intervalls {0, T}, auf dem die Ausgangsfunktion f(x) definiert ist. Mit anderen Worten, die Perioden der Oberschwingungen sind Vielfache der Dauer der Signalmessung. Die Periode der ersten Harmonischen in einer Fourier-Reihe ist beispielsweise gleich dem Intervall T, in dem die Funktion f(x) definiert ist. Die Periode der zweiten Harmonischen in einer Fourier-Reihe ist gleich dem Intervall T/2. Und so weiter (siehe Abbildung 8).
Dementsprechend sind die Frequenzen der harmonischen Komponenten Vielfache von 1/T. Das heißt, die Frequenzen der harmonischen Komponenten Fk sind Fk= k\T, wobei k Werte von 0 bis ∞ annimmt, zum Beispiel k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (bei der Frequenz Null, eine konstante Komponente).
Nehmen wir an, unsere Ausgangsfunktion sei ein Signal, das während T=1 Sekunde aufgezeichnet wurde. Dann ist die Periode der ersten Harmonischen gleich der Dauer unseres Signals T1=T=1 sec und die Frequenz der Harmonischen ist gleich 1 Hz. Die Periode der zweiten Harmonischen ist gleich der Dauer unseres Signals geteilt durch 2 (T2=T/2=0,5 Sek.) und die Frequenz ist gleich 2 Hz. Für die dritte Harmonische gilt T3=T/3 sec und die Frequenz beträgt 3 Hz. Und so weiter.
Der Abstand zwischen den Oberwellen beträgt in diesem Fall 1 Hz.
So kann ein Signal mit einer Dauer von 1 Sekunde in harmonische Komponenten zerlegt werden (um ein Spektrum zu erhalten) mit einer Frequenzauflösung von 1 Hz.
Um die Auflösung um den Faktor 2 auf 0,5 Hz zu erhöhen, ist es notwendig, die Messdauer um den Faktor 2 auf 2 Sekunden zu verlängern. Ein 10-Sekunden-Signal kann mit einer Frequenzauflösung von 0,1 Hz in harmonische Komponenten (Spektrum) zerlegt werden. Es gibt keine anderen Möglichkeiten, die Frequenzauflösung zu erhöhen.
Es gibt eine Möglichkeit, die Signaldauer künstlich zu verlängern, indem man Nullen zu der Reihe von Abtastwerten hinzufügt. Dadurch wird jedoch die tatsächliche Frequenzauflösung nicht erhöht.
3. Diskrete Signale und diskrete Fourier-Transformation
Mit der Entwicklung der Digitaltechnik haben sich die Möglichkeiten der Speicherung von Messdaten (Signalen) geändert. Während früher ein Signal auf einem Tonbandgerät aufgezeichnet und auf einem Band in analoger Form gespeichert werden konnte, werden die Signale jetzt digitalisiert und in Dateien im Computerspeicher als eine Reihe von Zahlen (Zählungen) gespeichert.
Das übliche Schema der Signalmessung und -digitalisierung sieht wie folgt aus.
Messwandler -- Signalnormierer -- ADC -- Computer
(Abb.9 Schematische Darstellung des Messkanals)
Das Signal des Messwandlers wird für eine Zeitspanne T an den ADC weitergeleitet. Die während der Zeitspanne T empfangenen Signalwerte (Abtastung) werden an den Computer übertragen und im Speicher abgelegt.
Was sind die Anforderungen an die Digitalisierungsparameter eines Signals? Ein Gerät, das das analoge Eingangssignal in einen diskreten Code (digitales Signal) umwandelt, wird Analog-Digital-Wandler (ADC) genannt (© Wiki).
Einer der grundlegenden Parameter des ADC ist die maximale Abtastrate - die Häufigkeit der Abtastung eines zeitlich kontinuierlichen Signals. Die Abtastrate wird in Hertz gemessen. ((© Wiki))
Nach dem Kotelnikov-Theorem kann ein kontinuierliches Signal, dessen Spektrum durch die Frequenz Fmax begrenzt ist, vollständig und eindeutig aus seinen diskreten Abtastwerten rekonstruiert werden, die in Zeitintervallen T = 1/2*Fmax genommen werden, d.h. mit einer Frequenz Fd ≥ 2*Fmax, wobei Fd - Abtastfrequenz; Fmax - die maximale Frequenz des Signalspektrums. Mit anderen Worten: Die Frequenz der Signaldigitalisierung (Abtastfrequenz des ADC) muss mindestens zweimal höher sein als die maximale Frequenz des Signals, das wir messen wollen.
Und was passiert, wenn wir Stichproben mit einer geringeren Häufigkeit nehmen als im Kotelnikov-Theorem gefordert?
In diesem Fall kommt es zu einem "Aliasing"-Effekt (auch bekannt als Stroboskopeffekt, Moiré-Effekt), bei dem sich ein hochfrequentes Signal nach der Digitalisierung in ein niederfrequentes Signal verwandelt, das in Wirklichkeit gar nicht existiert. In Abb. 11 ist die rote Sinuskurve mit hoher Frequenz das echte Signal. Die blaue Sinuskurve mit niedriger Frequenz ist ein fiktives Signal, das dadurch entsteht, dass während der Abtastzeit mehr als eine halbe Periode des hochfrequenten Signals vergeht.
Um den Aliasing-Effekt zu vermeiden, wird ein spezieller Anti-Alias-Filter (Tiefpassfilter) vor dem ADC eingesetzt. Er lässt Frequenzen durch, die niedriger als die Hälfte der ADC-Abtastfrequenz sind, und schneidet höhere Frequenzen ab.
Zur Berechnung des Signalspektrums anhand seiner diskreten Abtastwerte wird die diskrete Fourier-Transformation (DFT) verwendet. Auch hier ist zu beachten, dass das Spektrum eines diskreten Signals "per definitionem" auf eine Frequenz Fmax begrenzt ist, die kleiner als die halbe Abtastfrequenz Fd ist. Daher kann das Spektrum eines diskreten Signals durch die Summe der folgenden Werte dargestellt werden eine endliche Anzahl der Oberschwingungen, im Gegensatz zur unendlichen Summe der Fourier-Reihe eines kontinuierlichen Signals, dessen Spektrum unbegrenzt sein kann. Nach dem Kotelnikov-Theorem muss die maximale Frequenz einer Harmonischen so beschaffen sein, dass sie mindestens zwei Abtastwerte ausmacht, so dass die Anzahl der Harmonischen der Hälfte der Anzahl der Abtastwerte eines diskreten Signals entspricht. Das heißt, wenn es N Abtastwerte in der Probe gibt, ist die Anzahl der Oberwellen im Spektrum N/2.
Betrachten wir nun die diskrete Fourier-Transformation (DFT).
Vergleich mit der Fourier-Reihe
Wie man sieht, stimmen sie überein, abgesehen von der Tatsache, dass die Zeit in der FFT diskret ist und die Anzahl der Oberschwingungen auf N/2 begrenzt ist, was der Hälfte der Anzahl der Abtastwerte entspricht.
DFT-Formeln werden in dimensionslosen ganzzahligen Variablen k, s geschrieben, wobei k die Anzahl der Signalabtastwerte und s die Anzahl der Spektralkomponenten ist.
Der Wert s gibt die Anzahl der vollen Oberschwingungen pro Periode T (Dauer der Signalmessung) an. Die diskrete Fourier-Transformation wird verwendet, um die Amplituden und Phasen der Oberschwingungen numerisch, d. h. "am Computer", zu ermitteln.
Wie bereits erwähnt, entspricht die Zerlegung einer nichtperiodischen Funktion (unseres Signals) in Fourier-Reihen einer periodischen Funktion mit der Periode T (Abb.12).
Wie in Abb. 12 zu sehen ist, ist die Funktion f(x) periodisch mit der Periode T0. Da die Länge der Messprobe T jedoch nicht gleich der Periode T0 der Funktion ist, hat die als Fourier-Reihe erhaltene Funktion eine Unstetigkeit im Punkt T. Infolgedessen enthält das Spektrum dieser Funktion eine große Anzahl von hochfrequenten Oberwellen. Wenn die Dauer der Messprobe T mit der Periode der Funktion T0 übereinstimmt, würde das nach der Fourier-Transformation erhaltene Spektrum nur die erste Harmonische enthalten (eine Sinuskurve mit einer Periode, die der Dauer der Messprobe entspricht), da die Funktion f(x) eine Sinuskurve ist.
Mit anderen Worten: Das DFT-Programm "weiß" nicht, dass unser Signal ein "Stück einer Sinuswelle" ist, sondern versucht, eine periodische Funktion als Reihe darzustellen, die aufgrund der Unstetigkeit der einzelnen Teile der Sinuswelle eine Unstetigkeit aufweist.
Infolgedessen erscheinen Oberschwingungen im Spektrum, die insgesamt die Form der Funktion, einschließlich dieser Unstetigkeit, darstellen sollten.
Um ein "richtiges" Spektrum eines Signals zu erhalten, das eine Summe mehrerer Sinusschwingungen mit unterschiedlichen Perioden ist, ist es daher erforderlich, dass ein ganzzahlige Anzahl von Perioden von jede Sinuskurve sollte während der Messperiode des Signals vorhanden sein. In der Praxis kann diese Bedingung mit einer ausreichend langen Dauer der Signalmessung erfüllt werden.
Bei kürzerer Dauer wird das Bild "schlechter" aussehen:
In der Praxis kann es schwierig sein zu erkennen, wo die "echten Komponenten" und wo die "Artefakte" liegen, die durch die Inkonsistenz der Perioden der Komponenten und der Dauer der Signalabtastung oder durch "Sprünge und Brüche" in der Wellenform verursacht werden. Die Worte "echte Komponenten" und "Artefakte" sind natürlich nicht ohne Grund in Anführungszeichen gesetzt. Das Vorhandensein vieler Oberschwingungen in der Spektralkurve bedeutet nicht, dass unser Signal tatsächlich aus ihnen besteht. Das ist so, als würde man denken, dass die Zahl 7 aus den Zahlen 3 und 4 "besteht". Man kann sich die Zahl 7 als die Summe von 3 und 4 vorstellen - das ist richtig.
So kann auch unser Signal... oder besser gesagt nicht einmal "unser Signal", sondern eine periodische Funktion, die sich aus der Wiederholung unseres Signals (Sample) zusammensetzt, als Summe von Oberwellen (Sinuswellen) mit bestimmten Amplituden und Phasen dargestellt werden. Aber in vielen für die Praxis wichtigen Fällen (siehe Abbildungen oben) ist es tatsächlich möglich, die im Spektrum erhaltenen Oberschwingungen auch mit realen Prozessen in Verbindung zu bringen, die zyklischen Charakter haben und wesentlich zur Form des Signals beitragen.
Einige Ergebnisse
1. Ein reales Messsignal mit einer Dauer von T Sekunden, das durch einen ADC digitalisiert, d. h. durch eine Menge diskreter Abtastwerte (N Stücke) dargestellt wird, hat ein diskretes nichtperiodisches Spektrum, das durch eine Menge von Oberwellen (N/2 Stücke) dargestellt wird.
2. Das Signal wird durch eine Reihe gültiger Werte dargestellt, und sein Spektrum wird durch eine Reihe gültiger Werte dargestellt. Die Frequenzen der Oberschwingungen sind positiv. Nur weil es mathematisch bequemer ist, das Spektrum in komplexer Form unter Verwendung negativer Frequenzen darzustellen, bedeutet das nicht, dass "dies richtig ist" und "man es immer so machen sollte".
3. Das zum Zeitpunkt T gemessene Signal ist nur zum Zeitpunkt T bestimmt. Was vor der Messung des Signals geschah und was danach geschehen wird, ist der Wissenschaft unbekannt. Und in unserem Fall ist es uninteressant. Die FFT des zeitlich begrenzten Signals liefert sein "echtes" Spektrum in dem Sinne, dass sie unter bestimmten Bedingungen die Amplitude und Frequenz seiner Komponenten berechnen kann.