Forum: Analoge Elektronik und Schaltungstechnik Amplitude FFT Spektrum


von Thomas (Gast)


Lesenswert?

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?

von Iadnu (Gast)


Lesenswert?

In 2 Tagen hättest Du das selber rausfinden können:
Beitrag "FFT Amplitude"

von Michael K. (charles_b)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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.

von readme.txt (Gast)


Lesenswert?

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. ;-)

von Mehrwert (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.