function [noise] = noiseGenerator(kernel_size, execution_fraction, noise_size, sampling_frequency, std, max_freq, plotting) stride = kernel_size/execution_fraction; num_actions = floor(noise_size/stride); noise = zeros(1, noise_size); dt = 1/sampling_frequency; time = linspace(-((kernel_size+1)/2-1)*dt, (kernel_size+1)/2*dt, kernel_size); kernel = sinc(time/kernel_size).*sinc(time); if plotting figure plot(kernel) end actions = randn(1,num_actions)*std; actions = lowpass(actions, max_freq, sampling_frequency/stride); for i=0:num_actions-1 if i*stride+kernel_size < numel(noise) noise(i*stride+1:i*stride+kernel_size) = noise(i*stride+1:i*stride+kernel_size)... + actions(i+1) * kernel; else noise(i*stride+1:end) = noise(i*stride+1:end)... + actions(i+1) * kernel(1:numel(noise(i*stride+1:end))); end end end