Skip to main content

Dokumentation für ScryLab v0.1.6

Changelogs

Übertragungsfunktion

Die Übertragungsfunktion bestimmt den Frequenzgang zwischen zwei Signalen und zeigt, wie ein System ein Eingangssignal im Frequenzbereich in ein Ausgangssignal umwandelt.

Verwendung

Kurzübersicht

  • Eingang: Genau zwei Signale (Eingang und Ausgang)
  • Einstellungen: Signale als Eingang und Ausgang zuweisen
  • Ausgang: Ein oder zwei neue Signale (Betrag und/oder Phase) im Frequenzbereich

Voraussetzungen

  • Genau zwei Signale auswählen
    • Ausreichende Datenlänge: Mindestens 4 Datenpunkte (für aussagekräftige Ergebnisse möglichst mehr)
    • Beide Signale sollten zeitsynchron sein (gleichen Zeitraum abdecken)
      • Falls nicht, wird die Ausrichtung automatisch durchgeführt
    • Beide Signale sollten gleichmäßig abgetastet sein
      • Falls nicht, wird eine Neuabtastung automatisch durchgeführt

Einstellungen

ParameterWerteBeschreibung
EingangssignalSignaleDas Eingangssignal des Systems
AusgangssignalSignaleDas Ausgangssignal des Systems
Betragaktiviert / deaktiviertBei Aktivierung wird der Betragsgang berechnet (Absolutwert der Übertragungsfunktion)
Phaseaktiviert / deaktiviertBei Aktivierung wird der Phasengang berechnet (Winkel der Übertragungsfunktion)
Startfrequenz0 - EndfrequenzUntere Frequenzgrenze der Analyse; Frequenzen darunter werden ausgeschlossen
EndfrequenzStartfrequenz - ∞Obere Frequenzgrenze der Analyse; Frequenzen darüber werden ausgeschlossen
MethodeFFT / WelchFFT: Einzelne Transformation. Welch: Gemittelt über Segmente (empfohlen für verrauschte oder zusammengesetzte Daten)

Erweitert

ParameterWerteBeschreibung
Einheitlinear / dBAusgabeeinheit für den Betrag
Zero Padding0 - 10.000Anzahl der angehängten Nullen zur Verbesserung der Frequenzauflösung (nur FFT-Methode)
Segmentlänge0,1 - 1000 sLänge jedes Segments bei der Welch-Methode. Länger = bessere Frequenzauflösung, kürzer = mehr Mittelung
Überlappung0 - 0,9Überlappung zwischen Segmenten bei der Welch-Methode. 0,5 (50 %) ist typisch

Ausgabe

Je nach gewählten Einstellungen erzeugt diese Operation ein Betrags- und/oder Phasensignal:

  • Betragsgang

    • Name: {Ausgangssignalname} - TF Magnitude
    • X-Achse: Frequenz (Hz)
    • Y-Achse: Betrag (linear oder dB)
    • Interpretation: Zeigt, wie stark das System verschiedene Frequenzen verstärkt oder dämpft
  • Phasengang

    • Name: {Ausgangssignalname} - TF Phase
    • X-Achse: Frequenz (Hz)
    • Y-Achse: Phase (Radiant)
    • Interpretation: Zeigt die vom System eingeführte Phasenverzögerung bei verschiedenen Frequenzen

Info

Die Frequenzauflösung hängt von der Länge und Abtastrate des Eingangssignals ab. Zero Padding kann die Auflösung geringfügig verbessern.

Beispiel-Workflow

Bei der Analyse von Messdaten könnte ein typischer Workflow so aussehen:

  1. Tiefpassfilter auf beide Signale anwenden.

  2. Übertragungsfunktion

    Beide Signale als Eingang verwenden und den Betrag berechnen.

  3. Gleitender Mittelwert

    Einen gleitenden Mittelwert auf das Ergebnis anwenden.

  4. Für mehrere Messungen desselben Systems wiederholen.

  5. Mittelwert

    Die Mittelwert-Operation verwenden, um die Ergebnisse zu kombinieren.

  6. Das Ergebnis ist ein Signal mit den Systemcharakteristika.

Dieser Ansatz ermöglicht den Vergleich des Übertragungsverhaltens verschiedener Systeme.

Technische Details

Methoden

Diese Operation unterstützt zwei Methoden zur Berechnung der Übertragungsfunktion:

FFT-Methode (Standard)

Der klassische Einzeltransformations-Ansatz. Geeignet für:

  • Saubere Signale mit minimalem Rauschen
  • Einzelne Sweeps oder kontinuierliche Anregung
  • Wenn maximale Frequenzauflösung benötigt wird

