Matlab - einfache Fouriertransformation eines Sägezahns

OP #1030017
Hallo!

Ich habe ein kleines Problem mit meinem Matlab Programm, es zeigt mir 
andeutungsweise einen Sägezahn, wenn ich die harmonischen Schwingen 
gemäß der Fourierformel für fallende Sägezahmsignale anwende.

hier mein Programm:
1
function [y,t] = fourier(ua,N,f,ap)
2

3
T=1/f;
4
y=0;
5
y2=0;
6
t=0:1/(f*f):T*ap;
7

8
for n = 1:N
9
    y = y + [(2*ua / (pi)) * (1/n) * sin(2*pi*f*n*t)/n ];
10
end    
11
y2=(-2*ua .*rem(t,T) ./T) + ua;
12

13
figure(1)
14
plot(t,y)
15
grid on
16
xlabel('t in s')
17
ylabel('A in V')
18
title('\it{Fouriertransformierte}','FontSize',16)
19
figure(2)
20
plot(t,y2)
21
grid on
22
xlabel('t in s')
23
ylabel('A in V')
24
title('\it{Sägezahnsignal}','FontSize',16)
Angehängte Dateien:
Gast #1030099
Hab leider gerad kein Matlab da, kann mir  also dein Ergebnis nicht 
anschaun.
Aber da du ja meinst, dass er andeutungsweise einen Sägezahn anzeigt: 
hast du N groß genug gewählt?
OP #1043315
ah Fehler behoben hatte ein 1/n zuviel in der Funktion! Typischer 
Anfängerfehler : /

Hier nochma die richtige Funktion, diesma hab ich die mit Vektoren 
berechnet, um die For-Schleife zu umgehen. Jedoch habe ich noch keine 
Idee, wie ich die einzelnen harmonischen Schwingungen ohne For-Schleife 
darstellen kann? Hat jmd eine Idee, am besten auch mit Vektor und 
Matrizenrechnung.
1
function [y,t] = fourier(ua,N,f,ap)
2

3
T=1/f;
4
w=2*pi*f;
5
n=1:N;
6
t=0:1/(f*f):T*ap;
7
y=0;
8
y2=0;
9
y3=0;
10

11
y = (2*ua / (pi)) * (1./n) * sin(w*n'*t); 
12

13
for n = 1:N
14
    y3 = y3 + [(2*ua / (pi)) * (1/n) * sin(2*pi*f*n*t)];
15
    figure(3)
16
    plot(t,y3)
17
    grid on
18
    hold on
19
    xlabel('t in s')
20
    ylabel('A in V')
21
    title('\it{harmonische Sinusschwingungen}','FontSize',16)
22

23
end  
24

25
y2=(-2*ua .*rem(t,T) ./T) + ua;
26
figure(1)
27
plot(t,y)
28
grid on
29
xlabel('t in s')
30
ylabel('A in V')
31
title('\it{Fouriertransformierte}','FontSize',16)
32
figure(2)
33
plot(t,y2)
34
grid on
35
xlabel('t in s')
36
ylabel('A in V')
37
title('\it{Sägezahnsignal}','FontSize',16)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.