Ich bin derzeit in einem Praktikum beschäftigt und mein Chef möchte, dass ich eine FFT bis Ende der Woche in Java programmiert habe.Die FFT-Ausgabe verstehen
Jetzt habe ich schon einen Code für die FFT von der Princeton University: http://introcs.cs.princeton.edu/java/97data/FFT.java
ich diesen Code in meinem Projekt umgesetzt und erweitert, mit dem ich jetzt bin in der Lage zu sein, zuerst die binäre Eingabe eines Signals las, dann Verarbeiten Sie die FFT für diese Beispielwerte und geben Sie dann die Größe an.
Jetzt komme ich zu meinem Problem. Ich habe die folgenden Werte eingegeben, die ich mit final double d = Math.sin(i);
generiert und 8 Mal geloopt habe (das ist nur für Testzwecke, nächste Woche muss ich echte Werte eingeben).
0.0
0.8414709848078965
0.9092974268256817
0.1411200080598672
-0.7568024953079282
-0.9589242746631385
-0.27941549819892586
0.6569865987187891
so kommen diese Werte von einer reinen Sinus (ich weiß nicht, das richtige englische Wort, sondern mit reinem Sinus meine ich eine Sinus mit genau einer Frequenz von beispielsweise 50 Hz).
Der Ausgang ist jetzt
0.553732750242242
2.3946469565385193 - 2.0970118573701813i
-1.386684423934684 + 0.9155598966338983i
-0.8810419659226628 + 0.28041399267903344i
-0.8075738836045867
-0.8810419659226628 - 0.28041399267903366i
-1.386684423934684 - 0.9155598966338983i
2.394646956538519 + 2.0970118573701817i
Und die Größen der Ausgangs
0.553732750242242
3.183047718211326
1.6616689248786416
0.9245901540720989
0.8075738836045867
0.924590154072099
1.6616689248786416
3.183047718211326
Jetzt habe ich erwartet, dass tatsächlich die Ausgangswerte 0 bei jeder Frequenz Probe zeigen, bis ich die Frequenz der Reichweite reiner Sinus wird dominiert, wobei der Ausgang> 0 sein soll (zB bei 50 Hz). Das hat zumindest mein Chef erwartet, als er mir diese Aufgabe gab.
Zusammenfassung: Also das ist, was ich mit kämpfen. Ich habe einen anderen Thread gelesen, der nach einem ähnlichen Problem fragt, aber es gibt immer noch unbeantwortete Fragen für mich. Was soll ich mit den gegebenen Ausgabedaten machen? Wie finde ich die am häufigsten auftretende Frequenz?
Ich könnte wirklich Hilfe oder Erklärung brauchen, wo mein Denken falsch ist.
Danke fürs Zuhören ...
Hallo Huseyin, vielen Dank, das war sehr hilfreich! – Winterwurst
@Winterwurst auch wenn Peak nicht dort ist, wo Sie es vorhersehen, können Sie intrapolieren versuchen, die Peak-Bin zwischen zwei ganzen Zahlen fein abzustimmen. –