% 1: delta di Kronecker
% 2: gradino unitario
% 3: sempre uno
% 4: ingresso con controllo a zero del caso 3
esempio_input = 1;

% 1: FIR (media mobile)
% 2: FIR (ritardo unitario)
% 3: IIR (all poles)
esempio_sistema = 1;

switch esempio_input
	case 1
		% delta di Kronecker
		kx = -2:8;
		x = zeros(size(kx));
		x(kx == 0) = 1;
	case 2
		% gradino
		kx = -3:7;
		x = zeros(size(kx));
		x(kx >= 0) = 1;
	case 3
		% sempre uno
		kx = 8:18;
		x = ones(size(kx));
	case 4
		% ingresso ad hoc
		kx = -2:8;
		x = zeros(size(kx));
		x(kx == 0) = 1;
		x(kx == 2) = -0.64;
end

switch esempio_sistema
	case 1
		% FIR (media mobile)
		a = 1;
		b = [1 1 1];
	case 2
		% FIR (ritardo unitario)
		a = 1;
		b = [0 1];
	case 3
		% IIR (all poles)
		a = [1 -0.8];
		b = 1;
end

% calcolo della sequenza di uscita
[y,ky] = lti_system(a,b,x,kx);

% plot della sequenza di ingresso
subplot(2,1,1)
stem(kx,x)
xlabel('k')
ylabel('x(k)')
set(gca,'YLim',[min(x)-0.5,max(x)+0.5])

% plot della sequenza di uscita
subplot(2,1,2)
stem(ky,y)
xlabel('k')
ylabel('y(k)')
set(gca,'YLim',[min(y)-0.5,max(y)+0.5])
