Hallo, ich befasse mich gerade mit der Xilinx XFFT IP V9.1 (Vivado Version 2019.1) und der zugehörigen Dokumentation. Das Problem ist, bei einigen Dingen ist diese nicht so eindeutig, besonders, wenn es um den Invers-FFT Modus der IP geht. Daher hätte ich an dieser Stelle ein paar Fragen an evtl. andere Xilinx/Vivado Mitstreiter. Vielleicht war jemand schon mal mit diesen Fragen konfrontiert und kann die ein oder andere bejahen/verneinen/beantworten. 1.1) Ist es richtig, dass der IFFT-Modus der IP eine "intrinsische" (also mathematisch bedingte) Skalierung von 1/N zum Input hinzufügt, die nicht "deaktiviert" werden kann und die unabhängig von der Scaling-Konfiguration der IP und der optional konfigurierten Scaling Schedule auf dem axi_stream_config-Bus ist ? 1.2) In Bezug auf die vorherige Frage, ist es korrekt, dass wenn ich eine skalierte FFT durchführe (Also entsprechende Konfiguration mit Scaling Schedule oder Auto Scaling) und den Ergebnisvektor direkt wieder in die IFFT gebe (nachdem ich am axi_stream_config-Bus vom FFT-Modus in den IFFT-Modus umgeschaltet habe), ich nicht die ursprüngliche Amplitude des Zeitsignals zurückbekomme, weil [skalierte FFT + "intrinsisch" skalierte IFFT] zu einer Art doppelter Skalierung führt ? 1.3) Mit Bezug auf die vorhergehende Frage, wenn das Ziel wäre, das ursprüngliche Zeitsignal mit passender Amplitude nach FFT + IFFT wieder zu erhalten, müsste eine unskalierte FFT gewählt werden, sehe ich das richtig ? 2) Wenn ich die Einstellung "Natural Order" für das Output der FFT gewählt habe und dann den Ausgangsvektor wieder in die IFFT gebe (nachdem ich am axi_stream_config-Bus vom FFT-Modus in den IFFT-Modus umgeschaltet habe), muss ich dann zuerst die Indizes des Vektors vor der IFFT neu ordnen, um nach der IFFT wieder das ursprüngliche Zeitsignal zu erhalten, oder kann ich die Reihenfolge so lassen, wie sie ist (wenn die Konfiguration der IP unverändert bleibt, außer dass sie auf IFFT umgeschaltet wird) ? 3) Ist es normal, dass die IFFT die Frequenz des ursprünglichen Zeitsignals in ihrem Ausgangsvektor verdoppelt (so dass z.B., wenn der ursprüngliche FFT-Eingangsvektor genau 1 Periode des Zeitsignals beinhaltete, man genau 2 Perioden im Ausgangsvektor der IFFT erhält) oder ist dies noch ein Fehler in meiner Testanwendung (Ich denke eher Letzteres, aber zur Sicherheit die Nachfrage) ? 4) Muss die "scaling schedule" auf dem axi_stream_config bus (wenn die IP auf manuelle Skalierung konfiguriert ist) nur einmal vor Beginn des Einlesens eines Frames gesendet werden, oder muss diese während des Einlesens für jedes einzelne Sample wiederholt gesendet werden ? 5) Ist es nötig den Core über den optionalen "aresetn" Port zu resetten bevor oder nachdem eine neue Konfiguration über den axi_stream_config bus gesendet wurde ? Gruß
:
Bearbeitet durch User
Bei den 1) müsste ich jetzt auch nachsehen. Ich beantworte es mal aus dem Kopf heraus? (non AXI FFT der alten Art): 2) nein, bei "natural order" kommen sie doch in der sortierten Reihenfolge heraus. Oder vertue ich mich da? 3) nein, ist nicht normal. Du machst was falsch. Aus der FFT kommen alle Daten inklusive Spiegelfrequenzen heraus. Die müssen auch wieder hinein oder weggelassen werden. Die andere Möglichkeit, ist einen offset hineinzubauen. Das sollte aber kontrolliert passieren und einen Grund haben wie den hier: Beitrag "bandlimitierte Rechtecksignale zielgenau erzeugen" 4) nein, "einmal" würde ich sagen. Noch nicht benutzt. 5) nein, einmal resetten und dann laufen lassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.