Frequency Domain Zero Padding - spezielle Behandlung von X [N / 2]


18

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 xes real ist, es auch isty
  • ynoch schneidet xbei allen den Abtastpunkten, je nach Bedarf (Ich denke , das für jede wahr ist , pwo Y=[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 : xist nicht unbedingt echt oder bandbegrenzt.


Sie schreiben "Jedes Lehrbuchbeispiel und Online-Tutorial, bei dem ich Einfügungen von Nullen gesehen habe ...". Können Sie Ihren Beitrag mit einigen Referenzen aktualisieren? Nur neugierig, weil Sie auch schreiben, dass x nicht unbedingt reell ist und die erste von Ihnen erwähnte Konstruktion (im Allgemeinen) kein reelles Ergebnis durch inverse DFT liefert.
Niaren

@niaren hier ist ein Beispiel: dspguru.com/dsp/howtos/…
finnw

1
Es ist erwähnenswert, dass, damit ein reeller Wert ist, Y = [ 2 A , 2 B , 2 C , 2 D , E , 0 , 0 , 0 , 0 , 0 , 0 , 0 sein muss , E , 2 F , 2 G , 2 H ]yY=[2A,2B,2C,2D,E,0,0,0,0,0,0,0,E,2F,2G,2H](dh wenn Sie E für die "negative Frequenz" -Hälfte des Frequenzbereichsvektors duplizieren, müssen Sie es konjugieren. Signale, die im Zeitbereich real sind, haben konjugierte symmetrische DFTs.
Jason R

1
@ Jason R, wenn das Eingangssignal ein reeller Wert ist, dann ist E so [2A, 2B, 2C, 2D, E, 0,0,0,0,0,0,0, E, 2F, 2G, 2H] erfüllt diese Bedingung. Wenn die Eingabe nicht reell ist, ist es nicht erforderlich, die Ausgabe als reell zu erzwingen.
6.

Du hast Recht. Das bekomme ich, wenn ich zu spät am Abend einen Kommentar schreibe.
Jason R

Antworten:


7

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+π.

ωA=0,ωB=π/4,ωC=π/2,ωD=3π/4,ωE=π=π (mod 2π),ωF=5π/4=3π/4 (mod 2π),ωG=3π/2=π/2 (mod 2π),ωH=7π/4=π/4 (mod 2π)
Eπ+π

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:

Außerdem benötigen wir wenn N gerade ist, während ungerade keine solche Einschränkung erfordert.x(N/2)=x(N/2)=0N

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.


2

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):

X=[A,B,C,D,E,F,G,H]

Betrachtet man den tatsächlichen Input

X=[A,B,C,D,E,D,C,B]

x0,0,x1,0,...0π/2π/2π

X2=[A,B,C,D,E,D,C,B,A,B,C,D,E,D,C,B]

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)

yn=k=-x2ksichnc(0,5n-k)

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:

Y=[A,B,C,D,E,0,0,0,0,0,0,0,E,D,C,B]

Y=[A,B,C,D,0,0,0,0,0,0,0,0,0,D,C,B]

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.

Y=[A,B,C,D,ρ,0,0,0,0,0,0,0,ρ,D,C,B]


1
Sure it's bandlimited interpolation. What do you mean, frequency components not present in the original x?
leftaroundabout

@leftaroundabout The original x is bandlimited (in this example to the Nyquist frequency). OP wants to upsample x by a factor of 2 (my interpretation). One way to upsample x is to insert zeros in the frequency response as shown by OP (the example without E, the one shown in DSP text books) and do an inverse FFT. I believe the same could have been achived by inserting zeros (interleaved) in x and (low-pass) filter by a sinc. By inserting E as shown by OP, the upsampled x is not bandlimited to the original Nyquist frequency. This is typically not desired (it is distortion). Do you agree?
niaren

1
Inserting zeroes interleaved and convoluting with a sinc (multiplied by 2) should indeed be the corresponding time-domain operation. — I don't think it's distortion: the two bins the OP put Es in represent both the same frequency, π2π2.
leftaroundabout

I am assuming the frequency ±N/2 is present in x. If it is not (due to bandlimiting or otherwise) then E would be 0 anyway so there would be no difference between padding with E (or 2E) and padding with 0.
finnw

1
A bandlimited signal can still have content in bin N/2 due to "spectral leakage" from any non-periodic-in-DFT-aperture spectral content, especially near (but not at) Fs/2.
hotpaw2
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.