10-02-2019, 10:36 AM
Eigentlich sollte das mit "Punkte auswählen" auch auf der logarithmischen Achse gehen. In der iPhone-Version haben wir aber gerade noch einen Bug drin, der bald behoben wird, dass nicht der eigentliche Messwert, sondern dessen Logarithmus (bin mir grad nicht sicher, ob natürlicher oder dekadischer - das kommt aus der Berechnung der Bildschirm-Koordinaten und dafür ist das egal) angezeigt wird. Wenn das also der Grund war zu "entlogarithmieren", betrifft das gerade nur iPhones und sollte in Kürze nicht mehr nötig sein.
Die y-Achse ergibt sich als sqrt(x²+y²) wobei x und y der Real- und Imaginärteil der FFT is. Damit sollte der Wert proportional zum Amplitude sein. Da wir aber das Mikrofon nicht kalibrieren können, haben wir keine weiteren Überlegungen in die Normierung gesteckt. Auch hier gibt es unter iOS bei den abgelesenen Werten eine Logarithmierung durch den Bug, aber ansonsten sollte es einfach nur einer Amplitude entsprechen.
Ob und wie Differenzen automatisch bestimmt werden können, hängt ein wenig vom Signal ab. Die im ursprünglichen Audio-Spektrum-Experiment angezeigte Frequenz oberhalb des Graphen wird über das "max"-Modul bestimmt und das kann auch mehrere Maxima ausgeben. Wenn man ein sehr schönes Signal mit zwei eindeutigen Maxima hat, sollte man einfach die Differenz der ersten beiden Maxima bilden können (Tipp: das differentiate-Modul sollte hier sehr einfach helfen können). Andernfalls kann es beliebig kompliziert werden, wenn man beispielsweise ausgehend vom ersten Maximum einen Ausschnitt oberhalb generiert und von diesem wiederum das Maximum bestimmt.
Die y-Achse ergibt sich als sqrt(x²+y²) wobei x und y der Real- und Imaginärteil der FFT is. Damit sollte der Wert proportional zum Amplitude sein. Da wir aber das Mikrofon nicht kalibrieren können, haben wir keine weiteren Überlegungen in die Normierung gesteckt. Auch hier gibt es unter iOS bei den abgelesenen Werten eine Logarithmierung durch den Bug, aber ansonsten sollte es einfach nur einer Amplitude entsprechen.
Ob und wie Differenzen automatisch bestimmt werden können, hängt ein wenig vom Signal ab. Die im ursprünglichen Audio-Spektrum-Experiment angezeigte Frequenz oberhalb des Graphen wird über das "max"-Modul bestimmt und das kann auch mehrere Maxima ausgeben. Wenn man ein sehr schönes Signal mit zwei eindeutigen Maxima hat, sollte man einfach die Differenz der ersten beiden Maxima bilden können (Tipp: das differentiate-Modul sollte hier sehr einfach helfen können). Andernfalls kann es beliebig kompliziert werden, wenn man beispielsweise ausgehend vom ersten Maximum einen Ausschnitt oberhalb generiert und von diesem wiederum das Maximum bestimmt.