test 2

Contents

question 2 (original function)

t = linspace(-0.5,0.5,501);
y = rect(3*t-1/2)-rect(3*t+1/2);
plot(t,y,'LineWidth',2);
axis([-0.5 0.5 -1.2 1.2]);
grid;
xlabel('time');
ylabel('signal');

question 2 (reconstruction)

M = 50;
t = linspace(-2,2,601);
y = zeros(size(t));
for k=1:M

    ck = (1-cos(2*pi*k/3))/(pi*k);
    y = y + ck*sin(2*pi*k*t);
end
plot(t,y,'k','LineWidth',2);

question 4

M = 50;
t = linspace(-2,2,601);
a = 0.5;
b = 0.25;
y = ones(size(t))*a;
for k=1:M
    ck = a*sinc(k*a)*sinc(k*b);
    y = y + 2.0*ck*cos(2*pi*k*t);
end
plot(t,y,'LineWidth',2);

question 5

M = 50;
t = linspace(0,1,201);
a = 0.5;
b = 0.25;
y = zeros(size(t));
fsum = 0.0;
for k=-M:M
    ck = a*sinc(k*a)*sinc(k*b);
    y = y + ck*exp(j*2*pi*k*t);
    fsum = fsum + ck*conj(ck);
end
ysum = trapz(y.*conj(y))*(t(2)-t(1));
fprintf('(a) %g\n',ysum);
fprintf('(b) %g\n',fsum);
(a) 0.416666
(b) 0.416666

question 6

t = linspace(-0.5,0.5,801);
a = 0.5;
b = 0.25;
yp = trap(t,a,b)/b;
y = ones(size(t))*a;
mse = zeros(50,1);
for k=1:50
    ck = a*sinc(k*a)*sinc(k*b);
    y = y + 2.0*ck*cos(2*pi*k*t);
    ydiff = y - yp;
    mse(k) = (ydiff*ydiff')/length(t);
end
semilogy(1:M,mse,'k','LineWidth',2);

question 8

M = 150;
t = linspace(-1.5,1.5,4001);
y = zeros(size(t));
tau = 0.05;
d = 0.25;
for k=-M:M
    ck = d*sinc(k*d);
    Hk = 1/(1+j*2*pi*k*tau);
    y = y + ck*Hk*exp(2*pi*j*k*t);
end
plot(t,real(y),'k','LineWidth',2);

question 8 (using question 2 as input)

M = 50;
t = linspace(-2,2,601);
y = zeros(size(t));
tau = 0.05;
for k=-M:M
    if (k==0)
        ck = 0.0;
    else
        ck = j*(cos(2*pi*k/3)-1)/(pi*k);
    end
    Hk = 1/(1+j*2*pi*k*tau);
     y = y + ck*Hk*exp(2*pi*j*k*t);
end
plot(t,real(y),'k','LineWidth',2);

question 8 (gausian signal)

M = 250;
t = linspace(-0.2,0.5,4001);
y = zeros(size(t));
x = zeros(size(t));
tau = 0.05;
d = 0.0002;
for k=-M:M
    ck = sqrt(d/pi)*exp(-d*k^2);
    Hk = 1/(1+j*2*pi*k*tau);
    y = y + ck*Hk*exp(2*pi*j*k*t);
    x = x + ck*exp(2*pi*j*k*t);
end
y = real(y)/sqrt(d)/pi^2;
dt = t(2)-t(1);
area = sum(x)*dt/sqrt(d/pi);
fprintf('max(x) %g area %g\n',max(x),area);
fprintf('max(y) %g\n',max(y));
plot(t,y,'k',t,exp(-t/tau).*ustep(t),'LineWidth',2);
max(x) 0.999969 area 1
max(y) 0.982005