Wenn Sie also eine Rechteckwelle erzeugen, indem Sie einfach ein Signal an den Sample-Grenzen zwischen zwei Werten umschalten, wird eine unendliche Reihe von Harmonischen erzeugt, die Töne unter Ihrer Grundwelle erzeugen, was sehr gut hörbar ist. Die Lösung ist die bandbegrenzte Synthese , entweder durch additive Synthese oder bandbegrenzte Schritte, um Wellenformen zu erzeugen, die so aussehen, als hätten Sie die ideale mathematische Rechteckwelle vor dem Abtasten bandbegrenzt:
Aber ich habe gerade festgestellt, dass, wenn Sie eine digitale Sinuswelle stark verstärken und dann digital abschneiden, sie die gleiche Rechteckwellenform erzeugt, ohne dass das Gibbs-Phänomen Wellen erzeugt. Es produziert also auch verzerrte Verzerrungsprodukte, richtig? So jede nichtlineare Verzerrung in der digitalen Domäne , die Harmonischen außerhalb der Nyquist - Grenzen erzeugt wird aliased Verzerrungsprodukte produzieren? (Edit: Ich habe einige Tests durchgeführt und bestätigt, dass dieser Teil wahr ist.)
Gibt es eine bandbegrenzte Verzerrung, um (im digitalen Bereich) die Auswirkungen der Verzerrung (im analogen Bereich) vor der Bandbegrenzung und Abtastung zu simulieren ? Wenn ja, wie machst du das? Wenn ich nach "bandbegrenzter Verzerrung" suche, finde ich einige Verweise auf Chebyshev-Polynome, aber ich weiß nicht, wie ich sie verwenden soll oder ob sie nur für Sinuswellen funktionieren oder was:
Dieses Instrument versucht nicht, bandbegrenzte Verzerrungen zu erzeugen. Diejenigen, die an bandbegrenzter Verzerrung interessiert sind, sollten die Verwendung von Chebyshev-Polynomen untersuchen, um den Effekt zu erzeugen. Hyperbolische Tangentenverzerrung
"Chebyshev Polynomial" - Formgebungsfunktionen mit der wichtigen Eigenschaft, dass sie intrinsisch bandbegrenzt sind, dh keine störenden spektralen Harmonischen aufgrund von Überlappungen usw. einführen. Wave Shaper
quelle
Antworten:
Das Anwenden einer nichtlinearen Funktion führt immer zu Harmonischen, und das Mischen von nichtlinearen Funktionen mit abgetasteten Versionen von kontinuierlichen Signalen fügt die oben notierte Falte hinzu (wobei Harmonische hoher Frequenzen auf niedrige Frequenzen abgeglichen werden).
Ich kann mir ein paar Vorgehensweisen vorstellen:
Sie können (1) und (2) kombinieren. Der dritte Ansatz ist komplex, gibt Ihnen jedoch die beste Kontrolle darüber, wie viel Verzerrung zuzugeben ist, und lässt sich wahrscheinlich besser auf Anforderungen mit sehr hoher Wiedergabetreue skalieren.
Bei nichtlinearen Funktionen, die eine Reihenentwicklung zulassen (z. B. Taylor / Maclaurin), können Sie eine gute Vorstellung davon bekommen, wie schnell die Harmonischen abklingen. Die Maclaurin-Erweiterung einer Funktion ist:f(x)
In Ihrem Fall ist die Beschneidungsfunktion. (Mit einem harten Clipper ist das nicht möglich, zumindest nicht naiv!) Wenn Sie die Substitution x = g ( t ) betrachten , wobei g ( t ) Ihr Eingangssignal ist, wird x n zu g ( t ) n , was du als n- malige Faltung deines Eingangssignals mit sich selbst betrachten kannst . Somit hat für Tiefpasssignale der n- te Term der unendlichen Summation eine Bandbreite nf(x) x=g(t) g(t) xn g(t)n n n n mal das deines Signals. Um das Bild zu vervollständigen, müssen Sie die Amplitude jedes Terms ermitteln und entscheiden, wie viele Terme in der Summation relevant sind.
(Mit ein wenig Überlegung können Sie dieses Formular möglicherweise auch direkt verwenden, um die gefilterte Nichtlinearität zu approximieren. Dies würde eine gute Seriendarstellung für den Clipper erfordern.)
quelle
Einige Ansätze zur aliasfreien nichtlinearen Verzerrung (in aufsteigender Reihenfolge des Schwierigkeitsgrades):
Subband-Verzerrung : Verwenden Sie einen Tiefpassfilter, um das untere Ende des Signals zu extrahieren. Wenn Sie eine Grenzfrequenz von f s wählen Sie können jede nichtlineare Übertragungsfunktionfanwenden,wobei Ableitungen abfN+1verschwinden, um ein Aliasing zu vermeiden. Addieren Sie nur den Verzerrungsausgang des niedrigen Bandes zum ursprünglichen Signal. Ändern Sie dazu Ihre nichtlineare Übertragungsfunktion so, dass nur die Verzerrung und nicht das eingehende Signal erzeugt wird. Dieser Ansatz ist für Audio oftmals völlig ausreichend, da der Verzerrungsbeitrag der höheren Frequenzen in den meisten Fällen unhörbar wäre.fs2N f fN+1
Überabtastung : Dies ist ähnlich wie bei Ansatz 1, erfordert jedoch die zusätzlichen Schritte der Über- und Unterabtastung, um sicherzustellen, dass alle Informationen im ursprünglichen Signalband zum verzerrten Signal beitragen, wenn Sie dies für erforderlich halten. Hiermit können Sie auch zu einer höheren Ordnung verzerren, da Teile des rückgefalteten Spektrums vom Downsampling-Filter entfernt werden. Das heißt, wenn Sie um einen Faktor überabtasten, müssen die Ableitungen der nichtlinearen Übertragungsfunktion ab Ordnung 2 N verschwinden. Das Verfahren ist ein einfaches Upsampling unter Anwendung der nichtlinearen Übertragungsfunktion Downsampling.N 2N
Verwendung einer lokalen Analyselösung : Jede glatte nichtlineare Übertragungsfunktion kann auf ein Signal angewendet werden, das durch eine Potenzreihe beschrieben wird. Wenn Sie die Übertragungsfunktion auf eine Potenzreihe einwirken lassen, erhalten Sie eine Potenzreihe zurück. Wenn Sie sich auf abgeschnittene Potenzreihen einer bestimmten Größenordnung und die Übertragungsfunktion auf einen bestimmten Grad an Glätte beschränken, können Sie die Übertragungsfunktion als Map auf die Koeffizienten der abgeschnittenen Reihen schreiben. Das heißt, Sie betrachtenanstelle von f : R N → R M, indem Sie eine Eingangsserienerweiterung der Länge N in eine Ausgangsserienerweiterung der Länge M umwandelnf:R→R f:RN→RM N . Mit diesem Verständnis können Sie eine lokale endliche Approximation des Eingangssignals in Bezug auf eine Leistungsreihe verwenden und diese auf eine Leistungsreihen-Approximation des Ausgangs abbilden. Anschließend können Sie die Ausgabereihen analytisch integrieren, um einen Box-Car-Antialiasing-Filter zu erstellen, mit dem der Ausgabebeispielwert ermittelt wird. Alle diese Berechnungen können symbolisch durchgeführt werden. Da Sie lokale Merkmale des Eingangssignals einbeziehen müssen, erhalten Sie schließlich einen nichtlinearen Filter, der frühere Werte Ihres Eingangssignals verwendet, um die aktuelle Ausgabe zu generieren.M>N
Algebraisches Design auf der Basis von Abhängigkeiten : Im vorherigen Artikel haben Sie gesehen, dass nichtlineare Verzerrungen durch Antialiasing zu nichtlinearen Filtern führen. Natürlich sind nicht alle nichtlinearen Filter aliasfrei, aber einige können es sein. Die naheliegende Frage ist also, nach welchem Kriterium ein solcher Filter streng aliasfrei ist und wie er zu gestalten ist. Wie sich herausstellt, ist eine äquivalente Aussage zum Freiwerden von Aliasing, dass der nichtlineare Filter mit Unterabtastungsübersetzungen pendelt. Sie müssen also sicherstellen, dass es keinen Unterschied macht, ob Sie zuerst übersetzen und dann filtern oder erst filtern und dann übersetzen. Diese Bedingung führt zu sehr strengen Entwurfsbeschränkungenfür nichtlineare Filter, hängt aber davon ab, wie Sie die Signalumsetzung realisieren. Zum Beispiel würde die ideale Übersetzung unendlich viele Koeffizienten für das nichtlineare Filter erfordern. Sie müssen also die Signalumsetzung auf endliche Ordnung approximieren, um ein endliches nichtlineares Filter zu erhalten. Die Alias-Freiheit skaliert mit der von Ihnen verwendeten Näherung, aber Sie haben sehr gute Kontrolle darüber. Nachdem Sie die Mathematik dieses Ansatzes durchgearbeitet haben, können Sie jede (nicht nur glatte) nichtlineare Übertragungsfunktion als nahezu ideales digitales Modell in Form eines nichtlinearen Filters entwerfen. Ich kann die Details hier unmöglich skizzieren, aber vielleicht können Sie sich von dieser Beschreibung inspirieren lassen.
quelle
Die Polynome selbst können mithilfe der folgenden Wiederholungsrelation auf einfache Weise generiert werden :
Hier sind die ersten:
By computing a Chebyshev Series
truncated to an appropriate value ofn , you get a waveshaper (i.e. f(x) ) that, when applied to a unit amplitude cosine, will generate an arbitrary [integer] set of bandlimited harmonics.
quelle
@robert-bristow-johnson explains this very clearly on comp.dsp:
In other words, if your nonlinearity is a polynomial, the highest frequency that can be produced by the distortion will be the highest frequency in your signal times the order N of the polynomial. (The polynomial nonlinearity is multiplying the signal by itself N times, so its spectrum gets convolved with itself and spreads out by the same ratio.)
So then you know the maximum frequency (whether Nyquist or some lower limit for your application), and you know the order of the polynomial, so you can oversample enough to prevent aliasing, do the distortion, and then low-pass filter and downsample.
In fact, you can reduce the oversampling rate by letting some aliasing happen, as long as it's contained in the band that will be removed before downsampling:
quelle