55 lines
1.5 KiB
Matlab
55 lines
1.5 KiB
Matlab
function signal = windowing(signal_freq, signal_duration, signal_phase, sampling_freq)
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%function signal = windowing(signal_freq, signal_duration, signal_phase, sampling_freq)
|
|
% ex.: signal = windowing(10, 12, 0, 50)
|
|
%
|
|
% Inputs:
|
|
% - signal_freq: frequency of the cosine function in Hz
|
|
% - signal_duration: duration of the signal in seconds
|
|
% - signal_phase: phase of the signal in rad
|
|
% - sampling_freq: sampling frequency in Hz
|
|
%
|
|
% Output:
|
|
% - signal: an array containing the samples of a cosine function sampled at the given sampling freq and windowed (in a.u.)
|
|
% signal = cos(2*pi*signal_freq*t+signal_phase)
|
|
%
|
|
% Author: Guillaume Gibert, guillaume.gibert@ecam.fr
|
|
% Date: 04/03/2024
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% generates a time array
|
|
t=-signal_duration/2:1/sampling_freq:signal_duration/2;
|
|
|
|
% generates a sampled signal
|
|
signal = cos(2*pi*signal_freq*t+signal_phase);
|
|
|
|
% window duration is half of signal duration
|
|
windowDuration = signal_duration/2;
|
|
% creates 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;
|
|
plot(rectangularWin);
|
|
|
|
for l_sample=1:signal_duration*sampling_freq
|
|
signal_rect(l_sample) = signal(l_sample) * rectangularWin(l_sample);
|
|
end
|
|
|
|
figure;
|
|
plot(signal); hold on;
|
|
plot(signal_rect);
|
|
|
|
|
|
|
|
% creates the Hanning time window
|
|
|
|
% creates the Hamming time window
|
|
|
|
% creates the Balckman time window
|
|
|
|
|
|
|