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 / 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 r
- Bedeutet dies beim Spiegeln, dass Bin 0 in Bin , Bin 1 in Bin usw. verschoben wird?n - 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.
Antworten:
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.
Beachten Sie, dass Null basiert; Das erste Element im Vektor ist X [ 0 ] . Das Obige zeigt an, dass Sie die Null und N nicht duplizierenk X.[ 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.2 0 . 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.
quelle
Ihr [0] -Index ist die DC-Komponente und sollte nicht gespiegelt werden. Der Reflexionspunkt sollte (N / 2) +1 sein
quelle
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
Wenn Sie Matlab verwenden, müssen Sie allen Indizes "1" hinzufügen, da Matlab bei 1 beginnt (nicht bei 0).
quelle
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.
quelle