gusucode.com > 声音的处理有:LPC,FFT,共振峰,频谱源码程序 > siganlandsystemusingMatlab/SSUM/xsynthesis/makeampenv.m

    function amp_env = makeampenv(data, envlength, window_size, window_skip)
%
	num_samples = length(data);
    num_windows = floor(num_samples/window_skip-1);

	amp_env = zeros(1,num_windows);
	h = waitbar(0,'Analyzing...');
	for i = 1:num_windows,
		start_sample = (i-1)*window_skip + 1;
		end_sample = start_sample + window_size-1;
		% Choose last possible window
		if (end_sample > num_samples)
			end_sample = num_samples;
			start_sample = end_sample-window_size+1;
		end
		amp_env(i) = rms(data(start_sample:end_sample));
		waitbar(i/num_windows,h);
	end
	close(h);
	h = waitbar(0,'Resampling...');
	amp_env = resample(amp_env, envlength, num_windows);
	close(h);