Null-Padding in einem Zeitbereich


7

Ich habe die Aufgabe im Zusammenhang mit der Radon-Transformation, die eine Unteraufgabe enthält, die Resampling mittels DFT verwendet.

Betrachten wir das nichtperiodische diskretisierte Signal (Abb. 1) (zum Beispiel die Pixelfolge) mit einer Länge von 515 Pixeln. In meiner Implementierung zum Resampling sind folgende Schritte enthalten:

  1. Zyklische Linksverschiebung (Abb.2).
  2. Addiere Nullen zur Mitte, damit die Länge des Signals 2 ^ n wird (in unserem Fall 1024-515 = 509 Nullen müssen wir addieren) (Abb. 3).
  3. Holen Sie sich DFT von diesem Signal (Abb. 4).
  4. Zyklische Rechtsverschiebung. (zum Verschieben niedriger Frequenzen in die Mitte) (Abb.5)

Abb.1 Original Bild

Abb.2 Zyklische Linksverschiebung

Abb. 3 Zeropadded

Abb.4 DFT-Spektrum

Abb.5 DFT zurück verschoben

Die Hauptfrage:

Warum müssen wir eine zyklische Verschiebung des Signals durchführen und genau in der Mitte Nullen hinzufügen? (Ich nahm an, was das Signal periodisch machte) Zeropadding macht Interpolation DFT-Spektrum, ist es richtig? (Ich habe gefragt und jemand sagt, was nicht ganz so ist.) Vielleicht kann jemand auf einfache Weise erklären, was mit dem Signal nach dem Null-Auffüllen passiert.

Ich habe einige Experimente in einem Matlab durchgeführt und festgestellt, dass jede andere Abfolge von Aktionen nicht das erforderliche Ergebnis liefern kann.

Betrachten wir nun zwei Fälle:

a) (DIESE RICHTIGE VARIANTE) Wir haben das nichtperiodische diskretisierte Signal (zum Beispiel die Pixelfolge), das zyklisch nach links verschoben wird und in der Mitte Nullen füllt, nachdem DFT daraus erhalten und zurück verschoben wird. Geben Sie hier die Bildbeschreibung ein

b) Wir haben das nichtperiodische diskretisierte Signal (zum Beispiel die eingestellten Pixelfolgen), das von links und rechts mit Nullen gefüllt wird, nachdem daraus DFT erhalten wurde.

Geben Sie hier die Bildbeschreibung ein

Was ist der Unterschied zu diesen DFT-Spektren?

Ich habe einige Bücher gelesen, aber keine Antwort auf den Fall dieses Nullpolsters gefunden. Es scheint, dass dies nur durch eigene Erfahrung gefunden werden kann.

Antwort im Buch:

AC Kak und Malcolm Slaney, Prinzipien der computergestützten tomographischen Bildgebung, Gesellschaft für industrielle und angewandte Mathematik, 2001 auf Seite 25


Es fällt mir schwer, genau zu sagen, was Sie versuchen. Möchten Sie das Zeitbereichssignal (dh DFT, Null-Pad im Frequenzbereich, dann IDFT) oder im Frequenzbereich (Null-Pad im Zeitbereich, dann DFT) interpolieren?
Jason R

@ JasonR, ich möchte eine Interpolation des Frequenzbereichs durch Auffüllen mit Null in einem Zeitbereich durchführen. Aber ich kann nicht verstehen, warum ich für eine korrekte Interpolation eine Kreisverschiebung auf N / 2 durchführen und dann das Füllen von Nullen zur Mitte machen muss.
Roman Shkarin

1
Wenn Sie nicht fftshift, ändern sich alle Phasenergebnisse nach dem Auffüllen mit Null (um einen beliebigen Betrag, der nicht der ursprünglichen Fensterbreite entspricht). So erhalten Sie unterschiedliche Ergebnisse, nicht nur interpolierte Ergebnisse. Ein verdrilltes Spektrum ist nicht dasselbe wie ein ungedrehtes Spektrum.
hotpaw2

Antworten:


3

Das Verschieben der Datenpunkte (fftshift) und das Auffüllen der exakten Mitte der FFT-Apertur auf Null haben die Eigenschaft, dass alle geraden (symmetrischen) Komponenten in Bezug auf die Mitte des ursprünglichen Datensatzes im Realteil des komplexen FFT-Ergebnisses landen und alle ungeraden Komponenten landen im Imaginärteil. zB bleibt das Verhältnis von Gleichmäßigkeit zu Seltsamkeit erhalten, wodurch die Phase (in Bezug auf die Mitte des Fensters) leicht interpoliert werden kann.

In der Lage zu sein, die Phase zu interpolieren, ist im Fall einer mit Nullen gepolsterten FFT wichtig, da die Nullpolsterung auch die spektrale Größe interpoliert. Da das Auffüllen mit Nullen zu einem interpolierten FFT-Ergebnis führt, bedeutet dies, dass alle ursprünglichen nicht interpolierten FFT-Ergebnispunkte aus dem mit Nullen aufgefüllten Ergebnis interpoliert werden müssen. Ohne eine FFT-Verschiebung sowohl der nicht aufgefüllten als auch der nicht aufgefüllten Daten unterscheiden sich diese interpolierten Ergebnisse von den nicht interpolierten FFT-Ergebnissen (in Phase).

Diese Technik ist ein einfaches Ergebnis (Hausaufgaben- oder Quizstufe) der FT-Eigenschaft, dass eine Verschiebung in einer Domäne eine komplexe Frequenzmodulation in der anderen Domäne ist.


