Signalgenerator "seamless" Einstellung

Gast #6420018
Lesenswert?

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

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

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.
Moderator Persönliche Seite #6420149
Lesenswert?

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

> 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...
(Firma: مهندس) #6420378
Lesenswert?

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

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

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.
Moderator Persönliche Seite #6420437
Lesenswert?

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.
(Firma: مهندس) #6420532
Lesenswert?

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?
Moderator Persönliche Seite #6420546
Lesenswert?

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

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

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.
(Firma: مهندس) #6420621
Lesenswert?

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

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

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

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

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

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

> 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.
(Firma: مهندس) #6420715
Lesenswert?

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

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

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.

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