Hallo, ich verwende ein typisches System der digitalen Signalverarbeitung: ADC-DSP-DAC. Mein DSP empfängt von einem ADC Abtastwerte. Wurden 128 Abtastwerte "gesammelt", fängt der DSP an diesen Block zu verarbeiten. Verarbeiten heißt konkret es wird das Spektrum mittels komplexer FFT ermittelt, irgend eine Berechnung im Frequenzbereich durchgeführt und anschließend mittels komplexer IFFT in den Zeitbereich zurück konvertiert. Die Fenstergröße der FFT und IFFT beträgt 2048. Um die 128 reellen Abtastwerte in eine komplexe Folge der Länge 2048 zu konvertieren, wird ein Zero-Padding ausgeführt (für alle Imaginärteile und Realteile >128). Nun wird die komplexe FFT ausgeführt und die Berechnung im Frequenzbereich durchführt. Anschließend wird die komplexe IFFT berechnet. Nach der IFFT erhalte ich 2048 komplexe Abtastwerte. Meine Frage: Wie berechne ich mir die für den DAC geforderte Ausgangsfolge von 128 reellen Abtastwerten aus den 2048 komplexen Abtastwerten? Wie "packe" ich die 2048 in 128 Abtastwerte? Könnt ihr mir weiterhelfen? Benötigt ihr weitere Informationen? Gruß Mike
Die gesuchten 128 Werte sind natürlich die ersten 128 Werte deiner IFFT (Ausgangsfolge), weil genau diese mit den ersten 128 Werten deiner Eingangsfolge korrespondieren. Schaue dir am besten mal an wie Zeit- und Frequenzachse bei einer diskreten Fouriertransformation, bzw. ihrer inversen, mit einander verknüpft sind, dann siehst du das sofort.
Den Rest kann ich somit einfach verwerfen? Gehen mir da keine Informationen verloren? Ich werde mir die Theorie der IFFT nochmals genau ansehen, aber das war mir bisher nicht auf Anhieb ersichtlich. Grüße Mike
Jup, das sind ja alles Informationen die du dir bei der FFT durch zero-padding "dazu geschwindelt" hast. Das macht man normalerweise um Leck-Effekte zu vermeiden, bzw. weil man keine passende Hardware hat, weil rein theoretisch könntest du ja auch einen FFT-Baustein verwenden der nur 128 Punkte verwendet, aber solange du im Frequenzbereich dann auch alles richtig rechnest, ist das egal. Auf alle Fälle hast du dann im Frequenzbereich, durch zero-padding im Zeitbereich, niedrige Frequenzen erzeugt die in deinem ursprünglichen Signal gar nicht vorhanden sind. Und aus diesen kleinen Frequenzen werden dann die (2048-128) Werte der Ausgangsfolge berechnet, welche du getrost wegwerfen kannst.
lot schrieb: > Die gesuchten 128 Werte sind natürlich die ersten 128 Werte deiner IFFT > (Ausgangsfolge), weil genau diese mit den ersten 128 Werten deiner > Eingangsfolge korrespondieren. So einfach sollte man es sich nicht machen, wenn man nicht weis, was genau im Frequenzbereich mit dem Signal gemacht wird bzw. was das System eigentlich machen soll. Man kann z.B. das Spektrum im Frequenzbereich so bearbeiten, dass das Signal um eine bestimmte Zeit verzögert wird. Bei der Rücktransformation erscheint das Signal dann an einer anderen Stelle und in den ersten 128 Samples ist nur noch Rauschen. In diesem Fall darf man nicht einfach die ersten 128 aus dem Datenstorm rauspicken, sondern muss die Daten von einer anderen Position verwenden. Diese Frage kann man also nur dann beantworten, wenn uns Mike F. sagt, was genau er eigentlich machen möchte, also was im Ergebnis rauskommen soll.
@Johannes E.: Ich bin eben davon ausgegangen das wenn er den Verschiebungssatz anzuwenden weiß, er auch weiß an welcher Stelle dann welcher Wert steht. @Mike F.: Aber ja, vielleicht solltest du doch nochmal schildern was du im Frequenzbereich machst.
wieso keine 128 punkte FFT?
> Jup, das sind ja alles Informationen die du dir bei der FFT durch > zero-padding "dazu geschwindelt" hast. Das macht man normalerweise um > Leck-Effekte zu vermeiden Zero-Padding vermeidet keine Leck-Effekte. Die Leck-Effekte sind exakt gleich. Zero-Padding erhöht die Frequenzauflösung. Bei den Leck-Effekten siehst Du dann eben die einzelnen Lobes viel schöner.
Hi, ich weiß nicht was im Frequenzbereich passiert. Ich bekomme in dieser Aufgabe lediglich 2048 komplexe Fourier-Koeffizienten und muss mit diesen rechnen. Deshalb kann ich auch nicht auf eine FFT-Größe von 128 "runtersatteln", weil die FFT-Größe durch die Anzahl der Koeffizienten vorgegeben ist. Ich bin mittlerweile auf die Overlap-Add-Methode gestoßen und bin bisher der Meinung, dass das der richtige Ansatz für mich ist. Grüße Mike
Mike F. schrieb: > ich weiß nicht was im Frequenzbereich passiert. Wenn du das nicht weist, dann ist es irgendwie sinnlos, mit dem Ergebnis weiterzurechnen. Was ist denn die eigentliche Aufgabe, also was soll das System insgesamt machen?
Es geht um digitale Audioverarbeitung. Die Fourier-Koeffizienten und deren Anzahl sind vorgegeben. Ich weiß jedoch nicht was die Koeffizienten bewirken.ich weiß nur was eine komplexe Multiplikation ist. Die führe ich nämlich aus, mit abtastwert und Koeffizient. Gruß Mike
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.