irgendwann holt einen die Systemtheorie wieder ein....
Mein Problem:
gegeben sei:
- ein Einganssignal (E(t_i)) (abgetastet im Zeitbereich) , Typ
sinus sweep, konstante Amplitude, Frequenz 0..x Hz.
- ein Ausgangssignal als Antwort auf das Eingangssignal. Das System sei
zeitinvariant. (A(t_i))
gesucht:
Real- und Imaginärteil der Übertragungsfunktion S(f)
was ich weiß:
S(f) = Wirkung / Ursache = A(f) / E(f)
was ich nicht weiß :
wie man S(f) oder S(f_i) also diskret numerisch am
geschicktesten berechnet.
Ich hab mal naiv in Octave (Matlab clone)
fft(Ai)./fft(Ei)
gerechnet, aber ich glaub nicht das das stimmt.
Es geht hier nicht um eine Theorie oder Hausaufgabe sondern um
praktische Messtechnik.
Diverse Fundstellen im web scheinen alle immer nur die Theorie
voneinander abzuschreiben.
Als Literatur hab ich mal R.Unbehauen, Marko und Stearns konsultiert.
Das sind aber alles eher Bücher aus meiner eher vordigitalen
(Studien)-Zeit (ich bin nicht mehr der Jüngste :-) )
Irgendwelche Hinweise oder wenigsten treffende Literaturhinweise ??
Danke und Grüße
Markus Greim
Du (greim) meintest am 17.07.08:
> Mein Problem:
> gegeben sei:
> - ein Eingangssignal (E(t_i)) (abgetastet im Zeitbereich) , Typ
> sinus sweep, konstante Amplitude, Frequenz 0..x Hz.
> - ein Ausgangssignal als Antwort auf das Eingangssignal. Das System
> sei zeitinvariant. (A(t_i))
> gesucht:
> Real- und Imaginärteil der Übertragungsfunktion S(f)
Also musst Du zuerst (z.B. mit Hilfe der Fourier-Transformation) aus dem
Datenhaufen so etwas wie ein Bündel von sinusförmigen Schwingungen
machen.
Wenn ich die Kurzbeschreibung richtig verstanden habe: das
Eingangssignal ist (pro Messung) monofrequent und stabil ("reiner
Sinus")?
> Ich hab mal naiv in Octave (Matlab clone)
> fft(Ai)./fft(Ei)
> gerechnet, aber ich glaub nicht das das stimmt.
Wie wäre es, wenn Du zuerst nur die Fouriertransformation machst und Dir
die dort angebotenen Ergebnisse anschaust?
Da solltest Du zuerst prüfen, ob das Bündel von Frequenzen "sinnvoll"
aussieht und welche Frequenzen Du getrost weglassen kannst (nennt sich
"Tiefpass").
Viele Gruesse!
Helmut
E(s) = 1 Einheitssprung
S(s) = A(s) Sprungantwort (Übertragungsfunktion)
Siehe Approximation Seite 5
http://home.arcor.de/janch/janch/_control/20071104-pd5(pid)z1z2/
--
Regards/Grüße http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: ja...@nospam.arcornews.de
Microsoft-kompatibel/optimiert für IE7+OE7
>
>
>
> E(s) = 1 Einheitssprung
> S(s) = A(s) Sprungantwort (Übertragungsfunktion)
>
> Siehe Approximation Seite 5
>
> http://home.arcor.de/janch/janch/_control/20071104-pd5(pid)z1z2/
>
jou, so weit war ich schon. Aber bitte siehe unter "gegeben":
Ich kann auf das (mechanische) System keinen Sprung aufbringen, das
Sinus Signal ist zwingend!
Markus
Das ist die klassische Verwendung eines Vektor-Netzwerkanalysators.
Du bekommst für jede Frequenz Amplitude und Phase, was beliebig in Real-
und Imaginärteil umgerechnet werden kann.
Unter der Voraussetzung, dass die Sweepgeschwindigkeit angemessen ist,
kannst Du das Eingangssignal auf Nullstellen untersuchen, somit eine
ganze Periode auffinden.
Das Ergebnis ist bei einer linearen Übertragungsfunktion ebenfalls eine
Sinuswelle, deren Amplitude und Phase zu in Bezug auf das Eingangssignal
setzen kannst.
Eine FFT ist hier eigentlich nicht angebracht oder besser gesagt
erhältst Du ohnehin unter den o.a. Voraussetzungen nur den
Gleichspannungsanteil und die Grundwelle.
Gruss Udo
Markus Greim schrub:
> Ich hab mal naiv in Octave (Matlab clone)
>
> fft(Ai)./fft(Ei)
>
> gerechnet, aber ich glaub nicht das das stimmt.
Du musst dir mal ansehen, wie Octave das Ergebnis der FFT im
Ergebnisvektor überhaupt ablegt. Das muss nicht unbedingt auf
naheliegende Weise passieren. An sonsten sollte es richtig sein.
Allerdings: Der Weg mit der FFT geht davon aus, dass es sich um
ein zyklisches Signal handelt. Durch diese Annahme können
Schmutzeffekte entstehen. Am besten: Starte die Messung bei
ausgeschalteter Maschine und beende sie auch bei ausgeschalteter
Maschine. Zwischendurch einschalten und den Sweep machen. Also
kurz gesagt eine _lange_ Messreihe aufnehmen im Vergleich zu den
zu beobachtenden Frequenzen.
Was natürlich noch die Sache stören kann: Dein System könnte
nichtlinear sein. In dem Fall wirst du sicher sehr komische
Ergebnisse bekommen. Praktisch ist jedes mechanische System
nichtlinear. Deswegen solltest du das etwas in Hinterkopf haben,
wenn du das Ergebnis betrachtest: Tritt z.B. bei 50Hz ein
starker Durchgriff (großes Ausgangssignal) auf und ebenso bei
100Hz, 150Hz,... dann haben die Werte bei 100Hz,... eventuell
nicht viel zu bedeuten, es sind nur Artefakte aus der
Nichtlinearität bei der 50Hz-Schwingung.
CU Rollo
Markus Greim schrieb:
> Ich hab mal naiv in Octave (Matlab clone)
>
> fft(Ai)./fft(Ei)
>
> gerechnet, aber ich glaub nicht das das stimmt.
doch, das mache ich andauernd so (gesetzt das / eine Komponentenweise,
Komplexe Division ist).
Bei Sweep muss man aber ein FFT über die Gesamte Aufnahme machen. Das
kostet mächtig Speicher und CPU. Ferner wird man pro Frequenzkanal das
SNR genau betrachten müssen. Nur da wo fft(Ei) signifikant Amplitude
hat, kommt auch etwas vernünftiges raus. Und da hat mna bei einem Sweep
das Problem, dass natürlich jede Frequenz nur kurz dran ist und die
meiste Zeit sich also nur Rauschen auf diesem Frequenzkanal sammelt.
Ich nehme dafür für diese Messart entweder MLS-Signale oder definierte
kümstliche Rauschsignale die durch ifft erzeugt werden.
> Irgendwelche Hinweise oder wenigsten treffende Literaturhinweise ??
Sweep ist nicht so der Brüller. Wenn man den Sweep in der Frequenz
quantisieren könnte, wäre das besser. Also N diskrete Frequenzen, die
allesamt ein Vielfaches eines geeignet zu wählenden Messintervalls sind
das einer Zweierpotenz an Samples entsprechen sollte.
Dann kann man folgendes machen:
Generator Messstatus
------------ -----------------------
Settle Delay
Frequenz 1 -----------------------
Sample für Frequenz 1
-------------------------------------
Settle Delay
Frequenz 2 -----------------------
Sample für Frequenz 2
-------------------------------------
...
Die Sampledauer muss immer ein vielfaches der Periodizität der zu
messenden Frequenz sein. Dann berechnet man für jede Frequenz einzeln
fft(Ea)/fft(Ei) nimmt aber nur den Koeffizienten des Ergebnisses, der
der aktuellen Anregungsfrequenz exakt entspricht. Damit hat man so eine
Art Lock-In gemacht und erreicht selbst unter räudigen Bedingungen
exzellente SNRs (z.B. >60dB mit einem 8-Bit ADC in störungsreicher
Umgebung).
Diese Qualität hat man nicht, wenn man die Messmethode nicht mit dem
Wissen anreichert, welche Frequenz gerade gemessen wird.
Mathematisch gesehen kann man sich die FFTs natürlich sparen, wenn man
nur einen Koeffizienten braucht und einfach eine PCA mit einem
Quadratursignal der Anregungsfrequenz machen. Das ist extrem schnell, da
O(n) in CPU und O(1) im Speicher.
Theoretisch bekommt man fast genausogute Ergebnisse, wenn man einen
kontinuierlichen Sweep geschickt auswertet. Aber das ist /erheblich/
mehr Aufwand und birgt Risiken, wie beispielsweise Schatten hinter Polen
mit hoher Güte.
Marcel
D.h. möglicherweise bis in den Ural...
UP
Das wäre natürlich ideal, aber
Hardware kann ich hier nicht einsetzen. Ich muss die beiden Datensätze
E_i und A_I softwaremäßig auf einem Linux Rechner verarbeiten
Grüße
Markus
da gibt es noch die Funktion fftshift das scheint dann schon plausibel
zu sein. Bedenken habe ich etwas bei der komplexen Division der beiden
Datensätze (Vektoren) .
Kann man da "einfach" Element f. Element komplex dividieren.?
An sonsten sollte es richtig sein.
> Allerdings: Der Weg mit der FFT geht davon aus, dass es sich um
> ein zyklisches Signal handelt. Durch diese Annahme können
> Schmutzeffekte entstehen. Am besten: Starte die Messung bei
> ausgeschalteter Maschine und beende sie auch bei ausgeschalteter
> Maschine. Zwischendurch einschalten und den Sweep machen. Also
> kurz gesagt eine _lange_ Messreihe aufnehmen im Vergleich zu den
> zu beobachtenden Frequenzen.
>
ok
Aber ein sweep ist ja, wenn ich mich dunkel erinnere
eigentlih eine anständige Funktion. Also sin(wt) wobei w = k*t.
Das müsste sich ja sogar per Hand transformieren lassen.
> Was natürlich noch die Sache stören kann: Dein System könnte
> nichtlinear sein. In dem Fall wirst du sicher sehr komische
> Ergebnisse bekommen. Praktisch ist jedes mechanische System
> nichtlinear. Deswegen solltest du das etwas in Hinterkopf haben,
> wenn du das Ergebnis betrachtest: Tritt z.B. bei 50Hz ein
> starker Durchgriff (großes Ausgangssignal) auf und ebenso bei
> 100Hz, 150Hz,... dann haben die Werte bei 100Hz,... eventuell
> nicht viel zu bedeuten, es sind nur Artefakte aus der
> Nichtlinearität bei der 50Hz-Schwingung.
>
das macht mir mer Kummer. In einem mechanischen Modell sind natürlich
immer Reibglieder enthalten..
Danke f. die Hinweise
Markus
> Bei Sweep muss man aber ein FFT über die Gesamte Aufnahme machen. Das
> kostet mächtig Speicher und CPU. Ferner wird man pro Frequenzkanal das
> SNR genau betrachten müssen. Nur da wo fft(Ei) signifikant Amplitude
> hat, kommt auch etwas vernünftiges raus. Und da hat mna bei einem Sweep
> das Problem, dass natürlich jede Frequenz nur kurz dran ist und die
> meiste Zeit sich also nur Rauschen auf diesem Frequenzkanal sammelt.
> Ich nehme dafür für diese Messart entweder MLS-Signale oder definierte
> kümstliche Rauschsignale die durch ifft erzeugt werden.
>
MLS ist mir neu. Hab gerade etwas danach gegoogelt Wie "hört" sich denn
so ein MLS Signal an? Ist das ein spezielles rauschen ? Die Frage ist ob
man ein mechanisches System damit anregen kann. Mein Aktor kann nur
begrenzt Energie / Zeiteinheit umsetzen.
>
>> Irgendwelche Hinweise oder wenigsten treffende Literaturhinweise ??
>
> Sweep ist nicht so der Brüller. Wenn man den Sweep in der Frequenz
> quantisieren könnte, wäre das besser. Also N diskrete Frequenzen, die
> allesamt ein Vielfaches eines geeignet zu wählenden Messintervalls sind
> das einer Zweierpotenz an Samples entsprechen sollte.
> Dann kann man folgendes machen:
>
> Generator Messstatus
> ------------ -----------------------
> Settle Delay
> Frequenz 1 -----------------------
> Sample für Frequenz 1
> -------------------------------------
> Settle Delay
> Frequenz 2 -----------------------
> Sample für Frequenz 2
> -------------------------------------
> ...
>
> Die Sampledauer muss immer ein vielfaches der Periodizität der zu
> messenden Frequenz sein. Dann berechnet man für jede Frequenz einzeln
> fft(Ea)/fft(Ei) nimmt aber nur den Koeffizienten des Ergebnisses, der
> der aktuellen Anregungsfrequenz exakt entspricht. Damit hat man so eine
> Art Lock-In gemacht und erreicht selbst unter räudigen Bedingungen
> exzellente SNRs (z.B. >60dB mit einem 8-Bit ADC in störungsreicher
> Umgebung).
ok, das leuchtet ein, damit vermeidet man Fenster Effekte
> Diese Qualität hat man nicht, wenn man die Messmethode nicht mit dem
> Wissen anreichert, welche Frequenz gerade gemessen wird.
> Mathematisch gesehen kann man sich die FFTs natürlich sparen, wenn man
> nur einen Koeffizienten braucht und einfach eine PCA mit einem
> Quadratursignal der Anregungsfrequenz machen. Das ist extrem schnell, da
> O(n) in CPU und O(1) im Speicher.
>
hast du dazu irgendeinen Literaturtipp ? Eventuell im Zusammenhang mit
Matlab / Octave ?
> Theoretisch bekommt man fast genausogute Ergebnisse, wenn man einen
> kontinuierlichen Sweep geschickt auswertet. Aber das ist /erheblich/
> mehr Aufwand und birgt Risiken, wie beispielsweise Schatten hinter Polen
> mit hoher Güte.
>
>
leuchtet ein
Grüße
Markus
Du (greim) meintest am 18.07.08:
> Bedenken habe ich etwas bei der komplexen Division
> der beiden Datensätze (Vektoren) .
> Kann man da "einfach" Element f. Element komplex dividieren.?
In aller Unkenntnis der speziellen Daten:
FFT sollte eine Summe von Daten liefern (für diverse Frequenzen), und
Summen bei Brüchen sind Teufelszeug.
> Aber ein sweep ist ja, wenn ich mich dunkel erinnere
> eigentlih eine anständige Funktion. Also sin(wt) wobei w = k*t.
> Das müsste sich ja sogar per Hand transformieren lassen.
Da würde ich gern nachfragen - bei Deiner Vermutung ergibt sich ja kein
kontinuierliches Spektrum, sondern ein diskretes (okay - die Frequenzen
sollten ganzzahlig sein).
Ist "sweep" das, was früher mal "wobbeln" war? Alle Frequenzen von 1 Hz
bis 1 GHz kontinuierlich anlegen?
Viele Gruesse!
Helmut
Ich meinte schon, dass Du das numerisch lösen wirst.
Du kannst beispielsweise die den Momentanwert der Frequenz aus deinem
Datensatzermitteln und hast somit eine volle Periode, die Du analysieren
kannst. Du hast somit den stationären Zustand bei einer Frequenz und
kannst Amplitude und Phase bestimmen. Per Euler lässt sich das in Re und
Im umrechnen.. fertig.
Und das machst Du jetzt für jede Periode oder mit entsprechender
Reduktion nur über jede n-te Periode und bekommst somit den
frequenzabhängigen Verlauf der gesuchten Grössen, also den Frequenzgang.
-Udo
genau, hier liegt glaube ich das Problem, wie dividiert man diese beiden
Summen numerisch am geschicktesten ????
>
>> Aber ein sweep ist ja, wenn ich mich dunkel erinnere
>> eigentlih eine anständige Funktion. Also sin(wt) wobei w = k*t.
>> Das müsste sich ja sogar per Hand transformieren lassen.
>
> Da würde ich gern nachfragen - bei Deiner Vermutung ergibt sich ja kein
> kontinuierliches Spektrum, sondern ein diskretes (okay - die Frequenzen
> sollten ganzzahlig sein).
>
> Ist "sweep" das, was früher mal "wobbeln" war? Alle Frequenzen von 1 Hz
> bis 1 GHz kontinuierlich anlegen?
>
ja, ja ich hab nur gedacht so altmodische Begriffe verwendet man nicht
mehr ;-)
Da wir es mit einem mechanischen System zu tun haben ist der
Frequenzbereich eher 0..20Hz
Grüße
Markus
Du (greim) meintest am 18.07.08:
>> In aller Unkenntnis der speziellen Daten:
>> FFT sollte eine Summe von Daten liefern (für diverse Frequenzen),
>> und Summen bei Brüchen sind Teufelszeug.
> genau, hier liegt glaube ich das Problem, wie dividiert man diese
> beiden Summen numerisch am geschicktesten ????
Zerlege es in Teilschritte:
Anrege-Frequenz 5 Hz, Ergebnisdaten
Anrege-Frequenz 10 Hz, Ergebnisdaten
usw.
Dann ist einer der beiden Teile des Bruches keine Summe mehr.
>> Ist "sweep" das, was früher mal "wobbeln" war? Alle Frequenzen von 1
>> Hz bis 1 GHz kontinuierlich anlegen?
> ja, ja ich hab nur gedacht so altmodische Begriffe verwendet man
> nicht mehr ;-)
> Da wir es mit einem mechanischen System zu tun haben ist der
> Frequenzbereich eher 0..20Hz
Also diskretisieren.
Und dann schaust Du Dir die Ergebnisse der einzelnen Anrege-Frequenzen
an und versuchst sie zu vereinfachen.
Viele Gruesse!
Helmut
Das will er offenbar nicht, sucht möglichgerweise eine fertige Funktion
in der Bibliothek... Habe ihm auch schon vorgeschlagen, periodenweise
und dn sinnvollen Abschnitten diskret zu rechnen...na denn
Gruss Udo
Grüße
Markus
Markus Greim schrieb:
> MLS ist mir neu. Hab gerade etwas danach gegoogelt Wie "hᅵrt" sich denn
> so ein MLS Signal an? Ist das ein spezielles rauschen ?
ja. Es hᅵrt sich exakt wie weiᅵes Rauschen an.
> Die Frage ist ob
> man ein mechanisches System damit anregen kann. Mein Aktor kann nur
> begrenzt Energie / Zeiteinheit umsetzen.
Die Frage ist, welche Variable dem Signal folgt. Wenn es die
Beschleunigung ist, geht das natᅵrlich. Bei Geschwindigkeit oder gar Ort
ist es Unsinn. MLS-Signale sind halt einfach zu erzeugen, haben einen
Crest-Faktor von 1 und damit eine bei gegebener Maximalamplitude
optimale Energiedichte. Mehr nicht.
Wenn man Ortskurve eines mechanischen Systems aufprᅵgen mᅵchte, tut man
im allgemeinen sowieso gut daran, kein weiᅵes Rauschen zu verwenden,
sondern Rosa Rauschen oder ᅵhnliches.
In anderen Fᅵllen nehme ich gerne periodisches Rauschen. Also im
einfachsten Fall ein stᅵck Rauschen immer wiederholen. Bei Weiᅵem
Rauschen funktioniert das einfach so, und man bekommt statt einem
kontinuierlichen Spektrum eben ein diskretes. Im allgemeinen Fall fᅵhrt
man mit folgender Generatorfunktion fᅵr bandbreitenbegrenztes Rauschen gut:
Ei(t) = ifft( if (f element ]fmin, fmax])
then (f^kappa * exp(2*pi*i*random())
else 0 )
Das Ergebnis normalisiert man dann einfach auf ein fᅵr die Anwendung
sinnvolles Eimax.
kappa=0 und fmin=0 und fmax=fNyquist gibt weiᅵes Rauschen ohne
Bandbreitenlimit.
kappa=-1 gibt Rosa Rauschen. fmin muss dann natᅵrlich sinvoll gesetzt
werden.
Je nach Anwendungsfall kann man kappa variieren. Sinvolle Werte liegen
typischerweise zwischen -1,5 und 0,5 in 0,5er Schritten.
Solange man keine systembedingte Integration oder Differentiation in der
zu messenden ᅵbertragungsfunktion hat und man eine lineare Frequenzskala
im Ergebnis haben will, tut man gut daran, kappa auf 0 zu lassen.
Fᅵr eine logarithmische Frequenzskala setzt man kappa um eins herab.
Dann muss man allerdings in der Auswertung auch benachbarte
Frequenzkanᅵle im Ergebnis der FFTs zusammenfassen, so dass man effektiv
Frequenzkanᅵle ᅵhnlicher logarithmischer Breite bekommt. Die
Zusammenfassung muss sinnvollerweise durch Mittelwertbildung im
Endergebnis fft(Ea)/fft(Ei) und in Amplitude und Gruppenlaufzeit
erfolgen. Im Endergebnis deshalb, weil die Phasen benachbarter Kanᅵle im
Anregungssignal zufᅵllig, also unkorreliert sind. ᅵber die
Gruppenlaufzeit deshalb, weil die Phase der ᅵbertragungsfunktion
ᅵblicherweise schnell verᅵnderlich sein kann, wenn man es mit Latenzen
zu tun hat. Die Ermittlung der Gruppenlaufzeit erfordert alledings ein
Phase-Unrolling. Wenn die Frequenzstᅵtzpunkte dicht genug liegen, kann
man einfach die in Polarkoordinaten (Ammplitude, Phase) kᅵrzere
Entfernung nehmen. Grᅵᅵere Latenzen sollte man zuvor per Multiplikation
mit exp(2*pi*i*f*linearshift) kompensieren. Theoretisch kann man
linearshift per Least-Square-FIT bestimmen, aber das ist wegen der
Zahlreichen lokalen Minima ziemlich instabil. Schneller geht es mit der
Hand und typischerweise ist es sowieso eine Konstante des Messaufbaus.
Genau stimmen muss der Wert ohnehin nicht, da es keinen unmittelbaren
Einfluss auf das Ergebnis gibt.
>> Die Sampledauer muss immer ein vielfaches der Periodizitᅵt der zu
>> messenden Frequenz sein. Dann berechnet man fᅵr jede Frequenz einzeln
>> fft(Ea)/fft(Ei) nimmt aber nur den Koeffizienten des Ergebnisses, der
>> der aktuellen Anregungsfrequenz exakt entspricht. Damit hat man so
>> eine Art Lock-In gemacht und erreicht selbst unter rᅵudigen
>> Bedingungen exzellente SNRs (z.B. >60dB mit einem 8-Bit ADC in
>> stᅵrungsreicher Umgebung).
> ok, das leuchtet ein, damit vermeidet man Fenster Effekte
Ja, die Fenstereffekte werden genau dann vermieden, wenn das
Anregungssignal in einer festen (aber unbekannten) Phasenbeziehung zu
den aufgenommenen Ei- und Ea-Signalen steht und die FFTs fᅵr
Testsignalgenerierung und Analyse gleich lang sind. Dazu mᅵssen die
Sampleratengeneratoren der Ein- und Ausgᅵnge aus demselben Quarz
synchronisiert werden. Das Kriterium erfᅵllen glᅵcklicherweise die
allermeisten Messkarten und selbst billigste Soundkarten.
Ich wᅵre Ei auch immer nochmal mit aufzeichen und ausschlieᅵlich dieses
Signal zur Auswertung verwenden. Damit sind jegliche Latenz- und
Dreckeffekte der Messkarten und auch des Aktors weitestgehend
kompensiert (typisch -50dB), und man ist nur noch sensitiv auf die
Differenzen zwischen den beiden (hoffentlich baugleichen) Aufnehmern.
>> Diese Qualitᅵt hat man nicht, wenn man die Messmethode nicht mit dem
>> Wissen anreichert, welche Frequenz gerade gemessen wird.
>> Mathematisch gesehen kann man sich die FFTs natᅵrlich sparen, wenn man
>> nur einen Koeffizienten braucht und einfach eine PCA mit einem
>> Quadratursignal der Anregungsfrequenz machen. Das ist extrem schnell,
>> da O(n) in CPU und O(1) im Speicher.
>>
> hast du dazu irgendeinen Literaturtipp ? Eventuell im Zusammenhang mit
> Matlab / Octave ?
Nein, sorry. Ich habe mir sowohl das Verfahren als auch die Software
selber zusammengepuzzelt. Die Auswertung mache ich einfach mit zwei
kleinen C-Programmen. Eines liefert das Testsignal an stdout, was ich
dann per Pipe an das PCM-Sounddevice schicke. Das andere bekommt Ea und
Ei von PCM-Device (Line-In, Stereo) an stdin und fᅵhrt die notwendigen
Berechnungen durch, schreibt nach jedem FFT-Zyklus (bei mir zwischen
65536 und 262144 Samples) ein Ergebnisfile mit der ᅵbertragungsfunktion
und gibt ᅵber stdout das Visualisierungskommando an gnuplot. Optional
mittle ich ᅵber alle bisher gemessenen Perioden. Die Mittelung findet
allerdings auf den rohen Samples statt, da alle Nutzsignalanteile
notwendigerweise periodisch sind.
Im (stufenweisen) Sweepmodus synchronisiere ich einmal am Anfang mit
einem Testsignal mit Phasensprung und zᅵhle ab da in beiden Programmen
parallel die Samples um die verschiedenen Frequenzschritte hinter sich
zu bringen. Die Messung kann dann bis zu einer Dreiviertelstunde alleine
laufen. Sweep ist hochprᅵzise aber langsam. Mit Rauschen hat man meist
schon nach einigen Sekunden die ersten brauchbaren Ergebnisse. Hᅵten
sollte man sich vor der Rauschmessung, wenn man mit Nichtlinearitᅵten
rechnet oder ohnehin Probleme mit dem SNR hat.
Ich mache auf die Weise unter anderem auch Audiomessungen von
Lautsprechern. Im Sweepmodus kann man problemlos im Garten mit
ordentlicher Gerᅵuschkulisse messen - upfire und schrᅵg neben der
Hausecke versteht sich, damit nichts zurᅵck kommt. Die Ergebnisse passen
exakt ᅵber die Messkurven professioneller Labors mit schalltoten Rᅵumen
und sind meist sogar weniger verrauscht und reicher an Stᅵtzpunkten.
Aber genausogut kann man auf die Tour andere Netzwerkanalysen (Zweipol
und Vierpol) machen oder ein prᅵzises LCR-Meter (bei moderaten
Frequenzen) basteln.
Mit einem DSO kann man auch in gehobene Frequenzbereiche vordringen.
Manche davon beherrschen sogar die notwendigen Auswertungsschritte FFT
Amplitude, FFT Phase, Amplitudenquotient und Phasendifferenz on the fly.
Allerdings ist es nicht trivial, ein synchrones Testsignal zu bekommen,
das selbst professionelle DSOs meines Wissens den Wandlertakt nicht
rausrᅵcken.
Marcel
So etwas selber zu programmieren ist anstruchsvoll, erfreut aber das
Gemüt wenn es dann funktioniert und das auch noch elegant.
Gruss Udo
O.g. 'Beispiel' zeigt eine Approximation für Dfgl 5. Ordnung mit starker
Dämpfung.
Ein mechanisches Beispiel könnte z.B. ein Pendel mit Dämpfung
sein:
T^2*s^2 + 2*d*T*s + 1 = C
d << 1 (d = 0 wäre ein theoretisches Konstrukt)
oder äquivalent
A2*y'' + A1*y' + A0*y = C
<http://de.wikipedia.org/wiki/%C3%9Cbertragungsfunktion>
Die Übertragungsfunktion ist für ein System immer dieselbe – unabhängig von
der Wahl eines speziellen Ein/Ausgangssignalpaares. Deshalb beschreibt sie
das gesamte mögliche Verhalten des Systems.
</>
2. Beispiel wie oben erwähnt:
Siehe
http://home.arcor.de/janch/janch/_news/20080719-markus/
Das IST die Übertragungsfunktion für die gemessenen Datenpunkte und ist für
beliebige Störfunktionen (z.B. C=1, C=sin(w*t), C=t*cos(w*t), etc.) gültig!
--
Regards/Grüße http://home.arcor.de/janch/janch/menue.htm
Jan C. Hoffmann eMail aktuell: ja...@nospam.arcornews.de
Microsoft-kompatibel/optimiert für IE7+OE7
> Markus
>
>
>
>
>
> O.g. 'Beispiel' zeigt eine Approximation für Dfgl 5. Ordnung mit starker
> Dämpfung.
>
> Ein mechanisches Beispiel könnte z.B. ein Pendel mit Dämpfung
> sein:
>
> T^2*s^2 + 2*d*T*s + 1 = C
>
> d << 1 (d = 0 wäre ein theoretisches Konstrukt)
>
> oder äquivalent
>
> A2*y'' + A1*y' + A0*y = C
>
> <http://de.wikipedia.org/wiki/%C3%9Cbertragungsfunktion>
> Die Übertragungsfunktion ist für ein System immer dieselbe � unabhängig von
> der Wahl eines speziellen Ein/Ausgangssignalpaares. Deshalb beschreibt sie
> das gesamte mögliche Verhalten des Systems.
> </>
das ist mir klar, wenn ich die Üfkt. denn hätte!
>
> 2. Beispiel wie oben erwähnt:
>
> Siehe
> http://home.arcor.de/janch/janch/_news/20080719-markus/
>
> Das IST die Übertragungsfunktion für die gemessenen Datenpunkte und ist für
> beliebige Störfunktionen (z.B. C=1, C=sin(w*t), C=t*cos(w*t), etc.) gültig!
>
>
wenn ich deine Ausführungen richtig interpretiere empfiehlst du mir für
die Strecke ein Modell aufzustellen, und dann die Parameter dieses
Modelles zu approximieren ??
Grüße
Markus
das Wörtchen "wenn" wenn nicht wäre...
Markus
>
>> Die Frage ist ob man ein mechanisches System damit anregen kann. Mein
>> Aktor kann nur begrenzt Energie / Zeiteinheit umsetzen.
>
> kontinuierlichen Spektrum eben ein diskretes. Im allgemeinen Fall fährt
> man mit folgender Generatorfunktion für bandbreitenbegrenztes Rauschen gut:
>
> Ei(t) = ifft( if (f element ]fmin, fmax])
> then (f^kappa * exp(2*pi*i*random())
> else 0 )
>
> Das Ergebnis normalisiert man dann einfach auf ein für die Anwendung
> sinnvolles Eimax.
>
> kappa=0 und fmin=0 und fmax=fNyquist gibt weißes Rauschen ohne
> Bandbreitenlimit.
> kappa=-1 gibt Rosa Rauschen. fmin muss dann natürlich sinvoll gesetzt
> werden.
dass wäre mal einen Versuch wert..
>
> Je nach Anwendungsfall kann man kappa variieren. Sinvolle Werte liegen
> typischerweise zwischen -1,5 und 0,5 in 0,5er Schritten.
>
> Solange man keine systembedingte Integration oder Differentiation in der
> zu messenden Übertragungsfunktion hat und man eine lineare Frequenzskala
> im Ergebnis haben will, tut man gut daran, kappa auf 0 zu lassen.
> Für eine logarithmische Frequenzskala setzt man kappa um eins herab.
> Dann muss man allerdings in der Auswertung auch benachbarte
> Frequenzkanäle im Ergebnis der FFTs zusammenfassen, so dass man effektiv
> Frequenzkanäle ähnlicher logarithmischer Breite bekommt.
soweit verstanden...
Die
> Zusammenfassung muss sinnvollerweise durch Mittelwertbildung im
> Endergebnis fft(Ea)/fft(Ei) und in Amplitude und Gruppenlaufzeit
> erfolgen. Im Endergebnis deshalb, weil die Phasen benachbarter Kanäle im
> Anregungssignal zufällig, also unkorreliert sind. Über die
> Gruppenlaufzeit deshalb, weil die Phase der Übertragungsfunktion
> üblicherweise schnell veränderlich sein kann, wenn man es mit Latenzen
> zu tun hat.
Latenzen hab ich eher nicht (denk ich ;-))
Die Ermittlung der Gruppenlaufzeit erfordert alledings ein
> Phase-Unrolling. Wenn die Frequenzstützpunkte dicht genug liegen, kann
> man einfach die in Polarkoordinaten (Ammplitude, Phase) kürzere
> Entfernung nehmen. Größere Latenzen sollte man zuvor per Multiplikation
> mit exp(2*pi*i*f*linearshift) kompensieren. Theoretisch kann man
> linearshift per Least-Square-FIT bestimmen, aber das ist wegen der
> Zahlreichen lokalen Minima ziemlich instabil. Schneller geht es mit der
> Hand und typischerweise ist es sowieso eine Konstante des Messaufbaus.
> Genau stimmen muss der Wert ohnehin nicht, da es keinen unmittelbaren
> Einfluss auf das Ergebnis gibt.
>
>
>>> Die Sampledauer muss immer ein vielfaches der Periodizität der zu
>>> messenden Frequenz sein. Dann berechnet man für jede Frequenz einzeln
>>> fft(Ea)/fft(Ei) nimmt aber nur den Koeffizienten des Ergebnisses, der
>>> der aktuellen Anregungsfrequenz exakt entspricht. Damit hat man so
>>> eine Art Lock-In gemacht und erreicht selbst unter räudigen
>>> Bedingungen exzellente SNRs (z.B. >60dB mit einem 8-Bit ADC in
>>> störungsreicher Umgebung).
>> ok, das leuchtet ein, damit vermeidet man Fenster Effekte
>
> Ja, die Fenstereffekte werden genau dann vermieden, wenn das
> Anregungssignal in einer festen (aber unbekannten) Phasenbeziehung zu
> den aufgenommenen Ei- und Ea-Signalen steht und die FFTs für
> Testsignalgenerierung und Analyse gleich lang sind. Dazu müssen die
> Sampleratengeneratoren der Ein- und Ausgänge aus demselben Quarz
> synchronisiert werden. Das Kriterium erfüllen glücklicherweise die
> allermeisten Messkarten und selbst billigste Soundkarten.
> Ich würe Ei auch immer nochmal mit aufzeichen und ausschließlich dieses
> Signal zur Auswertung verwenden. Damit sind jegliche Latenz- und
> Dreckeffekte der Messkarten und auch des Aktors weitestgehend
> kompensiert (typisch -50dB), und man ist nur noch sensitiv auf die
> Differenzen zwischen den beiden (hoffentlich baugleichen) Aufnehmern.
>
gut
>
>>> Diese Qualität hat man nicht, wenn man die Messmethode nicht mit dem
>>> Wissen anreichert, welche Frequenz gerade gemessen wird.
>>> Mathematisch gesehen kann man sich die FFTs natürlich sparen, wenn
>>> man nur einen Koeffizienten braucht und einfach eine PCA mit einem
>>> Quadratursignal der Anregungsfrequenz machen. Das ist extrem schnell,
>>> da O(n) in CPU und O(1) im Speicher.
>>>
>> hast du dazu irgendeinen Literaturtipp ? Eventuell im Zusammenhang mit
>> Matlab / Octave ?
>
> Nein, sorry. Ich habe mir sowohl das Verfahren als auch die Software
> selber zusammengepuzzelt. Die Auswertung mache ich einfach mit zwei
> kleinen C-Programmen. Eines liefert das Testsignal an stdout, was ich
> dann per Pipe an das PCM-Sounddevice schicke. Das andere bekommt Ea und
> Ei von PCM-Device (Line-In, Stereo) an stdin und führt die notwendigen
> Berechnungen durch, schreibt nach jedem FFT-Zyklus (bei mir zwischen
> 65536 und 262144 Samples) ein Ergebnisfile mit der Übertragungsfunktion
> und gibt über stdout das Visualisierungskommando an gnuplot. Optional
> mittle ich über alle bisher gemessenen Perioden. Die Mittelung findet
> allerdings auf den rohen Samples statt, da alle Nutzsignalanteile
> notwendigerweise periodisch sind.
>
> Im (stufenweisen) Sweepmodus synchronisiere ich einmal am Anfang mit
> einem Testsignal mit Phasensprung und zähle ab da in beiden Programmen
> parallel die Samples um die verschiedenen Frequenzschritte hinter sich
> zu bringen. Die Messung kann dann bis zu einer Dreiviertelstunde alleine
> laufen. Sweep ist hochpräzise aber langsam. Mit Rauschen hat man meist
> schon nach einigen Sekunden die ersten brauchbaren Ergebnisse. Hüten
> sollte man sich vor der Rauschmessung, wenn man mit Nichtlinearitäten
> rechnet oder ohnehin Probleme mit dem SNR hat.
>
>
> Ich mache auf die Weise unter anderem auch Audiomessungen von
> Lautsprechern. Im Sweepmodus kann man problemlos im Garten mit
> ordentlicher Geräuschkulisse messen - upfire und schräg neben der
> Hausecke versteht sich, damit nichts zurück kommt. Die Ergebnisse passen
> exakt über die Messkurven professioneller Labors mit schalltoten Räumen
> und sind meist sogar weniger verrauscht und reicher an Stützpunkten.
> Aber genausogut kann man auf die Tour andere Netzwerkanalysen (Zweipol
> und Vierpol) machen oder ein präzises LCR-Meter (bei moderaten
> Frequenzen) basteln.
> Mit einem DSO kann man auch in gehobene Frequenzbereiche vordringen.
> Manche davon beherrschen sogar die notwendigen Auswertungsschritte FFT
> Amplitude, FFT Phase, Amplitudenquotient und Phasendifferenz on the fly.
> Allerdings ist es nicht trivial, ein synchrones Testsignal zu bekommen,
> das selbst professionelle DSOs meines Wissens den Wandlertakt nicht
> rausrücken.
Danke für die vielen Tipps. Es scheint tatsächlich nichts "von der
Stange" zu geben.
Eigentlich unverständlich. Das sollte ja eigentlich eine elementare
Ingenieursaufgabe sein, Das man da 60 Jahre nach Shannon noch bei Adam
und Eva anfangen mus ist ziemlich frustrierend..
Grüße
Markus
Bei einer (nur) Dfgl 2. Ordnung kannst Du mit (nur) 2 Parameter (Amplituden,
Dämpfung) mit Hilfe z.B. einer Excel-Graphik und etwas VBA-Programmieren
leicht durch Probieren ohne großen Aufwand das Modell mathematisch
approximieren.
Was machst Du dann mit der gefundenen Übertragungsfunktion?
Udo Piechottka schrub:
Und was soll das bringen? Ich würde sagen nichts. Welche
zusätzlich Information sollte ich denn gewinnen, wenn ich den
Sweep von z.B. 60 Sekunden in 10 Stücke à 6 Sekunden zerhacke
und die Stücke dann einzeln auswerte?
Wird jetzt hier darum gestritten, ob es besser ist, doch was
bessers auszudenken als FFT auf alle Daten anzuwenden was ein
paar Tage Diskussionszeit kostete, anstatt einfach die FFT zu
machen, was vielleicht 5 Minuten Rechenzeit kostet?
CU Rollo
Wie willst Du bei einem Gesamtspektrum dann noch differenzieren, ob es
sich bei einem "Ausschlag" um einen mechanischen Resonanzpunkt oder
durch Nichtlinearitäten entstandene Oberwellen handelt?
Die Rede war auch nicht davon, das Signal "irgendwie zu zerhacken",
sondern synchron zur anregenden Frequenz eine Vollperiode zu betrachten.
> Wird jetzt hier darum gestritten, ob es besser ist, doch was
> bessers auszudenken als FFT auf alle Daten anzuwenden was ein
> paar Tage Diskussionszeit kostete, anstatt einfach die FFT zu
> machen, was vielleicht 5 Minuten Rechenzeit kostet?
Nein, darum geht es nicht. Man sollte sich aber schon überlegen, mit
welchen mathematischen Operationen man welche Ergebnisse produziert, wie
man diese interpretieren muss und wie man sein Verfahren testet.
Übrigens: Wenn eine Diskussion mich nicht interessiert oder zu lange
über Details diskutiert wird, finde ich häufig andere interessante
Themen im Internet oder lese mal ein gutes Buch..
Gruss Udo
Markus Greim schrieb:
> Hallo,
>
> irgendwann holt einen die Systemtheorie wieder ein....
>
> Mein Problem:
> gegeben sei:
> - ein Einganssignal (E(t_i)) (abgetastet im Zeitbereich) , Typ
> sinus sweep, konstante Amplitude, Frequenz 0..x Hz.
> - ein Ausgangssignal als Antwort auf das Eingangssignal. Das System sei
> zeitinvariant. (A(t_i))
>
> gesucht:
> Real- und Imaginärteil der Übertragungsfunktion S(f)
>
> was ich weiß:
>
> S(f) = Wirkung / Ursache = A(f) / E(f)
>
> was ich nicht weiß :
> wie man S(f) oder S(f_i) also diskret numerisch am
> geschicktesten berechnet.
>
> Ich hab mal naiv in Octave (Matlab clone)
>
> fft(Ai)./fft(Ei)
>
> gerechnet, aber ich glaub nicht das das stimmt.
>
> Es geht hier nicht um eine Theorie oder Hausaufgabe sondern um
> praktische Messtechnik.
> Diverse Fundstellen im web scheinen alle immer nur die Theorie
> voneinander abzuschreiben.
> Als Literatur hab ich mal R.Unbehauen, Marko und Stearns konsultiert.
> Das sind aber alles eher Bücher aus meiner eher vordigitalen
> (Studien)-Zeit (ich bin nicht mehr der Jüngste :-) )
>
> Irgendwelche Hinweise oder wenigsten treffende Literaturhinweise ??
>
als Alternative zu den anderen Vorschlägen hätte ich hier noch einen,
der mir bei dem Thema Echokompensation aufgefallen ist, das mir gerade
wieder über den Weg gelaufen ist. Dabei geht es um Freisprechen z.B.
beim Telefon, um eine Rückkopplung des ankommenden Signals zu
verhindern. Dazu wird ein adaptives Filter benötigt, das die
Übertragungsfunktion des unerwünschten Pfades möglichst exakt nachbildet
und die Rückkopplung unterdrückt:
http://en.wikipedia.org/wiki/Least_mean_squares_filter
Was dort als adaptives Filter bezeichnet wird, ist mir in Form eines
FIR-Filters bekannt, dessen Koeffizienten durch eine Rekursion, eben die
least mean square-Methode, berechnet wird. Wenn man ein lineares System
ohne interference betrachtet, so ist diese Rekursion recht einfach
durchzuführen.
Damit sich die Koeffizienten richtig einstellen, muß wohl das
Eingangssignal x(n) alle Spektralanteile enthalten denke ich, also käme
ein Sinussweep in Frage. Gemessen würde y(n) werden, und zwar
_zeitgleich_ zu x(n). Wie gut und schnell das konvergiert und ob es
dafür brauchbar ist, kann ich allerdings nicht sagen.
Mal angenommen, es konvergiert gut, dann ist ein Koeffizientensatz des
(möglichst langen) FIR-Filters bekannt, der ja nichts weiter als die
diskrete Impulsantwort des unbekannten Systems darstellt. Eigentlich
müßte IMHO die Fouriertransformierte der FIR-Koeffizienten dann die
komplexe Übertragungsfunktion sein. Die Auflösung im Frequenzbereich
entspräche dann der (aus Symmetriegründen halben?) Länge des FIR-Filters.
Ob das Verfahren so brauchbar ist, könnte man in Matlab oder jeder
beliebigen Programmiersprache testen, vielleicht erstmal an einem ganz
einfachen bekannten System. Man erzeugt einfach den Datensatz für x(n),
y(n), der der Messung entspräche und läßt damit die Rekursion
durchlaufen, evtl. mehrmals. Wenn das Fehlersignal e(n)=0 wird, sieht es
gut aus, denn dann muß das Filter ja stimmen. So sieht der
Koeffizientenupdate aus:
e(k)^2=[y(k)-ye(k)]^2 Definition des Fehlerquadrats
x(k)=gemessenes Eingangssignal zum Zeitpunkt k
y(k)= gemessenes Ausganggsignal des unbekannten Systems
ye(k)=Ausgangssignal des adaptiven Filters
e(k)=y(k)-ye(k)= Fehlersignal
FIR Koeffizientenupdate:
Ci(k+1)=Ci(k)+u(k)*e(k)*x(k-i) 0<=u(k)<=2
Mit u(k) wird die Rückkopplung der Rekursion eingestellt, wäre
experimentell zu ermitteln. Den Index i muß ich nachschauen, wo der
anfängt und wie das FIR-Filter damit definiert ist.
mfg. Winfried
Markus Greim schrub:
> ok
> Aber ein sweep ist ja, wenn ich mich dunkel erinnere
> eigentlih eine anständige Funktion. Also sin(wt) wobei w = k*t.
Gern gemachter Denkfehler! Wenn w=kt ist, dann hat sin(wt) zum
Zeitpunkt t nicht die Frequenz w=kt. Die Frequenz vom sin(wt)
ist nämlich d/dt(wt)=w - soweit so gut. Wenn aber w=kt ist, dann
ist die Frequenz d/dt(kt^2)=2kt.
Besonders ärgerlich wird das, wenn man meint, mit
w=sin(kt)+a (a>1) und
u=sin(wt)
ein frequenzmoduliertes Signal u zu fabrizieren. u ist dann
nämlich leider nicht periodisch.
> Das müsste sich ja sogar per Hand transformieren lassen.
Viel spass:-)
>> Was natürlich noch die Sache stören kann: Dein System könnte
>> nichtlinear sein. In dem Fall wirst du sicher sehr komische
>> Ergebnisse bekommen. Praktisch ist jedes mechanische System
>> nichtlinear. Deswegen solltest du das etwas in Hinterkopf
>> haben, wenn du das Ergebnis betrachtest: Tritt z.B. bei 50Hz
>> ein starker Durchgriff (großes Ausgangssignal) auf und ebenso
>> bei 100Hz, 150Hz,... dann haben die Werte bei 100Hz,...
>> eventuell nicht viel zu bedeuten, es sind nur Artefakte aus
>> der Nichtlinearität bei der 50Hz-Schwingung.
>>
> das macht mir mer Kummer. In einem mechanischen Modell sind
> natürlich immer Reibglieder enthalten..
Das wird die Auflösung der Messung stark begrenzen. Erhoffe
nicht, eine Übertragungsfunktion mit mehr als 20dB
Dynamikbereich ermitteln zu können.
CU Rollo
ich denke das läuft so unter dem Oberbegriff Spektralschätzung..
Ich habe in den letzten Tagen noch etwas weiter recherchiert und bin auf
eine schöne Veröffentlichung u. Software gestoßen die auch aus diesem
Eck (Sprach Spektrogramme etc) kommt:
Time Frequency Toolbox
for use with Matlab
von Auger, Flandrin, Goncalves u. Lemoine
CNRS Frankreich u. Rice Univ. USA, 1995-1999
Das Tutorial findet man unter:
http://tftb.nongnu.org/tutorial.pdf
und die Software und Homepage unter:
http://tftb.nongnu.org/
Das ganze läuft unter dem Oberbegriff:
"Analysis of non stationary signals using time frequency distributions"
weitere Stichworte sind:
Wigner-Ville disribution, Short time fft, continous wavelet
transformation...
Ich kann noch nicht endgültig sagen ob ich mit diesen Werkzeugen mein
Problem lösen kann, es schaut aber bis jetzt sehr gut aus.
Unabhängig davon ist das Tutorial unbedingt lesens- und und die Software
(die auch unter Octave läuft) ausprobierenswert!
Danke soweit f. die vielen Anregungen.
Grüße
Markus Greim
Markus Greim schrieb:
[.....]
>> e(k)^2=[y(k)-ye(k)]^2 Definition des Fehlerquadrats
>>
>> x(k)=gemessenes Eingangssignal zum Zeitpunkt k
>> y(k)= gemessenes Ausganggsignal des unbekannten Systems
>> ye(k)=Ausgangssignal des adaptiven Filters
>> e(k)=y(k)-ye(k)= Fehlersignal
>>
>> FIR Koeffizientenupdate:
>> Ci(k+1)=Ci(k)+u(k)*e(k)*x(k-i) 0<=u(k)<=2
>>
>> Mit u(k) wird die Rückkopplung der Rekursion eingestellt, wäre
>> experimentell zu ermitteln. Den Index i muß ich nachschauen, wo der
>> anfängt und wie das FIR-Filter damit definiert ist.
>
der Index i müßte IMHO bei 0 anfangen und bis zum letzten
FIR-Koeffizienten gehen. Mir ist noch eingefallen, daß das FIR-Filter ja
eine Laufzeit hat, die im unbekannten System nicht vorhanden sein muß,
wenn es keine Strecke mit ausschließlichem Echo ist. Dazu müßte man wohl
eine Laufzeit als Ausgleich zum FIR in die Strecke legen. Diese bekannte
Laufzeit kann man dann hinterher wieder rausrechnen.
Bei uns wurde diese Echokompensation mal in der Praxis getestet, dabei
konvergierte es bei Rauschen gut und bei Sprache weniger gut. Dabei ging
es aber wirklich nur um Echos, ob das Ganze auch bei beliebigen
Frequenzgängen konvergiert, kann ich nicht sagen, wäre zu testen. Von
der Plausibilität her scheint mir der Laufzeitausgleich zwingend zu
sein, da FIR-Filter immer laufzeitbehaftet sind im Vergleich zu
IIR-Filtern. Der Vorteil dieses Verfahrens, wenn es funktioniert, wäre
die extreme Einfachheit.
> ich denke das läuft so unter dem Oberbegriff Spektralschätzung..
> Ich habe in den letzten Tagen noch etwas weiter recherchiert und bin auf
> eine schöne Veröffentlichung u. Software gestoßen die auch aus diesem
> Eck (Sprach Spektrogramme etc) kommt:
>
> Time Frequency Toolbox
> for use with Matlab
>
> von Auger, Flandrin, Goncalves u. Lemoine
> CNRS Frankreich u. Rice Univ. USA, 1995-1999
>
> Das Tutorial findet man unter:
> http://tftb.nongnu.org/tutorial.pdf
>
> und die Software und Homepage unter:
> http://tftb.nongnu.org/
>
> Das ganze läuft unter dem Oberbegriff:
> "Analysis of non stationary signals using time frequency distributions"
>
> weitere Stichworte sind:
> Wigner-Ville disribution, Short time fft, continous wavelet
> transformation...
>
Ich habe es mir mal runtergeladen, vielen Dank. Mit der Thematik Wavelet
habe ich mich noch nicht beschäftigt, sieht sehr theoretisch aus.
Eigentlich müßten die Leute aus der Theorie der Regelungstechnik was
dazu wissen, denn das müßte ja deren Job sein, also die Erkennung eines
Systems.
> Ich kann noch nicht endgültig sagen ob ich mit diesen Werkzeugen mein
> Problem lösen kann, es schaut aber bis jetzt sehr gut aus.
> Unabhängig davon ist das Tutorial unbedingt lesens- und und die Software
> (die auch unter Octave läuft) ausprobierenswert!
>
> Danke soweit f. die vielen Anregungen.
>
> Grüße
>
> Markus Greim
Viel Erfolg! Vielleicht spiele ich auch mal damit herum, wenn ich Lust
und Zeit habe.
mfg. Winfried