Bestimmen Sie zwei Signale mit einem Skalierungsfaktor

7

Angenommen, ich habe 2 Signale von der Funktion bzw. und nehme an, dass die Abtastrate über der Nyquist-Frequenz liegt, damit wir die zugrunde liegenden Funktionen und wiederherstellen können . Aber meine Frage ist, von den zwei Signalen, wie zu sagen , ob die zugrunde liegenden Funktionen wird von skalierten , das heißt , um zu bestimmen , ob , wo ist eine Nicht-Null reelle Zahl.f1(x)f2(x)f1(x)f2(x)f2(x)f1(x)f2(x)=f1(ax)a

Vielen Dank!

Chaohuang
quelle

Antworten:

7

Eine notwendige (aber nicht ausreichende) Bedingung für , um eine zeitlich skalierte Version von ist, dass eine Spektraldarstellung mit einer logarithmischen Frequenzskala (wie der Konstant-Q-Transformation) von eine Übersetzung einer logarithmischen Frequenzspektraldarstellung von ist .f2f1f1f2

Praktisch, da zwei Signale, können Sie den Test durchführen und auswerten durch die CQT von Rechen und , sie Kreuzkorrelation und an der Stelle des Spitzen suchen. Die Stärke des Peaks kann Ihnen eine Vorstellung von der spektralen Ähnlichkeit der beiden Signale geben, unabhängig von ihrer zeitlichen Skala. und die Position des Peaks gibt Ihnen den zeitlichen Skalierungsfaktor.af1f2

Beispiel für skalierte Signale mit CQT und deren Korrelation

Diese Art der Darstellung, die für die zeitliche Skalierung robust ist, ist nützlich bei der Modellierung von Musiksignalen, bei denen die verschiedenen von einem Musikinstrument erzeugten Noten - in sehr grober Näherung - zeitlich skalierte Versionen von sich selbst sind.

Pichenettes
quelle
Wie stark muss der Kreuzkorrelationspeak sein, um zu deklarieren, dass von skaliert ist ? Warum im Titel der dritten Abbildung auch 36,2 ^ (36/20) = 3,5? Vielen Dank! f2(x)f1(x)
Chaohuang
Der Peak liegt bei 36, was anzeigt, dass ein Signal eine Verschiebung des anderen um 36 CQT-Kanäle ist. Da der CQT 20 Oktavkanäle hat, entspricht die Verschiebung einem Verhältnis von 2 ^ (36/20), wodurch Sie die Verschiebung (3,48) aufgrund der relativ hohen Auflösung des CQT bis zu einem kleinen Fehler erhalten - etwas, das behoben werden kann durch Erhöhen der Auflösung (Anzahl der Kanäle pro Oktave).
Pichenettes
Was den Wert des Peaks betrifft, können Sie beide CQTs so normalisieren, dass sie eine Gesamtenergie von 1 haben. und überprüfen Sie den Wert des Peaks. Es muss in der Nähe von 1.
Pichenettes
Aber wenn NICHT von skaliert wird und ich ihre CQTs normalisiere, wird der Kreuzkorrelationspeak immer noch 1 sein, oder? Wie kann ich dann den Spitzenwert verwenden, um die Beziehung zwischen und ? f2f1f1f2
Chaohuang
Der Kreuzkorrelationspeak liegt nicht bei 1, wenn die beiden CQTs keine Translation voneinander sind.
Pichenettes
1

Die Mellin-Transformation kann auch verwendet werden, um solche Signale zu bestimmen, da "die Größe der Mellin-Transformation einer skalierten Funktion mit der Größe der ursprünglichen Funktion identisch ist. Diese Skalierungsinvarianzeigenschaft ist analog zur Verschiebungsinvarianzeigenschaft der Fourier-Transformation. Die Größe einer Fourier-Transformation einer zeitversetzten Funktion ist identisch mit der ursprünglichen Funktion. " (zitiert aus Wikipedia)

Chaohuang
quelle