Ich habe eine spezielle Funktion und frage mich, wie ich sie realisieren soll. Aus den Reihen der Analogtechniker bekam ich zu hören, dass das u.U. mit einer Schaltung zu machen sein könnte. Da ich das Ganze in Software brauche, habe ich nun die Idee, das Prinzip der Schaltung zu verstehen, um es dann umzusetzen. Ich beschreibe mal, was ich brauche: Ich habe digitale Daten von einem AD-Wandler, die in Echtzeit in ein System fließen, dort bearbeitet werden und direkt rausgehen. Die Datenrate sind wahrscheinlich 100kHz ... 200kHz mit 16 Bit, Daten in Signed integer von -30.000 bis +30.000. Nun sollen die tiefen Anteile des Datenstroms unter der optischen Reaktionsschwelle von geschätzt 24Hz einstellbar um 0...2ms verschoben werden, während höhere immer weniger verschoben werden bis maximal 1ms. Das Ganze soll einigermassen linear und kontinuierlich sein und sich bis zur Blitzschwelle von etwa 5.. 10kHz erstrecken. Angeblich geht das mit einem analogen Filter, das eine veriable Gruppenlaufzeit / Phasenverzögerung hat - bestehen aus einem Hochpass und einem Tiefpass, die zu einem Allpass summieren mit passenden Eckfrequenzen. Für den Anfang hätte ich gesagt, teste ich einfach mit folgender Konfiguration und addiere dann noch eine kontinuierliche Phasenverschiebung. Ich bräuche also zunächst folgenden ungefähren Frequenzgang (in der Annahme, dass das logarithmisch geht): 10Hz : 1,0 ms 20Hz : 1,0 ms ------------- Eckfrequenz 1 40Hz : 0,9 ms 80Hz : 0,8 ms 160Hz : 0,7 ms 320Hz : 0,6 ms 680Hz : 0,5 ms 1350Hz : 0,4 ms 2700Hz : 0,3 ms 5400Hz : 0,2 ms 10800Hz : 0,1 ms ---------------- Eckfrequenz 2 21000Hz : 0,0 ms 30000Hz : 0,0 ms Wie liesse sich die Funktion einer solchen Analogschaltung beschreiben?
Hallo, im Prinzip suchst Du nach der Rechenvorschrift für ein digitales Allpassfilter. Zum warm werden könnten diese ausführlichen Beschreibungen hier nützlich sein: https://www.dsprelated.com/freebooks/pasp/Allpass_Filters.html https://ccrma.stanford.edu/~jos/pasp/Example_Allpass_Filters.html MfG
:
Bearbeitet durch User
Moin, Ja, das wird mit einer Anhaeufung von Allpaessen machbar sein. Aber, um die Freude zu daempfen: Nicht mit den vorgegebenen Zeiten. Sondern eher sowas von dem Kaliber: 10Hz :10,0 ms 20Hz :10,0 ms ------------- Eckfrequenz 1 40Hz : 9,9 ms 80Hz : 9,8 ms 160Hz : 9,7 ms 320Hz : 9,6 ms 680Hz : 9,5 ms 1350Hz : 9,4 ms 2700Hz : 9,3 ms 5400Hz : 9,2 ms 10800Hz : 9,1 ms ---------------- Eckfrequenz 2 21000Hz : 9,0 ms 30000Hz : 9,0 ms Nagelt mich nicht auf die genauen Zahlen fest; aber die Gesamtverzoegerung ist bei so Laufzeitequalizern gerne deutlich groesser, als das, was man eigenlich haben will. Gruss WK
Mit einem Doppel-T-Filter HIHI-Pass + LOW-Pass müsste sich das Im Prinzip auch machen lassen. Hochpass mit Phasenverschiebung der Tiefen und Tiefpass mit Phasenverschiebung der Höhen. Müssen eben die Phasenverschiebungen berechnet und ein Kompromiss gefunden werden. Das Verhalten kommt aber garantiert nicht so eckig und linear heraus, wie der TE das möchte.
Wenn mas so etwas anpaßt, müßte es doch gehen, und die Parameter kann man durch Simulation anpassen. Link: http://images.elektroda.net/74_1331816815.jpg
> Wie liesse sich die Funktion einer solchen Analogschaltung beschreiben?
Das nennt sich Polyphasenfilter.
Abgesehn von: 0 ms sollte das schon machbar sein.
Ist aber nuex fuer Laien.
Moin, Hups, hab' grad nochmal das gelesen: Georg B. schrieb: > einstellbar um 0...2ms verschoben > werden, Damit ist die analoge Allpassloesung raus, wuerd' ich sagen. Und auch die digitale wird durch die Forderung nach Einstellbarkeit der Laufzeit bei konstantem Amplitudengang nochmal knackiger. Bei konstanter Laufzeitdifferenz waeren das halt 1..N Allpaesse, deren Kettenschaltung dann das gewuenschte Verhalten je nach Anzahl N, die man bereit ist zu investieren, mehr oder weniger gut approximiert. Diese Approximation, die dann fuer die N Allpaesse jeweils Frequenz und Guete liefert, ist was, wofuer es bei Matlab eine Funktion (iirc in irgendeiner Signalverarbeitungs-Toolbox) gibt, die es bei GNU-Octave (noch?) nicht gibt. Da darf man sich dann was selber basteln. Und wenn das dann auch spaeter noch einstellbar sein soll, dann steigt a.) der Rechenaufwand und b.) der Aufwand, die einzelnen Allpaesse dann alle zur Laufzeit passend einzustellen. Da hat man analog ueberhaupt keine Chance, imho. Gruss WK EDIT: Ach ja, diese Loesung mit getrennten Hoch- und Tiefpaessen halt' ich auch fuer unmoeglich. Das kriegt man nicht mit vernuenftigem Aufwand wieder phasenrichtig zusammengeschaltet: Also hat man dann "Hubbel" im Amplitudenfrequenzgang.
:
Bearbeitet durch User
Wir können das wohl besser in einem anderen Beitrag weitertreiben. Ich hatte ohnehin einen Beschreibungsfehler in der Kennlinie: Beitrag "frequenzabhängige Phasenverschiebung erzeugen"
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.