function signal_win = rectWin(signal, signal_duration, sampling_freq, pad) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %function signal_win = rectWin(signal, signal_duration, sampling_freq, pad) % ex.: signal_win = rectWin(signal, 2, 300, 1) % % Inputs: % - signal: location of the signal to window % - signal_duration: duration of the signal in seconds % - sampling_freq: sampling frequency in Hz % - pad: wether or not add zero padding (0=false; 1=true) % % Output: % - signal_win: signal of interest on which a rectangular window was applied % % Author: Guillaume Gibert, guillaume.gibert@ecam.fr % Date: 04/03/2024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% signal_duration = length(signal)/sampling_freq; % create the temporal array t=-signal_duration/2:1/sampling_freq:(signal_duration/2)-1/sampling_freq; % window duration is half of signal duration windowDuration = signal_duration/2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % creates the Rectangular time window %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rectangularWin = zeros(1, length(t)); for l_sample=1:windowDuration*sampling_freq rectangularWin(l_sample + signal_duration*sampling_freq/4) = 1; end figure; title("Rectangular Window"); hold on; plot(t,rectangularWin); % apply the rectangular window for l_sample=1:length(t) signal_win(l_sample) = signal(l_sample) * rectangularWin(l_sample); end figure; title("Original and Windowed signals"); hold on; plot(t, signal); hold on; plot(t, signal_win); frequencySpectrum(signal_win, sampling_freq/2,pad);