Welch-Methode

Teilt das Signal in überlappende Segmente, berechnet die Übertragungsfunktion für jedes Segment und mittelt die Ergebnisse. Geeignet für:

  • Verrauschte Daten – Mittelung reduziert Rauschen
  • Zusammengesetzte Messungen – vermeidet Phasenartefakte durch Zeitversätze
  • Mehrere Sweeps in einer Aufnahme – jeder Sweep wird zu einem Segment
  • Stabilere und reproduzierbarere Ergebnisse

Die Welch-Methode berechnet:

H(f)=Pxy(f)Pxx(f)H(f) = \frac{P_{xy}(f)}{P_{xx}(f)}

Dabei ist PxyP_{xy} die Kreuzspektraldichte und PxxP_{xx} die Leistungsspektraldichte, beide berechnet mit der Welch-Methode mit Hanning-Fenster und konfigurierbarer Überlappung.

Wann die Welch-Methode nutzen

Die Welch-Methode verwenden, wenn:

  • Mehrere Messungen zusammengefügt wurden
  • Die Daten Lücken oder Pausen zwischen den Sweeps enthalten
  • Glattere und robustere Ergebnisse gewünscht sind
  • Phasengenauigkeit wichtig ist

Vorverarbeitung

Zunächst werden die ausgewählten Signale in folgenden Schritten vorverarbeitet:

  1. Ausrichtung
  2. NaN-Behandlung
  3. Neuabtastung
  4. Zero Padding

Hauptoperationen

FFT-Methode

Die Übertragungsfunktion wird im Frequenzbereich mittels Fast Fourier Transform (FFT) berechnet.

Die FFT wird für beide Signale mit numpy.fft.fft berechnet:

X(f)=FFT(x(t)),Y(f)=FFT(y(t))X(f) = \mathrm{FFT}(x(t)), \quad Y(f) = \mathrm{FFT}(y(t))

Die entsprechenden Frequenzbins werden mit numpy.fft.fftfreq berechnet:

f=fftfreq(N,d=1/fs)f = \mathrm{fftfreq}(N, d=1/f_s)

wobei NN die Anzahl der Abtastwerte und fsf_s die Abtastrate ist.

Die Übertragungsfunktion ergibt sich dann als:

H(f)=Y(f)X(f)H(f) = \frac{Y(f)}{X(f)}

Welch-Methode

Die Welch-Methode verwendet scipy.signal.csd für die Kreuzspektraldichte und scipy.signal.welch für die Leistungsspektraldichte:

  1. Das Signal wird in überlappende Segmente der Länge nperseg aufgeteilt
  2. Jedes Segment wird mit einem Hanning-Fenster multipliziert
  3. Für jedes Segment wird die FFT berechnet
  4. Kreuzspektraldichte PxyP_{xy} und Leistungsspektraldichte PxxP_{xx} werden über alle Segmente gemittelt
  5. Die Übertragungsfunktion wird berechnet als:
H(f)=Pxy(f)Pxx(f)H(f) = \frac{P_{xy}(f)}{P_{xx}(f)}

Diese Mittelung reduziert die Varianz und liefert eine stabilere Schätzung, besonders bei verrauschten Daten.

Betrag

Der Betrag wird durch den Absolutwert H(f)|H(f)| des Übertragungsverhaltens mit numpy.absolute berechnet:

H(f)=abs(H(f))|H(f)| = abs(H(f))
dB-Umrechnung

Bei Auswahl von dB wird das Ergebnis in Dezibel umgerechnet:

H(f)dB=20log10(H(f))|H(f)|_{dB} = 20 * log10(|H(f)|)

Phase

Die Phasenantwort wird als Winkel (Argument) der Übertragungsfunktion mit numpy.angle berechnet:

H(f)=angle(H(f))∠H(f) = angle(H(f))

Nachverarbeitung

Das Ergebnis wird auf den angegebenen Frequenzbereich gefiltert.

Typische Anwendungsfälle

  • Systemidentifikation: Übertragungsfunktion eines unbekannten Systems messen, indem ein bekanntes Eingangssignal angelegt und das Ausgangssignal gemessen wird.
  • Filtercharakterisierung: Frequenzgang analoger oder digitaler Filter analysieren.
  • Schwingungsanalyse: Untersuchung, wie mechanische Systeme auf verschiedene Frequenzanregungen reagieren.
  • Regelungsentwurf: Analyse der Streckendynamik für den Reglerentwurf.