Forum: Analoge Elektronik und Schaltungstechnik Halbe Frequenz eines Signals erzeugen


von Paul B. (Gast)


Lesenswert?

Wie kann ich (z.B. mit einem uC) die halbe Frequenz eines sinusförmigen 
Eingangssignals erzeugen? Die doppelte Frequenz erhält man bekanntlich 
durch Mischen mit sich selbst, aber wie geht das beim Halbieren?

Die Frequenzen liegen im Bereich von 50kHz - 100kHz und können mit einem 
AD-Wandler bis 10 MHz erfasst werden. Gedacht sind etwa 1 MHz, damit der 
Controller es noch verarbeiten kann.

Gibt es alternativ eine Analogschaltung, die das kann? Ich habe den 
Bereich abgesucht, aber nichts gefunden. Geht es gfs durch 
Heruntermischen? Dazu braucht man nach meinem Verständnis eine Frequenz 
mit Faktor 1,5 - wie kann ich die erzeugen?

Bislang hätte ich nur die digitale Variante, nämlich das Signal per 
Schmitt-Trigger rechteckig zu machen und dann binär zu teilen mit FFs 
oder so und dann wieder einen Sinus zu machen. Das scheitert aber daran, 
dass ich die Frequenz nicht genau kenne. Das neu erzeugte Signal soll 
mit einer AC-Kopplung übertragen werden von daher muss es sinusfärmig 
und oberwellenfrei sein. Etwas Verzerrung und Phasenverschiebung wäre in 
Ordnung.

von Max H. (hartl192)


Lesenswert?

Vllt. lässt sich mit einer PLL (z.B. 74HC4046) was machen.

von X4U (Gast)


Lesenswert?

Frank Petelka schrieb:
> Die Frequenzen liegen im Bereich von 50kHz - 100kHz und können mit einem
> AD-Wandler bis 10 MHz erfasst werden. Gedacht sind etwa 1 MHz, damit der
> Controller es noch verarbeiten kann.

Wenn du weißt das das Signal Sinusförmig ist kannst du die Frequenz 
messen und einen Sinus mit halber Frequenz neu erzeugen.

In Hardware geht das mit einem f/U Wandler, einem Spanungsteiler und 
einem U/f Wandler der Sinus macht bzw einem VCO oder mittels DDS

von oszi40 (Gast)


Lesenswert?

X4U schrieb:
> mit halber Frequenz neu erzeugen.

phasenstabil? Regelzeit=?

von Klaus B. (butzo)


Lesenswert?

Frank Petelka schrieb:

> Die Frequenzen liegen im Bereich von 50kHz - 100kHz
> muss es sinusfärmig und oberwellenfrei sein.
Falls oberwellenarm reicht:
Schmitt-Trigger, Teiler : 2, und hintendran ein steiles Tiefpassfilter 
mit ca. 100 kHz Grenzfrequenz.


Butzo

von MaWin (Gast)


Lesenswert?

Wenn du das 50-100kHz Signal mit 1Msps sampelst, kannst du direkt eine 
Spannung ausgeben (D/A Wandler) die einen Sinus der halben Frequenz zu 
der Zeit entspricht.
Dazu brauchst du eine Tabelle, welche Eingangsspannung welche 
Ausgangsspannung erzeugt unter einer von 4 Voraussetzungen: Positive 
Halbwelle ergibt steigenden Flanke über 0V, negative Halbwelle ergibt 
fallende Flanke über 0V, nächste positive Halbwelle ergibt weiter 
fallende Flanke unter 0V und nächste negative Halbwelle ergibt steigende 
Flanke unter 0V.

Bei schwankender Eingangsspannung kann man Maxima und Minima der letzten 
Sinusschwingung als 100% Referenz für die nächste verwenden.

Allerdings hast du bei 1Msps nur 1us Zeit, das umzurechnen. Das 
erfordert einen schnellen uC, besser einen DSP. Da kein wesentlicher 
Speicher nötig ist, und du scheinbar sowieso A/D und D/A Wandler 
brauchst, könnte ein ADuC7019 eine angemessene Lösung sein (Auflösung 12 
bit).

von mse2 (Gast)


Lesenswert?

Frank Petelka schrieb:
> Wie kann ich (z.B. mit einem uC) die halbe Frequenz eines
> sinusförmigen
> Eingangssignals erzeugen?
...
> Gibt es alternativ eine Analogschaltung, die das kann?
Ich würde vermuten, dass nicht. Analog kann man leicht Oberwellen 
erzeugen, aber nichts mit niedrigerer Frequenz.

von X4U (Gast)


Lesenswert?

oszi40 schrieb:
> X4U schrieb:
>> mit halber Frequenz neu erzeugen.
>
> phasenstabil? Regelzeit=?

IMHO beides 1 Halbwelle die dann invertiert werden kann. Aber ich kien 
Signaltheorieguru

von Rolf S. (audiorolf)


Lesenswert?

Es gibt doch solche Sprachprozessoren, die die Stimme eine Oktave runter 
rechnen. Ich bin nicht sicher, wie die funktionieren, aber vlt wäre das 
ein Ansatz.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Bevor es digitale Frequenzteiler gab, haben "Elektronenorgeln" das auch 
irgendwie mit synchronisierten Sägezahnoszillatoren hinbekommen.

So einen Sprachfrequenz-Shifter hab ich mal von ELV als Bausatz gekauft. 
Leider wird der Chip nicht mehr hergestellt.

: Bearbeitet durch User
von Matthias K. (kannichauch)


Lesenswert?

Max H. schrieb:
> Vllt. lässt sich mit einer PLL (z.B. 74HC4046) was machen.

Hallo
Nicht vielleicht, sondern ganz bestimmt.
Eine Frequenz lässt sich digital teilen und das dann mittels einem PLL 
IC und einem VCO als Sinussignal erzeugen.
Eine AM-Modulation müsste neu stattfinden, oder ersatzweise eine 
Mischung stattfinden.

MfG
Matthias

von Possetitjel (Gast)


Lesenswert?

Frank Petelka schrieb:

> Die doppelte Frequenz erhält man bekanntlich durch
> Mischen mit sich selbst, aber wie geht das beim
> Halbieren?

Genauso, aber "kopfstehend": PLL, Frequenzverdoppler
zwischen VCO und Phasencomparator --> VCO liefert genau
die halbe Frequenz.
Das Problem dieser Lösung besteht in dem VCO, der ja
Sinussignal liefern soll. Das geht, ist aber relativ
viel Aufwand. Es gibt (mindestens) zwei rein analoge
Lösungen für das Problem. Details auf Nachfrage.

> Bislang hätte ich nur die digitale Variante, nämlich
> das Signal per Schmitt-Trigger rechteckig zu machen
> und dann binär zu teilen mit FFs oder so und dann
> wieder einen Sinus zu machen. Das scheitert aber daran,
> dass ich die Frequenz nicht genau kenne.

Wenn der Bereich 50kHz - 100kHz mit Sicherheit eingehalten
wird, ist das kein Problem. Butzos Idee geht in die richtige
Richtung.
Der zentrale Trick besteht darin, dass ein Rechtecksignal
mit Tastgrad von genau 0.5 die zweite Harmonische nicht
enthält; die niedrigste Harmonische ist die dritte. Der
Bereich der Grundwelle, die Du ja haben willst, geht, wenn
das Originalsignal zwischen 50kHz und 100kHz liegt, im
geteilten Signal von 25kHz bis 50kHz. Die dritte Harmonische
(des geteilten, also rechteckförmigen Signals) liegt
logischerweise im Bereich 75kHz bis 150kHz. Der Tiefpass
muss also alles bis 50kHz durchlassen und ab 75kHz schon
kräftig sperren. Das sind zwar sportliche Anforderungen,
aber mit Filtern höherer Ordnung machbar. Halte ich für
realistisch.

> Das neu erzeugte Signal soll mit einer AC-Kopplung
> übertragen werden von daher muss es sinusfärmig
> und oberwellenfrei sein. Etwas Verzerrung und
> Phasenverschiebung wäre in Ordnung.

An Phasenverschiebung wird bei Filtern hoher Ordnung kein
Mangel sein ;-)
Die zulässigen Verzerrungen müsstest Du mal in Zahlen fassen.
Aus dem Bauch heraus: 5% Klirrfaktor sollte kein Probblem
sein, aber 0.1% Klirrfaktor wäre sehr... "ambitioniert"...

von Georg (Gast)


Lesenswert?

Hallo,

wenn sich das Signal nicht allzuschnell verändert:

Du sampelst den Original-Sinus mit n facher Frequenz (PLL) und gibst die 
erfassten Werte mit der halben Frequenz wieder aus. Das hat den 
Nachteil, dass du damit erst nach 2 Vollwellen des Originals fertig 
bist, machst du dann so weiter, wird praktisch jede 2 Vollwelle im neuen 
Signal abgebildet. Der Vorteil ist, das gilt auch für andere 
Kurvenformen als Sinus.

Mit enstprechendem Aufwand kann man noch weitergehen und immer 2 
Vollwellen erfassen, den Durchschnitt bilden und das als neue Vollwelle 
halber Frequenz ausgeben. Besser dürfte das nicht gehen; wenn die 
aufeinanderfolgenden Vollwellen völlig verschieden sind, gibt es keine 
Lösung diese Information zu erhalten (kann es nicht geben).

Das Ganze ist natürlich weit entfernt von analog.

Georg

von besucher (Gast)


Lesenswert?


von Paul B. (Gast)


Lesenswert?

Das muss ich mir jetzt alles in Ruhe mal durchlesen. Vorab die Info:

Das Signal ändert sich eigentlich ständig ein wenig, z.B. bewegt es sich 
innerhalb einiger 10/tel von 60kHz auf 70kHz und schwingt auch. Sampeln 
und neu erzeugen wir daher schwierig. Eine PLL wäre wahrscheinlich zu 
langsam.

von mse2 (Gast)


Lesenswert?

mse2 schrieb:
>> Gibt es alternativ eine Analogschaltung, die das kann?
> Ich würde vermuten, dass nicht. Analog kann man leicht Oberwellen
> erzeugen, aber nichts mit niedrigerer Frequenz.
Meine Antwort war wenig fundiert, wie ich zugeben muss. (War zu heiß 
gestern...).
Zwei Dinge, die das Gegenteil beweisen, wurde schon genannt:
PLL und Synchronisation.
Sorry!

von Frank (Gast)


Lesenswert?

Klaus Butzmann schrieb:
> Frank Petelka schrieb:
>
>> Die Frequenzen liegen im Bereich von 50kHz - 100kHz
>> muss es sinusfärmig und oberwellenfrei sein.
> Falls oberwellenarm reicht:
> Schmitt-Trigger, Teiler : 2, und hintendran ein steiles Tiefpassfilter
> mit ca. 100 kHz Grenzfrequenz.
> Butzo
Bzgl. Frequenztreue gibt es doch keine bessere Lösung. Und man braucht 
noch nicht mal eine MCU. Und die Verzerrungsfreiheit kann man komplett 
mit dem Tiefpaß so einrichten wie man es braucht. Ungerade 
Teilerverhältnisse kann man mit einem Zähler erreichen, nur gebrochene 
Teilerverhältnisse werden etwas schwieriger (Teiler + Zähler).

von Kein Troll (Gast)


Lesenswert?

Ungerade Verhaeltniss macht man mit einem fraktionalen PLL

von auch Frank (Gast)


Lesenswert?

- Sinus zu Rechteck (div. Möglichkeiten)
- aufsteigende Flanke lädt Integrator (Operationsverstärker)
- nächste aufsteigende Flanke entlädt Integrator

Resultat: Oberwellenarme Dreieckschwingung mit halber Frequenz.
Vielleicht schon ausreichend.
Wenn nicht: mit ein paar Dioden einen Sinus-Shaper basteln.

Achtung: Amplitude sinkt mit zunehmender Frequenz. Könnte aber 
kompensiert werden.

von J. S. (engineer) Benutzerseite


Lesenswert?

Christoph Kessler (db1uq) schrieb:
> Bevor es digitale Frequenzteiler gab, haben "Elektronenorgeln" das auch
> irgendwie mit synchronisierten Sägezahnoszillatoren hinbekommen.

Das ging aber deshalb so einfach, weil die Frequenz bekannt war und die 
Sägezahnoszillatoren einen eindeutigen Knickpunkt- sowie eine definierte 
Amplitude haben.

> So einen Sprachfrequenz-Shifter hab ich mal von ELV als Bausatz gekauft.
> Leider wird der Chip nicht mehr hergestellt.
Die meisten Audio-Prozessoren, auch die preiswerten mit dem Grossen B. 
können das. Teilweise geschieht es durch resampling, teilweise durch 
scattering. Rolands (weitgehend) formantenunabhängige 
Varipphrasetechnologie kann das noch am Besten. Die scheinen über eine 
iFFT zu arbeiten.

Zur eigentlichen Frage:

Grundsätzlich funktioniert die kontinuierliche Teilung der Frequenz 
durch 2 mit einer Wurzelbildung, aber man muss den Mittelwert der 
Eingangsfrequenz kennen und zuvor addieren. Ferner muss wie bereits 
angesprochen das Vorzeichen manuell wiederhergestellt werden. Das geht 
bei DDS-basierten Sinusoszillatoren, bei denen die Amplitude bekannt 
ist, sehr gut. Bei einigen Musiksynthesizern wird das so gemacht. Nennt 
sich "SUB-Oszillator" und reagiert folglich auch auf das Vibrato und 
Pitching. Bei variablen Eingangsamplituden gibt es immer ein 
Nullpunktdetektions- und Durchtrittsproblem beim Vorzeichenwechsel, der 
zu geringen Phasensprüngen führt, die weggefiltert werden müssen. Daher 
eignet sich sowas eigentlich so richtig gut nur als Effekt, z.B. für 
E-Gitarren. Hier hatte ich ja mal so etwas gepostet:

Beitrag "VHDL-Effektgerät für Gitarre und andere Instrumente"

Das hat auch einen Frequenzverdoppler drin. Der hat aber dasselbe 
Problem: Wenn die Amplitude nicht konstant ist gemacht wird, braucht es 
eine dynamische Regelung des BIAS und die ist immer unvollkommen, 
wodurch es Zufallseffekte gibt. Die sind in dem Fall aber erwünscht ;-)

Beides, Verdopplung und Halbierung klappt so richtig perfekt nur für die 
jeweils fokussierte Frequenz. Jede Oberwelle macht ein 
Nulldurchgangsproblem, was ein wenig durch eine intelligente 
Nulldurchgangserkennung auf der Basis einer Differentiation kompensiert 
werden kann. Dann kommt aber das Rauschen des Signals ins Spiel und es 
muss vorgefiltert werden.

von Paul B. (Gast)


Lesenswert?

Jürgen Schuhmacher schrieb:
> Grundsätzlich funktioniert die kontinuierliche Teilung der Frequenz
> durch 2 mit einer Wurzelbildung, aber man muss den Mittelwert der
> Eingangsfrequenz kennen und zuvor addieren.
Daran scheitert es bei mir. Der Mittelwert ist nicht bekannt und müsste 
erst erzeugt werden.

von Mike (Gast)


Lesenswert?

OPV übersteuern -> Rechteck mit Orginalfrequenz

Positive Flanke über Diode auf RC Glied mit entsprechender Auslegung.

Ergibt nicht direkt Sinus ohne Schwingkreis, aber um Frequenz abzutasten 
ausreichend.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Einseitenbandsender werden gelegentlich nach dem "Verfahren der 
Hüllkurven-Elimination und -Restoration" gebaut. Das Signal wird in 
Frequenz- und Amplitudeninformation aufgespalten, getrennt verarbeitet 
(z.B. die Frequenz vervielfacht) und dann wieder zusammengeführt. So 
könnte man auch Frequenzen herunterteilen.

von Paul B. (Gast)


Lesenswert?

hm, klingt gut, aber verstehen tue ich es nicht :-)

von Bernd (Gast)


Lesenswert?

Höre ich richtig, Verfielfachen ist für dich kein Problem?

Bei Sinus ginge es dann (theoretisch) ganz einfach:

1) Frequenz mit dem Faktor N vervielfachen

2) Nach Rechteckformung damit einen D/A-Wandler
takten, der nacheinander den sin(360°/2N) ausgibt.

3) Danach ist noch ein Kompromiss aus Filterung
(Phasenverschiebung) und zulässigen Verzerrungen zu suchen.

von Paul B. (Gast)


Lesenswert?

thx

von Rolf S. (audiorolf)


Lesenswert?

Possetitjel schrieb:

> Es gibt (mindestens) zwei rein analoge
> Lösungen für das Problem. Details auf Nachfrage.
Ich frage hiermit mal förmlich an, falls Du noch mitliest!

Wäre nett, wenn Du das erläutern könntest.

Danke.

von PLL (Gast)


Lesenswert?

Paul B. schrieb:
> Das Signal ändert sich eigentlich ständig ein wenig, z.B. bewegt es sich
> innerhalb einiger 10/tel von 60kHz auf 70kHz und schwingt auch. Sampeln
> und neu erzeugen wir daher schwierig. Eine PLL wäre wahrscheinlich zu
> langsam.

Warum sollte hier ne PLL zu langsam sein?

von Klaus (Gast)


Lesenswert?

nur so eine Idee:

Ein Rechteck aus dem Signal machen und durch zwei teilen. Zusätzlich mit 
einer PLL ein vielfaches der Signalfrequenz erzeugen und damit ein 
Switched Capacitor Filter ansteuern, das aus dem geteilten 
Eingangssignal wieder einen Sinus macht. Die Grenzfrequenz des Filters 
passt sich damit automatisch der Eingangsfrequenz an. Ich denke da an 
MAX296 oder ähnliches.

MfG Klaus

von Thomas E. (picalic)


Lesenswert?

Aus dem Bauch heraus vielleicht so:
Einen Samplepuffer einrichten, der mindestens eine komplette Welle des 
Eingangssignals aufnehmen kann, also z.B. bei 50kHz und 1Msps: min. 20 
Samples.
Ausgabe der halben Frequenz durch Wiedergabe des Signals aus dem 
Samplepuffer mit der halben Samplerate.
Algorithmus beim Samplen: im Nulldurchgang der positiven Signalflanke 
wird der aktuelle Inhalt des Schreibzeigers gespeichert (X) und der 
Zeiger auf Pufferanfang zurückgesetzt. Im Puffer befindet sich dann 
immer eine komplette Periode des Signals.
Der Samplepuffer wird mit der halben Samplerate (Anfang bis X) 
ausgelesen und per DA-Wandler ausgegeben.

von Sascha_ (Gast)


Lesenswert?

Wenn ich das richtig verstanden habe, ergibt sich dann aber kein 
kontinuierlicher Sinus wenn die Signalperiode des Eingangssignals 
schwankt.

Wenn das Eingangssignal in der Frequenz sinkt, bleibt die Spannung 
erstmal bei 0 bis die nächste Sync kommt.

Wenn das Eingangssignal in der Frequenz steigt...wird eine komplette 
Halbwelle ausgelassen? Bis zur nächsten Sync im Nulldurchgang? Bin mir 
dabei nicht sicher.

Das Samplen ist eh Overkill, weil man weiss ja dass es ein Sinus ist.


Für minimale Verzerrungen ist die f/U U/f Variante vermutlich die Beste. 
Aber nach über 2 Jahren ist vom T0 wohl auch keine Klärung mehr zu 
erwarten, was er denn nun getan hat.

von Ulf (Gast)


Lesenswert?

Hallo

Es gab vor vielen Jahren mal ein Projekt, ich glaube bei Elektor, wo der 
Lautsprecherausgang des PCs (nicht der von der Soundkarte) mittels PLL 
einen XR-2206 angesteuert hat. Dadurch wurde ein relativ beliebeiger 
Rechteck in einen Sinus "gewandelt".
Wenn Du jetzt also deinen ursprünglichen Sinus per Komparator zum 
Rechteck machst, den dann per FF durch zwei teilst, das ganze dann per 
pll auf den VCO-Eingnga des XR-2206 gibst, müßte sich das realisieren 
lassen.

Das war damals als Meßgerät für Lautsprecherboxen gedacht. Ich muß mal 
schaun, ob ich da noch Unterlagen dazu finde.

Gruß Ulf

von HildeK (Gast)


Lesenswert?

Ulf schrieb:
> Wenn Du jetzt also deinen ursprünglichen Sinus per Komparator zum
> Rechteck machst

Brauchst du nicht, der 2206 hat einen Rechteckausgang parallel zum 
Sinusausgang.
Das ist aber die klassische, schon genannte Variante mit einer PLL, 
einem Teiler und einem Sinus-VCO.

von Ulf (Gast)


Lesenswert?

HildeK schrieb:
> Ulf schrieb:
>> Wenn Du jetzt also deinen ursprünglichen Sinus per Komparator zum
>> Rechteck machst
>
> Brauchst du nicht, der 2206 hat einen Rechteckausgang parallel zum
> Sinusausgang.
> Das ist aber die klassische, schon genannte Variante mit einer PLL,
> einem Teiler und einem Sinus-VCO.

Es muß seinen ursprüngliche Sinus zum Rechteck wandeln um den per FF 
durch 2 zu teilen. Der Rechteckausgang vom 2206 hilft in dem 
Zusammenhang erst mal nicht.

Gruß Ulf

von Cyborg (Gast)


Lesenswert?

Und das interessiert den TO nach ca. zweieinhalb Jahren noch?

von Possetitjel (Gast)


Lesenswert?

Rolf S. schrieb:

> Possetitjel schrieb:
>
>> Es gibt (mindestens) zwei rein analoge
>> Lösungen für das Problem. Details auf Nachfrage.
>
> Ich frage hiermit mal förmlich an, falls Du noch
> mitliest!
>
> Wäre nett, wenn Du das erläutern könntest.

Es ging ja um einen VCO, der Sinus liefern und von
50kHz bis 100kHz abstimmbar sein soll.

Mir fallen zwei praktikable Lösungen ein:
1) Ein RC-Generator (Dreieck-Rechteck-Generator) mit
   Diodennetzwerk zur Sinusformung oder
2) das Prinzip "Schwebungssummer", d.h. ein hochwertiger
   Sinus-Festfrequenzoszillator (z.B. LC-Oszillator),
   ein C-Dioden-abgestimmter LC-Oszillator, ein Mischer
   und ein Filterverstärker.

Lösung 2) traue ich nahezu perfekte Signale zu; allerdings
ist sie auch sehr aufwendig.
Lösung 1) hat den Vorteil, dass sich aus dem Dreieck leicht
die verdoppelte Frequenz erzeugen lässt, die in der PLL
benötigt wird.

Oder wolltest Du noch etwas ganz anderes wissen?

von Flitzomat (Gast)


Lesenswert?

Cyborg schrieb:
> Und das interessiert den TO nach ca. zweieinhalb Jahren noch?

Nee, aber vielleicht den, der nachgefragt hat:
Beitrag "Re: Halbe Frequenz eines Signals erzeugen"

von SGND (Gast)


Lesenswert?

Auch uuuuralte Threads werden später noch tausendfach "gefunden", und 
nützen unzähligen Bastlern, die nur lesen, und sich nicht über jede 
Kleinigkeit schriftlich echauffieren.

von Rolf S. (audiorolf)


Lesenswert?

SGND schrieb:
> Auch uuuuralte Threads werden später noch tausendfach "gefunden", und
> nützen unzähligen Bastlern, die nur lesen, und sich nicht über jede
> Kleinigkeit schriftlich echauffieren.

Eben, leider neigen hier nicht wenige dazu, unqualifiziert dazwischen zu 
tönen. Bringt aber niemanden weiter.

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
Noch kein Account? Hier anmelden.