clc;
clearvars;
close all;
% Definizione dei parametri
t = linspace(-6e-6, 6e-6, 1000);
T_grande = 2e-6;
T_zero = 2e-6;
N = 10;
% Definizione di x(t)
x_t = ((t/T_grande)+0.5).*rectpuls(t/T_grande);
% Coefficiente a_0
a_0 = T_grande / (2 * T_zero);
% Definizione dei vettori k1 e k2
k1 = -N:-1;
k2 = 1:N;
% Calcolo di y_rec(t) come somma delle armoniche
y_rec = a_0 * ones(size(t)); % Inizializzazione di y_rec con il valore di a_0
% Funzione sinc corretta
sinc = @(x) sin(pi*x) ./ (pi*x);
% Somma dei termini delle armoniche positive
for i = 1:length(k2)
k = k2(i);
y_rec = y_rec + (1/(2*pi*k)) * (sin((pi*k*T_grande)/T_zero) + 1i*(cos((pi*k*T_grande)/T_zero) - sinc((k*T_grande)/T_zero))) * exp(1i * 2 * pi * k * t / T_zero);
end
% Somma dei termini delle armoniche negative
for i = 1:length(k1)
k = k1(i);
y_rec = y_rec + (1/(2*pi*k)) * (sin((pi*k*T_grande)/T_zero) + 1i*(cos((pi*k*T_grande)/T_zero) - sinc((k*T_grande)/T_zero))) * exp(1i * 2 * pi * k * t / T_zero);
end
% Plot di x(t)
figure;
plot(t, x_t);
title('Segnale x(t)');
xlabel('Tempo (s)');
ylabel('x(t)');
grid on;
% Plot di y_rec(t)
figure;
plot(t, real(y_rec));
title('Segnale y_{rec}(t)');
xlabel('Tempo (s)');
ylabel('y_{rec}(t)');
grid on;
% Plot di x(t) e y_rec(t)
figure;
plot(t, x_t, 'b', t, real(y_rec), 'r');
title('Segnale x(t) e y_{rec}(t)');
xlabel('Tempo (s)');
ylabel('x(t) e y_{rec}(t)');
legend('x(t)', 'y_{rec}(t)');
grid on;