Moin,
gibt es da draußen ein IC, welches einen Ausgang besitzt und an dem ich
über ein Potentiometer die auszugebene Wellenform stufenlos von Sinus
über Triangel bis Rechteck einstellen kann?
LG,
Christian
XR2206 und ICL8038 wären solche Kandidaten. Sind aber nur für
geschlossene Räume vorgesehen.
Alternative: Dreieckgenerator mit Dioden-Netzwerk dahinter. Erzeugt dann
aus triangle sinewave.
MfG
Eigentlich eine interessante Frage. Aber auch geeignet, um mit
Gegenfragen den TO abzuwatschen, denn es gibt so viele "Freiheitsgrade",
dass, egal welcher Vorschlag kommt, die Antwort lautet: "Nein, so habe
ich mir das nicht vorgestellt". Beispiel: "Natürlich bis 100 MHz". Oder
"0 - 20 Vss, 0,1% Genauigkeit, in einem IC". "Unter 1 €". Und wie die
Signale im Übergangsbereich aussehen sollen (oder dürfen, z. B. einfache
Summen?) - tja, das ist alles offen.
Dafür die einfache Antwort: Nimm einen µC mit ADC (für Poti) und
PWM-Ausgang, und programmiere, was du willst. Ach ja - die unbekannten
Randebedingungen - es soll ein fertiges IC sein, nix zum
Programmieren. Und perfekt stufenlos einstellbar, also nix Poti mit ADC.
Und und und...
Christian schrieb:> stufenlos von Sinus> über Triangel bis Rechteck einstellen
Was soll das bedeuten?
Gerade stufenlos finde ich komisch. Willst du also je nach
Potentiometerstellung einen Übergang zwischen Sinus und Dreieck oder
Dreieck und Rechteck? Oder sind das ein paar diskrete
Potentiometerstellungen, eine mit Sinus, eine mit Dreieck und eine mit
Rechteck?
Gustl B. schrieb:> Christian schrieb:>> stufenlos von Sinus>> über Triangel bis Rechteck einstellen>> Was soll das bedeuten?> Gerade stufenlos finde ich komisch
Und vor allem: drei Signale mit einem Potentiometer. Kann doch gar
nicht sinnvoll gehen.
Wenn man so etwas (aus welchem verdrehten Grund auch immer) haben wollen
würde, dann würde man wohl am ehesten eine der gängigen Schaltungen
nehmen, die Rechteck-, Dreieck- und Sinussignal erzeugt und die Signale
in einen Mixer mit 3 Eingängen füttern. Dann kann man sich sein
Traumsignal nach Lust und Laune mischen.
Axel S. schrieb:> Und vor allem: drei Signale mit einem Potentiometer. Kann doch gar nicht> sinnvoll gehen.
Ist die Frage, was das Potenziometer genau tun soll. :-)
Na klar, kannst du den Wert des Potenziometers mit einem ADC einlesen
und danach dann x-beliebig DDS-Tabellen anpassen … vermutlich käme das
der ziemlich vage ausgedrückten Absicht des TE sogar vom „Anfassen“ her
nahe, aber der Aufwand dafür dürfte nicht ganz klein sein.
Ich vermute mal eine Anwendung im Bereich Musik-Synthesizer.
Hauptoszillator und/oder LFO mit 'seamless' regelbarer Kurvenform von
Sinus
über Triangel zu Rechteck...
Christian schrieb:> gibt es da draußen ein IC, welches einen Ausgang besitzt und an dem ich> über ein Potentiometer die auszugebene Wellenform stufenlos von Sinus> über Triangel bis Rechteck einstellen kann?
Ja, da draußen schon, aber auf der Erde nicht!
;-)
Wozu sollte das gut sein?
Michael W. schrieb:> Ich vermute mal eine Anwendung im Bereich Musik-Synthesizer.
Mein FORMANT 5 Kurvenformen und eine stufenlose Überleitung von
Sinus auf Dreieck und dann Rechteck ist nicht notwendig...
> drei Signale mit einem Potentiometer. Kann doch gar> nicht sinnvoll gehen.
Dafuer wurden Potis mit Mittelanzapfung erfunden.
Aber musikalisch macht es wenig her, einem Sinus ein
Dreieck zuzumischen.
Klassische Synthies begnuegen sich da im allgemeinen
mit 2 Reglern. Eins fuer die Amplitude Sinus/Dreieck
und eins fuers Rechteck.
Viel ergiebiger ist es, zwischen zwei oder sogar drei
vollstaendigen Parametersets zu "morphen".
Das beinhaltet dann aber alle Einstellungen bis
hin zu ADSR, Filter, FX und nicht nur die Oszillatoren.
Fuer drei Sets braucht man dann ein X/Y-Touchpad.
Und realisieren laesst sich das ganz sicher in
einem IC. Das sitzt dann unter einem schwarzen Klecks
auf der Synthieplatine...
Christian schrieb:> ein IC, welches einen Ausgang besitzt und an dem ich über ein> Potentiometer die auszugebene Wellenform stufenlos von Sinus über> Triangel bis Rechteck einstellen kann?
Das hätte ich jetzt so interpretiert, das man alle 3 Wellenformen über
EIN Poti in der Amplitude stufenlos einstellen kann. Also alternativ,
entweder Rechteck, oder Dreieck oder Sinus.
Alles andere macht mit einem Poti ja keinen Sinn. Oder meinst Du eine
Lösung, wo alle 3 Wellenformen über DREI Potis eingestellt werden
sollen? Da reicht ein OP der als Summierer geschaltet ist. Oder was
meinst Du mit 'nahtlos' (seamless)?
Es gibt schöne analoge ICs (soweit ich weiß alle obsolet), die es
schaffen eine Sinus über einen Quadraturoszillator erzeugen:
- 4423 (Klirr < 0,5%)
- ROJ-20/ROJ-1K (Klirr < 0,002%).
Daraus lassen sich leicht Rechteck und daraus Dreieck erzeugen (jeweils
1 OP). Aber nicht alles in EINEM IC.
Dann fällt mir noch der AD9833 ein, ein programmierbarer Baustein für
Sinus, Recheck & Dreieck.
Mohandes H. schrieb:> Das hätte ich jetzt so interpretiert, das man alle 3 Wellenformen über> EIN Poti in der Amplitude stufenlos einstellen kann.
Nee, ich verstehe das so, dass er tatsächlich über EIN Poti die
Wellenform ändern will. Poti links = Sinus, beim drehen nach rechts wird
langsam ein Dreieck daraus, in Mittelstellung ist das Dreieck perfekt,
und je weiter nach rechts gedreht wird, desto rechteckiger wird das
Signal. Poti Rechtsanschlag = perfektes Rechteck.
Achim B. schrieb:> Nee, ich verstehe das so, dass er tatsächlich über EIN Poti die> Wellenform ändern will.
Klingt logisch.
Also ein Baustein der Sinus, Rechteck und Dreieck liefert gefolgt von
einem Summierer (OP) an dem ein 3-fach-Poti die jeweiligen Anteile
einstellt.
Das mit dem 3-fach-Poti wird nicht einfach (Beschaffung).
Mohandes H. schrieb:> an dem ein 3-fach-Poti die jeweiligen Anteile> einstellt.
Er schreibt ausdrücklich "ein Potentiometer".
Da er sich aber sowieso nicht mehr meldet hat er ja vielleicht die
Schnapsigkeit seiner Idee eingesehen.
Georg
Mohandes H. schrieb:> Also ein Baustein der Sinus, Rechteck und Dreieck liefert gefolgt von> einem Summierer (OP) an dem ein 3-fach-Poti die jeweiligen Anteile> einstellt.
Naja, das mit dem Addierer wird schwer... In der Mittelstellung müsste
eigentlich ein "reines" Dreieck-Signal ausgegeben werden - mit einem
einfachen Summierer sind aber immer noch Sinus und Rechteck mit
überlagert.
Man müsste also beispielsweise zwischen linkem Anschlag und
Mittelstellung nur Sinus und Dreieck überlagern.
Und auch der Übergang zwischen Dreieck und Rechteck würde so nicht
funktionieren, da er sich zwischen Dreieck und Rechteck dann
wahrscheinlich ein Trapez vorstellt - mit steigender Flankensteilheit in
Richtung des Rechtecks.
Mohandes H. schrieb:> Das mit dem 3-fach-Poti wird nicht einfach (Beschaffung).
Braucht er nicht. Habe mal ein Schaltbild mit den wesentlichen
Bauelementen angehängt.
Naja, wenn es nur um den Audio-Frequenzbereich geht, bekommt man die DDS
dafür doch locker in einen Cortex-M<irgendwas> reingedengelt, dann kann
man das „eine Potenziometer“ natürlich beliebig interpretieren (zumal
das vermutlich nichtmal nur ein Potenziometer sein muss, sondern auch
ein Encoder sein darf). Da kann man ja fast beim Drehen am Poti die
nächste DDS-Tabelle live ausrechnen lassen, statt irgendwelcher vorab
gespeicherter.
Aber der TE müsste sich schon nochmal melden, was er denn nun wirklich
genau sich vorstellt. Insbesondere ist ja noch reichlich unklar, wie der
nahtlose Übergang von Rechteck zu Dreieck aussehen soll.
Nein, macht keinen Sinn Sinus, Rechteck und Dreieck so einfach zu
mischen.
Was gehen würde: reiner Sinus in Mittelstellung. Nach rechts hin
zunehmend Dreieck (ohne Rechteck), nach links hin zunehmend Rechteck
(ohne Dreieck).
Ginge auch mit einem Doppelpoti. Aber ob das SINN macht?
Mohandes H. schrieb:> Aber ob das SINN macht?
Wenn es um Audio geht, hätte es vermutlich am meisten Sinn, mit dem Poti
zwischen reinem Sinus (keine Oberschwingungen) und Sägezahn
(Oberschwingungen auf allen Vielfachen, im Gegensatz zu Rechteck)
gleitend umstellen zu können, also gewissermaßen beim Drehen des Potis
immer mehr Oberschwingungen hinzu zu nehmen.
Oben wurde es ja schon geschrieben: Dreieck ist klanglich völlig
uninteressant.
Achim B. schrieb:> Habe mal ein Schaltbild mit den wesentlichen> Bauelementen angehängt.
Hm - laut DaBla hat der Max4711 16 Pins - oder übersehe ich etwas?
Jörg W. schrieb:> bekommt man die DDS> dafür doch locker in einen Cortex-M<irgendwas> reingedengelt, dann kann> man das „eine Potenziometer“ natürlich beliebig interpretieren (zumal> das vermutlich nichtmal nur ein Potenziometer sein muss, sondern auch> ein Encoder sein darf)
Auch auf einem FPGA ginge das recht einfach, ein NCO (unsigned) liefert
Sinus, Sägezahn und Rechteck parallel aus einer Tabelle. Man müsste dann
(nur) noch den Grad des Übergangs abhängig von der aktuellen
Encoder-Stellung berechnen.
Das geht doch auch mit Filterung.
Zuerst hat man einen Rechteck. Dann dreht man das Poti weiter und erhöht
dabei die Länge eines gleitenden Mittelwert Filters. Und zwar so weit
bis aus dem Rechteck ein Dreieck wurde.
Dreht man dann noch weiter verringert man die Grenzfrequenz eines
Tiefpassfilters und kommt so zum Sinus.
Gustl B. schrieb:> Das geht doch auch mit Filterung.>> Zuerst hat man einen Rechteck. Dann dreht man das Poti weiter und erhöht> dabei die Länge eines gleitenden Mittelwert Filters. Und zwar so weit> bis aus dem Rechteck ein Dreieck wurde.> Dreht man dann noch weiter verringert man die Grenzfrequenz eines> Tiefpassfilters und kommt so zum Sinus.
Nein, so geht es nicht!
Sowohl Dreieck als auch Rechteck haben ein Spektrum bis ins Unendliche
(Rechteck nur bei f, 3f, 5f usw). Mit unterschiedlichen Amplituden.
Durch Abschneiden einer Grenzfrequenz kann man nicht Dreieck erzeugen,
nur Sinus.
Dann guck dir mal an was ein gleitender Mittelwert Filter mit einem
Rechteck macht. Wenn man die richtige Filterlänge wählt bekommt man ein
Dreieck.
Aber so ein gleitender Mittelwert schneidet auch keine Frequenzen
irgendwo ab. Der dämpft die nur. Damit sind immer noch unendlich viele
Obertöne vorhanden.
Der Zahn der Zeit schrieb:> es soll ein fertiges IC sein
Von "fertig" hat der TO nichts gesagt ;-)
Gustl B. schrieb:> Wenn man die richtige Filterlänge wählt
Interessanter Ansatz - wie würdest Du die zunehmende Filterlänge
realisieren?
Gute Frage. Man muss auf jeden Fall die Frequenz vom Rechteck kennen.
Denn man darf ja den gleitenden Mittelwert nur so lange länger machen,
bis man aus dem Rechteck einen Dreieck gemacht hat. Danach lässt man den
Mittelwertfilter so wie er ist und nimmt ändert die Grenzfrequenz von
einem Tiefpass um vom Dreieck zum Sinus zu kommen.
Ich würde das also so bauen:
Rechteckgenerator -> gleitender Mittelwert Filter -> Tiefpass ->
Ausgang.
Potistellung ganz links:
Gleitender Mittelwert hat die Länge 1
Tiefpass hat die Grenzfrequenz > f_Sample/2 oder man baut eine
Bypassoption.
Den Rechteck erzeugt man eben wie man das mit einem DAC machen würde.
Man hat eine f_Sample und gibt damit Werte aus. Nur hier eben ohne DAC
sondern digital im Chip. Das gleitende Mittelwert Filter darf dann eine
maximale Länge haben die der halben Periodenlänge des Rechtecks
entspricht.
Wenn also das Rechteck eine Länge von 64 Abtasttakten hat, dann erzeugt
ein gleitendes Mittelwert Filter der Länge 32 einen Dreieck.
Limitierend ist, dass man die Taktfrequenz deutlich höher wählen muss
als die Frequenz vom Rechteck.
Wie man das mit einem uC baut weiß ich nicht, mit einem FPGA wäre das
relativ einfach. Wobei ... wenn man sowieso schon einen DAC verwendet,
dann kann man das Signal natürlich auch über eine odere meherere
Wertetabellen erzeugen. Das ist dann vielleicht sogar einfach als ein
Tiefpass mit variabler Grenzfrequenz.
> Ginge auch mit einem Doppelpoti.
Man braucht nur ein Einfachpoti mit einer Anzapfung in der Mitte.
Was der TO dann an die DREI Potibeine anloetet ist mir egal :-).
Am Potischleifer kommt dann entweder 1+2 oder 2+3 heraus.
Aber zu einem Dreieck einen Sinus dazuzuaddieren ist musikalisch
genauso sinnarm wie ein Sinus zu einem frequenzgleichen Dreieck!
Wenn man etwas klanglich interessantes haben wollte, muesste
man die Fouriereihenentwicklung zwischen Saegezahn und Rechteck
auf dieses "Poti" legen und die Teilamplituden mit dem
Drehwinkel gewichten.
Ein ordentlicher Synthie hat auch regelmaessig mehr als einen VCO.
Statt solcher "Schnapsideen" ist man also mit einem richtigen
Mixer besser bedient.
Gleitende Mittelwerte haben es nie geschafft als Filter
in einem Synthie auch nur eine geringe Verbreitung zu finden.
Das liegt einfach an der bescheidenen Filtercharakteristik.
Daran wird sich auch in alle Ewigkeit nichts aendern.
Burkhard K. schrieb:> Interessanter Ansatz - wie würdest Du die zunehmende Filterlänge> realisieren?
Das ist ja nur eine Summe von Werten.
Ein gleitender Mittelwert ist dann ein Ringspeicher der Länge n, und
einer Summe über alle Elemente im Ringspeicher.
Speicher <= Speicher(n-2 downto 0) & Neuer_Wert
Ältester_Wert <= Speicher(n-1)
Summe <= Summe + Neuer_Wert - Ältester_Wert
Gefilterter_Wert <= Summe/n
Und da gilt es jetzt n zu verändern. Das geht wenn man einen RAM
verwendet über die Adresse.
Bei einem RAM wäre das so:
RAM(Adresse) <= Neuer_Wert
Ältester_Wert <= RAM(Adresse - n)
Summe <= Summe + Neuer_Wert - Ältester_Wert
Gefilterter_Wert <= Summe/n
Adresse <= Adresse +1
Wobei das nicht so einfach ist wenn man n ändert. Dann müsste man auch
die Summe einmal komplett neu rechnen. Also mit jedem Takt eine neue
Summe wird dann schwer. Aber wenn es um niedrige Frequenzen geht wie bei
Audio, dann kann man auch jedesmal alle RAM Einträge von Adresse bis
Adresse - n aufsummieren.
Larry schrieb:> Aber zu einem Dreieck einen Sinus dazuzuaddieren ist musikalisch> genauso sinnarm wie ein Sinus zu einem frequenzgleichen Dreieck!
Der TO hat nie etwas von Musik geschrieben.
Larry schrieb:> Gleitende Mittelwerte haben es nie geschafft als Filter> in einem Synthie auch nur eine geringe Verbreitung zu finden.> Das liegt einfach an der bescheidenen Filtercharakteristik.> Daran wird sich auch in alle Ewigkeit nichts aendern.
Natürlich nicht. Aber um aus einem Rechteck einen Dreieck zu machen
taugt das eben trotzdem. Du kannst dir das mal durchrechnen, hier eine
Wertefolge:
0000000011111111000000001111111100000000
Und dann nimmst du einen gleitenden Mittelwert der Länge 8 (halbe
Periodenlänge):
0123456787654321012345678765432100000000
> Du kannst dir das mal durchrechnen
Das muss ich nicht. Das weiss ich auch so.
Weil ich sowas schon hinter AD-Wandlern eingesetzt hab.
Da die Filterwirkung aber frequenzabhaengig ist, taugt es als
generisches Verfahren aber nicht.
Gleitende Mittelweltbildung ist am besten hinter einem
AD-Wandler in einem Messinstrument aufgehoben.
Und da sollte sie auch bleiben.
Und in einem FPGA gibt es bedeutend einfachere Wege ein
Dreieck zu erzeugen. Sogar einigermassen frequenzunabhaengig.
Und dazu noch modulierbar.
Gustl B. schrieb:> Rechteckgenerator -> gleitender Mittelwert Filter -> Tiefpass ->> Ausgang.
Das verstehe ich nicht. Ein Dreiecksignal hat Oberwellen bis unendlich.
Wie willst Du die ohne Verluste mit gleitendem Mittelwert + Tiefpass
ausfiltern?
Oder ist der Gedanke daß man alle Frequenzen f, 3f, 5f, usw vom Rechteck
subtrahiert und die 2f, 4f, usw dazuaddiert?
Larry schrieb:> in einem FPGA gibt es bedeutend einfachere Wege ein> Dreieck zu erzeugen. Sogar einigermassen frequenzunabhaengig.
ACK - wie schon oben gesagt, purzeln Dreieck bzw. Sägezähnchen bei einem
NCO quasi kostenlos (via Phasenakku) heraus.
> Der TO hat nie etwas von Musik geschrieben.
Das stimmt :-). So einen Dreieck + Rechteckgeneator habe ich
mir vor droellfzig Jahren mal zum Testen von PLLs gebaut.
Dafuer war er ausserordentlich huelfreich.
Aber die Intention das in einen Synthie zu schrauben ist
schon naheliegend. Oder?
Larry schrieb:> Da die Filterwirkung aber frequenzabhaengig ist, taugt es als> generisches Verfahren aber nicht.
Warum nicht? Wen er das Signal selbst erzeugt, dann kennt er auch dessen
Frequenz. Und dann kann er den gleitenden Mittelwert auch immer so
anpassen, dass er zur eingestellten Frequenz passt.
Larry schrieb:> Aber die Intention das in einen Synthie zu schrauben ist> schon naheliegend. Oder?
Das stimmt.
Larry schrieb:> Und in einem FPGA gibt es bedeutend einfachere Wege ein> Dreieck zu erzeugen. Sogar einigermassen frequenzunabhaengig.> Und dazu noch modulierbar.
Na klar. Aber auch FPGA haben wir hier reingebracht, nicht der TO.
Mohandes H. schrieb:> Das verstehe ich nicht. Ein Dreiecksignal hat Oberwellen bis unendlich.> Wie willst Du die ohne Verluste mit gleitendem Mittelwert + Tiefpass> ausfiltern?
Ich will da gar nix rausfiltern.
In der Kette
Rechteckgenerator -> gleitender Mittelwert Filter -> Tiefpass ->
Ausgang.
Macht der gleitende Mittelwert aus einem Rechteck ja nach Potistellung
zuerst mehr oder weniger Trapez und dann am Ende ein Dreieck. Dabei muss
die Grenzfrequenz vom Tiefpass natürlich sehr hoch sein, zumindest so
hoch, dass die Flanken von Trapez und Dreieck noch durchkommen.
Dann wenn man das Poti noch weiterdreht ändert man nur noch die
Grenzfrequenz vom Tiefpass, man verringert diese bis aus dem Dreieck ein
Sinus wird. Dabei bleibt die Länge des gleitenden Mittelwerts
unverändert.