Matlab - einfache Fouriertransformation eines Sägezahns

OP #1030017
Lesenswert?

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:
OP #1043315
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren