Hallo,
ich habe folgendes Problem: Ich gebe über die Soundkarte einen Sinus-Sweep aus, um eine Frequenzgang- und Klirrfaktormessung mit Limitvergleich durchzuführen. Die Messungen an sich laufen, ein Vergleich mit vorher deklarierten Limits ist auch implementiert. Ich bin aber unzufrieden mit der Festlegung der Limits, da die Stützpunkte (also die Frequenzen, an denen Amplitudenwerte für das Limit festgelegt werden) exakt mit den Frequenzen des Sweeps übereinstimmen müssen. Würde ich z.B. die Frequenz-Schrittweite des Sweeps ändern, so generiert das "SVT Limit Testing (xy).vi" (aus der Signal & Vibration Toolbox von LabVIEW 8.0, verwendet für den Vergleich des aufgenommenen Frequenzgangs mit den Limits) einen Fehler ("Code: -1995"). Ich brauche also eine Lösung dafür, Punkte mit unterschiedlichen Stützstellen vergleichen zu können. Ein erster Gedanke wäre lineare Interpolation zwischen den Punkten der Limits, um Werte an den Sweep-Frequenzen zu erhalten. Vielleicht fällt ja wem was eleganteres ein?
Fragen einfach stellen, ich weiß dass das kein leichter Stoff ist.
Und danke im Voraus!
' schrieb:Hallo,
ich habe folgendes Problem: Ich gebe über die Soundkarte einen Sinus-Sweep aus, um eine Frequenzgang- und Klirrfaktormessung mit Limitvergleich durchzuführen. Die Messungen an sich laufen, ein Vergleich mit vorher deklarierten Limits ist auch implementiert. Ich bin aber unzufrieden mit der Festlegung der Limits, da die Stützpunkte (also die Frequenzen, an denen Amplitudenwerte für das Limit festgelegt werden) exakt mit den Frequenzen des Sweeps übereinstimmen müssen. Würde ich z.B. die Frequenz-Schrittweite des Sweeps ändern, so generiert das "SVT Limit Testing (xy).vi" (aus der Signal & Vibration Toolbox von LabVIEW 8.0, verwendet für den Vergleich des aufgenommenen Frequenzgangs mit den Limits) einen Fehler ("Code: -1995"). Ich brauche also eine Lösung dafür, Punkte mit unterschiedlichen Stützstellen vergleichen zu können. Ein erster Gedanke wäre lineare Interpolation zwischen den Punkten der Limits, um Werte an den Sweep-Frequenzen zu erhalten. Vielleicht fällt ja wem was eleganteres ein?
Fragen einfach stellen, ich weiß dass das kein leichter Stoff ist.
Und danke im Voraus!
Hi, um überhaupt erstmal eine Idee der Messungen zu bekommen, Du gibts einen Sweep über die Soundkarte aus, was folgt dann? Was ist das Messobjekt (DUT (device under test))? Womit nimmst Du die Daten wieder auf?
Gruß, Rob
Hi Rob,
der Sweep wird nach einem zwischengeschalteten Buffer Amplifier auf einen elektromagnetischen Wandler gegeben. Ein künstliches Ohr (Mikrofon) wandelt den Schall wieder in elek. Spannung und gibt dieses auf einen Mikrofon-Eingang meiner Soundkarte. Als waveform kann ich es in meinem VI dann auswerten.
'FreqGang.bmp' zeigt einen aufgenommenen Frequenzgang mit daraus erstellten Limits (grün= Limit oben, weiß = FreqGang, blau = Limit unten). Ein solches Limit beteht aus einem Cluster mit zwei Arrays, einmal den Sweep-Frequenzen und einmal den Grenzwerten bei diesen Frequenzen. Nun möchte ich diese Limits generell verwenden, d.h. sie sollen auch benutzbar sein, wenn ich den Sweep ändere (z.B andere Schrittweite). Das kann LabVIEW scheinbar nicht von allein, zumindest bekomme ich bei dem Versuch die oben zitierte Fehlermeldung, was wohl daran liegt, dass die x-Werte von Frequenzgang und Limits nicht mehr übereinstimmen.
Gruß, SoundIng
[
attachment=3802]
' schrieb:Hi Rob,
der Sweep wird nach einem zwischengeschalteten Buffer Amplifier auf einen elektromagnetischen Wandler gegeben. Ein künstliches Ohr (Mikrofon) wandelt den Schall wieder in elek. Spannung und gibt dieses auf einen Mikrofon-Eingang meiner Soundkarte. Als waveform kann ich es in meinem VI dann auswerten.
'FreqGang.bmp' zeigt einen aufgenommenen Frequenzgang mit daraus erstellten Limits (grün= Limit oben, weiß = FreqGang, blau = Limit unten). Ein solches Limit beteht aus einem Cluster mit zwei Arrays, einmal den Sweep-Frequenzen und einmal den Grenzwerten bei diesen Frequenzen. Nun möchte ich diese Limits generell verwenden, d.h. sie sollen auch benutzbar sein, wenn ich den Sweep ändere (z.B andere Schrittweite). Das kann LabVIEW scheinbar nicht von allein, zumindest bekomme ich bei dem Versuch die oben zitierte Fehlermeldung, was wohl daran liegt, dass die x-Werte von Frequenzgang und Limits nicht mehr übereinstimmen.
Gruß, SoundIng
[attachment=29842:attachment]
Also hast Du ein Eingangssignal U_in(f), welches in einem Array für eine bestimmte Schrittweite delta_f vorliegt.
Was spricht, dagegen U_in(f) in einer Schleife manuell(1) mit den Limit-werten an der Stelle f zuvergleichen?
Vermutlich wird man die Limit-Werte interpolieren müssen, wenn sie in einem anderen Frequenzraster als dein Messsignal vorliegen.
(1) manuell im Sinne von selbest programmierter Vergleichsroutine.
Vielleicht hilft das ja weiter..
Robert
' schrieb:Also hast Du ein Eingangssignal U_in(f), welches in einem Array für eine bestimmte Schrittweite delta_f vorliegt.
Was spricht, dagegen U_in(f) in einer Schleife manuell(1) mit den Limit-werten an der Stelle f zuvergleichen?
Vermutlich wird man die Limit-Werte interpolieren müssen, wenn sie in einem anderen Frequenzraster als dein Messsignal vorliegen.
(1) manuell im Sinne von selbest programmierter Vergleichsroutine.
Vielleicht hilft das ja weiter..
Robert
Hi Robert,
das ist durchaus möglich und war von mir auch schon so angedacht, siehe 1. Beitrag. Bin nur immer ein Freund von fertiger Arbeit und dachte, LabVIEW stelle da etwas zur Verfügung. Hinzu kommt auch, dass mein delta_f nicht konstant ist, weil ich den unteren Frequenzbereich größer auflösen muss.
So werd ich mich dann wohl an eine eigene Lösung machen müssen.
Trotzdem Danke,
André