diff --git a/matlab/tfgm/illustrations_gaborTools/exp_eigenval_win.m b/matlab/tfgm/illustrations_gaborTools/exp_eigenval_win.m deleted file mode 100644 index 22ef5608fec0b0a1e8970cf627f367875bfd06bb..0000000000000000000000000000000000000000 --- a/matlab/tfgm/illustrations_gaborTools/exp_eigenval_win.m +++ /dev/null @@ -1,349 +0,0 @@ -clc; clear; close all - -%% -% experiments with -% - wideband sound: engine(Genesis) -% - localized sound: birdsong (Genesis) - -%% -make_wav_pairs() % make sure alls pairs are ok -%% Figures Directory - -pwd; -pathname ='figures_JSTSP'; -if ~exist('figures_JSTSP','dir') - mkdir('figures_JSTSP'); -end -addpath('figures_JSTSP') - - - -%% - -ind_loc = 5; -ind_wd = 3; -deb_ind_loc = 0; -deb_ind_wd=0; -resampling_fs = 8000; -sig_len = 16384; - - -%% -param_hann = get_win_hann_param(); -param_gauss = get_win_gauss_param(); -params = {param_hann, param_gauss}; - - -%% -tic; -masks = {}; - -for k = 1:length(params) - - %win_len = params{k}.win_len; - %win_type = params{k}.win_type; - - fprintf("We pick %s window of length %.f\n", params{k}.win_type, params{k}.win_len); - - %alpha = params{k}.alpha; - %seuil = params{k}.seuil; - %radius = params{k}.radius; - - fprintf("The parameters for smoothing the mask are: \n") - fprintf("alpha = %f\n", params{k}.alpha); - fprintf("seuil = %f\n", params{k}.seuil); - fprintf("radius = %f\n", params{k}.radius); - - [signals, dgt_params, signal_params, mask, dgt, idgt ] = get_mix(ind_loc, ..., - ind_wd, deb_ind_loc, deb_ind_wd, resampling_fs, sig_len,..., - params{k}.win_len, params{k}.win_type, params{k}.alpha, params{k}.seuil, params{k}.radius); - - params{k}.dgt_params = dgt_params; - params{k}.signal_params = signal_params; - params{k}.dgt = dgt; - params{k}.idgt = idgt; - masks{k} = mask; -end -toc; - -%% -masks{3}= and(masks{1},masks{2}); - -for k = 1:length(masks)-1 - - figure(k); - - %imagesc(masks{k}) - plot_spectrogram(masks{k}, params{k}.dgt_params, params{k}.signal_params, params{k}.dgt); - title(params{k}.win_type) - set(gca, 'FontSize', 20, 'fontName','Times'); - %saveas(gcf,fullfile(pathname, [params{k}.win_type,'.pdf'])); -end - -figure; -imagesc(masks{3}) -title('Intersection') -%saveas(gcf,fullfile(pathname, 'intersection.pdf')); - -%% -figure; - -imagesc(masks{1} - masks{2}) -colorbar() -title('Mask difference: gauss -hann'); -saveas(gcf,fullfile(pathname, 'mask_difference.pdf')); - - -%% parametres Halko - -r=2500; -%% EVD pour hann - -evdn_hann = cell(length(masks),1); -for k=1: length(masks) - - disp(k); - gab_mul = gen_gabmul_operator(params{1}.dgt, params{1}.idgt, masks{k}); - tic; - q_mat = randomized_range_finder(gab_mul, sig_len,r); - t1= toc; - fprintf(" runtimes for Q: %f\n", t1); - % - tic; - evdn = EVD_nystrom(gab_mul, q_mat); - t2 = toc; - evdn_hann{k} = evdn; - fprintf(" runtimes for nystrom: %f\n", t2); -end - - -%% EVD avec Gauss - -evdn_gauss = cell(length(masks),1); - -for k=1: length(masks) - disp(k) - gab_mul = gen_gabmul_operator(params{2}.dgt, params{2}.idgt, masks{k}); - tic; - q_mat = randomized_range_finder(gab_mul, sig_len, r); - t1= toc; - - fprintf(" runtimes for Q-gauss: %f\n", t1); - tic; - evdn = EVD_nystrom(gab_mul, q_mat); - t2 = toc; - - evdn_gauss{k} = evdn; - fprintf(" runtimes for nystrom -gauss: %f\n", t2); -end - -%% les valeurs propres -figure; - -D1 = diag(evdn_hann{1}.D); -D2 = diag(evdn_hann{2}.D); -D3 = diag(evdn_hann{3}.D); -D4= diag(evdn_gauss{1}.D); -D5 = diag(evdn_gauss{2}.D); -D6 = diag(evdn_gauss{3}.D); - -semilogy(D1, 'Linewidth',4); -hold on; -semilogy(D2, 'Linewidth',4); -semilogy(D3 , 'Linewidth',4); -semilogy(D4, 'Linewidth',4); -semilogy(D5, 'Linewidth',4); -semilogy(D6, 'Linewidth',4); -grid on; - - -xlabel({'index = $k$'},'Interpreter','latex'); -ylabel({' Eigenvalues $\sigma[k]$'},'Interpreter','latex'); -legend('Hann 256 - mask Hann 256', 'Hann 256 - mask Gauss 128' ,..., - 'Hann 256 - mask Intersection', 'Gauss 128 - mask Gauss 128', ..., - 'Gauss 128 - mask Hann 256' ,'Gauss 128 - mask Intersection',..., - 'Location','southwest'); -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname, 'eigval_cuicui_gauss_hann.png')); -saveas(gcf,fullfile(pathname, 'eigval_cuicui_gauss_hann.fig')); - - - -%% Les vecteurs propres gauss -U_g = evdn_gauss{2}.U; -dynrange=90; -for k =1:15 - figure(k) - plot_spectrogram(U_g(:,k), params{2}.dgt_params,params{2}.signal_params,..., - params{2}.dgt,dynrange); - set(gca, 'FontSize', 20, 'fontName','Times'); - axis square; - saveas(gcf,fullfile(pathname, ['eigval_cuicui_gauss_', num2str(k), '.png'])); -end - - -%% les vecteurs propres hann - -U_h = evdn_hann{1}.U; -for k=1:10 - figure(k) - - plot_spectrogram(U_h(:,k), params{1}.dgt_params,params{1}.signal_params,..., - params{1}.dgt); - set(gca, 'FontSize', 20, 'fontName','Times'); - axis square; - saveas(gcf,fullfile(pathname, ['eigval_cuicui_hann_', num2str(k), '.png'])); - -end - -%% Pour le papier : valeurs propres - - -i_g = 1540; -i_h = 1585; -figure; -set(gcf,'position',[1, 1 1100 400]); -subplot(121); -plot_spectrogram(masks{2}, params{2}.dgt_params, params{2}.signal_params, params{2}.dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square -subplot(122); - -semilogy(D5, 'b','Linewidth',4); %Gauss -hold on; -semilogy(D2, 'r','Linewidth',4); %Hann -plot(1,D5(1),'bo',i_h,D2(i_h),'r^','Linewidth',4,'MarkerSize',12) % Gauss -hann : l=1, l = 2000 -plot(1,D2(1),'r^',i_g,D5(i_g),'bo','Linewidth',4,'MarkerSize',12); %Hann -Gauss l = 2000 -grid on; - - -xlabel({'index = $k$'},'Interpreter','latex'); -ylabel({' Eigenvalues $\sigma[k]$'},'Interpreter','latex'); - -legend({'Gauss ','hann','$\lambda_1$ = 1 , $\lambda_{1540} = 2.254 \times 10^{-4}$',..., - '$\lambda_1$ = 1 , $\lambda_{1585} = 6.399 \times 10^{-5}$'},'Interpreter','latex','Location','southwest'); - - -set(gca, 'FontSize', 20, 'fontName','Times'); - -saveas(gcf,fullfile(pathname, 'eigs_illustration.png')); -saveas(gcf,fullfile(pathname, 'eigs_illustration.fig')); - -%% les vecteurs propres - -% -close all; -dynrange=90; - -U_h = evdn_hann{2}.U; -U_g = evdn_gauss{2}.U; - -i_g = 1540; -i_h = 1585; -figure; -set(gcf,'position',[0.6, 0.6, 900 900]); - - subplot(221); - -plot_spectrogram( U_g(:,1), params{2}.dgt_params,params{2}.signal_params,..., - params{2}.dgt,dynrange); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square; - - -subplot(222); -plot_spectrogram(U_h(:,1), params{1}.dgt_params,params{1}.signal_params,..., - params{1}.dgt,dynrange); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square; - - -subplot(223); -plot_spectrogram(U_g(:,i_g), params{2}.dgt_params,params{2}.signal_params,..., - params{2}.dgt,dynrange); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square; - -subplot(224); -plot_spectrogram(U_h(:,i_h), params{1}.dgt_params,params{1}.signal_params,..., - params{1}.dgt,dynrange); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square; - -saveas(gcf,fullfile(pathname, 'eigs_mask_gauss.png')); - -saveas(gcf,fullfile(pathname, 'eigs_mask_gauss.fig')); - - -%% figure des fenetres et leurs spectrogrammes - -%hann - -win_hann = params{1}.dgt_params.win; -win_hann = fftshift(win_hann); - -figure; -plot(win_hann,'LineWidth',3); -grid on; -legend('Hann') -set(gca, 'FontSize', 20, 'fontName','Times'); - -saveas(gcf,fullfile(pathname, 'hann_win.fig')); - -saveas(gcf,fullfile(pathname, 'hann_win.png')); -figure; - -dgt_hann_win = compute_dgt(win_hann, params{1}.dgt); -plotdgtreal(dgt_hann_win, params{1}.dgt_params.hop, params{1}.dgt_params.nbins, ..., - params{1}.signal_params.fs,'dynrange',90) -%plot_spectrogram(win_hann, params{1}.dgt_params, params{1}.signal_params, params{1}.dgt, dynrange); -grid on; -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname, 'stft_hann_win.fig')); -saveas(gcf,fullfile(pathname, 'stft_hann_win.png')); -%% - -%gauss - -win_gauss= params{2}.dgt_params.win; -win_gauss = fftshift(win_gauss); -figure; -plot(win_gauss,'LineWidth',3); -set(gca, 'FontSize', 20, 'fontName','Times'); -grid on; -legend('Gauss') -saveas(gcf,fullfile(pathname, 'gauss_win.fig')); -saveas(gcf,fullfile(pathname, 'gauss_win.png')); -figure; -dynrange=90; -dgt_gauss_win = compute_dgt(win_gauss, params{2}.dgt); -plotdgtreal(dgt_gauss_win, params{2}.dgt_params.hop, params{2}.dgt_params.nbins, ..., - params{2}.signal_params.fs,'dynrange',90) -grid on; -%ylabel('Frequency (kHz)') -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname, 'stft_gauss_win.fig')); -saveas(gcf,fullfile(pathname, 'stft_gauss_win.png')); -%% les spectres -%hann -figure; -[phann,w_hann] = pwelch( win_hann, length(win_hann)); -plot(w_hann/pi,10*log10(phann),'LineWidth',1.5); -grid on; -legend('spectre-Hann window') -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname, 'spectre_hann_win.fig')); -saveas(gcf,fullfile(pathname, 'spectre_hann_win.png')); -% gauss -figure; -[pgauss,w_gauss] = pwelch( win_gauss, length(win_gauss)); -plot(w_gauss/pi,10*log10(pgauss),'LineWidth',1.5); -grid on; -legend('spectre-Gaussian window') -set(gca, 'FontSize', 20, 'fontName','Times'); - saveas(gcf,fullfile(pathname, 'spectre_gauss_win.fig')); - saveas(gcf,fullfile(pathname, 'spectre_gauss_win.png')); -%% - -save('evdn_gauss_hann.mat','evdn_hann','evdn_gauss','params','masks'); -% \ No newline at end of file