Angenommen, wir möchten ein periodisches Signal mit einer geraden Anzahl von Abtastwerten (z. B. N = 8) durch Auffüllen mit Nullen im Frequenzbereich interpolieren.
Lassen Sie die DFT X=[A,B,C,D,E,F,G,H]
nun auf 16 Samples auffüllen, um sie zu geben Y
. Bei jedem Lehrbuchbeispiel und Online-Tutorial habe ich beim Geben Einfügungen von Nullen gesehen .
(Dann ist das interpolierte Signal.)[Y4...Y11]
Y=[2A,2B,2C,2D,0,0,0,0,0,0,0,0,2E,2F,2G,2H]
y = idft(Y)
Warum nicht stattdessen verwenden
Y=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H]
?
Soweit ich das beurteilen kann (meine mathematischen Kenntnisse sind begrenzt):
- Es minimiert die Gesamtleistung
- Es stellt sicher, dass, wenn
x
es real ist, es auch isty
y
noch schneidetx
bei allen den Abtastpunkten, je nach Bedarf (Ich denke , das für jede wahr ist ,p
woY=[2A,2B,2C,2D,pE,0,0,0,0,0,0,0,(2-p)E,2F,2G,2H]
)
Warum wird das nie so gemacht?
Bearbeiten : x
ist nicht unbedingt echt oder bandbegrenzt.
dft
interpolation
zero-padding
finnw
quelle
quelle
Antworten:
Schauen wir uns die Häufigkeiten der Bins in Ihrer 8-Punkte-DFT an:
Wenn Sie also um einen Faktor 2 interpolieren wird dieFrequenz vonPunktE-πoder+π.
Auf den ersten Blick kann ich nicht erkennen, worin das Problem bei Ihrem Ansatz besteht, da nicht klar ist, ob in das mit π oder - π verknüpfte Bin gestellt werden soll .E π −π
Auf der Seite von Julius O. Smith III. Gibt er eine Bedingung an:
Und sein Beispiel gibt es für ein ungerades , das das Problem vermeidet.N
Ich bin mir nicht sicher, ob es erforderlich ist, aber hier ist der vollständige Verweis auf Julius 'Arbeit:
Smith, JO Mathematik der diskreten Fouriertransformation (DFT) mit Audioanwendungen, Zweite Ausgabe, http://ccrma.stanford.edu/~jos/mdft/ , 2007, Online-Buch, Zugriff auf den 28. September 2011.
quelle
Es gibt viele Möglichkeiten, Daten zu interpolieren. Interpolation bedeutet für mich, dass Sie Linien zwischen einigen Datenpunkten ziehen. Dies kann auf viele Arten geschehen. Eine Art der Interpolation, die bei DSP (insbesondere bei Mehrraten-DSP) nützlich ist, ist die "bandbegrenzte Interpolation". Wenn Sie googeln, erhalten Sie viele interessante und nützliche Treffer. Was Sie vorschlagen, ist keine bandbegrenzte Interpolation. In Ihrem 'upsampled' x befinden sich Frequenzkomponenten, die im ursprünglichen x nicht vorhanden sind.
Bearbeiten (zu lang, um in einen Kommentar zu passen):
Betrachtet man den tatsächlichen Input
In the ideal case an ideal brick-wall filter with cutoff frequencyπ/2 is required in order to remove the image. That is (for infinite input)
In der Praxis tritt jedoch eine gewisse Verzerrung auf, da der Mauerfilter nicht realistisch ist. Das praktische Filter kann Frequenzen im Eingang unterdrücken / entfernen oder einige der Frequenzkomponenten im Bild im hochgetasteten Signal belassen. Oder der Filter kann einen Kompromiss zwischen den beiden eingehen. Ich denke, Ihre Frequenzdomänenkonstruktion spiegelt auch diesen Kompromiss wider. Diese beiden Beispiele stehen für zwei verschiedene Auswahlmöglichkeiten:
If the input is bandlimited below the nyquist frequency as in your reference this issue disappears.
Maybe it is possible to find a value ofρ below, such that some error function, for instance the squared error between the input spectrum and the upsampled output spectrum is minimum.
quelle