Skip to content

Instantly share code, notes, and snippets.

@dugagjin
Last active January 9, 2016 21:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dugagjin/e6f7f1af86962ca4cfad to your computer and use it in GitHub Desktop.
Save dugagjin/e6f7f1af86962ca4cfad to your computer and use it in GitHub Desktop.
Inleidende les matlab
% Maak een variabele y aan, zijnde een sinusoïdaal signaal met frequentie 4Hz
% en voorzie twee perioden. Gebruik hiervoor een honderdtal punten. Maak
% hiervan ook een grafiek.
clear all; clf;
f = 4;
t = [0:0.01:1]; % 100 punten tussen 0 en 1 (=tvec methode)
t = linspace(0,1); % maakt 100 punten tussen 0 en 1
y = sin(2*pi*f*t);
plot(t,y);
% Maak een variabele y aan, zijnde een sinusoïdaal signaal met frequentie 4Hz
% en voorzie twee perioden. Gebruik hiervoor slechts 10 punten. Maak
% hiervan ook een grafiek.
f = 4;
t = [0:0.01:1]; % 100 punten tussen 0 en 1 (=tvec methode)
t = linspace(0,1,10); % maakt 10 punten tussen 0 en 1
y = sin(2*pi*f*t);
plot(t,y);
grid on
% Maak een variabele y aan, zijnde een sinusoïdaal signaal met frequentie 4Hz
% en voorzie twee perioden. Gebruik hiervoor een honderdtal punten. Maak
% hiervan ook een grafiek.
f = 4;
t = [0:0.01:1]; % 100 punten tussen 0 en 1 (=tvec methode)
t = linspace(0,1); % maakt 100 punten tussen 0 en 1
y = sin(2*pi*f*t);
plot(t,y);
% Een object valt van een hoogte h0 = 100m zoals je weet wordt dit
% beschreven door z = h0 - gt²/2 met z de hoogte, en g de
% zwaartekrachtconstante. Plot nu de hoogte z als functie van de tijd t,
% waarbij je t laat variëren van 0 tot 3 s, in staptjes van 0.25 s. Maak
% opnieuw eerst de tijdsvector t en dan de hoogte z.
h0 = 100;
g = 9.81;
t = [0:0.25:3];
z = h0 - (g*t.^2)/2;
plot (t,z);
% Maak een periode van een sinus (bv. met frequentie 1 Hz), en gebruik N =
% 16 punten (Maak opnieuw eerst t = [0:T], en dan y). Begin op tijdsstip 0
% s, en zorg ervoor dat deze mooi periodiek is. Dit kan je eenvoudig
% nakijken door er twee namekaar te plaatsen en deze te plotten: ynew =
% [y,y] (als y een rijvector is) en dan plotten van ynew.
clear all; clf;
f = 1;
N = 16;
t = linspace (0,2/f,2*N); % mijn manier: linspace 0 tot 2*T=2*1/f=2/f
% 2 keer zoveel punten omdat opgrave is
% gegeven per periode
x = sin(2*pi*f*t)
%xnew = [x,x]; % voor 2 periodes zoals gevraag in opgave
plot (x, 'ro-');
grid on;
% Maak een sinus bestaande uit twee componenten: één met frequentie 5 Hz en
% amplitude 20, en één met frequentie 15 met amplitude 4. Voorzie 4
% perioden van de sinus (uitraard van de sinus met de grootste periode), en
% gebruik 20 punten per periode. Zorg er opnieuw goed voor dat je een
% periodieke functie maakt.
clear all; clf;
figure (1);
f1 = 5;
t = linspace(0,1/f1,20);
x1 = 20*sin(2*pi*f1*t);
subplot(3,1,1);
plot (t,x1);
hold on;
f2 = 15;
x2 = 4*sin(2*pi*f2*t);
plot (t,x2);
grid on;
subplot(3,1,2);
x3 = x2 + x1;
plot (t, x3);
subplot(3,1,3);
xnew = [x3,x3(2:20),x3(2:20),x3(2:20)];
plot (xnew,'ro-');
grid on;
% De fourierreeks van de functie f(x) = 4 - x² wordt gegeen door: f(x) =
% 8/3 * som van k=1 tot +ondeindig van (16/(k*pi)²) * (-1)^(k+1) * cos (k*pi/2*x).
% Maak een plot waarin je de werkelijke functie en de benadering
% vergelijkt, voor een aantal waarden van k.
clear all; clf;
x = linspace (0,1);
f1 = 4 - x.^2;
f2 = 8/3;
for k=1:100
f2 = f2 + 16/((k*pi).^2) * (-1).^(k+1) * cos ((k*pi/2)*x);
end
plot (x, f1,'r');
hold on;
plot (x, f2);
grid on;
% De fourierreeks van de functie f(x) = e^-x wordt gegeven door: f(x) = sum
% van - oneindig tot + oneindig van (ck * e ^(jkx)) waarbij ck = ((-1)^k *
% (e^pi - e^-pi))/(2pi*(1+k²)) * (1-jk). Maak opnieuw een plot waarin je
% de werkelijke functie en de banadering vergelijkt, voor een aantal
% waarden van k.
x = linspace (0,1);
f1 = exp(-x);
f2 = 0;
for k=-100:100
f2 = f2 + ((((-1).^k)*(exp(pi) - exp(-pi)))/(2*pi*(1+k.^2)) * (1-j*k)) * exp(j*k*x);
end
plot (x, f1,'r');
hold on;
plot (x, f2);
grid on;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment