WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fouriereihen - m-file Programmierung

 

FlankStar

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.11.2008, 22:42     Titel: Fouriereihen - m-file Programmierung
  Antworten mit Zitat      
Hallo zusammen!
Ich beschäftige mit der Programmierung eines m-files in MATLAB,dass den Namen "fourierreihen" trägt.
Ziel einer Fourierreihe ist es die gewünschten Koeffizienten zu errechnen,wobei man zwischen einer gerade(nur cos-Anteile),ungeraden(nur sin-Anteile) und gemischten Funktion unterscheiden muss.
Für eine ungerade Funktion gibt es zusätzlich den Koeffizienten a0 der aber auch den Wert "0"annehmen kann. Hierbei kommt auch schon mein Problem ich konnte alles soweit lösen,dass ich alle Funktionen bei denen a0 den Wert "0"annimmt als gerade plotten lies. Alle anderen als ungerade. Mein Problem ist, dass es auch Funktionen gibt, bei welchen a0 den Wert "1" oder "1/2" oder... annehmen kann, diese aber gerade sind.
Zusätzlich möchte ich noch anmerken, dass zum Beispiel bei einer gerade Funktion die "Sinuswerte" (in meinem Fall bn) "0" sein müssten und umgekehrt. Konnte aber auch über den Weg von bn keine Lösung finden.

π...pi
Bsp. Funktion = x/π ;Grenzen von 0-π ("Lösung":a0=1)
weiteres Problembsp: (2x-π)/2π; Grenzen von 0-pi/2 ("Lösung":a0=0.5)

Code:

function[an,bn]=fourierreihen(fun);
syms x
n=input('Bitte geben Sie n als Vektor von 0 bis ein (Bsp.0:1:15): ');
T1=input('Bitte Geben Sie die obere Grenze der Periode (Bsp.2*pi)ein: ');
T2=input('Bitte Geben Sie die untere Grenze der Periode (Bsp.0) ein: ');
T = T1-T2; % Periode
a_0=(2/T)*int(fun,T2,T1); % a0
% an=(2/T)*int(fun*cos(n*x),x,T2,T1);
bn=(2/T)*int(fun*sin(n*x),x,T2,T1);
    if a_0==0
        display(' ');
        display('Gerade periodisch/symmetrisch -> !!!!an!!!! => cos-Anteile');
        an=(2/T)*int(fun*cos(n*x),x,T2,T1);      
        disp(' ');
        display('Koeffizienten von a:');
        an=double(an)';
        bar(n,abs(an));
        disp('a0=');
        disp(a_0);
        disp('"bn" nicht vorhanden');
        disp('Beträge von an: ');
        disp(abs(an));
    else
        display(' ');
        display('Ungerade periodisch/symmetrisch -> !!!!bn!!!! => sin-Anteile');
        bn=(2/T)*int(fun*sin(n*x),x,T2,T1);
        bn=double(bn);
        bar(n,abs(bn));
        disp(' ');
        display('b0=0....Koeffizienten von b:');
        display(bn');
        disp('Beträge von bn: ');
        disp(abs(bn)');
        disp('"a0"=0 und "an" nicht vorhanden');
        end
    end


comand window:
bsp.
>> funktion = (2*x-pi)/2*pi
>> fourierreihen(Funktion)
 


Ich hoffe mir kann wer helfen,da ich schon am verzweifeln bin Mad

grüße[/b]


FlankStar

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.12.2008, 00:43     Titel:
  Antworten mit Zitat      
ich möchte noch hinzufügen:

die eigentlich richtige Abfrage würde darauf beruhen, dass bei geraden Funktionen gilt: f(x) = f(-x)

bei ungeraden Funktionen: f(x) = -f(-x)
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.