Skip to content
Snippets Groups Projects
Select Git revision
  • ff79a416a54ed41b2ade74ae64710ab74ce27cba
  • master default protected
  • py
  • rmevec
  • tffm
  • approx
  • v0.1.5
  • v0.1.4
  • v0.1.3
9 results

show_rect_masks.m

Blame
  • user avatar
    Marina Kreme authored
    7a4defb3
    History
    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