Frequenzverschiebung ohne Beeinträchtigung der Signallänge

Nicht-Physiker hier.

Nach dem, was ich an der Universität gelernt habe und was der gesunde Menschenverstand sagt, führt eine Frequenzverschiebung eines Signals zu einer Änderung seiner zeitlichen Länge. Wenn beispielsweise ein sinusförmiges Signal der Frequenz F und Länge T wird in den Frequenzbereich übertragen, es ist F geteilt durch 2 , dann zurück in den Zeitbereich umgerechnet, wäre die Länge des Signals 2 T .

Korrigiere mich, wenn ich falsch liege! Aber das ist ziemlich intuitiv. Wenn Sie ein Signal langsamer machen, würde es länger dauern, bis es fertig ist und umgekehrt.

Aus diesem Grund wurde mir gesagt, dass es unmöglich ist, die Frequenz eines Streaming-Signals zu ändern und es mit derselben Geschwindigkeit auszugeben. Zum Beispiel wäre es unmöglich, die Sprache eines Mannes so zu ändern, dass sie wie eine Frau klingt, ohne sie schneller zu machen.

Jetzt habe ich verschiedene Beobachtungen gemacht:

  • In Coursera können Sie die Geschwindigkeit von Kursvorträgen erhöhen und der Ton wird natürlich auch beschleunigt. Es gibt jedoch keinen Anstieg in der Tonhöhe der Stimme des Sprechers. Tatsächlich klingt der Lautsprecher der normalen Geschwindigkeit sehr ähnlich. Wie ist es möglich, die Geschwindigkeit des Signals zu ändern, ohne seine Frequenz zu beeinflussen?
  • Mein Verstärker hat einen Drehregler zum Verschieben der Tonhöhe. Während des Spielens können Sie hier also die Ausgabe mit einer anderen Tonhöhe vornehmen. Wie ist das möglich? Wenn der Verstärker die Tonhöhe erhöht, sollte sein Ausgang nicht schneller sein als sein Eingang? (dh ein Widerspruch!) Ich vermute allerdings einen Trick, da die Ausgabe eher "künstlich" klingt.

Es scheint, dass es einigermaßen möglich ist, die Frequenz eines Signals zu ändern, ohne seine Länge zu beeinflussen. Ein (theoretischer) Weg, den ich mir vorstellen kann, wäre, die aktuellen "Noten" zu verstehen, die in sehr kleinen Intervallen gespielt werden (dh die verschiedenen Frequenzen, die das Signal erzeugen), die Note zu ändern und sie für die Dauer dieses Intervalls wiederzugeben.

Meine Frage ist zunächst, ob mein Verständnis überhaupt richtig ist. Wie auch immer, gibt es einen mathematischen Weg, um die Tonhöhe eines Signals zu ändern, ohne seine zeitliche Länge zu beeinflussen? Wenn nicht, wie können sie es in der Praxis tun?

Ich kenne die Antwort darauf nicht wirklich (ich warte darauf, dass jemand mit mehr Signalverarbeitungskenntnissen darauf antwortet), aber ich vermute stark, dass es sich nicht nur um eine einfache Zeit-Frequenz-Bereichsdehnung handelt, die angewendet wird. Eine mögliche Möglichkeit, die Tonhöhe zu erhöhen, ohne die Dinge zu beschleunigen, wäre, das Signal in kleine Patches zu zerhacken, um ein Spektrogramm zu erstellen, Frequenzdehnungen auf die Patches anzuwenden, jeden Patch zu duplizieren und dann zurück in den Zeitbereich zu konvertieren. In der Praxis hätte dies meiner Meinung nach unangenehme "Randeffekte", sodass wahrscheinlich ein heikleres Verfahren erforderlich wäre.
Der Trick besteht darin, eine Fourier-Transformation zu verwenden. Anstatt die Tonhöhe durch Komprimieren der Wellenform zu ändern (was sich auf die Spielzeit auswirkt), wird der Klang in den Frequenzbereich umgewandelt. Dann werden alle Tonhöhen nach oben verschoben und der Ton zurückgewandelt. Sie können sich das so vorstellen, als würden Sie den Ton in ein paar winzige Zeitfenster aufteilen. Komprimieren Sie dann jedes Zeitfenster auf die Hälfte der Zeit (Verdopplung der Tonhöhe) und spielen Sie dann jedes Zeitfenster zweimal ab.
-1; Im ersten Teil Ihrer Frage verstehe ich nicht, was Sie sagen wollen. Soweit ich weiß, sind Sie völlig falsch informiert! Warum sollte die Signallänge von der Frequenz abhängen? erstmal was meinst du mit signallänge? Frage mich, an welcher Universität hast du dieses falsche Ding studiert?
@RajeshD versuchen Sie sich vorzustellen, was passiert, wenn Sie ein Band mit halber Geschwindigkeit abspielen. Sowohl die Länge des Signals als auch seine Tonhöhe ändern sich. Aus diesem Grund besteht eine Beziehung zwischen den beiden.
@Nathaniel: Aus dem Beitrag von OP zitiere ich "eine Frequenzverschiebung eines Signals führt zu einer Änderung seiner Zeitlänge". Ich bin versucht zu sagen, was zum Teufel ist los? Was meinst du mit Frequenzverschiebung? und Länge? Sie liegen völlig falsch, wenn Sie kommunizieren, was Sie fragen wollen.
@RajeshD es scheint mir leicht genug zu verstehen.
@RajeshD: Das OP sagt, wenn Sie einfach den Audiostream FT, die Frequenzen verringern und dann IFT, erhalten Sie eine verlangsamte (und damit längere) Version.
@RajeshD, nur um klarzustellen, wie die *.SE.com-Serie von Websites funktioniert, stellt man normalerweise eine Frage, wenn man etwas nicht weiß. Normalerweise ist Fehlinformation kein Grund für -1, da dies der Grund für die Frage ist! -1 wird normalerweise angewendet, wenn die Frage von sehr geringer Qualität ist oder keinerlei Bemühungen zeigt, die Lösung zu finden. Keine harten Gefühle, obwohl. Ich wollte das nur klären.
@Shahbaz: Was ist der Unterschied zwischen Frequenz und Tonhöhe?
@RajeshD, ich hatte den Eindruck, dass Tonhöhe der nicht-technische Begriff für Frequenz ist. Wenn ich gerade online lese, scheint es, dass sich die Tonhöhe auf die psychologische Wahrnehmung dieser Frequenz bezieht.

Antworten (1)

Sie haben Recht, dass es unmöglich ist, die Frequenz jeder Komponente einer Wellenform zu ändern, während (a) alle Phasenbeziehungen zwischen den Frequenzen und (b) die Länge der Wellenform beibehalten werden. Obwohl es mathematisch unmöglich ist, dies genau zu tun, ist es möglich, Dinge zu tun, die für das menschliche Ohr ziemlich ähnlich klingen. Die grundlegendsten Algorithmen dafür sind ziemlich einfach, aber es gut zu machen, ist ziemlich schwierig, und die Algorithmen werden ständig verbessert. Es wird als "Tonhöhenverschiebung" bezeichnet, wenn das Ziel darin besteht, die Tonhöhe, aber nicht die Zeit zu ändern, und "Zeitdehnung", wenn Sie die Zeit ändern möchten, während Sie die Tonhöhe beibehalten.

Der Grund dafür ist, dass das Ohr Rhythmus und Tonhöhe als ganz unterschiedliche Dinge unterscheidet. Eine Folge von Klicks klingt wie eine Folge von Klicks, bis ihre Frequenz etwa 20-30 Hz überschreitet, an welchem ​​Punkt sie in ein summendes Geräusch übergeht, das als eine Tonhöhe wahrgenommen wird. Aus diesem Grund können Sie, wie DumpsterDoofus sagte, den Sound in kleine Segmente von kurzer Dauer zerhacken, die Tonhöhe jedes einzelnen ändern und sie dann wieder zusammenfügen, Dinge wiederholen oder Lücken lassen, wo nötig.

An sich klingt das nicht so gut, weil Sie am Ende jedes Segments ein Klicken hören, wo die Wellenformen nicht ausgerichtet sind. Es kann stark verbessert werden, indem "Fenster" des Sounds überlappt werden, die jeweils ein Fade-In und Fade-Out haben. Auf diese Weise hören Sie die Klicks an den Enden der Segmente nicht, aber Sie hören tendenziell Phasenauslöschungseffekte, bei denen die Fenster wieder zusammengefügt werden. Aus diesem Grund erfordert diese Technik einiges an Abstimmung, damit sie bei jedem gegebenen Eingangston gut klingt.

Es gibt auch Techniken im Fourier-Bereich, wie Brandon Enright sagte. Diese verwenden normalerweise auch überlappende Fenster; Ich denke, der Vorteil der Verwendung der Fourier-Domäne besteht darin, dass Sie mehr Kontrolle über die Phasenbeziehungen haben. (Ich weiß nicht viel über diese Techniken.)

Eine ziemlich neue Entwicklung ist der Algorithmus "Pitch Synchronous Overlap-Add" (PSOLA). Dies verwendet ebenfalls überlappende Fenster, synchronisiert jedoch die Länge der Fenster mit der Tonhöhe des Eingangstons. Dadurch wird es für das Ohr deutlich schwieriger, die einzelnen Fenster wahrzunehmen. Ich nenne es „den Algorithmus, der die Musik ruiniert hat“, weil es für diesen fiesen „Autotune“-Effekt verantwortlich ist, der in den letzten zehn Jahren für die Vocals jeder Pop-Platte überbeansprucht wurde. Es hat jedoch auch friedliche Anwendungen, und der Tonhöhenregler Ihres Verstärkers verwendet wahrscheinlich eine Version davon.

Weitere Details zu diesen Algorithmen finden Sie auf Wikipedia .