Fourierreihe zu einer Rechteckfunktion mit beliebiger Periode

Neue Frage »

Cengo Auf diesen Beitrag antworten »
Fourierreihe zu einer Rechteckfunktion mit beliebiger Periode
Hallo zusammen,

ich habe die zugehörige Fourierreihe zu der Rechteckfunktion berechnet und die beiden Funktionen geplottet, um sie zu testen. Die Rechteckfunktion soll eine beliebige Amplitude a, Phasenverschiebung p und Periode T haben.
Rechteckfunktion:


Um die Fourierreihe aufzustellen, habe ich erst eine Periode von angenommen, und die Fourierkoeffizienten ausgerechnet.
Fourierkoeffizienten:










Fourierreihe:


Jetzt zum eigentlichen Problem.
Ich habe die Fourierreihe mal geplottet mit unterschiedlichen Inputs für a,p und T.
Alles funktioniert so wie gewollt, aber sobald ich eine Periode angebe, die nicht ist, ist die Fourierreihe etwas verschoben. [siehe Anhang]

Vielleicht könnt ihr mir ja helfen. (:

Gruß,
Cengo
Steffen Bühler Auf diesen Beitrag antworten »
RE: Fourierreihe zu einer Rechteckfunktion mit beliebiger Peride
Herzlich willkommen im Matheboard!

Kann es sein, dass Du die Formeln für ak und bk für eine andere Periode nicht neu bestimmst? Da steckt ja schließlich auch ebendiese Periode drin!

Mit den angegebenen Formeln bekomme ich allerdings auch bei T=2pi keinen Rechteck hin. Ich hab's jetzt nicht nachgeschaut, sondern einfach ins CAS eingegeben. Ist vielleicht ein Schreibfehler drin? Denn bei Dir ist die Flanke schön senkrecht, bei mir schräg.

Viele Grüße
Steffen
Cengo Auf diesen Beitrag antworten »

Danke dir Steffen Bühler smile

Also, ich habe mir die Formeln nochmal angesehen und habe keine Fehler gefunden.
Ich habe es in SciLab geplottet mit den selben Formeln. (habe aber ausgeklammert)

Wenn du für die Phase p = 0 annimmst, sollte es auch mit verschiedenen Perioden funktionieren.
Ansonsten sollte der Ansatz von mir korrekt sein, weil ich am Ende in der Summe die Periode "anpasse" in dem ich x mit w multipliziere.

Hier mein SciLab-Code:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
clear;
close;
a = 1;
p = 1;
frequency = 50;//1/(2*%pi);  
period = 1/frequency;    
x = [(-period/2+p):0.0001:(period/2+p)];  
f = zeros(length(x)); 
for i = 1:length(x)     
   if (-period/2+p) <= x(i) & x(i) < p then         
       f(i) = -a;            
   else         
       f(i) = a;       
   end 
end  
plot2d(x,f,5);  

t = [(-period/2+p):0.0001:(period/2+p)];  
w = 2*%pi/period; 
fn = zeros(1,length(t)); 
n = 50;  
for k=1:n     
      fn = fn + 1/k*( -2*sin(k*p) - sin(k*%pi-k*p) + sin(k*%pi+k*p) ) * cos(k*w*t) ...             
                 + 1/k*( 2*cos(k*p) - cos(k*%pi-k*p) - cos(k*%pi+k*p) ) * sin(k*w*t); 
end 
fn = a/%pi * fn;   
plot2d(t,fn,2);  

xlabel('t') 
ylabel('y(t)') 
legend('exact curve', 'fourier series')

Gruß,
Cengo
Cengo Auf diesen Beitrag antworten »

Und im Bild ist die Periode korrekt, hatte 0.02 für die Periode eingestellt.
Ich denke, es stimmt was mit der Phasenverschiebung nicht. Es ist aber komisch, dass es bei einer Periode von 2pi funktioniert.
Steffen Bühler Auf diesen Beitrag antworten »

Ich habe leider kein Scilab, habe mir Deinen Code aber mal angeschaut. So wie's aussieht, ist Deine Fourierformel völlig richtig (war bei mir nur zuwenig Auflösung, daher die schrägen Linien).

Was mich stutzig macht, ist aber die "exact curve". Da schreibst Du

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
x = [(-period/2+p):0.0001:(period/2+p)];  
f = zeros(length(x)); 
for i = 1:length(x)     
   if (-period/2+p) <= x(i) & x(i) < p then         
       f(i) = -a;            
   else         
       f(i) = a;       
   end 
end  


Du hast in Deinem Beispiel period=0,02 und p=1. Dann füllst Du das x-Array mit Werten zwischen 0,99 und 1,01 in Schritten von 0,0001.

Danach setzt Du die Originalfunktion f auf -1, wenn der x-Wert größer als 0,99 ist (was immer der Fall ist) UND wenn er kleiner als 1 ist, sonst auf 1. Aber meinst Du das so? So erreichst Du ja keine Phasenverschiebung für die Originalfunktion, die Flanke ist immer in der Mitte des Fensters.

Die Fourier-Funktion hat dagegen die korrekte Phasenverschiebung von 1, also

Viele Grüße
Steffen
Cengo Auf diesen Beitrag antworten »

Danke für deine Mühe. (:

Zitat:
Original von Steffen Bühler

Danach setzt Du die Originalfunktion f auf -1, wenn der x-Wert größer als 0,99 ist (was immer der Fall ist) UND wenn er kleiner als 1 ist, sonst auf 1.

Ja, hast Recht: Der x-Wert ist immer größergleich .
Im Sonstzweig muss es sich dann zwangsmäßig in dem anderen Intervall befinden.

Zitat:

Aber meinst Du das so? So erreichst Du ja keine Phasenverschiebung für die Originalfunktion, die Flanke ist immer in der Mitte des Fensters.

Es ist gewollt, dass die "Originalfkt." in der Mitte des Fensters ist, also dass die Flanke genau da ist, wo p sich auf der x-Achse befindet.

Daher denke ich, dass die Phasenverschiebung der Fourierfkt. nicht stimmt.

Gruß,
Cengo
 
 
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von Cengo
Daher denke ich, dass die Phasenverschiebung der Fourierfkt. nicht stimmt.


Nein, die ist richtig, aber die Originalfunktion hat die falsche. Der Wert p=1 bedeutet ja nicht, dass die Funktion um 1 verschoben ist!

Probier's mal aus, indem Du beide Funktionen z.B. von 0 bis 0,03 betrachtest. Erst mit p=0, dann mit p=0,1 usw. Die "richtige" Fourierfunktion verschiebt sich, aber nicht um diesen Wert!

Viele Grüße
Steffen
Cengo Auf diesen Beitrag antworten »

hmmm, ich will ja aber, dass die Fourierfunktion sich um p verschiebt. unglücklich
Kann man das überhaupt machen?

Gruß,
Cengo
Steffen Bühler Auf diesen Beitrag antworten »

Dann musst Du die Phasenverschiebung entsprechend berechnen. Eine Phasenverschiebung von 2pi verschiebt um eine Periode, eine um pi um eine halbe Periode, eine um 1 (wie hier) verschiebt um eine Periode.

Willst Du also, dass sich die Fourierfunktion um verschiebt und die Periode ist , so berechnest Du die Phasenverschiebung .

Viele Grüße
Steffen
Cengo Auf diesen Beitrag antworten »

Ich DANKE dir Steffen Bühler. Prost
Nach 2 Tagen Kopfzerbrechen sehe ich endlich mal Licht am Ende des Tunnels.

Es funktioniert jetzt tatsächlich für alle Inputs, wenn ich mein p so definiere wie du beschrieben hast.

Gruß,
Cengo
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »