PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Differenzfrequenz von zwei Rechteckfrequenzen bilden



TheCurby
21.05.2017, 19:14
Hallo alle,

ich baue mir zur Zeit ein digitales Theremin und mein Lösungsansatz zum Messen der Handposition ist bisher der folgende.

Ich benutze zwei astabile Multivibratoren mit einem TLC556, wobei die Kapazität des einen von der Antenne beeinflusst wird. Diese beiden Frequenzen gehen auf den D und CLK Eingang eines D-Flipflops. An dessen Q-Ausgängen kann ich dann die Frequenzdifferenz sehen. Diese benutze ich als Richtwert zur Orientierung, wo sich die Hand zur Zeit befindet.

Grundsätzlich geht das ganze sehr gut. Mein Theremin hat ein Display mit Navigation und die Antennen können geeicht werden. Dazu werden zwei Messwerte aufgenommen (der Spielbereich) und dann zur Erzeugung der Tonhöhe mit dem aktuellen Ist-Wert verglichen.

Das Problem ist das folgende. Die Differenzfrequenz zittert, ich würde schätzen ca. 5% in ihrer Periode. Das Ganze sieht sehr deterministisch aus, aber ich kann kein System erkennen. Dieses Zittern äußerst sich dementsprechend auf eine unruhige Tonhöhe. Den Schaltplan einer Antenne sieht folgendermaßen aus, vom Fliflop gehts direkt zum µC. Die Quellfrequenzen zittern nicht so stark, kann ich das ggf. irgendwie überprüfen? Vielleicht macht der D-Flipflop ja gar keine Probleme. Auch mit einem CD4069 habe ich nach dem FlipFlop diese Bebachtung.

32636 32638

Ich wäre über jegliche Tips dankbar, dieses Zittern zu beheben - dies ist das letzte große Problem und muss doch lösbar sein. Ohne Antenne und auch mit anderen Bauteilwerten habe ich dieses Zittern in der Differenzfrequenz. Ich muss zwei Frequenzen erzeugen, weil ich eine niedrige Frequenz für eine genügend hohe Auflösen beim Messen brauche. Mache ich direkt die Quellfrequenz eines Multivibrators messbar niedrig, fängt sich dieser sehr viel Dreck aus der Umegebung ein.

Vielen Dank für eure Ratschläge und Ideen!

wkrug
22.05.2017, 04:40
Könnte es sein, das es sich hierbei um eine 50Hz Einstreuung handelt?

Versorg das Teil mal mit einer Batterie und geh damit ins Freie, weit weg von jeder Stromleitung.

Wenn das Zittern dann weg ist, hast Du deine Quelle gefunden.

Auch Schaltnetzteile können üble HF Schleudern sein - Auch das berücksichtigen.

TheCurby
22.05.2017, 07:04
Mein Bauchgefühl sagt mir nein, da ich mit dem Oszilloskop auf der Versorgungsspannung auch kein 50Hz finden kann. Aber andererseits ist dieses Zittern bei niedrigen Frequenzen höher. Ich werde das gleich mal probieren.

PS: Natürlich hat der TLC556 ein 100nF und 100uF parallel zur Versorgungsspannung.

EDIT: Wie ich vermutete hat eine 9V Block Batterie keinen Einfluss auf den Effekt.

PICture
22.05.2017, 09:01
Hallo!

Ich würde die zwei Frequenzen nacheinander messen und danach die Differenz mit µC ausrechnen. Abschliessend würde ich diese Differenzfrequenz durch PLL synthetisieren. ;)

TheCurby
22.05.2017, 09:13
Das bringt mir leider nichts, weil ich die Differenzfrequenz bereits im µC haben will. Eine Frequenz größer als 20kHz ist zu hoch für eine große Auflösung und unterhalb dieser fange ich mir wie gesagt Umgebungsdreck ein.
Wenn ich - im Bezug zur Antenne - 30cm Feld messen will mit einer Auflösung von min. 1mm (schon nicht sehr gut) brauche ich 300 Messwerte, wobei dieser Wert noch gut mit 10 multipliziert werden kann, da die Antenne logarithmisch ist - dann brauche ich 3000 Messwerte. Bei einer Frequenz von 20kHz und einem Systemtakt von 32MHz habe ich einen Messwert von 32000000/20000 = 1600. Viel zu gering :(.

Im Moment habe ich auf beiden Oszillatoren eine Frequenz von 300kHz mit einer Differenz von ca. 800-2000Hz (je nach handposition zur Antenne). Bei 800-1600 hz habe ich einen Messwert von 40.000-20.000, also eine sehr gut Auflösung.

Oder habe ich dich da falsch verstanden?

PICture
22.05.2017, 10:05
... ich baue mir zur Zeit ein digitales Theremin ...

Sorry, dann habe ich dich falsch verstanden. :(

TheCurby
29.05.2017, 06:55
Ich habe einen Schalltplan eines anderen digitalen Theremins gefunden, dort wird es etwas anders gemacht.

http://www.theremin.info/index.php?module=-&type=file&func=get&tid=15&fid=image&pid=64

Zwei Frequenzen werden mit einem XOR verodert. Daraus soll angeblich eine Mischfrequenz mit den addierten Frequenzen und subtrahierten Frequenzen gebildet werden. Mit einem Tiefpass wird jetzt nur die DIfferenzfrequenz durchgelassen und mit einem Schmittinverter wieder zu einem sauberen Rechteck geformt. Ich werde es mal ausprobieren, aber - wird das sauber klappen?

Klebwax
29.05.2017, 07:59
Du könntest dir ja mal das Datenblatt vom HC4046 durchlesen. Das ist ein PLL-Baustein und da geht es auch um Frequenzvergleiche mit einem Mischer. Auch die Datenblätter/App. Notes anderer PLL-Bausteine wie der LM567 können hilfreiche Informationen liefern.

MfG Klebwax

TheCurby
30.05.2017, 07:14
Ich habe nochmal drüber nachgedacht und es ergibt doch Sinn. Desto größer der Frequenzabstand beider Signale ist, desto größer ist das zittern. Warum? Weil das ein Rundungsfehler ist! Meine Schaltung vergleicht ja nur, welche Flanke zuerst kommt und setzt dementsprechend den Ausgang vom Flipflop. Bei kleinen Frequenzuterschied ist der Fehler am Übergang klein, bei großen Frequenzen sehr groß.

Ich habe es mit einem XOR, Tiefpass und Hexinverter getestet, das zittert genauso - ist ja auch eine digitale Rundung.

Könnte ich meine beiden Rechteckfrequenzen nicht mit einem Tiefpass etwas Dreieck/Sinusförmig machen und das analog mischen und anschließend mit einem hexinverter wieder zu einem Rechteck machen? Angeblich soll die Differenzfrequenz bei analogen Signalen einfach sein?

EDIT:
Noch eine Idee. Vielleicht lässt sich das mit einer PLL noch besser machen. Ich nehme mein Rechtecksignal, welches um ca. 300kHz schwingt und mit der Antenne +- 2kHz verändert werden kann. Dieses füttere ich in eine PLL (CD4046), welcher seinen VCO intern an mein Eingangssignal anpasst (z.B. Offsetfrequez 295kHz und ein Steuerbereich von 30kHz). Jetzt benutze ich die Steuerspannung um einen zweiten VCO anzusteuern, welcher eine Frequenz von 1-2kHz bei der selben STeuerspannung erzeugt.

Das wäre zwar nicht die wirkliche DIfferenzfrequenz - die ist aber auch gar nicht so interessant! Dann hätte ich eine Frequenz von 1-2kHz im spielbaren Bereich! Wäre das eine Möglichkeit? Ich werde es mal versuchsweise aufbauen!

TheCurby
03.06.2017, 07:11
Mit einer PLL funktioniert es im Prinzip ist aber leider aus einem triftigen Grund nicht zu benutzen: Die Frequenz sinkt, wenn ich mich der Antenne näher. Das heißt nämlich die Messwerte werden langsam kleiner und werden dann schnell kleiner (exponentiell) - andersherum ist es besser. Zusätzlich verhält sich das Signal ausserhalb der gewünschten Frequenzen etwas seltsam, während beim Flipflop immer eine definierte Frequenz rauskommt, auch wenn diese gerundet ist.

Nun habe ich aber die Beobachtung gemacht, dass das Runden vermutlich wenger das Problem ist, ich scheine ein allgemeines Rauschen zu haben, was sich viel stärker auswirkt. Ich weiß nicht, ob das behoben ist, wenn ich einen ordentlichen Aufbau machen - immerhin steht im Moment jede Menge (elektronischer) Kram neben meinem Gerät. Evt. ist auch mein PCB Design so schlimm, dass es dort zu STörungen kommt. Ich habe es mal angehangen (Antennenbereich).

32654