Ausgleichskurve durch 1024 Koordinaten

23/10/2007 - 16:06 von maqqusz | Report spam
Moin,

Ich habe hier 1024 Absolutwerte einer
Diskreten Fouriertransformation.

Alle sind zur Mitte (Punkt[513,y]) hin
Spiegelsymmetrisch.

Nun ist es ja so, dass in Audiodaten so gut
wie immer mehr Bàsse drin sind als Höhen.
Durch die Spiegelsymmetrie kann man es
mit dem Verlauf einer Polynomfunktion
2. Ordnung vergleichen nur halt viele Zacken
drin.

Ich möchte nun eine "Filterfunktion" entwerfen,
welche Frequenzen die viel drin vorkommen
unterdrückt und Frequenzen die wenig
vorkommen verstàrkt. Deshalb möchte ich
eine "Ausgleichskurve" im Frequenzraum
subtrahieren, damit alle Frequenzen
gleichstark berücksichtigt werden.

Dei ausgleichskurve stelle ich mir in
der Form y=(x-a)²+b vor.
Es könnte natürlich eine auf den Kopf
gestellte Gausskurve besser sein,
aber das wird mir zu kompliziert.


Also zurück zur Frage:

Es existieren 1024 Punkte.
alle mit dem Abstand 1
zu zwei benachbarten auf der X-Achse.

Diese Punkte möchte ich nun benutzen,
um eine Ausgleichsfunktion der Form y=(x-a)²+b zu erzeugen.

wie macht man sowas am besten?

Viele Grüße,

Markus
 

Lesen sie die antworten

#1 Roland Damm
23/10/2007 - 23:41 | Warnen spam
Moin,

maqqusz schrub:

Dei ausgleichskurve stelle ich mir in
der Form y=(x-a)²+b vor.
Es könnte natürlich eine auf den Kopf
gestellte Gausskurve besser sein,
aber das wird mir zu kompliziert.


Also zurück zur Frage:

Es existieren 1024 Punkte.
alle mit dem Abstand 1
zu zwei benachbarten auf der X-Achse.

Diese Punkte möchte ich nun benutzen,
um eine Ausgleichsfunktion der Form y=(x-a)²+b zu erzeugen.

wie macht man sowas am besten?



Ich hatte hier schon neulich jemandem das gute alte
kostenlose 'gnuplot' empfohlen. Angenommen deine
Fourierkoeffizienten stehen in der Datei 'data' und die Datei
sieht so aus:
1 1
2 0.98
3 0.97
4 0.98
..

dann tippst du in gnuplot einfach ein:

f(x)=(x-a)**2*c+b
fit f(x) "data" using a,b,c

und erhàlst die ferigen optimalen Werte für a,b,c
(Das c dürfte wohl nötig sein, '**' heißt 'hoch')

Andere Funktionen als eine Parabel sind damit ebenso einfach
möglich.

CU Rollo

Ähnliche fragen