Hallo Habe da mal eine Frage. Ich habe 2 Rechtecksignale z.B. 30Hz und 50Hz. Gibt es eine Möglichkeit diese mit normalen Digital Ics zu mischen? Gebraucht wird die Differenz von 20Hz. Die Frequenzen variieren, deshalb ist die Differenzbildung wichtig. Bei HF geht das ja einfach über Ringmischer usw. Aber bei "NF"? Hat jemand eine Idee? Gruß Mani
Noch was, es gibt keine feste Phasenbeziehung zwischen den Eingangssignalen.
Hallo, an jeder gekrümmten Kennlinie kannst Du sie mischen. Nur brauchst Du noch einen Tiefpaß, der Dir die 30 Hz hinreichend gut von den 20Hz abtrennt. Hast Du die Teile dafür schon da liegen? Vielleicht kann mal jemand die nötige Flankensteilheit angeben, das ist eine halbe Oktave. Mit freundlichem Gruß
@Mani (Gast) >Ich habe 2 Rechtecksignale z.B. 30Hz und 50Hz. >Gibt es eine Möglichkeit diese mit normalen Digital Ics zu mischen? Sicher. >Gebraucht wird die Differenz von 20Hz. >Die Frequenzen variieren, deshalb ist die Differenzbildung wichtig. >Bei HF geht das ja einfach über Ringmischer usw. >Aber bei "NF"? Einen Mischer kann man mit einem Multiplikator machen. Bei Digitalsignalen wäre das ein einfaches UND-Gatter. Allerdings muss man danach die Oberwellen mittels Filter entfernen und danach wieder per Schmitt-Trigger zu einem Digitalsignal formen.
https://de.wikipedia.org/wiki/Mischer_(Elektronik)#Mischung_mit_rechteckf.C3.B6rmigem_LO-Signal Hmm, oder doch eher XOR statt AND?
Jedes EXOR macht diese Mischung. Aber wie bei jedem Mischer entstehen (spektral betrachtet) Differenz- und Summenfrequenz mit gleicher Amplitude. Ein Tiefpass filtert die 80 Hz weg, anschließend noch ein Schmitt-Trigger um wieder ein Rechteck zu bekommen.
:
Bearbeitet durch User
Im NF-Bereich ist ein keiner µC die Lösung: f1 & f2 messen und die Differenz bilden. Da spart man sich Filter & Co.
Messi schrieb: > Im NF-Bereich ist ein keiner µC die Lösung: f1 & f2 messen und die > Differenz bilden. Da spart man sich Filter & Co. Würde das ganze nicht auch durch geschicktes Toggeln eines Ausgangs durch die Zustände der Flanken der beiden Frequenzen ohne Messung und große Rechenkraft funktionieren? Oder habe ich was bei der Theorie übersehen?
Philipp K. schrieb: > Messi schrieb: >> Im NF-Bereich ist ein keiner µC die Lösung: f1 & f2 messen und die >> Differenz bilden. Da spart man sich Filter & Co. > > Würde das ganze nicht auch durch geschicktes Toggeln eines Ausgangs > durch die Zustände der Flanken der beiden Frequenzen ohne Messung und > große Rechenkraft funktionieren? Zeige dein Programm mit dem geschickten Toggeln.
Nimm ein D-FlipFlop. Das eine Signal auf den D-Eingang, das andere auf den Takt-Eingang und voila, auf Q oder Q~ hast du deine Differenzfrequenz.
Nils schrieb: > Nimm ein D-FlipFlop. Das eine Signal auf den D-Eingang, das andere auf > den Takt-Eingang und voila, auf Q oder Q~ hast du deine > Differenzfrequenz. Wenn das wirklich funktionieren sollte und zwar so, dass die Rechtecke am Ausgang alle gleich breit sind, dann fress nicht nur einen Besen (auch nicht zwei) sondern sogar wieder Gemüse.
Das sind ja schon gute Ideen. Mit dem D FF hört sich gut an. Ausgangssignal muss auch nicht Puls/Pause 1:1 sein. Jitter stört glaube ich nicht. Wichtig ist nur die Frequenz Gruß Mani
@Fleischfresser (Gast) >> Nimm ein D-FlipFlop. Das eine Signal auf den D-Eingang, das andere auf >> den Takt-Eingang und voila, auf Q oder Q~ hast du deine >> Differenzfrequenz. >Wenn das wirklich funktionieren sollte und zwar so, dass die Rechtecke >am Ausgang alle gleich breit sind, dann fress nicht nur einen Besen >(auch nicht zwei) sondern sogar wieder Gemüse. Guten Appetit! Nein, das kommt dabei nicht raus. Richtig ist aber, daß mit einem D-FlipFlop ein einfaches Abtastglied gebaut werden kann. Das wirkt auch wie ein multiplikativer Mischer. Aber auch dort braucht man am Ausgang einen Tiefpaßfilter.
Nils schrieb: > Nimm ein D-FlipFlop. Das eine Signal auf den D-Eingang, das andere auf > den Takt-Eingang und voila, auf Q oder Q~ hast du deine > Differenzfrequenz. Kühne Behauptung. Stimmt allerdings nicht. Die 50Hz und die 30Hz XORen, das Signal in einem LC Bandpass filtern und mit einem Komparator wieder ein Digitalsygnal raus machen. Cheers Detlef
Detlef _. schrieb: > Die 50Hz und die 30Hz XORen, das Signal in einem LC Bandpass filtern und > mit einem Komparator wieder ein Digitalsygnal raus machen. Wurde weiter oben bereits vorgeschlagen. Bei zwei bekannten Frequenzen brauche ich diesen Aufwand nicht zu treiben, da kann ich die Differenzfrequenz gleich ausgeben. Bei zwei unbekannten Frequenzen hilft z. B. ein µC. Vielleicht erklärt der TO sein Vorhaben etwas genauer(zum Beispiel in welchem Bereich die beiden Frequenzen liegen).
@ Detlef _a (detlef_a) >> Nimm ein D-FlipFlop. Das eine Signal auf den D-Eingang, das andere auf >> den Takt-Eingang und voila, auf Q oder Q~ hast du deine >> Differenzfrequenz. >Kühne Behauptung. Stimmt allerdings nicht. Doch, wenn gleich nur mit Einschränkungen. Ich hab's mal schnell aufgebaut. 50 Hz aus dem Arduino, 30 Hz aus dem Funktionsgenerator. Da kommen tatsächlich direkt 20 Hz raus ;-) Allerdings nur, wenn das Tastverhältnis am D-Eingang nahe 50% ist (am Takteingang ist es beliebig, weil ja flankengesteuert). Das Tastverhältnis am Ausgang springt dann aber ganz schön. Wenn man es ausreichend lange mittelt (Torzeit im Frequenzzähler), mag es funktionieren. Unterhalb von 30% und oberhalb von 70% funktioniert der Trick aber nicht mehr, dann kommt nur noch die halbe Frequenz raus.
Hier ein ähnlicher Beitrag, es bleibt aber unklar welche Lösung / Schaltung letztendlich die bessere war. Beitrag "Zwei Rechtecksignale mischen" Beitrag "Re: Zwei Rechtecksignale mischen"
Messi schrieb: > Detlef _. schrieb: > >> Die 50Hz und die 30Hz XORen, das Signal in einem LC Bandpass filtern und >> mit einem Komparator wieder ein Digitalsygnal raus machen. > > Wurde weiter oben bereits vorgeschlagen. > Wurde es nicht. Da wurde ein Tiefpass vorgeschlagen. >>>>>>>Ich hab's mal schnell aufgebaut. Ich auch, in Matlab. Da kommen im wesentlichen 10Hz raus und bisschen 20Hz. Hat sich dein Frequenzzähler auf die Oberwelle eingeschossen?. Cheers Detlef clear n=2^18; sig30=[ones(1,5) -ones(1,5)]; sig50=[ones(1,3) -ones(1,3)]; sig30=[sig30 sig30 sig30 ]; sig50=[sig50 sig50 sig50 sig50 sig50 ]; sig30=repmat(sig30,1,1000); sig50=repmat(sig50,1,1000); sig=ones(size(sig30)); stat=1; for(k=2:length(sig)) sig(k)=stat; if(sig30(k )== 1) if(sig30(k-1)==-1) stat=sig50(k); end;end; end; spsig=abs(fft(sig)); plot(spsig(1:1000),'r.-') plot(sig(1:100),'r.-') return
@Detlef _a (detlef_a) >>>>>>>>Ich hab's mal schnell aufgebaut. >Ich auch, in Matlab. Da kommen im wesentlichen 10Hz raus und bisschen >20Hz. Hat sich dein Frequenzzähler auf die Oberwelle eingeschossen?. Eigentlich nicht. Siehe Anhang. Oben auf Kanal 1 die 50 Hz Abtastfrequenz, unten Kanal 3 mit den 20 Hz.
Detlef _. schrieb: > Messi schrieb: >> Detlef _. schrieb: >> >>> Die 50Hz und die 30Hz XORen, das Signal in einem LC Bandpass filtern und >>> mit einem Komparator wieder ein Digitalsygnal raus machen. >> >> Wurde weiter oben bereits vorgeschlagen. >> > > Wurde es nicht. Da wurde ein Tiefpass vorgeschlagen. Die Lösungen, Tiefpass & Schmitt-Triggerm bzw. Bandpass - Komparator, sind mir doch sehr ähnlich. Beide sind analog & unflexibel: eine digitale Lösung mit einem µC ist vorzuziehen.
Hallo, das hierfür notwendige LC-Filter aus Spulen mit Ferrit- oder Eisenkern dürfte für sich bereits eine anspruchsvolle Entwickung sein, aus deren umfassender Beschreibung man noch einiges lernen könnte. Mit freundlichem Gruß
Messi schrieb: > Beide sind analog Na und? > unflexibel Welche Flexibilität fehlt dir denn? > eine digitale Lösung mit einem µC ist vorzuziehen. Wer hat so etwas bei der Aufgabenstellung gefordert? Aber natürlich geht es auch: XOR, anschließender Tiefpass und Schmitt-Trigger, alles in Software. Ausgangssignal 20 Hz Rechteck. Das ist alles in einem kleinen 8-poligen µC machbar. Dauert nur länger, als ein paar Bauteile zusammenzulöten. (Auch der µC muss mit Ein- und Ausgängen irgendwo hin gebaut werden). Die Kosten und der Platzbedarf würden wiederum für den µC sprechen. DZDZ
Detlef _. schrieb: >> Wurde weiter oben bereits vorgeschlagen. >> > > Wurde es nicht. Da wurde ein Tiefpass vorgeschlagen. Nicht? Und was ist das hier? Falk B. schrieb: > https://de.wikipedia.org/wiki/Mischer_(Elektronik)... > > Hmm, oder doch eher XOR statt AND? Christoph K. schrieb: > Jedes EXOR macht diese Mischung. Überlesen?
Hab es geschafft mich wieder einzuloggen. Da ja nach der Anwendung gefragt wurde hier der Hintergrund. Im letzten Jahrtausend hab ich mir mal einen analogen Verbrauchsmesser für Benzinmotoren gebaut. Durchflussgeber von Conrad. Hat sehr gut funktioniert. Den Durchflussgeber hab ich letztes Jahr umgebaut um ein sauberes Signal für eine Flowscan Verbrauchsanzeige zu bekommen. Dieser misst den Gesamtverbrauch, digital angezeigt, und l/h analog. Funktioniert alles. Wenn ich jetzt Einspritzer messen will, brauch ich einen zweiten Sensor im Rücklauf. Dafür brauch ich das Differenzsignal. Danke Falk, dass du es probiert hast. Welchen Typ hast du genommen? Scheint ja wirklich zu funktionieren. Meine Idee wäre jetzt folgende. Ich nehme einen Vor/Rückwärtszähler mit Taktsignal 0,5Hz. Als erstes wird rückwärts gezählt (Rücklauf). Nach 1sek vorwärts. Bei erreichen der Null wird der Takt auch auf den Flowscan weiter geleitet. Nach 2sek. Reset und alles wieder neu. Somit würde nur die Differenz als kurze Bursts ausgegeben. Die analoge Anzeige ist träge genug. Geht das so, oder ist das Blödsinn. Gruß Mani
:
Bearbeitet durch User
Warum funktioniert die D-Flipflop Lösung bei mir bestens? Nicht simuliert, sondern aufgebaut? Ich bin aber auch im 500kHz Bereich tätig mit 50% duty cycle...
Hallo Nils Könntest du das mal mit f1 10-200 Hz und f2 10-190Hz probieren? F2 muss immer kleiner sein, da es den Rücklauf simuliert. Gruß Mani
@ Manfred H. (manfredbochum) >Wenn ich jetzt Einspritzer messen will, brauch ich einen zweiten Sensor >im Rücklauf. >Dafür brauch ich das Differenzsignal. Naja, hier bietet sich wirklich ein kleiner uC an, der kann das 2x messen, Differnez bilden und gut. >Welchen Typ hast du genommen? 74HC74. >Ich nehme einen Vor/Rückwärtszähler mit Taktsignal 0,5Hz. Alles viel zu umständlich. Wir leben nicht mehr in den 1980ern ;-) >Somit würde nur die Differenz als kurze Bursts ausgegeben. Die analoge >Anzeige ist träge genug. Was will die denn als Eingang haben? Auch ein Taktsignal? Das kann man auch leicht mit dem uC erzeugen. Allerdings muss man den programmieren, das kann und will halt nicht jeder.
@Was will die denn als Eingang haben? Auch ein Taktsignal? Ja, 0-12V mehr nicht. @Allerdings muss man den programmieren, das kann und will halt nicht jeder. Ist ja kein Aufwand zwei Zähler und Differenz bilden. Irgendwann fang ich auch mit Arduino an, hab ihn ja schon hier liegen.
:
Bearbeitet durch User
Das musst du selber testen, ich verwende ein D-Flipflop 74HC74 um von einem 400kHz ein ca. 395kHz Signal zu subtrahieren, sprich die Differenz zu bilden. Das Ausgangssignal ist perfekt sauber (Augenmaß), ich habe aber bei beiden Eingängen und Ausgängen einen duty cycle von 50%. Ausgangsfrequenz jedoch kein Augenmaß, sondern mit Digitaloszilloskop gemessen. Aber warum sollte das bei 10-200Hz nicht funktionieren? Hast du einen duty cycle von 50% an den Eingängen?
Ok, es iat natürlich logisch, warum das bei meinen hohen Frequenzen so viel besser funktioniert: Desto kleiner der Unterschied zwischen den beiden Frequenzen ist, desto größer ist der Rundungsfehler. Es ist ja ein digitaler Vergleich. Also wird Falks Beobachtung korrekt sein, dass zwar 20Hz rauskommen, aber du den Mittelwert bilden musst, weil bei so niedrigen Frequenzen starke Rundungsfehler auftreten. Bei 1Hz und 3Hz z.B. kommt als Ergebnis schon 2Hz raus, jedoch in der Folge 1 - 0 - 0 - 1. Also nicht verwertbar. Kann man bestimmt berechnen, ab wann das gut funktioniert ;). Wenn ich von 400kHz 395Khz abziehe, habe ich bei irgeneiner Flanke einen Rundungsfehler. Egal, sind ja 5000 Stück.
@Nils H. (nils_h494) >Es ist ja ein digitaler Vergleich. Also wird Falks Beobachtung korrekt >sein, dass zwar 20Hz rauskommen, aber du den Mittelwert bilden musst, >weil bei so niedrigen Frequenzen starke Rundungsfehler auftreten. Das sind keine Rundungsfehler sondern Jitter. >Bei 1Hz und 3Hz z.B. kommt als Ergebnis schon 2Hz raus, jedoch in der >Folge 1 - 0 - 0 - 1. Also nicht verwertbar. Aber sicher. Man muss nur über einen ausreichend großen Zeitraum mitteln, sprich, viele Perioden betrachten. Wenn man nur eine Periode genau messen will, muss man vorher filtern.
Mani schrieb: > Habe da mal eine Frage. > Ich habe 2 Rechtecksignale z.B. 30Hz und 50Hz. > Gibt es eine Möglichkeit diese mit normalen Digital Ics zu mischen? > Gebraucht wird die Differenz von 20Hz. Ich würde die erste Frequenz messen und die zweite Frequenz messen und dann rechnen: differenz = abs(frequenz1-frequenz2); Aber die hier gestellte Aufgabe ist eigentlich eine andere: Es muss nicht eine bestimmte Frequenz erzeugt werden, sondern eine korrekte Anzahl von Pulsen. Und deshalb würde ich einfach einen Nachlaufzähler implementieren: Jeder Puls vom "Zulauf" zählt den Zähler hoch. Jeder Puls vom "Rücklauf" zählt den Zähler runter. Wenn nichts verbraucht wurde, ist der Zähler am Ende des Tages 0. Und jetzt kommt ein dritter Zähler, der zählt, wie viele Impulse schon an die Anzeige weitergegeben wurden, und das bei Bedarf nachregelt. Manfred H. schrieb: > Meine Idee wäre jetzt folgende. > Ich nehme einen Vor/Rückwärtszähler mit Taktsignal 0,5Hz. > Als erstes wird rückwärts gezählt (Rücklauf). > Nach 1sek vorwärts. Bei erreichen der Null wird der Takt auch auf den > Flowscan weiter geleitet. > Nach 2sek. Reset und alles wieder neu. > Somit würde nur die Differenz als kurze Bursts ausgegeben. Du denkst im falschen Programmierstil: "erst das Eine, dann das Andere, dann das Dritte...". In der Praxis muss das gleichzeitig passieren. Und das ist mit dem richtigen Programmierstil auch kein größerer Aufwand: ca. 30 Zeilen C-Code dürften locker reichen...
Manfred H. schrieb: > eine Flowscan Verbrauchsanzeige zu bekommen. > Dieser misst den Gesamtverbrauch, digital angezeigt, und l/h analog. Diese Anzeige wird vermutlich schon einen MC enthalten, den man nur entsprechend umprogrammieren muß. Und die analoge Ausgabe kann der MC gleich nebenbei als PWM machen. Ist der C-Quelltext für die Anzeige verfügbar?
@Lothar, Software seitig hast Du natürlich Recht. Würde ich auch so machen. Meine Idee war ja für Hardware gedacht. @Peter, Ich glaube kaum dass die Firma den Code ihrer Geräte raus gibt. Das funktioniert ja auch alles. Es ging nur um die Berücksichtigung eines zweiten Sensors. Das Fertiggerät hat nur einen Eingang. Gruß Mani
Naja, wenn's wirklich nur um die Differenzfrequenz geht ist ein einfaches 74HC74 nun weiß Gott kein Aufwand! Da muss man auch nicht krampfhaft einen uC nutzen!
Hallo, wenn ich richtig lese, dann soll die Differenzfrequenz von 2 nicht korrelierten Signalen erzeugt werden. Da muß doch erst einmal die Frequenz beider Signale ermittelt werden. Mit XOR oder FF bekommst du doch beliebige "Differenzen", aus denen du kaum die gewünschte Frequenz herausfiltern kannst. Ich könnte mir vorstellen, dass man zuerst beide Signale mit einer PLL synchronisiert und dann klappt auch XOR und Co. Vielleicht liege ich aber auch falsch mit meiner Vermutung... Gruß Rainer
@ Rainer Von römer (mikrozip) >Vielleicht liege ich aber auch falsch mit meiner Vermutung... Das tust du ;-) Beitrag "Re: Differenzbildung zweier Rechtecksignale"
Falk B. schrieb: > Das tust du ;-) > > Beitrag "Re: Differenzbildung zweier Rechtecksignale" Aber da beschreibst du doch genau das, was ich gesagt habe!?
Lothar M. schrieb: > Aber die hier gestellte Aufgabe ist eigentlich eine andere: > Es muss nicht eine bestimmte Frequenz erzeugt werden, sondern eine > korrekte Anzahl von Pulsen. Habe das gerade erst gelesen...die Fragestellung des TO suggeriert eben etwas ganz anderes! Natürlich kann man die Differenz von 2 Durchflußmessern durch einfaches Zählen bestimmen. Gruß Rainer
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.