DFT nicht äquidistant < Diskrete Mathematik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:53 Mi 16.06.2010 | Autor: | Zander |
Aufgabe | [mm] x_{j} [/mm] mit j=1,2,3,4,5,6 sind nicht äquidistant verteilte Stützstellen. Gegeben sind die dazu passenden Werte [mm] f(x_{j})
[/mm]
|
Hallo,
ich versuche die Koeffizienten [mm] a_{n} \in \IC [/mm] der Fourierreihe
[mm] f(x)=\summe_{n=-2}^{2} [/mm] = [mm] a_{n}*e^{i*\frac{2pi}{T}*n*x}
[/mm]
zu finden, so dass die approximierte Funktion f so nah wie möglich an allen sechs Punkten vorbeigeht.
Ich habe es sschon mit Hilfe eines überbestimmten Gleichungssystems durch lösen mit dem Methode der kleinsten Quadrate versucht:
[mm] \vektor{f(x_{1}) \\ f(x_{2}) \\ ... \\f(x_{6})} [/mm] = [mm] \pmat{e^{i*\frac{2pi}{T}*-2*x_{1}} & e^{i*\frac{2pi}{T}*-1*x_{1}} & e^{i*\frac{2pi}{T}*0*x_{1}} & e^{i*\frac{2pi}{T}*1*x_{1}} & e^{i*\frac{2pi}{T}*2*x_{1}} \\ e^{i*\frac{2pi}{T}*-2*x_{2}} & ... & & & e^{i*\frac{2pi}{T}*2*x_{2}} \\ ...\\e^{i*\frac{2pi}{T}*-2*x_{6}} &...& & & e^{i*\frac{2pi}{T}*2*x_{6}}} [/mm] * [mm] \vektor{a_{-2} \\ a_{-1} \\ ... \\a_{2}}
[/mm]
Klappt auch ganz gut.
Aber mich würde interessieren ob es eine möglichkeit gibt die Koeffiziente noch genauer zu bestimmen.
Ich habe schon versucht das Integral
[mm] a_{n}=\frac{1}{T}\integral_{0}^{T}{f(x)*& e^{-i*\frac{2pi}{T}*n*x}dx }
[/mm]
wie bei der DFT als Riemannsche Summe gelöst. Allerdings ist das Ergebnis ungenauer als das überbestimmte Gleichungssystem.
Habt ihr eine Idee wie man die Koeffiziente noch bestimmen könnte?
Und ist das mit der Riemannschen Summe überhaupt sinnvoll?
Danke
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:28 Mi 16.06.2010 | Autor: | felixf |
Moin!
> [mm]x_{j}[/mm] mit j=1,2,3,4,5,6 sind nicht äquidistant verteilte
> Stützstellen. Gegeben sind die dazu passenden Werte
> [mm]f(x_{j})[/mm]
>
>
> ich versuche die Koeffizienten [mm]a_{n} \in \IC[/mm] der
> Fourierreihe
>
> [mm]f(x)=\summe_{n=-2}^{2}[/mm] = [mm]a_{n}*e^{i*\frac{2pi}{T}*n*x}[/mm]
>
> zu finden, so dass die approximierte Funktion f so nah wie
> möglich an allen sechs Punkten vorbeigeht.
Was verstehst du unter "moeglichst nah"? Dass der Funktionsvektor [mm] $(f(x_1), \dots, f(x_n))$ [/mm] vom "Approximationsvektor" [mm] $(g(x_1), \dots, g(x_n))$ [/mm] (wobei $g$ die approximierte Fourierreihe ist) moeglichst wenig entfernt ist? Wenn ja, bzgl. welcher "Entfernung" (Metrik)?
> Ich habe es sschon mit Hilfe eines überbestimmten
> Gleichungssystems durch lösen mit dem Methode der
> kleinsten Quadrate versucht:
>
> [mm]\vektor{f(x_{1}) \\ f(x_{2}) \\ ... \\f(x_{6})}[/mm] =
> [mm]\pmat{e^{i*\frac{2pi}{T}*-2*x_{1}} & e^{i*\frac{2pi}{T}*-1*x_{1}} & e^{i*\frac{2pi}{T}*0*x_{1}} & e^{i*\frac{2pi}{T}*1*x_{1}} & e^{i*\frac{2pi}{T}*2*x_{1}} \\ e^{i*\frac{2pi}{T}*-2*x_{2}} & ... & & & e^{i*\frac{2pi}{T}*2*x_{2}} \\ ...\\e^{i*\frac{2pi}{T}*-2*x_{6}} &...& & & e^{i*\frac{2pi}{T}*2*x_{6}}}[/mm]
> * [mm]\vektor{a_{-2} \\ a_{-1} \\ ... \\a_{2}}[/mm]
>
> Klappt auch ganz gut.
Das ueberrascht nicht.
> Aber mich würde interessieren ob es eine möglichkeit
> gibt die Koeffiziente noch genauer zu bestimmen.
Was verstehst du unter "genauer"? Entweder gibt es eine exakte Loesung -- die Methode der keinsten Quadrate wuerde auch diese finden -- oder es gibt sie eben nicht. Im Fall, dass es sie nicht gibt, musst du schon sagen, was du unter "naeher dran" verstehst.
> Ich habe schon versucht das Integral
> [mm]a_{n}=\frac{1}{T}\integral_{0}^{T}{f(x)*& e^{-i*\frac{2pi}{T}*n*x}dx }[/mm]
>
> wie bei der DFT als Riemannsche Summe gelöst. Allerdings
> ist das Ergebnis ungenauer als das überbestimmte
> Gleichungssystem.
>
> Habt ihr eine Idee wie man die Koeffiziente noch bestimmen
> könnte?
> Und ist das mit der Riemannschen Summe überhaupt
> sinnvoll?
Du kannst noch andere Quadraturformeln versuchen.
Aber ganz allgemein wuerde ich sagen, dass der Integralansatz hier nicht viel bringt; der Ansatz mit der Methode der kleinsten Quadrate hilft wohl mehr.
LG Felix
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 10:51 Do 17.06.2010 | Autor: | Zander |
Hallo Felix,
danke erstmal für die Antwort.
Unter "so nah wie möglich" bzw. "näher dran" verstehe ich, dass [mm] \epsilon_{i}=|f(x_{i})-g(x_{i})| [/mm] für i=1,2,...6 minimal wird.
Was meinst du mit anderen Quadraturformeln? Beziehst du dich auf das integral?
Bei dem Integral würde ich als nächstes eine Integration mit kubischen Splines versuchen.
Allerdings weiss ich nicht, ob das mit den Integralen so eine gute Sache ist.
Mich würde ja interessieren was genau mit dem Spektrum passiert wenn ich aus einfachen Stützstellen, die ja ein eigenes Spektrum haben, auf einmal in Teil einer Funktion werden. Da kommen ja irgendwelche anderen Oberschwingungen rein?
Wie könnte man das wohl mathematisch richtig zeigen wie sich das Spektrum verändert?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:30 Do 17.06.2010 | Autor: | chrisno |
Möchtest Du wirklich in der Betragsnorm optimieren?
In der Norm der quardierten Abstände ist die Approximation mit der Foruierreihe schon optimal, wenn ich mich recht entsinne. In der Betragsnorm tippe ich auf Legendre-Polynome, das ist aber sehr lange her.
Ich nehme an, dass Deine [mm] a_n [/mm] reell sind. Warum bist Du auf 5 Koefizienten festgelegt?
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 14:13 Do 17.06.2010 | Autor: | Zander |
Meine [mm] a_{n} [/mm] sind komplex
Erlich gesagt hab ich das mit der Betragsnorm einfach so hingeschrieben. Wie kommt es denn dazu, dass das Minimum der quadrierten Abstände optimal ist für die Fourierreihe?
5 Koeffizienten, weil sich die approximierte Funktion aus einem Gleichanteil [mm] a_{0} [/mm] und eine Überlagerung von sin bzw. cos mit [mm] \omega_{0}*1 [/mm] und [mm] \omega_{0}*2 [/mm] zusammen setzen muss.
also undgefähr so: [mm] g(x)=a_{0} [/mm] + [mm] a_{-1}sin(-\omega_{0}x)+a_{-2}sin(-2*\omega_{0}x) +a_{1}sin(\omega_{0}x)+a_{2}sin(2*\omega_{0}x)
[/mm]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:04 Do 17.06.2010 | Autor: | chrisno |
> Meine [mm]a_{n}[/mm] sind komplex
>
Stimm, hast Du oben geschrieben. Dann hast Du [mm] a_0 [/mm] und acht weitere Parameter. Damit solltest Du 6 Werte genau erzeugen können, also den Abstand 0, egal in welcher Norm erreichen können. Nur binich mir bei nicht äquidistanten Werten nicht ganz sicher.
> Erlich gesagt hab ich das mit der Betragsnorm einfach so
> hingeschrieben. Wie kommt es denn dazu, dass das Minimum
> der quadrierten Abstände optimal ist für die
> Fourierreihe?
Das hängt ein bischen davon ab, was Du vorhast. Ich habe das aus der Approximationstheorie so in Erinnerung. Die kann falsch sein.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:33 Do 17.06.2010 | Autor: | Zander |
Ich habe die beiden Möglichkeiten mit dem überbestimmten Gleichungssytem und dem Integral in Matlab programmiert und an den Stützstellen geplottet.
Hier der Plott:
http://s5.directupload.net/file/d/2193/sziqi9bg_jpg.htm
Man sieht, dass die Integralmethode einen viel grösseren Anstand zu den gegebenen Stützwerten (im Plot Messwerte genannt) hat, als die Methode mit dem überbest. GS.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:35 Do 17.06.2010 | Autor: | chrisno |
Mit dem Plot ist die Diskussionsgrundlage schon besser. So wie ich es sehe, kann eine Fourierreihe mit so wenig Koeffizienten den Verlauf nicht beschreiben, weil deutliche Anteile mit höheren Frequenzen drin sind.
Ich habe derzeit keinen Zugang zu meinen Unterlagen. Ich meine aber, dass es fertige Formeln für die Berechnung der Fourierkoeffizienten gibt, wenn nur einzelne Stützstellen vorhanden sind. Allerdings sollte das die gleichen Werte wie bei Deinem Zugang über die kleinsten Qadrate geben.
Wozu brauchst Du das? Wenn Du Fourierkoeffizienten bestimmst, dann willst Du untersuchen, welche Frequenzen im Signal sind, wobei Du Dich auf die Frequenzen festlegst, die durch die Intervallänge gegeben sind. Ist das Dein Ziel?
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 07:22 Fr 18.06.2010 | Autor: | Zander |
Wenn man sechs Stüstszellen gegeben hat kann man diese genau mit sechs Koeffizienten beschreiben.
Ich muss aber eben nur mit fünf Koeffizienten alle sechs (oder mehr..) Stützstellen beschreiben.
Daher habe ich auch ein überbestimmtes Gleichungssystem bei dem ich sechs Gleichungen habe aber fünf Unbekannte. Die löst man dann mit den kleinsten Quadraten.
Mein Problem ist, dass ich gerne noch eine andere Methode finden will, mit der man versucht die 5 Koeffitienten zu bestimmment.
Und da kommt das Integral ins Spiel. Allerdings bin ich mir nich sicher, ob das legitim ist, wenn ich einfach zwischen die Stützstellen irgend ein Verlauf (Riemannsche Summe, Polygonzug, Splines,....) einbaue und darüber integriere. Denn dann versuche ich ja den Verlauf der künstlich reingebrachten Kurve zu approximieren und nicht die 6 Stützstellen.
Das mit der Riemannschen Summe habe ich übrigens aus der normalen DFT mit äquidistanten stützstellen, nur hab ich es auf nicht äquidistant verteilte Stützstellen übertragen..
Eine Idee wie man das noch machen könnte?
Gruß
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:26 Fr 18.06.2010 | Autor: | chrisno |
Bist Du auf die von Dir wiedergebene Darsttellung als Fourierreihe festgelegt? Das heißt besteht Deine Aufgabe aus irgendeinem Grund darin, genau diese [mm] $a_{-2}$ [/mm] bis [mm] $a_{2}$ [/mm] zu bestimmen? Also hast Du 9 Parameter festzulgegen. Dann hast Du mit der Methode der kleinsten Quadrate in der [mm] L_2-Norm [/mm] das Optimum erreicht. Das setzt voraus, das nichts schiefgegangen ist. Ich rate Dir, die Korrelaionsmatrix der Parameter anzusehen, denn bei 9 Paramtern für 6 Datenpunkte erwarte ich sehr große Korrelationen und damit sehr große Intervalle, über die diese Paramter bei etwa gleicher Beschreibungsqualität variieren können.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:05 Fr 18.06.2010 | Autor: | Zander |
Hallo,
was meinst du mit "9 Parameter" und "Korrelationsmatrix"?
Gruß
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:54 Fr 18.06.2010 | Autor: | chrisno |
Da Deine [mm] a_n [/mm] komplexe Zahlen sind, brauchst Du für jedes [mm] a_n [/mm] zwei Paramdter. [mm] a_0 [/mm] dürfte reell sein. also 1 Parameter. n läuft von -2 bis +2 ...
Wenn Du die Metode der kleinsten Quadrate numerisch anwendest, dann sollte Dir das Programm auch eine Korrelationsmatrix liefern. Grob sagt die aus, wie sich bei inkrementellen Änderungen eines Paramters ein anderer ändern muss, damit das Ergebnis gleich bleibt. (Ich bitte die Mathematiker, dies zu überlesen.) Dein Ergebnis taugt etwas, wenn in der Korelationsmatrix im wesentlichen nur Nullen stehen. Stehen aber irgendwo Werte so bei 0,75 und mehr (bis [mm] \pm [/mm] 1), dann hast Du zu viele Parameter eingesetzt und musst eine einfachere Beschreibung wählen.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:43 Sa 19.06.2010 | Autor: | Zander |
Okay, ich verstehe.
weiss du zufällig wie man bei Matlab die Korrelationsmatrix ausgeben kann?
ich benutze zu lösen von Gleichungssystemen den den normalen divisions-Operator. Dann löst Matlab auch wenn das system unter oder überbestimmt ist.
So sieht das in Matlab aus: [mm] A*c=y\Rightarrow [/mm] c= A [mm] \backslash [/mm] y
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:14 Sa 19.06.2010 | Autor: | chrisno |
Kurze Antwort zum Thema Matlab: Ich habe keine Ahnung. Am besten postest Du das als neue Frage.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 08:20 So 20.06.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:21 Sa 19.06.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:20 Sa 19.06.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|