Der Verschiebungssatz lautet :
Multiplikation von mit einer linearen Phase e 2 π i für eine ganze Zahlmentspricht einerkreisförmigen Verschiebungdes AusgangsXk:Xkwird ersetzt durchXk-m, wobei der Index modulo interpretiert wirdN(dh periodisch).
Ok, das funktioniert gut:
plot a
N = 9
k = [0, 1, 2, 3, 4, 5, 6, 7, 8]
plot ifft(fft(a)*exp(-1j*2*pi*3*k/N))
Es hat sich wie erwartet um 3 Samples verschoben.
Ich dachte, Sie könnten dies auch tun, um einen Bruchteil eines Samples zu verschieben, aber wenn ich es versuche, wird mein Signal imaginär und überhaupt nicht wie das Original:
plot real(ifft(fft(a)*exp(-1j*2*pi*3.5*k/N)))
plot imag(ifft(fft(a)*exp(-1j*2*pi*3.5*k/N))), 'b--'
Das habe ich überhaupt nicht erwartet. Ist das nicht gleichbedeutend mit einem echten Impuls, der um 3,5 Samples verschoben wurde? Der Impuls sollte also immer noch real sein, und das Ergebnis sollte immer noch real sein? Und es sollte mehr oder weniger die gleiche Form haben wie das Original, aber sinc interpoliert?
Antworten:
Wenn die verschobene Ausgabe der IFFT real sein soll, muss die Phasendrehung / -rotation im Frequenzbereich ebenso wie die Daten konjugiert symmetrisch sein. Dies kann erreicht werden, indem dem Exponenten Ihres komplexen exp () für die gegebene Phasensteigung ein geeigneter Versatz hinzugefügt wird, so dass die Phase der oberen (oder negativen) Hälfte, Modulo 2 Pi, die untere Hälfte in der FFT-Apertur widerspiegelt . Die komplexe Exponentialverschiebungsfunktion kann auch konjugiert symmetrisch gemacht werden, indem sie von -N / 2 bis N / 2 mit einer Phase von Null bei Index 0 indiziert wird.
Es ist nur so, dass der geeignete Versatz für Phasendrehungen oder Spiralen, die ein genaues ganzzahliges Vielfaches von 2 Pi-Umdrehungen in der Apertur vervollständigen, um in der Apertur symmetrisch zu sein, Null ist.
Bei einem konjugierten symmetrischen Phasendrehungsvektor sollte das Ergebnis dann als zirkuläre Sinc-Interpolation für nicht ganzzahlige Verschiebungen enden.
Ausarbeitung durch OP:
Ihre Wahl von k = [0, 1, 2, 3, 4, 5, 6, 7, 8] führt zu einem asymmetrischen Exponentialkomplex:
Wenn Sie stattdessen k = [0, 1, 2, 3, 4, -4, -3, -2, -1] verwenden, erhalten Sie einen Hermite-symmetrischen Exponentialkomplex:
Und jetzt, wenn Sie die gleiche Exponentialformel verwenden, um um 0,5 oder 3,5 Abtastwerte zu verschieben, erhalten Sie ein reales Ergebnis:
quelle
k = [0, 1, 2, 3, 4]
sollte ichk = [0, 1, 2, -2, -1]