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).
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.
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 ;-)
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.
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.
> 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.
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.
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.
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
> 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.
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 ...
Such mal nach dem Stichwort "Exciter". Früher(TM) wurde das mit einer clippenden Diode gemacht und schweineteuer verkauft ;)
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
>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 :-)
> Ich bin aber inzwischen fünfig geworden
Wie wirst du es lösen?
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.
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?
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.
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
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.
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.
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.
@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:
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; |
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"
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.