Ich ahbe eine kurze frage: Wie rechnet man bei einer FFT (ich habe mit Scilab probiert, später soll es mal FFTW werden) von den Werten für die Spektralkomponenten (16Bit Re + Im) auf auf die Amplitude der sie repräsentierenden Sinusschwingung im Eingangssignal zurück?
Thomas schrieb: > Ich ahbe eine kurze frage: Wie rechnet man bei einer FFT (ich habe mit > Scilab probiert, später soll es mal FFTW werden) von den Werten für die > Spektralkomponenten (16Bit Re + Im) auf auf die Amplitude der sie > repräsentierenden Sinusschwingung im Eingangssignal zurück? Man muss eine Fouriertransformation durchführen.
Ich habs aber leider nicht rausgefunden, darum frage ich ja hier... Ich habe von einem Signal die Fourietransformation durchgeführt, als Ergebnis gibt es eine Liste von Spektralkomponenten jeweils mit Real- und Imaginärteil. Jetzt muss ich aber wissen, welche Amplitude z.B. die 400Hz Sinuskomponente IM ZEITBEREICH besitzt, wenn z.B. für die 400Hz Spektrallinie von der FFT-Funktion ein Realteil von 4000 errechnet wurde.
So wie du schreibst hast du den mathematischen Hintergrund der FFT nicht verstanden? Die "Amplitude" ist der Betrag der komplexen Zahlen die du heraus bekommst. In Scilab bekommst du den Betrag normalerweise mit der abs()-Funktion. Damit du direkt die Amplitude aus dem Spektrum auslesen kannst musst du es nur noch passend normieren. Ich weiß nicht auswendig wie Scilab die FFT intern berechnet, je nach Programm schwanken da oft die Normierungsfaktoren, deshalb: Doku lesen. Wenn du damit garnichts anfangen kannst, bau dir in Scilab selbst ein definitiertes Signal, z.B. eben den Sinus mit 400Hz und mach davon eine FFT. Dann brauchst du nur noch das Ergebnis mit einem passenden Faktor zu multiplizieren um das Spektrum auf die richtige Höhe zu bringen. Den Faktor kannst du dann weiter verwenden, _wenn du immer die gleichen FFT-Settings nimmst_ (die Zahl der Samples wird mit Sicherheit eine Rolle beim Faktor spielen!). Die sauberste Lösung ist natürlich zu verstehen wie die FFT funktioniert. ;-)
Thomas schrieb: > Ich habs aber leider nicht rausgefunden, darum frage ich ja hier... Die Sache ist, dass du mit Multipostings den Leuten hier auf die Nerven gehst und das die Antwort nicht einfach 42 ist, aber du so klingst, als ob dir eine beliebige Rechenvorschrift schon reicht, unabhängig davon, ob die für deinen konkreten Fall richtig ist. Nun gut. Rechne den Betrag der Hälfte + 1 aller Werte aus, schmeiß den Rest der Werte weg. Multipliziere alle Beträge mit 2 und dividiere durch die Anzahl der ursprünglichen Abtastwerte. Briggsscher Logarithmus über jeden dieser Wert und das Ergebnis fuer jeden Wert noch mit 20 multiplizieren. Tadaaaa, Amplitude in dBV. Die Frequenzen ergeben sich als Vielfache des Produktes aus Abtastfrequenz und Anzahl der ursprünglichen Werte. Viel Spaß. Selber die FFT verstehen und selber nachrechnen ist trotzdem die bessere Idee statt blind irgendwelchen Rechenvorschriften glauben.
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.