Es liegt ein Frequenzgemisch vor, aus dem ich mittels Multiplikation mit 3 Sinuswellen den Anteil dieser Frequenzen ermittle und so feststelle, welche dieser Frequenzen gesendet wurde. (Es wird nur eine gesendet, die zu finden ist). Dies klappt prima für symmetrische Signale um den Nullpunkt. Nun kommt aber ein unsymmetrisches Signal herein, dessen Offset ich nicht kenne. Es geht auch nicht unbedingt von 0 - X, sondern durchaus von 0,1 bis X + 0,1 oder so, z.B. von 0,3 bis 2,1V oder 0,7 bis 1,6 V, da die Amplitude schwankt. Bilde ich nun die Korrelation mit den 3 Frequenzen haben alle ordentlich Offset und vor allem zeigt die niedrigste immer das meiste an, auch wenn diese schwächer vertreten ist. Bei geringen Amplituden versagt das also. Wie kann man vorgehen, um das zu lösen? Mittelwert bilden und vorher abziehen geht nicht gut, da dies nicht der Mittelwert der echten Welle ist und dadurch Sprünge entstehen.
Hallo, allgemein wird eine Fouriertransfromation verwendet, wenn man eine zeitliche Abfolge hat und die Frequenzen wissen möchte. Als Algorithmus wird bei diskreten Werten die schnelle Fouriertransformation (FFT) verwendet. Wenn du wirklich nur exakt eine Frequenz haben willst gibt es auch als Abwandlung den Goertzel-Algorithmus. Gruß Kai
Naja, sowas mache ich ja praktisch und dort - wie auch in einer FFT - hebt sich der niederfrequente Anteil an, wenn ein DC drin ist, weil der DC ja alle Frequenzen enthält, aber nicht balanciert. DC ist ja ein Rechteck und bringt mehr tiefe Frequenzen ein. Real sieht die Sache so aus: F1 = 0,5 F2 = 4,2 F3 = 1,3 Also: Die F2 ist die, die eingekoppelt wurde. Beim geringem Offset: F1 = 2,3 F2 = 7,1 F3 = 4,5 immer noch erkennbar. Beim hohem Offset: F1 = 5,7 F2 = 11,1 F3 = 14,2 scheinbar die dritte am stärksten.
Matthias schrieb: > hebt sich der niederfrequente Anteil an, wenn ein DC drin ist Nein, DC hat genau die Frequenz 0, das hat auf die anderen Frequenzen keinen Einfluss. Matthias schrieb: > DC ist ja ein > Rechteck und bringt mehr tiefe Frequenzen ein. Nein. DC ist DC und Rechteck ist Rechteck. Das hat miteinander überhaupt nicht zu tun. Deinen Beispielen kann ich nicht folgen. Ein Offset hat auf die Amplitude eines Sinussignals keinen Einfluss, er verschiebt das ganze nur. Lade mal eine Datei mit den Rohdaten deiner 3 Beispiele hoch, dann mach ich dir davon mal eine FFT. Gruß Kai
Irgendwas stimmt bei deiner Untersuchung nicht. Vielleicht solltest du mal mathematisch rangehen. Frequenzgemisch aus zwei Kosinussignalen mit Offset.
Korrelationssignale:
Analyse für Signal 1:
Wenn kein Signal mit der Frequenz w2 gesendet wird, ist A1=0 und der zweite Summand im Integral entfällt. Das Integral kann in zwei Integrale aufgeteilt werden. Das zweite Integral mit den DC-Werten wird zu Null, da der Kosinus über eine Periode integriert Null ergibt. Das Korrelationssignal bildet sich daher nur aus dem ersten Summanden.
Wäre dies nicht so, würde kein Lock-In-Verstärker funktionieren, bei diesem spielt auch DC keine Rolle. Anders sieht es aus, wenn A1 nicht Null ist, dann ändern sich die Maximas der Korrelationsfunktionen. Schwanken deine Offsets, besteht dein Signal aus einem Gemisch von zusätzlichen Frequenzen, welche die KKF's zusätzlich verändern.
Matthias schrieb: > DC ist ja ein > > Rechteck und bringt mehr tiefe Frequenzen ein. Das DC is dann ein Rechteck, wenn Du es schlagartig einblendest. Wie prozessierst Du die Daten? offline oder online? Für mich hört es sich nach Echtzeitverarbeitung an. Wie lange ist die Periode der Messung? Die Mathematik der FFT stimmt ja nur dann, wenn man eine genügend lange Periode misst, dass Signal sich nicht ändert und man keine Kanten infolge nichtganzzahliger Samples<->Perdiodendauer hat. Sonst kommt es zum leakage. Matthias schrieb: > Mittelwert bilden und vorher abziehen geht nicht gut Jetzt mal vom Logischen her: Wenn es der echte Mittelwert ist, dann ist es auch der Offset und wenn der abgezogen wird, müsste der Effekt ja weg sein. Entweder ist also der Mittelwert nicht richtig oder er ist gar nicht verantwortlich, für den Fehler, den Du siehst - was ich nämlich glaube :-) Wie berechnest Du die Werte? Formelfehler?
Du kannst doch den DC mit einem DC-Blocker (Highpass) rausfiltern, der Aufwandt ist relativ gering:
1 | out = in-lastin + coeff*lastout |
2 | lastin = in |
3 | lastout = out |
für coeff setzt du Werte zwischen 0.9 und 1 ein, je näher du an die 1 gehst, desto langsamer reagiert der Filter (und desto näher ist der Cutoff an 0Hz).
Den Gleichanteil bekommst du durch Abziehen des Mittelwerts eigentlich zuverlässig weg. Ich würde folgendes mache: Wähle dir eine Fensterfunktion und multipliziere damit die Daten. Dadurch ist der Rechteckeffekt weg. Berechne dann den Mittelwert und ziehe ihn ab. Dann sollt eine FFT gut aussehen. Auch mal probieren zuerst den Mittelwert abzuziehen und dann zu Fenstern.
Maik M. schrieb: > Du kannst doch den DC mit einem DC-Blocker (Highpass) rausfiltern, der > Aufwandt ist relativ gering: Das wäre ein IIR-Filter, das den trägen Mittelwert über einen längeren Bereich, genauer sogar der gesamten Historie mitschleppt. Ob das praktisch ist, sei mal dahingestellt. Einfach zu programmieren ist es natürlich. Anderer Vorschlag: Die Korrelation erfolgt doch sicher mit einem diskreten TAP-basierten Filter. Dann kannst Du so auch den Gleichanteil in der jeweiligen Periode bestimmen wie trulli das schon schrieb. trulli schrieb: > Auch mal probieren zuerst den Mittelwert > abzuziehen und dann zu Fenstern. Also wenn, dann tatächlich erst abziehen und dann fenstern, sonst hängt der Fensteroffset noch mit drin. Aber: Wie schon erwähnt wurde, sollte das letzlich nur ein Offset in den ermittelten Werten der Korrelation ergeben und zwar in allen betrachteten Frequenzen gleich. Ist das nicht so? Wie rechnest Du? Abziehen macht z.B. dann Sinn, wenn die Vektorbreite verkleinert werden soll, denn vom Prinzip her kannst Du einen solchen Offset auch im Frequenzspektrum wegrechnen.
Nachtrag: Wenn ich genau drüber nachdenke, könnte es in der Tat sein, dass Dein Rechteck Dir die Frequenzen verbiegt, da es nach Laplace einen grossen niederfrequenten Anteil mit abklingenden Höhen hat. Wenn Du also keinen Offset abziehst, müsstest Du das Spektrum des Rechtecks abziehen, bzw. mit Fensterung das Spektrum des Fensters - idealerweise also eine "von Hann"-Grundschwingung. Oder Du ignorierst diese Frequenz einfach, wenn das geht. Anders herum ist es so, dass das Abziehen des Mittelwertes von Wertegruppe zu Wertegruppe jedesmal ein anderes Zwischenergebnis liefert, besonders ohne Fensterung und damit scheinbare HF in die Analyse einspeist.
Matthias schrieb: > Nun kommt aber ein unsymmetrisches Signal herein Kommt es auch dann noch herein, wenn Du einen Koppelkondensator dazwischen schaltest? ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.