Differenzbildung zweier Rechtecksignale

Gast #5064668
Lesenswert?

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
#5064695
Lesenswert?

@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.
Gast #5064755
Lesenswert?

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.
Gast #5064805
Lesenswert?

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.
#5064819
Lesenswert?

@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.
#5064842
Lesenswert?

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
Gast #5064872
Lesenswert?

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).
#5064874
Lesenswert?

@ 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.
#5064945
Lesenswert?

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
#5064965
Lesenswert?

@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.
Angehängte Dateien:
Gast #5064969
Lesenswert?

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.
Gast #5064987
Lesenswert?

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
#5064999
Lesenswert?

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
Angehängte Dateien:
#5065081
Lesenswert?

@ 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.
Gast #5065135
Lesenswert?

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?
Gast #5065559
Lesenswert?

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.
#5065618
Lesenswert?

@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.
Moderator (Firma: Titel) Persönliche Seite #5065640
Lesenswert?

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...
#5065658
Lesenswert?

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?
#5065746
Lesenswert?

@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
Gast #5066444
Lesenswert?

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
Gast #5066708
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren