Hinzufügen von ungeraden / geraden Harmonischen zum Signal?


12

Wie füge ich einem Fließkommasignal ungerade oder gerade Harmonische hinzu?

Muss ich Tanh oder Sünde benutzen?

Was ich versuche, ist, einige sehr einfache Verzerrungseffekte zu erzielen, aber es fällt mir schwer, genaue Referenzen zu finden. Was ich möchte, ist etwas Ähnliches wie das Culture Vulture, indem es in seinen Pentoden- und Triodeneinstellungen ungerade und gerade Harmonische hinzufügt. Der Float-Wert ist eine einzelne Probe in einem Probenfluss.


3
Warum möchten Sie Harmonische hinzufügen? Was möchten Sie erreichen? Mit welcher Art von Signal arbeiten Sie?
Jim Clay

Was ich versuche, ist, einige sehr einfache Verzerrungseffekte zu erzielen, aber es fällt mir schwer, genaue Referenzen zu finden. Was ich möchte, ist etwas Ähnliches wie das, was der Kulturgeier durch Hinzufügen von ungeraden und geraden Harmonischen in seinen Pentoden- und Triodeneinstellungen tut. Der Float-Wert ist eine einzelne Probe in einem Probenfluss.
Carlos Barbosa

1
@CarlosBarbosa Sie sollten diese Informationen aus den Kommentaren in Ihrer Frage bearbeiten. Geben Sie Details an - je interessanter die Frage für die Community ist, desto mehr Antworten können Sie erwarten und desto besser sind die Antworten.
Penelope

Warum sind die ungeraden Harmonischen mehr Gefahr als gerade Harmonische auf dem

Antworten:


17

Ihre Verzerrungsbox wendet eine nichtlineare Übertragungsfunktion auf das Signal an: output = function(input)oder y = f(x). Sie wenden einfach dieselbe Funktion auf jedes einzelne Input-Sample an, um das entsprechende Output-Sample zu erhalten.

Wenn Ihr Eingangssignal eine Sinuswelle ist, wird eine bestimmte Art von Verzerrung erzeugt, die als harmonische Verzerrung bezeichnet wird . Alle neuen Töne, die durch die Verzerrung erzeugt werden, sind perfekte Harmonische des Eingangssignals:

  • Wenn Ihre Übertragungsfunktion eine ungerade Symmetrie aufweist (um 180 ° um den Ursprung gedreht werden kann), werden nur ungerade Harmonische erzeugt (1f, 3f, 5f, ...). Ein Beispiel für ein System mit ungerader Symmetrie ist ein Verstärker mit symmetrischer Begrenzung.
  • Wenn Ihre Übertragungsfunktion gerade Symmetrie hat (kann über die Y-Achse reflektiert werden), dann sind die erzeugten Harmonischen nur Harmonische gerader Ordnung (0f, 2f, 4f, 6f, ...). Die fundamentale 1f ist eine ungerade Harmonische und wird entfernt. Ein Beispiel für ein System mit gerader Symmetrie ist ein Vollweggleichrichter.

Wenn Sie also ungerade Harmonische hinzufügen möchten, führen Sie Ihr Signal durch eine ungerade symmetrische Übertragungsfunktion wie y = tanh(x)oder y = x^3.

Wenn Sie nur noch Harmonische hinzufügen möchten, durchlaufen Sie Ihr Signal eine Übertragungsfunktion, die sogar symmetrisch ist, plus eine Identitätsfunktion, um die ursprüngliche Grundfrequenz beizubehalten. Sowas wie y = x + x^4oder y = x + abs(x). Der x +behält die Grundwelle, die sonst zerstört würde, während der x^4gerade symmetrisch ist und nur gerade Oberschwingungen erzeugt (einschließlich DC, die Sie wahrscheinlich später mit einem Hochpassfilter entfernen möchten).

Gleichmäßige Symmetrie:

Übertragungsfunktion mit gleichmäßiger Symmetrie:

y = x ^ 6 Übertragungsfunktion

Originalsignal in Grau, mit verzerrtem Signal in Blau und Spektrum des verzerrten Signals, das nur noch Harmonische und keine Grundwelle zeigt:

y = x ^ 6 Spektrum

Ungerade Symmetrie:

Übertragungsfunktion mit ungerader Symmetrie:

y = x ^ 7 Übertragungsfunktion

Originalsignal in Grau, mit verzerrtem Signal in Blau und verzerrtem Signalspektrum, das nur ungerade Harmonische zeigt, einschließlich Grundwelle:

y = x ^ 7 Spektrum

Gerade Symmetrie + Fundamental:

Übertragungsfunktion mit gerader Symmetrie plus Identitätsfunktion:

y = x + x ^ 4 Übertragungsfunktion

Originalsignal in Grau, mit verzerrtem Signal in Blau und verzerrtem Signalspektrum mit geraden Harmonischen plus Grundwelle:

y = x + x ^ 4 Spektrum

Das ist es, worüber die Leute sprechen, wenn sie sagen, dass eine Verzerrungsbox "ungerade Harmonische hinzufügt", aber es ist nicht wirklich genau. Das Problem ist, dass die harmonische Verzerrung nur für den Sinuswelleneingang existiert . Die meisten Leute spielen Instrumente, keine Sinuswellen, daher hat ihr Eingangssignal mehrere Sinuswellenkomponenten. In diesem Fall tritt eine Intermodulationsverzerrung auf , keine harmonische Verzerrung, und diese Regeln für ungerade und gerade Harmonische gelten nicht mehr. Zum Beispiel ein Vollweggleichrichter (gerade Symmetrie) auf die folgenden Signale anwenden:

  • Sinus (nur Grundwelle ungerade Harmonische) → gleichgerichteter Vollwellen-Sinus (nur gerade Harmonische)
  • Rechteckwelle (nur ungerade Harmonische) → Gleichstrom (nur gerade 0. Harmonische)
  • Sägezahnwelle (ungerade und gerade Harmonische) → Dreieckwelle (nur ungerade Harmonische)
  • Dreieckwelle (nur ungerade Harmonische) → 2 × Dreieckwelle (nur ungerade Harmonische)

Das Ausgangsspektrum hängt also stark vom Eingangssignal ab und nicht vom Verzerrungsgerät. Wenn jemand sagt, " unser Verstärker / Effekt erzeugt mehr musikalische Harmonische mit gerader Ordnung ", sollten Sie ihn mit einem Körnchen Salz nehmen .

(Die Behauptung, dass Klänge mit geraden Harmonischen "musikalischer" sind als Klänge mit nur ungeraden Harmonischen , stimmt , aber diese Spektren werden hier nicht tatsächlich erzeugt, wie oben erläutert, und diese Behauptung gilt nur im Zusammenhang mit Wie auch immer, westliche Skalen: Klänge mit ungeraden Harmonischen (Rechteckwellen, Klarinetten usw.) sind auf einer Bohlen-Pierce- Musikskala mit einem Verhältnis von 3: 1 konsonanter als mit einer Oktave von 2: 1.

Zu beachten ist auch, dass digitale nichtlineare Prozesse zu Aliasing führen können, das möglicherweise schlecht hörbar ist. Siehe Gibt es eine bandbegrenzte nichtlineare Verzerrung?


Beachten Sie, dass die hier aufgeführten Beispielfunktionen die Mathematik einfach verständlich machen, in Audiomaterial jedoch normalerweise nicht verwendet werden. Bei x ^ 7 beispielsweise wird das Signal umso weniger verzerrt, je mehr Sie die Verstärkung erhöhen.
Endolith

8

Was Sie erreichen wollen, nennt man Verzerrung . Diese Technik wird verwendet, wenn Sie einem bestimmten Signal Harmonische hinzufügen möchten. Sie haben 2 grundlegende Methoden, um dies zu tun: Waveshaping und Ringmodulation. Ich werde versuchen, die erste zu erklären.

Wellenformung

Mit Waveshaping können Sie mithilfe einer speziell ausgewählten Funktion Verzerrungen vornehmen . Eine nützliche Methode sind Chebyshev-Polynome . Sie haben eine sehr wichtige Eigenschaft, wenn sie ein harmonisches Signal mit einer Einheitsamplitude (zum Beispiel eine Sinuswelle) durchlaufen. Wir erhalten dasselbe Signal, das nur ein paar Mal höher ist. Der Frequenzvervielfacher hängt von der Reihenfolge des Polynoms ab. Alle Polynome sehen folgendermaßen aus:

 y=f(x)=d0+d1x+d2x2+d3x3++dNxN;

In unserem Fall erzeugt jedes Element eine Mundharmonika, und dann addieren sich alle. Die Ansicht jedes Mitglieds wird durch die folgende Wiederholungsbeziehung bestimmt:

Tk+1(x)=2xTk(x)-Tk-1(x);

T0(x)=1;

T1(x)=x;

T2(x)=2xx-1=2x2-1;

T3(x)=2x(2x2-1)-x=4x3-3x;

Wie Sie sich vorstellen können, der zweite Term - die erste Harmonische und der dritte - der zweite und so weiter.

Ein weiteres Merkmal der Chebyshev-Polynome: Wenn durch sie ein Signal ausgegeben wird, dessen Amplitude kleiner als die Einheit ist, ist die Ausgabe weniger gesättigt mit Harmonischen. Dadurch kann ein Overdrive-Effekt erzeugt werden.

sichn


Schöne Antwort, hier etwas gelernt. Ich bin jedoch nicht mit Ihrer Nutzung der Term Transfer-Funktion einverstanden . Seine gemeinsame Definition ist die Ausgabe-Eingabe-Beziehung eines linearen zeitinvarianten Systems im Frequenzbereich. Ihr System ist nicht linear. Ich würde es eher als charakteristisch bezeichnen oder hier einfach nur funktionieren .
Deve

Vielen Dank. Ja in der Tat habe ich einen falschen Begriff verwendet, funktioniert einfach gut genug. Ich dachte darüber nach, ein Beispiel für ein lineares System zu schreiben, aber es ist ziemlich einfach, also blieb der Begriff in meinen Gedanken
sigrlami

Wow, danke für alles, was ich lesen werde, obwohl es so aussieht, als ob eine Chance auf ein Beispiel für C-Code besteht.
Carlos Barbosa

T0(x)T1(x)y

@Mohammad sie sind nicht genau verwandt, es ist nur eine einfache Beschreibung der Polynomfunktion, wenn der Themenstarter es nicht weiß.
Sigrlami
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.