Komplexes Konjugat und IFFT


8

Ich habe eine Frage zum Stapelüberlauf gestellt .

Ich habe jedoch ein kleines Problem. Wie von Paul RI vorgeschlagen, spiegele ich meine unteren Fächer in die oberen Fächer.n / 2n/.2n/.2

Ich habe jedoch einige Fragen.

  • Ich gehe davon ist ? Für eine Bestellung von 10 IFFT würde ich also die unteren 512 Frequenzbereiche in die oberen 512 spiegeln? Dies würde mir am Ende auch 1024 echte Samples bringen?2 f f t O r d e rn2fftÖrder
  • Bedeutet dies beim Spiegeln, dass Bin 0 in Bin , Bin 1 in Bin usw. verschoben wird?n - 2n- -1n- -2
  • Ich scheine bei einem Viertel meiner Abtastfrequenz eine Art Reflexion zu bekommen? Dies bedeutet, dass die obere Hälfte meines Frequenzbereichs tatsächlich über der unteren Hälfte erscheint. Hat jemand irgendwelche Ideen warum?
  • Hat jemand eine Idee, warum ich einen Striping-Effekt bekomme, bei dem ich 512 Samples einer Größenordnung und die nächsten 512 Samples einer anderen erhalte? (Dies "könnte" sein, woher meine Spiegelung kommt)

Ich denke das ist es für jetzt. Jede Hilfe wäre sehr hilfreich !!

Bearbeiten: Es ist nahezu unmöglich, Ihnen ein Bild der Reflexion zu geben, da es sehr schwer zu sehen ist! Grundsätzlich probiere ich mit 22 kHz und bekomme nichts als "Rauschen" über 11 kHz. Was "sollte" (obwohl ich offensichtlich etwas falsch mache) über 11 kHz liegen, scheint sich von 11 kHz auf 0 zu reflektieren. Es ist sehr seltsam.

Das Bild der Streifen ist hier zu sehen

Ich glaube, jeder Streifen ist 512 Proben breit.


Mir ist nicht klar, was Sie genau meinen mit: 1) irgendeiner Form von Reflexion bei fs / 4 und 2) Streifeneffekt ... Könnten Sie vielleicht eine Abbildung liefern, die Ihr Spektrogramm / fft-Diagramm zeigt und darauf hinweist, was Sie damit meinen? ? Ich kann davon ausgehen, was Sie meinen, aber das wäre nicht sehr hilfreich.
Lorem Ipsum

Ich bin mit Yoda darin, Ihre Beschreibung nicht zu verstehen, aber das Spiegeln von Bin 0 zu n-1 klingt definitiv falsch. Bin 0 steht für DC und sollte nirgendwo gespiegelt werden. Wenn n gerade ist, benötigt Bin n / 2 auch eine spezielle Behandlung. Ich würde auch davon abraten, eine 1024-Punkte-IFFT eine Order-10-IFFT zu nennen, da diese Terminologie eher verwirrend als hilfreich ist.
Dilip Sarwate

@yoda: Aktualisiert.
Goz

@ Dilip Sarwate: Entschuldigung, es ist sehr schwer zu beschreiben und noch schwerer zu sehen.
Goz

@Goz was sind die Achsen?
Lorem Ipsum

Antworten:


4

Ich bin nicht sicher, was Sie mit "Reflexion" oder "Streifen" erreichen, aber Sie möchten Ihre Datenpunkte so duplizieren, dass das Frequenzbereichssignal (der Eingang zur IFFT) konjugiert symmetrisch ist. Das heißt für sogar:N.

X.[k]]=X.[N.- -k]],k=1,2,,N.2- -1

Beachten Sie, dass Null basiert; Das erste Element im Vektor ist X [ 0 ] . Das Obige zeigt an, dass Sie die Null und N nicht duplizierenkX.[0]] Elemente im Eingabevektor. Diese Beziehung basiert auf der Periodizität derdiskreten Fourier-Transformation; Die erste Hälfte des Frequenzbereichsvektors entspricht "positiven" Frequenzen, die den Winkelfrequenzbereich von0bis(N-1)πabdeckenN.20 . Die zweite Hälfte umfasstπbis(N-1)2π(N.- -1)πN.π , das unter Ausnutzung der2π-Periodizität im Frequenzbereich äquivalent zu-πbis-2π ist(N.- -1)2πN.2π- -π . Damit der Frequenzbereichsvektor eine konjugierte Symmetrie aufweist, kann leicht gezeigt werden, dass die obige Beziehung wahr sein muss.- -2πN.

Wenn Sie mit Ihrem ursprünglichen Ziel sprechen, ein Spektrogramm in ein aussagekräftiges Audiosignal umzuwandeln, gibt es keine Garantie dafür, dass das, was Sie herausholen, in irgendeiner Weise angenehm ist. Wie bei Stack Overflow ausgeführt wurde, enthält das Spektrogramm keine Phaseninformationen. Bei der dort vorgeschlagenen Methode wird davon ausgegangen, dass die Phase jedes Frequenzbereichs Bin Null ist (daher ist die oben gezeigte konjugierte Operation überflüssig). Während das menschliche Ohr nicht besonders empfindlich auf Phasenverzerrungen in Audio reagiert, müssen Sie möglicherweise etwas anderes tun, je nachdem, was Sie genau erreichen möchten.


3

Ihr [0] -Index ist die DC-Komponente und sollte nicht gespiegelt werden. Der Reflexionspunkt sollte (N / 2) +1 sein


1

Angenommen, Sie haben eine reale Sequenz mit 1024 Punkten. Eine komplexe FFT macht daraus 1024 komplexe Zahlen. X [0] (DC) und X [512] Nyuist sind jedoch real und X [1]. X [511] sind konjugiert symmetrisch, sodass das gesamte Spektrum weiterhin mit 1024 Zahlen (2 Real und 511 Komplex) dargestellt werden kann. Angenommen, Sie haben ein halbseitiges Spektrum X [0] ... x [512] und möchten die konjugierte symmetrische Version davon Y [0] ... Y [1023] erstellen. Mach Folgendes

Y[0] = X[0], Y[1] = X[1] .... Y[512] = X[512];
Y[513] = conjugate(X[511]), Y[514] = conjugate(X[510]) ... Y[1023] = conjugate(X[1])

Wenn Sie Matlab verwenden, müssen Sie allen Indizes "1" hinzufügen, da Matlab bei 1 beginnt (nicht bei 0).


0

Die Reflexion ist normal: Sie wird als Aliasing oder Frequenzfaltung bezeichnet und tritt auf, wenn das von Ihnen abgetastete Signal die sogenannte Nyquist-Frequenz überschreitet, die zufällig die Hälfte Ihrer Abtastfrequenz beträgt. Idealerweise möchten Sie aus genau diesem Grund eine Abtastfrequenz, die mindestens doppelt so hoch ist wie die Frequenz des Signals, das Sie abtasten.

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.