Select Git revision
show_rect_masks.m
show_rect_masks.m 2.05 KiB
function masks = show_rect_masks(areas_lim, win_type)
%%
% masks = show_rect_masks(areas_lim, win_type)
% Generate rectangular mask and compute its ambiguity function
%
%Inputs:
% - areas_lim: array- allow to select the rectangle
% - win_type: analysis window type (hann/gauss)
%Output:
% - masks: mask
%
%Author : Marina KREME
%%
pwd;
fig_dir ='fig_rect_masks';
if ~exist('fig_rect_masks','dir')
mkdir('fig_rect_masks');
end
addpath('fig_rect_masks')
%%
sig_len = 1024;
fs = 1;
win_len = 32;
hop = 1 ;
nbins = win_len * 2;
approx_win_len = win_len;
dgt_params = generate_dgt_parameters(win_type, approx_win_len, hop, nbins, sig_len);
signal_params = generate_signal_parameters(fs, sig_len);
[dgt, idgt] = get_stft_operators(dgt_params, signal_params);
% window
figure;
plot_win(dgt_params.win, signal_params.fs, dgt_params.win_type);
title([num2str(win_type),'\_window.png']);
%
n_areas = length(areas_lim);
if n_areas == 1
name = '1area';
else
name = [num2str(n_areas), '_areas'];
end
masks = [];
for i =1: n_areas
mask = generate_rectangular_mask(dgt_params.nbins, dgt_params.hop,....,
signal_params.sig_len,areas_lim{i}.t_lim, areas_lim{i}.f_lim);
masks =[masks, mask];
end
%%
full_mask = masks;
for i =1:n_areas
full_mask = or(full_mask,masks(i));
end
gab_mul = gen_gabmul_operator(dgt, idgt, full_mask);
% figure mask
figure;
plot_mask(masks, dgt_params.hop, dgt_params.nbins, signal_params.fs);
title('Mask')
saveas(gcf,fullfile(fig_dir,['mask' num2str(sig_len), '.png']));
% ambiguity function
figure;
dynrange=90;
plot_ambiguity_function(dgt_params.win,dgt, dgt_params, signal_params, dynrange)
title(['Ambiguity function - ', num2str(win_type)]);
saveas(gcf,fullfile(fig_dir,[ num2str(win_type) '_ambiguity_L_' num2str(sig_len), '.png']));
%
figure;
mask_proj = dgt(idgt(double(full_mask)));
plotdgtreal(mask_proj, dgt_params.hop, dgt_params.nbins, fs, dynrange);
title(['dgt(idgt(mask)) - ' num2str(win_type)]);
saveas(gcf,fullfile(fig_dir,[num2str(name) '_' num2str(win_type) '_' 'projected_mask.png.png']));
end