melmager
Erfahrenes Mitglied
Ich möchte aus einem gegeben Soundstream die Noten ermitteln.
Als Lösung bin ich schon über FFT gestolpert.
Ich habe nur ein generelles Problem das Verfahren zu verstehen da ich in Mathe sowas nie hatte.
Anyway
Ich muss mit Complexen zahlen arbeiten und zwar mit Vectoren die mit 2 Werten dagestellt werden und wenn ich 128 Ergebnisse haben will brauche ich auch 128 Eingangswerte (Vectoren)
da habe ich ein Code her:
http://www.iti.fh-flensburg.de/lang/algorithmen/fft/fft.htm
"Rechenoperationen mit komplexen Zahlen sind der Übersichtlichskeit halber mit normalen Rechenzeichen (+, -, *) dargestellt, obwohl diese in Java eigentlich nicht zur Verfügung stehen."
also müsste doch die Classe Complex so aussehen:
um die nötigen Rechenschritte machen zu können.
nur wie müssen die Functionen aussehen ?
wie addiert man eine complexe zahl - null Plan
und wo ist das Ergebnis ? es sollte irgenwo ein Array (in meinem Fall mit 128 Positionen) entstehen wo die beteiligten Frequenzbereiche drin sind ...
Als Lösung bin ich schon über FFT gestolpert.
Ich habe nur ein generelles Problem das Verfahren zu verstehen da ich in Mathe sowas nie hatte.
Anyway
Ich muss mit Complexen zahlen arbeiten und zwar mit Vectoren die mit 2 Werten dagestellt werden und wenn ich 128 Ergebnisse haben will brauche ich auch 128 Eingangswerte (Vectoren)
da habe ich ein Code her:
http://www.iti.fh-flensburg.de/lang/algorithmen/fft/fft.htm
Code:
void fft(Complex[] a, int n, int lo, Complex w)
{
int i, m;
Complex z, v, h;
if (n>1)
{
m=n/2;
z=1;
for (i=lo; i<lo+m; i++)
{
h=a[i]-a[i+m];
a[i]=a[i]+a[i+m];
a[i+m]=h*z;
z=z*w;
}
v=w*w;
fft(a, m, lo, v);
fft(a, m, lo+m, v);
shuffle (a, n, lo);
}
"Rechenoperationen mit komplexen Zahlen sind der Übersichtlichskeit halber mit normalen Rechenzeichen (+, -, *) dargestellt, obwohl diese in Java eigentlich nicht zur Verfügung stehen."
also müsste doch die Classe Complex so aussehen:
Code:
class Complex {
int x,y;
void add(Complex in) {
}
void sub(Complex in) {
}
void mul(Complex in) {
}
}
nur wie müssen die Functionen aussehen ?
wie addiert man eine complexe zahl - null Plan
und wo ist das Ergebnis ? es sollte irgenwo ein Array (in meinem Fall mit 128 Positionen) entstehen wo die beteiligten Frequenzbereiche drin sind ...
Zuletzt bearbeitet: