function [omega,H]=freq_plot(b,a,fmax)
	
	% b è il vettore dei coefficienti del polinomio a numeratore
	% b0+b1*z^-1+b2*z^-2+...bK*z^-K
	% oppure
	% b0+b1*s+b2*s^2+...*bK*s^K
	% analogamente il vettore a per il denominatore
	% fmax indica la frequenza massima se il plot è a tempo continuo; se
	% non viene passata si assume tempo discreto
	
	% numero di zeri e poli
	K = numel(b) - 1;
	M = numel(a) - 1;
	
	% vettore delle frequenze
	N = 4096;
	if nargin < 3
		omega = (-N/2:N/2-1)*2*pi/N;
		coeff = exp(-1i*omega);
	else
		omega = 2*pi*(-N/2:N/2-1)*2/N*fmax;
		coeff = 1i*omega;
	end
	
	H = zeros(1,N);
		
	num = b(1+K); % b_K
	for k = K-1:-1:0
		num = num .* coeff + b(1+k); % b_k
	end

	den = a(1+M); % a_M
	for m = M-1:-1:0
		den = den .* coeff + a(1+m); % a_m
	end

	H = num ./ den;
	
end
