function [I,f] = psd_Welch(si,Tc,nsseq)
%
% metodo di Welch:
%
if exist('Tc')==0  Tc=1; end
if exist('nsseq')==0  nsseq=1; end
%
N = length(si)/nsseq;
% periodogramma modificato:
s = reshape(si,N,nsseq);
w = hamming(N); % finestra di Hamming
s = s .* repmat(w', 1, nsseq);
w_ms = sum(w.^2)/N;  % valore quadratico medio della sequenza di finestratura dei dati
I = sum(abs(fft(s)).^2,2) ./ ( nsseq * N * w_ms);
f = 0:1/(N*Tc):1/(2*Tc)-1/(N*Tc);
