Hallo, ich stoße bei einer meiner Hobby-Basteleien zurzeit etwas an meine Grenzen. Ich habe zwei Sinus-Signale, welche beide die selbe Frequenz (50kHz) und 800µA haben und sich im Bereich von ca. 1-3V befinden. Eines der Signale hat ungefähr eine Phasenverschiebung von 0-8°, und sollte relativ genau (0.1°) bestimmt werden. Da dies bei dieser Frequenz ungefähr einen ADU bzw. µC mit ca. ~100MHz erfordert, wäre eine analoge Schaltung, sofern sie relativ simpel ist, vielleicht eine bessere Alternative. Meine Überlegungen wären zurzeit, dass ich beide Signale via Nichtinvertierender-OPV Schaltung so stark verstärke, dass ein Rechtecksignal entsteht (es wird so stark verstärkt, dass das Signal sehr schnell in den Sättigungsbereich kommt - daher ungefähr ein Rechtecksignal ergibt). Danach würde ich beide Signale mit einer einfachen Phasendetektorschaltung bestehend aus zwei FlipFlops und einem AND-Gatter analysieren. Leider stoße ich dabei bei meinen Simulationen in Multisim auf den Fehler, dass ich beim Simulieren angeblich keine "Konvergenz" erziele. Könnte mir Jemand weiterhelfen, wie ich den Simulationsfehler behebe, ob die Überlegen funktionieren kann oder bzw. hat Jemand eine bessere Idee?
Hallo Fritz, ich kommentiere und korrigiere erst einmal etwas: Fritz K. schrieb: > Ich habe zwei Sinus-Signale, welche beide die selbe Frequenz (50kHz) und > 800µA haben und sich im Bereich von ca. 1-3V befinden. Die 800 µA haben hier nichts zu suchen. > Eines der Signale hat ungefähr eine Phasenverschiebung von 0-8° Und das andere? Na ja, du meinst: Die Phasen der beiden Signale sind zueinander ca. um 0-8° verschoben. > Da dies bei dieser Frequenz ungefähr einen ADU bzw. µC mit ca. ~100MHz > erfordert Das ist nicht richtig. Genau genommen spielt die Abtastfrequenz fast gar keine Rolle. Selbst bei Unterabtastung geht die Phaseninformation nicht verloren. Aber das geht etwas weit, und ich weiß nicht, ob du einen solchen Lösungsweg beschreiten wolltest oder könntest. > Nichtinvertierender-OPV Schaltung so stark verstärke, dass ein Was du jetzt beschreibst ist ein Komparator. Aber ein Operationsverstärker ist zum einen deutlich langsamer und zum anderen, was viel wichtiger ist, er kommt bei weitem nicht so schnell aus der Sättigung heraus wie du es brauchst. Immer wenn z. B. durch einen Komparator oder einen ADC (fast das gleiche, der Komparator ist ein zeitkontinuierlicher 1-Bit ADC) ein Signal "vereinfacht" wird, gehen auch Informationen verloren. Wenn mit einem aufwändigeren Algorithmus das komplette Signal verarbeitet wird, werden die Ergebnisse besser. > einfachen Phasendetektorschaltung bestehend aus zwei FlipFlops und einem > AND-Gatter analysieren. Wie soll die aussehen? Was macht die, wenn beide Signale exakt in Phase liegen? Das ist generell ein mögliches Problem bei einer analogen Schaltung. > Leider stoße ich dabei bei meinen Simulationen in Multisim auf den > Fehler, dass ich beim Simulieren angeblich keine "Konvergenz" erziele. Das ist doch fast eine digitale Schaltung - wo gibt's da Konvergenz? -> Schaltung posten. > hat Jemand eine bessere Idee? Na klar, z. B. für den nächsten Grillabend. Aber ernsthaft: Welche Idee, also welcher Lösungsweg besser ist, hängt doch, wie eigentlich immer, von deiner Situation ab. Soll das ein superbilliges Massenprodukt werden, oder eine einmaliger Hobbyversuch, der danach in der Bastelschublade verschwindet, magst du lieber analoge Bauteile löten oder stecken, kleine Prozessoren in C oder gar Assembler programmieren, ein Raspi einsetzen um ja keine Hardware gestalten zu müssen oder darf es gleich auf dem PC (über Soundkarte) sein?
Wie wäre es Komparatoren verwenden, die den Nulldurchgang als Schwelle nehmen und dann mittels Zählern von Flanke zu Flanke zu zählen?
Uwe B. schrieb: > Aber ein Operationsverstärker ist zum einen deutlich langsamer > und zum anderen, was viel wichtiger ist, > er kommt bei weitem nicht so schnell aus der Sättigung heraus > wie du es brauchst. Durch die Differenzbildung hebt sich der Fehler heraus.
Ich werfe mal ein paar Ideen in den Raum: 1)Abtasten und über Goerzel berechnen. 2)Abtasten und über Kreuzkorrelation berechnen. 3)Die Idee aus 2) müsste doch auch analog gehen wenn man die Signale Multipliziert und Aufsummiert (Tiefpass). So eine Art analoge KKF?
Frank schrieb: > 2)Abtasten und über Kreuzkorrelation berechnen. > 3)Die Idee aus 2) müsste doch auch analog gehen wenn > man die Signale Multipliziert und Aufsummiert (Tiefpass). > So eine Art analoge KKF? Selbstverständlich geht das. I/Q-Mischer = Vier-Quadranten- Demodulator = Synchrongleichrichter. Referenzfrequenz muss zweifach vorhanden sein, nämlich mit 0° und 90° Phasenverschiebung (PLL mit Oszillator auf 4facher Frequenz; 2 D-Flipflop). Wenn das Messsignal spektral rein ist (=guter Sinus), kann man Schaltermischer statt Analogmultiplizierern einsetzen, weil dann keine Oberwellenmischung stattfinden kann, die zu Fehlern führen würde. Die Gleichspannungen hinter den Tiefpässen sind der Inphase- und der Quadratur-Anteil; über den Pythagoras bekommt man die Amplitude, durch Division des I- und Q-Anteils durch die Amplitude erhält man den Koeffizienten für Sinus- und Cosinus-Anteil. Aufgrund der vier möglichen Vorzeichenkombinationen deckt man alle vier Quadranten ab, d.h. der Phasenwinkel kann irgendwo im Vollkreis liegen. Der Arcustangens liefert dann den Winkel.
Fritz K. schrieb: > Eines der Signale hat ungefähr eine Phasenverschiebung von 0-8°, und > sollte relativ genau (0.1°) bestimmt werden. Wichtig wäre zu wissen, ob du das Ergebnis als Digitalwert oder analog brauchst, und wie schnell es vorliegen muss.
Man könnte auch eines der Signale um 90° in der Phase schieben. Danach dieses phasenverschobene Signal und das andere Signal auf einen Mischer geben und dessen Ausgangssignal tiefpassfiltern. Das Resultat ist eine Gleichspannung, die sich wie der Sinus der Phasenverschiebung verhält. Da nur sehr kleine Phasenverschiebungen bis 8° messen willst, kann man das als näherungsweise linear betrachten. Die 90° Phasenschiebung sollte auch relativ einfach zu realisieren sein, da deine Frequenz konstant ist könnte man das z.B. mit RC-Gliedern tun.
https://web.archive.org/web/20140121093530/http://www.ulrich-bangert.de/AMSAT-Journal.pdf auf Seite 12 ist eine Prinzipschaltung mit zwei Mischern und einem Hilfsoszillator gezeigt. Damit lassen sich auch sehr kleine Phasenunterschiede in relativ kurzer Messzeit nachweisen.
Hi, Fritz, das ist das passende Meßgerät: http://www.ebay.de/itm/Vektor-Analyzer-ZPV-mit-reichlichem-Zubehor-/171956060329?hash=item28096140a9:g:1ykAAOSw~gRVtd6Z 0,1° ist aber schon eine stolze Forderung. > Danach würde ich beide Signale mit einer einfachen > Phasendetektorschaltung Oder nimm die eines handelsüblichen PLL-Schaltkreises wie CD4046. Da ist der Komparator auch mit drin. Auch möglich: Phasenvergleich am 2-Kanal-Oszilloskop, getriggert auf eins der Signale. Ciao Wolfgang Horn
So, habe mir das nochmal gründlich alles überlegt, eure Vorschläge auch mit einer Privatperson diskutiert, welche sich da auch etwas auskennt. Haben nun folgenden Lösungsansatz entwickelt, welcher vielleicht funktionieren könnte: Beide Signale werden durch Komparatoren in Rechtecksignale gewandelt (Schaltschwelle so gut wie möglich bei 0 - somit wird das Signal dann high, wenn ein 0-Durchgang im Sinus stattfindet). Danach werden beide Signale durch ein EXOR insofern gefiltert, dass am EXOR Ausgang der Bereich durch ein High dargestellt wird, welcher zwischen dem 0-Durchgang des ersten Signales und dem 0-Durchgang des zweiten liegt - also der Zeitbereich welcher der Phasenverschiebung entspricht. Dieses EXOR-Signal wird dann mit einem sehr schnellen Takt verundet (AND), und dann mit einem Zähler gezählt wie viele Perioden dieses Taktes sich in der High-Phase des EXOR Signals ausgehen -> dadurch kann die Zeit der High-Phase und somit auch der Phasenwinkel errechnet werden - theoretisch. Findet ihr diese Idee plausibel? Wenn nicht, warum? Elektrische Grüße, Fritz
Klingt gut, Vorraussetzung dafür ist dass deine Frequenz von 50kHz nicht variabel ist. Aber davon hast du ja auch nix gesagt ;) Anselm
Früher hat man beide Signale in Rechteckspannung umgewandelt und auf ein XOR gegeben. Den Mittelwert der Ausgangsspannung hat man dann gemessen. Das funktioniert auch bei variabler Frequenz bezüglich Phase: bei =Grad 0V bei 90 Grad 1/2 Vcc bei 180 Grad Vcc. Es kommt halt drauf an, ob ein Mittelwert genügt, oder ob man die Phasenverschiebung für jede Schwingung braucht.
:
Bearbeitet durch User
Fritz K. schrieb: > Findet ihr diese Idee plausibel? Wenn nicht, warum? Ein Zähler mit zwei Capture-Einheiten zusammen in einem µC liefert genauere Ergebnisse. Dabei ist es zweckmäßig, eines der Signale zu invertieren damit die Phasenlage 180 - 188° beträgt. Ich habe das mal auf einem STM32F407 gemacht, was aber für Hobbyzwecke wahrscheinlich zu aufwendig ist. Dabei werden Phasenlage und Frequenz immer gleichzeitig erfaßt.
Fritz K. schrieb: > Haben nun folgenden Lösungsansatz entwickelt, [...] Worin besteht der Neuheitswert? Das ist exakt die Lösung, die Du im Originalbeitrag vor sechs Tagen schon vorgeschlagen hast.
Peter R. schrieb: > Früher hat man beide Signale in Rechteckspannung umgewandelt und > auf ein > XOR gegeben. Den Mittelwert der Ausgangsspannung hat man dann gemessen. > > Das funktioniert auch bei variabler Frequenz bezüglich Phase: bei =Grad > 0V bei 90 Grad 1/2 Vcc bei 180 Grad Vcc. > > Es kommt halt drauf an, ob ein Mittelwert genügt, oder ob man die > Phasenverschiebung für jede Schwingung braucht. Danke erstmal für die Idee, hab mir das mal durchgedacht. Da ich Verschiebungen im Bereich von ca. ~ 1-8° messen muss (High-Phase des XOR Signals sehr klein), würden sich die ermittelten Mittelwerte bei diesen geringen Gradunterschieden wahrscheinlich kaum unterscheiden (mV-Bereich), weswegen ich denke dass es dann bei der Errechnung der Phasenverschiebung etwas schwierig werden könnte. > Ein Zähler mit zwei Capture-Einheiten zusammen in einem µC liefert > genauere Ergebnisse. Dabei ist es zweckmäßig, eines der Signale zu > invertieren damit die Phasenlage 180 - 188° beträgt. > Ich habe das mal auf einem STM32F407 gemacht, was aber für Hobbyzwecke > wahrscheinlich zu aufwendig ist. Dabei werden Phasenlage und Frequenz > immer gleichzeitig erfaßt. Denke, dass das für mein Projekt etwas aufwendig ist..zumal ich die Frequenz ja nicht messen muss (beide Signale 50kHz). Danke trotzdem! Elektronische Grüße, Fritz
Fritz K. schrieb: > Denke, dass das für mein Projekt etwas aufwendig ist..zumal ich die > Frequenz ja nicht messen muss (beide Signale 50kHz). Gut, aber wenn Du mit einfachen Zählern arbeiten willst, mußt Du sicherstellen, daß die Frequenz geberseitig 50,00 kHz ist. Sofern man mit µC arbeitet, mißt man automatisch die Periodendauer und damit auch die Frequenz ;-) Für Deinen Bedarf würde sich sogar noch ein Arduino Uno eignen.
Bei 1...10 Grad Wertebereich gehts halt per sample-and-hold: Das geht z.B. in der Form dass bei pos.Flke des ersten Signals ein Schalter geöffnet wird und per C und Stromquelle am C die Spannung ansteigt. Bei pos. Flke. des zweiten Signals wird die Stromquelle gesperrt und die Spannung am C einem Folgespeicher übergeben. Dafür gibts sample and hold-ICs und elektronische Schalter. Nebenbei: Bei XOR und VCC=10V ist der ansteigende Kennlinienbereich zwschen 0 und 90 Grad. Da entspricht 9 Grad einem Volt. Das ist doch durchaus ein praktikabler Spannungswert? auch die 0,5V , bei Vcc = 5V, sind doch kein großes Problem. Es gibt ja Verstärker die bei 500kHz (Zehnfaches von 50k, wegen Rechteckimpulsform)ganz wunderbar verstärken.
:
Bearbeitet durch User
Ein andrer Weg wäre die "Spektralanalyse": Die Amplitude der Grundwelle des XOR-Ausgangssignal wächst linear zur Dauer der H-Zeit des XOR. Also XOR mit Schwingkreis als Folgeelement.
Ich würde einfach die beiden Signale multiplizieren und dann integrieren über eine Periode:
>Da dies bei dieser Frequenz ungefähr einen ADU bzw. µC mit ca. ~100MHz >erfordert, wo ist das Problem? Jeder Kanal mit 12Bit/2,4MHz abgetastet währe im STM32F4 Discovery sogar noch der 3. ADC unbenutzt. 48fache Überabtastung und knapp 200k RAM sollten für ein paar Perioden reichen. Der Rest ist ein wenig Mathematik. Man muss ja nicht gleich mit FFT & Co schiessen (könnte aber natürlich). Muss man nicht selber löten, gibts für kleines Geld. Auch wenn klassich diskret seinen Reiz hat: 50kHz entspricht 20us Periodendauer. 0.1° s sind knapp über 5ns. Ich hätte insbesondere bei unterschiedlichen Signalamplituden Sorgen hinsichtlich Offsetspannungen und Laufzeittoleranzen gerade im analogen Pfad. Das gilt insbesondere auch wenn die Signale noch gefiltert werden müssen, was bisher aber nicht gefordert worden ist. viel Erfolg hauspapa
:
Bearbeitet durch User
>Ich würde einfach die beiden Signale multiplizieren und dann integrieren >über eine Periode: Coole Idee mit einem kleinen Haken: Einen Zahlenwert für die Phasenverschiebung bekommt man nur wenn man neben dem berechneten Integral auch T, A1 und A2 hinzeichend genau bestimmt hat. viel Erfolg hauspapa
:
Bearbeitet durch User
S. K. schrieb: > T, A1 und A2 hinzeichend genau Ja da hast du recht, aber T folgt ja direkt aus der Frequenz, die ja ziemlich genau 50khz sein soll und A1 und A2 sollten auch ziemlich konstant sein und einfach mit einem Oszilloskop zu messen. Gruss Hans
Ok habe gerade gelesen, dass die Amplitude auch um bis zu 2V schwankt, dann wird diese Methode schon schwieriger.
Hans schrieb: > S. K. schrieb: >> T, A1 und A2 hinzeichend genau > > Ja da hast du recht, aber T folgt ja direkt aus der Frequenz, die ja > ziemlich genau 50khz sein soll und A1 und A2 sollten auch ziemlich > konstant sein und einfach mit einem Oszilloskop zu messen. Da ist es einfacher die Phasenverschiebung gleich mit dem Oszilloskop zu bestimmen.
Loog schrieb: > Da ist es einfacher die Phasenverschiebung gleich mit dem Oszilloskop zu > bestimmen. Nein, wenn A1 und A2 auch konstant sind, muss man die nur einmal messen!
S. K. schrieb: > 50kHz entspricht 20us Periodendauer. 0.1° s sind knapp über 5ns. Ich > hätte insbesondere bei unterschiedlichen Signalamplituden Sorgen > hinsichtlich Offsetspannungen und Laufzeittoleranzen gerade im analogen > Pfad. Genau das ist die Crux. Die geforderte Genauigkeit ist verdammt happig. Da braucht auch nur ein Komparator ein klein wenig einen andere Schwellwert haben als der 2. und schon ist die Genauigkeit ausserhalb des geforderten Bereichs.
>> 50kHz entspricht 20us Periodendauer. 0.1° s sind knapp über 5ns. >Genau das ist die Crux. Die geforderte Genauigkeit ist verdammt happig. Man kann auf eine tiefere Frequenz runtermischen, die Phase bleibt erhalten. Bei z.B. 100Hz sind 0.1° schon fast 3µs, die lassen sich bequemer messen.
Bernhard schrieb: >>> 50kHz entspricht 20us Periodendauer. 0.1° s sind knapp über 5ns. > >>Genau das ist die Crux. Die geforderte Genauigkeit ist verdammt happig. > > Man kann auf eine tiefere Frequenz runtermischen, Wozu den schütteln, rühren oder mischen? Einfach 1000 Messungen machen und den Mittelwert bilden. Der Andere schrieb: > Da braucht auch nur ein Komparator ein klein wenig einen andere > Schwellwert haben als der 2. und schon ist die Genauigkeit ausserhalb > des geforderten Bereichs. Wenn man ein Signal an beide Eingänge legt, kann man wunderbar auf 0,0° abgleichen.
>Wozu den schütteln, rühren oder mischen? Einfach 1000 Messungen machen >und den Mittelwert bilden. Hilft gegen zufällige Fehler aber nicht (in jedem Fall) gegen Systematische. >Wenn man ein Signal an beide Eingänge legt, kann man wunderbar auf 0,0° >abgleichen. Das hilft wirklich (gegen Laufzeitunterschiede). wird schon werden hauspapa
Es ist möglichm die Phase von 5kHz Sinus per Soundkarte 96kHz 16bit auf 0.01° zu messen. BTDT n* 20ms mit Sinusfit (SAM) .... Mittelwert also runterteilen , Bandpass, Soundkarte, .... Test? Soundkartenausgang 5kHz ->( linein L) und R(Poti)C Verzögerung -> (linein R) Nur das Übersprechen macht ggf. Probleme, je nach Soundkarte.
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.