Hi zusammen,
ich habe die Hoffnung, dass die Leute von der DSP-Fraktion am ehesten
was mit meiner Frage anfangen können.
Ich versuche mittels Fourier-Synthese rosa Rauschen (1/f-Rauschen) in
drei Dimensionen zu erzeugen. Hierfür addiere ich ganz stupide folgende
Ausdrücke aufeinander (vereinfacht):
1 | f(x, y, z) = A * sin(x * Fx + Dx) * sin(y * Fy + Dy) * sin(z * Fz + Dz)
|
2 |
|
3 | Fx, Fy, Fz = Frequenzvielfache/Obertöne (0, 1, 2, 3, ...)
|
4 | Dx, Dy, Dz = Phasenverschiebungen
|
5 | A = Amplitude für die jeweilige Obertonkombination
|
Das funktioniert soweit auch wunderbar, nur die Einpassung der
Amplituden und das 1/f Spektrum bereitet mir Kopfzerbrechen.
Im klassischen Fall wählt man ja einfach:
wobei A gleichverteilt im Intervall [0 .. 1] liegt. Der Fall f = 0
("Gleichstromanteil") kann als Sonderfall einfach behandelt werden -
z.B. einfach ignorieren.
Also habe ich in Ermangelung hilfreicher Literatur die Amplituden für
meinen Fall wie folgt eingepasst:
Bei der Synthese kommt es aber vor, dass einzelne Frequenzen = 0 sind,
andere aber nicht. Jetzt kann ich die aber nicht einfach ignorieren. Wie
berechne ich in diesen Fällen die Anpassung der Amplitude?
Ich habe mir erstmal hiermit beholfen:
1 | A' = A / ((Fx + 1) * (Fy + 1) * (Fz + 1))
|
oder hiermit
1 | A' = A / max(Fx * Fy * Fz, 1)
|
Kann mir jemand sagen, wie man das richtig macht? Bei den Suchmaschinen
habe ich bisher leider nur Nieten gezogen :(