Forum: Digitale Signalverarbeitung / DSP / Machine Learning Oberwellen / Harmonische hinzufügen


von JBB (Gast)


Lesenswert?

Wie kann ich einem Signal in software testweise (kontrolliert) 
Oberwellen hinzufügen?

Wie verhält es sich mit der dafür nötigen Abtastfrequenz, dass diese 
auch noch sinnvoll dargestellt werden können? (durch die Harmonischen 
erweitert sich das Spektrum).

von Horst (Gast)


Lesenswert?

Zur Basiswelle passende Oberwellen sind immer Vielfache der 
Grundfrequenz - also Frequenzverfielfacher einsetzen.

JBB schrieb:
> Wie verhält es sich mit der dafür nötigen Abtastfrequenz

Gute Frage, die müsste gfs steigen, wenn Oberwellen hinzugefügt werden, 
die oberhalb Nyquist-Halbe liegen. Sage ich jetzt mal.

von H.N. (Gast)


Lesenswert?

Horst schrieb:
> Zur Basiswelle passende Oberwellen sind immer Vielfache der
> Grundfrequenz - also Frequenzverfielfacher einsetzen.

Da in der Software der Grundwellensinus auch irgendwo herkommen muß, 
wird es doch auch ein Leichtes sein, die Oberwellen zu generieren und 
mit passender Amplitude zu überlagern.
Und nicht vergessen: Weiter als f < f_a/2 funktioniert es nicht ;-)

von JBB (Gast)


Lesenswert?

Mein Problem ist auch ein Inhaltliches, nämlich wie füge ich passende 
Harmonische hinzu. Meine Grundwelle ist von der Frequenz variabel - ich 
bekomme auch nicht nur obertonfreie Signale.

Z.B. könnte ein Dreieck oder auch ein Rechteck kommen. Dann bräuchte ich 
schon zu allen enthaltenen Freuqenzen die Oberwellen.

Mir ist klar, dass da was abgeschnitten wird, aber resampeln wäre kein 
Problem.

von Sascha (Gast)


Lesenswert?

Wenn Du nur Sinuswellen 'andicken' müsstest, würde ich es erst mal mit 
Chebychev-Polynomen versuchen.
Bei anderen Wellenformen könntest Du es evtl. waveshapen, d.h. mit einem 
Soft-Clipper. Z.B. tanh oder cubic (y = x - x^3) oder y = x * (2 - fabs 
(x)). Ist das clipping symmetrisch, bekommst Du ungeradzahlige 
Harmonische (k3, k5, k7..), bei einem asymmetrischen Clipper hast Du k2, 
k3, k4, k5, k6..
Musst natürlich Nyquist beachten, ist klar.

von Heinz (Gast)


Lesenswert?

> Wie kann ich einem Signal in software testweise (kontrolliert)
> Oberwellen hinzufügen?
> Wie verhält es sich mit der dafür nötigen Abtastfrequenz, dass diese
> auch noch sinnvoll dargestellt werden können? (durch die Harmonischen
> erweitert sich das Spektrum).


Du nimmst dein Signal und führst eine FFT durch. Wählst Frequenzen aus 
und verdoppelst oder verdreifachst oder was-auch-immer-fachst diese. 
Danach führst du eine inverse FFT durch. Fertig ist die Laube.

von Sascha (Gast)


Lesenswert?

Sascha schrieb:
> y = x - x^3

Hoppla: y = x - (x^3)/3 meinte ich.
Am besten skalierst Du für Clipping-Versuche den Wertebereich so, dass 
Du -1 bis 1 float bekommst.

Was mir noch einfiele: neu triggern, also das übliche Spiel: 
Nulldurchgänge tracken und Sinusoszillator doppelter Frequenz damit 
füttern.

von JBB (Gast)


Lesenswert?

Sascha schrieb:
> würde ich es erst mal mit
> Chebychev-Polynomen versuchen.
Klingt aufwändig, ich probiere es mal.

FFT kommt nicht in Betracht, zu langsam. Ich brauche das mehr oder 
weniger in Echtzeit.

von Max G. (l0wside) Benutzerseite


Lesenswert?

JBB schrieb:
> Sascha schrieb:
>> würde ich es erst mal mit
>> Chebychev-Polynomen versuchen.
> Klingt aufwändig, ich probiere es mal.
>
> FFT kommt nicht in Betracht, zu langsam. Ich brauche das mehr oder
> weniger in Echtzeit.

Hast du Audiosignale? Dann ist das kein Problem, das macht jeder PC 
locker nebenher. Auch ein DSP kann das ganz gut. FFT ist ziemlich 
effizient.

Wenn du dagegen im Megahertzbereich unterwegs bist, wird´s schwieriger.

Für Sinussignale könnte auch noch Quadrieren und dann mittelwertfrei 
machen in Frage kommen.

sin(wt) -> d(w)
sin²(w) -> d(w) * d(w)  [* als Faltungsoperator] = d(0) + d(2w)

Die FFT erscheint mir aber am vernünftigsten.

Max

von Heinz (Gast)


Lesenswert?

> FFT kommt nicht in Betracht, zu langsam. Ich brauche das mehr oder
> weniger in Echtzeit.

Kommt auf dein Signal an und den Controller oder den DSP. Berichte bitte 
näheres.

von JBB (Gast)


Lesenswert?

Ein DSP wird es werden - und es muss schon sozusagen in Echtzeit sein. 
Datenrate geschätzt 1MHz. Vor allem wenig rechnerei. FFT geht auf keinen 
Fall.

Max G. schrieb:
> Für Sinussignale könnte auch noch Quadrieren und dann mittelwertfrei
> machen in Frage kommen

Das geht nur für Sinus?

Mein Signal hat aber schon Oberwellen ...

von Georg A. (georga)


Lesenswert?

Such mal nach dem Stichwort "Exciter". Früher(TM) wurde das mit einer 
clippenden Diode gemacht und schweineteuer verkauft ;)

von Max G. (l0wside) Benutzerseite


Lesenswert?

JBB schrieb:
> Ein DSP wird es werden - und es muss schon sozusagen in Echtzeit sein.
> Datenrate geschätzt 1MHz. Vor allem wenig rechnerei. FFT geht auf keinen
> Fall.

Was ist eine Datenrate von 1 MHz? Bandbreite? Abtastfrequenz? 1 MBit/s?

Welche Bandbreite hat dein Eingangssignal, mit wieviel Bit tastest du 
ab?
Du kannst im Eingangssignal Unterabtastung machen, das reduziert den 
Aufwand schon mal. "Auf keinen Fall FFT" ist mir noch, ähem, theoretisch 
zu wenig unterfüttert.

Max

von JBB (Gast)


Lesenswert?

>Was ist eine Datenrate von 1 MHz?
1 Wort je Microsekunde (?)

> Abtastfrequenz? 1 MBit/s?
1 MSPS!

Der DSP sollte schon 1 Datenwert je Sekunde verarbeiten / erzeugen 
können. Ich bin aber inzwischen fünfig geworden :-)

von Heinz (Gast)


Lesenswert?

> Ich bin aber inzwischen fünfig geworden

Wie wirst du es lösen?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Heinz schrieb:
> Du nimmst dein Signal und führst eine FFT durch. Wählst Frequenzen aus
> und verdoppelst oder verdreifachst oder was-auch-immer-fachst diese.
> Danach führst du eine inverse FFT durch. Fertig ist die Laube.

Wie soll dieses "verdoppeln" ausehen? Viel einfacher geht das Hinzufügen 
von Harmonischen im Zeitbereich durch eine nichtlineare Kennlinie.

von JBB (Gast)


Lesenswert?

Andreas Schwarz schrieb:
> Wie soll dieses "verdoppeln" ausehen?

Ich denke, er meint, dass man das gemessene Spektrum nimmt, verschiebt 
und die beiden dann überlagert.

Heinz schrieb:
>> Ich bin aber inzwischen fünfig geworden
> Wie wirst du es lösen?
Ich werde die eingehenden Daten Potenzieren.

Andreas Schwarz schrieb:
> Viel einfacher geht das Hinzufügen
> von Harmonischen im Zeitbereich durch eine nichtlineare Kennlinie.
Und an welcher?

Wie kontrolliert man, dass man nur bestimmte Frequenzen, Anteile und 
Vielfache bekommt?

von Weihnachtsmann (Gast)


Lesenswert?

Oberwellen produziert jede nichtlineare Funktion. Welche Wellen brauchst 
du denn?

Die kannst Du doch addieren und die Summe untersuchen. Dann hast Du 
Deine Kennlinie, die du nur zu approximieren brauchst.

von J. S. (engineer) Benutzerseite


Lesenswert?

Max G. schrieb:
> Für Sinussignale könnte auch noch Quadrieren und dann mittelwertfrei
> machen in Frage kommen.
Das funktioniert nur, wann die Kurven absolut symmetrisch zur X-Achse 
liegen. Ich habe das seinerzeit für meine Tongeneratoren genutzt. Wenn 
man einen Sinus einspeist, der exakt aufs Bit genau passt, geht es gut.

Die Formeln für die einzelnen Oberwellen kann ich bei Gelegenheit mal 
posten. Sie sind hier in diesem Projekt eingeflossen:

http://www.mikrocontroller.net/articles/Digitaler_LaPlace-Funktionsgenerator_im_FPGA

von Horst (Gast)


Lesenswert?

warm klingenden Oberwellen erzeugt z.B. eine Triode durch ihre 
Kennlinie, die nicht linear ist, sondern f(x) = x^(3/2). Damit wird 
asymmetrisch begrenzt oder mehr bildlich, ein Sinus wird zum Sägezahn. 
Sowas geht natürlich auch in Software.

von JBB (Gast)


Lesenswert?

ach ja, die warmen und kalten Oberwellen. Die gute alte Mär der 
Audiotechniker. Die Röhren erzeugen ihren Klang hauptsächlich dadurch, 
dass sie dem Signal nicht hinterher kommen.

von Sascha (Gast)


Lesenswert?

JBB schrieb:
> Die Röhren erzeugen ihren Klang hauptsächlich dadurch,
> dass sie dem Signal nicht hinterher kommen.

Ah, ja. Und was soll das sein? Tiefpass durch Miller-Kapazität?
Eine hochwertige NF-Triodenschaltung geht locker weit über den 
Hörbereich hinaus. Oft ist es eher der Ausgangsübertrager (sofern 
Impedanzanpassung erforderlich), der den Frequenzbereich beschneidet. 
Der ist i.d.R. ein Kompromiss aus Wicklung, Material, magn. 
Eigenschaften, Hysteresekurve etc.; ist er zu groß, gehen die Höhen 
flöten; ist er zu klein, fehlen die Bässe.
Für mittel-/hochohmige Preamps gilt das aber nicht. Da kann die Röhre 
ihre Klasse ausspielen und ggf. sogar schneller und 'cleaner' sein als 
ein Transistor.

Sofern im Grenzbereich der Kennlinie betrieben:
Eine Class-A-Beschaltung produziert durch die grundsätzlich 
asymmetrische Kennlinie neben ungeradzahligen Harmonischen (k3, k5, 
k7...) auch geradzahlige (k2, k4..).
Zu hören z.B. bei einem Sägezahn; k2, k3, k4, k5 usw. fallen 
exponentiell ab. Wobei ein so hoher geradzahliger Anteil in einem 
komplexen Signal eher topfig-verwaschen klänge; dort sollten k2, k4 etc. 
eher geringer gewichtet sein.
Eine symmetrische Verstärkung produziert nur ungeradzahlige Harmonische. 
Siehe Rechtecksignal: nur k3, k5, k7 etc.

Einfach mal einen Frequenzgenerator oder Synth-Oszillator anwerfen und 
selber hören. Die eine Wellenform klingt 'warm', die andere eher 'hohl', 
bei gleicher Intensität der ungeradzahligen Harmonischen.

von Horst (Gast)


Lesenswert?

@JBB:
ich schreibe ja nicht, daß die geradzahligen Harmonischen nur aus 
glimmenden Glaskolben stammen können, sondern warum sie entstehen. Und 
so (fast) eine Kennlinie haben auch JFET's, weil die von der 
Arbeitsweise sehr änlich funktionieren. Elektronen sehen keinen 
Unterschied zwischen einem Halbleitergitter und sporradisch 
herumfliegenden Gas-Atomen im Fast-Vacuum. Sie halten sich an die 
Steuerung per elektrischem Feld, was im Vaccum zur x^(3/2) und bei 
Halbleiter-Röhren zur x^2 Kennlinie führt. Ein BJT hat dagegen eine e^x 
förmige Uein/Iaus Kennlinie.
Wie auch immer man zum sich ergebenden Klang steht, nicht das Material 
sondern der Aufbau macht den Unterschied.
Es gibt auch DSP sourcen im Netz, die genau so eine Quadratische 
Kennlinie benutzen. 
http://www.spinsemi.com/knowledge_base/pgm_quick.html#Cube%20Distortion:

von Sascha (Gast)


Lesenswert?

Horst schrieb:
> Es gibt auch DSP sourcen im Netz, die genau so eine Quadratische
> Kennlinie benutzen.
> http://www.spinsemi.com/knowledge_base/pgm_quick.h...

Hab's nicht geplottet, aber ist das nicht das gleiche wie
y = (x - x^3/3) * 1.5 ?
Das zumindest wäre ein Standard-Clipping wie etwa in einem Übetrager, 
überwiegend k3 & k5.
Wichtig wäre nur, das Signal vorher, oder am besten währenddessen, hard 
auf -1 und 1 zu begrenzen. Ansonsten landet man bei foldover distortion. 
Also etwa:
1
if (x > 1) y = 1;
2
else if (x < -1) y = -1;
3
else y = (x - x^3/3) * 1.5;

von JBB (Gast)


Lesenswert?

Sascha schrieb:
> JBB schrieb:
>> Die Röhren erzeugen ihren Klang hauptsächlich dadurch,
>> dass sie dem Signal nicht hinterher kommen.
> Ah, ja. Und was soll das sein? Tiefpass durch Miller-Kapazität?
Thermische Trägheit! In hochwertigen R-Mikrofonen wird der Heizfaden 
geregelt, wodurch es zu einem Kompressionsverhalten kommt. Dieser 
(eigentlich aus der Anfangszeit der Röhrenmikros stammende) Effekt 
erzeugt im Signal Artefakte, die man aufgrund der Erkenntnis, dass so 
aufgenommene Tonsignale interessant klingen, belassen hat. Es gibt also 
einen künstlichen Trägheitseffekt, der das Anwachsen der 
Oberwellenanreicherung bei hohen Signalamplituden begrenzt. zudem sind 
sie gezielt bandbreitenbegrenzt. Mikrofonamps sind also gezielt 
"schlecht" gebaut - reine Verstärkerschaltungen wie man sie als 
Freifeldsender verwendet(e), haben freilich andere Ansprüche. Dies zu 
balancieren ist die Kunst des guten Mikrobaus.

>Da kann die Röhre ihre Klasse ausspielen
Kann sie, soll sie aber nicht

> und ggf. sogar schneller und 'cleaner' sein
kann sie, tut sia aber nur gegen Standard-HL-Stufen. Die Mär der guten 
Röhre, ihrer Rauschfreiheit etc. ist messtechnisch hinlänglich 
widerlegt. An einen guten GaAs-MOS-Fet -basieren PreAmp kommt keine noch 
so gute Röhre ran, wenn man es auf Sauberkeit anlegt. Genau deshalb 
findet man auch in Applikationen, wenn es um's Messen geht, nirgendwo 
mehr eine Röhre, auch nicht in Apps, wo Geld keine Rolle spielt und man 
jede Woche Röhren tauschen könnte, wenn nötig.

"Röhren sind die 'Bachblüten' der Audiophilen"

von Sascha (Gast)


Lesenswert?

JBB schrieb:
> Thermische Trägheit! In hochwertigen R-Mikrofonen wird der Heizfaden
> geregelt, wodurch es zu einem Kompressionsverhalten kommt.

Und wenn er nicht geregelt wird, was dann?

Du sprichst vom künstlich verschlechtern. Das ist aber nicht immer 
erwünscht.

von J. S. (engineer) Benutzerseite


Lesenswert?

Immer, wenn in der Audiotechnik Röhren im Spiel sind, ist das 
Verschlechtern erwünscht.:-)

Es gibt 2 Gründe, warum da (immer noch) Röhren eingesetzt werden, um 
Klänge zu manipulieren:

1) Der Kunde meint, dass das besser klingt und verlangt danach.
Ausserdem wird es ja angeboten. Also muss es gut sein.

2) Der Toningenieur meint, dass es besser klingt.
Ausserdem verlangen die Kunden ja danach. Also muss es rein.

Da zwischen 1) und 2) eine permanente Rückkopplung besteht, die durch 
die Weitergabe von Halbwissen kräftigst unterhalten und genährt wird, 
bleibt der Kreislauf aktiv. :-)

Wer sauberen Klang produziert, guckt dann wörtlich in die Röhre :-)

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.