Wie ich verstanden habe, ist die Phase im Frequenzbereich in der Mitte nicht symmetrisch, wenn ich am Ende des Signals Nullen hinzufüge, oder? Könnten Sie den physikalischen Sinn des Verhältnisses von Gleichmäßigkeit zu Seltsamkeit erklären und wie man dies berechnet?
Roman Shkarin

Gerade Funktionen versus ungerade Funktionen klingen nach einer neuen Frage. Vielleicht eine mathematische Frage?
hotpaw2

Könnten Sie bitte erklären, was wir erhalten, wenn "der Originaldatensatz im Realteil des komplexen FFT-Ergebnisses und alle ungeraden Komponenten im Imaginärteil landen" oder warum dies besser ist als im Originaldatensatz nicht den reellen Werten der FFT entsprechen und alle ungeraden Komponenten nicht dem Imaginärteil des FFT-Ergebnisses entsprechen? Für mich ist es sehr wichtig, den physischen Sinn dieser Handlungen zu verstehen.
Roman Shkarin

1
Referenzwinkel = 0 zur Fenstermitte. Dann sind alle Cosinus gerade (symmetrisch um die Mitte) Funktionen und werden im Realteil eines komplexen FFT-Ergebnisses angezeigt. Dies gilt auch für nichtperiodische Frequenzen und ist daher in Bezug auf die Fensterbreite unveränderlich. Wenn Sie möchten, dass sich die Dinge nicht ändern, sind invariante Eigenschaften hilfreich.
hotpaw2

Könnte ich all Ihre Nachrichten über den Fall verfeinern, in dem das Auffüllen und Verschieben von Null genau ausgeführt wird, BEVOR Sie FFT für dieses Signal verwenden? Weil ich anscheinend etwas verwirrt bin :)
Roman Shkarin

1

@Roman: Nach meiner Erfahrung führt die Interpolation (sagen wir mal Faktor 2) zu einer höheren Abtastfrequenz (hochgetastetes Signal (2 * Fs)), unabhängig davon, ob wir dies im Zeitbereich oder im Frequenzbereich tun. Für die Zeitbereichsinterpolation fügen wir Nullen in alternative Abtastwerte ein, genauso wie wir Nullen einfügen, weil wir das Signal in eine höhere Abtastfrequenz umwandeln, indem wir die Signalbandbreite unberührt lassen. Der genaue Grund für die "Mittenfüllung" liegt im Zusammenhang mit dem FFT-Index gegenüber dem Basisband-Index (BB). Beispiel: Signal BW fm und Abtastfrequenz Fs. Im Frequenzbereich ist das Signal fm bei + NFs und -NFs zentriert, wobei N eine ganze Zahl (0,1,2 ...) ist. Das Signal um DC (Basisbandsignal) belegt von -fm / 2 bis fm / 2 und das Signal bei Fs belegt von Fs-fm / 2 bis Fs + fm / 2 usw. Alle diese Replikate tragen die gleichen Informationen. Anstatt -fm / 2 für DC zu berücksichtigen, Wir betrachten Fs-fm / 2 (beide sind gleich), nur der Unterschied ist positiv oder negativ. Schließlich ist das Signal, das wir betrachten, {[DC zu fm / 2] [Fs-fm / 2 zu Fs]}. Aus diesem Grund füllen wir zusätzliche Nullen (abhängig vom Upsampling-Faktor) zwischen [fm / 2 zu Fs-fm / 2] mit das ursprüngliche Signal fm intakt halten.


Vielen Dank! Können Sie erklären, warum Sie fm / 2 von der Abtastfrequenz subtrahieren? Sie sagten auch "das Signal fm zentriert bei + NFs und -NFs, wobei N eine ganze Zahl ist (0,1,2 ...)". Sie meinten das Signal zwischen -NFs und + NFs, richtig?
Roman Shkarin

1
@Roman: Nach dem Abtasten haben wir Repliken des Signals (fm) bei + NFs und -NFs. Das Basisbandsignal (N = 0) liegt zwischen [-fm / 2 fm / 2]. Die Repliken (Bilder) des Originalsignals sind bei + NFs und -NFs zentriert (N = 1,2,3, ... ). Für N = 1 ist das Signal (fm) bei Fs zentriert, dann ist das Signalband [Fs-fm / 2 Fs + fm / 2] ähnlich dem Basisbandfall, außer dass Fs addiert wird.
Taru

Wie ich im Fall eines endlichen Signals (Pixelstreifen) verstanden habe, erkennt die DFT dies als periodisches Signal. Auch das Anordnen von Abtastwerten im Quellensignal hat im Fall von Null-Auffüllen Sinn (Null-Auffüllen ergibt unterschiedliche Ergebnisse bei unterschiedlichen Abtastpositionen). Vor der DFT führen wir eine Kreisverschiebung durch, um Abtastwerte im Quellensignal auf die gleiche Weise anzuordnen, wie sie nach der DFT angeordnet werden. Ob hat die Kreisverschiebung das Gefühl, Fehler zu vermeiden, die durch die Kreisfaltung der Nullpolsterung verursacht werden? Entschuldigung, ich habe in diesem Bereich nicht so viel Erfahrung.
Roman Shkarin

0

Wenn ich eine Ausgabe vom Bandpassfilter habe und sie wieder in den Zeitbereich konvertieren möchte.

Ist es auch der richtige Ansatz für die zyklische Verschiebung nach links und das Auffüllen von Nullen in der Mitte, bevor das Fenster angewendet und wieder in den Zeitbereich konvertiert wird?

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.