diff --git a/matlab/tfgm/illustrations_gaborTools/illustration_cuicui_eigenvalues.m b/matlab/tfgm/illustrations_gaborTools/illustration_cuicui_eigenvalues.m deleted file mode 100644 index 0734b64b1a95af0e7c94a7935d65d3580c49882d..0000000000000000000000000000000000000000 --- a/matlab/tfgm/illustrations_gaborTools/illustration_cuicui_eigenvalues.m +++ /dev/null @@ -1,144 +0,0 @@ -function [signal_params,dgt_params, signals,sdr_mix, mask, mask_area,...., - gab_mul,q_mat,evdn] = illustration_cuicui_eigenvalues(win_type, resampling_fs, sig_len,approx_win_len ) - - -%% - -pwd; -pathname ='figures_JSTSP'; -if ~exist('figures_JSTSP','dir') - mkdir('figures_JSTSP'); -end -addpath('figures_JSTSP') -%% Signals parameters ans DGT parameters - -signal_params = generate_signal_parameters(resampling_fs, sig_len); -dgt_params = generate_dgt_parameters(win_type, approx_win_len); - -%% Gabor frame operators - -[direct_dgt, adjoint_dgt, tight_direct_dgt, tight_adjoint_dgt,win,..., - win_tight] = get_dgt_operators(dgt_params, signal_params); - -%% Load bird and engine signal from GENESIS - - -ind_engine = 4; -ind_bird = 5; - -deb = 0; -[x_engine, x_bird] = load_pairs(ind_engine, ind_bird, resampling_fs, signal_params.sig_len, deb); - -%gamma=0.75; -signals = generate_mix_signal(x_engine, x_bird); - - -%% plot signals spectrograms - -% compute dgt - -dgt = tight_direct_dgt; -tf_mat_engine = compute_dgt(signals.target, dgt); -tf_mat_bird = compute_dgt(signals.noise, dgt); -tf_mat_mix = compute_dgt(signals.mix, dgt); - - -%plot their spectrogram - -figure('name','engine'); plot_spectrogram(tf_mat_engine,dgt_params, signal_params, dgt); -title('engine') -figure('name','bird'); plot_spectrogram(tf_mat_bird, dgt_params, signal_params, dgt); -title('Bird') -figure('name','mix'); plot_spectrogram(tf_mat_mix, dgt_params,signal_params, dgt); -title('mix : engine-bird') - - -%% Mix - SDR - -sdr_mix = sdr(signals.target, signals.mix); - -fprintf('The SDR of the mixture is : %e\n', sdr_mix) - -%% Mask generation - -% mask -alpha=2; seuil = 0.02; radius = 3; -mask = generate_mask(tf_mat_engine, tf_mat_bird, alpha, seuil, radius); -[mask_area, mask_area_ratio] = get_mask_area(mask); - -%plot mask -figure('name','mask'); plot_spectrogram(mask, dgt_params,signal_params, dgt); -title(['mask : mask-area = ',num2str(mask_area)]) - -%% EVD with Halko - -tolerance_arrf = 1e-6; -proba_arrf = 1 - 1e-9; - -r = compute_r(signal_params.sig_len, signal_params.sig_len, proba_arrf); - - -% Generate multiplier -gab_mul = gen_gabmul_operator(tight_direct_dgt, tight_adjoint_dgt, mask); - -%stage 1 -q_mat = adaptative_randomized_range_finder(gab_mul, signal_params.sig_len, tolerance_arrf, r); - -fprintf('Q shape : %.f %.f\n', size(q_mat)); - -% stage 2 : Halko - -% Evd decomposition via Nystrom - -evdn = EVD_nystrom(gab_mul, q_mat); - -%% Eigenvalue plot - -ss=diag(evdn.D); - -figure; -set(gcf,'position',[1, 1 1100 400]); -subplot(121); -plot_spectrogram(mask, dgt_params,signal_params, dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -axis square -subplot(122); - -%% -semilogy(diag(evdn.D), 'Linewidth',3); -hold on; -plot(45,ss(45),'k-*','Linewidth',3); -plot(30,ss(30),'m-*','Linewidth',3); -plot(1650,ss(1650),'g-*','Linewidth',3); -plot(1740,ss(1740),'c-*','Linewidth',3); -grid on; -xlabel('k') -legend({'$\sigma_k$','$\lambda$ = 45','$\lambda$ = 30', '$\lambda$ = 1650','$\lambda$ = 1740'},..., - 'Interpreter','latex','Location','southwest') -axis square -set(gca, 'FontSize', 20, 'fontName','Times'); -%saveas(gcf,fullfile(pathname, 'eigenvalues_full_mask.png')); - -%% -%eigsvect_hann = [45, 18, 1650, 2051]; - -figure; -set(gcf,'position',[1, 1 900 400]); -subplot(221); -plot_spectrogram(evdn.U(:,1), dgt_params,signal_params, dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -subplot(222); -plot_spectrogram(evdn.U(:,2), dgt_params,signal_params, dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -subplot(223); -plot_spectrogram(evdn.U(:,30), dgt_params,signal_params, dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -subplot(224); -plot_spectrogram(evdn.U(:,1438), dgt_params,signal_params, dgt); -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname, 'eigvectors_gauss.png')); - -%% -save('illustration.mat','signal_params','dgt_params', 'signals','sdr_mix', 'mask', 'mask_area',...., - 'gab_mul', 'q_mat', 'evdn') -end \ No newline at end of file diff --git a/matlab/tfgm/illustrations_gaborTools/rank_asfunctionof_masksize.m b/matlab/tfgm/illustrations_gaborTools/rank_asfunctionof_masksize.m deleted file mode 100644 index dda7b5209f339314e29b48f2c4e980f64ebefdc8..0000000000000000000000000000000000000000 --- a/matlab/tfgm/illustrations_gaborTools/rank_asfunctionof_masksize.m +++ /dev/null @@ -1,100 +0,0 @@ -clc; clear; close all; - -% The script permet d'�tuider l'estimation du rang par Halko vs eigs -%% Repertoires pour les figures - -pwd; -pathname ='figures_JSTSP'; -if ~exist('figures_JSTSP','dir') - mkdir('figures_JSTSP'); -end -addpath('figures_JSTSP') - -%% Parametres du signal - -resampling_fs=8000; % frequence d'echantillonage -sig_len = 8192; % longueur du signal - -tolerance = 1e-6; % parametres pour Halko -proba = 1-1e-4; -r = compute_r(sig_len, sig_len, proba); - -%% Generation des parametres de la DGT - - -t_lim = [0.4, 0.6]; -f_lims = 0.2:0.05:0.6; - -win_type = 'hann'; - -approx_win_len = 256; - -dgt_params = generate_dgt_parameters(win_type, approx_win_len); -signal_params = generate_signal_parameters(resampling_fs, sig_len); -[dgt, idgt] = get_stft_operators(dgt_params, signal_params); - - -%% -mask_area_list = zeros(length(f_lims),1); -ranks_arrf = zeros(length(f_lims),1); -ranks_eigs= zeros(length(f_lims),1); -t_arrf = zeros(length(f_lims),1); -t_eigs = zeros(length(f_lims),1); -s_vec_list = cell(length(f_lims),1); - - -seuil = 10^(-14); % pour la EVD via eigs -%% -for k =1:length(f_lims) - % Mask Generation - - f_lim =[0.1, f_lims(k)]; - mask = generate_rectangular_mask(dgt_params.nbins,dgt_params.hop, signal_params.sig_len, t_lim, f_lim); - - [mask_area, mask_area_ratio] = get_mask_area(mask); - mask_area_list(k) = mask_area; - - fprintf('mask area:%.f\n', mask_area) - if mask_area>signal_params.sig_len - fprintf('attention %.f\n',k) - end - figure(k); - plot_mask(mask, dgt_params.nbins, dgt_params.hop, signal_params.fs); - - %% Gabor multiplier - gab_mul = gen_gabmul_operator(dgt, idgt, mask); - - %% EVD via Halko - tic; - q_mat = adaptative_randomized_range_finder(gab_mul, sig_len, tolerance, r); - t_arrf(k) = toc; - - ranks_arrf(k)= size(q_mat,2); - %% EVD via eigs - tic; - [u_mat,s] = eigs(gab_mul, signal_params.sig_len, signal_params.sig_len); - t_eigs(k) = toc; - - s_vec = diag(s); - s_vec_list{k} = s_vec; - ranks_eigs(k) = length(s_vec(s_vec > seuil)); -end - -%% -save('rank_estimation.mat','ranks_arrf','ranks_eigs', 'mask_area_list',..., - 't_arrf','t_eigs', 's_vec_list'); - -%% plot figures - -figure; -plot(mask_area_list,ranks_arrf,'LineWidth',3); hold on; -plot(mask_area_list,ranks_eigs,'LineWidth',3); -set(gca, 'FontSize', 15, 'fontName','Times'); -%set(gca,'XScale','log') -xlabel('Mask area') -ylabel('Estimated rank') -grid('on'); -legend('Halko', 'eigs', 'Location','northwest'); -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname,'rank_estimation_gauss.png')); -saveas(gcf,fullfile(pathname,'rank_estimation_gauss.fig')); diff --git a/matlab/tfgm/illustrations_gaborTools/rank_estimation_halko_vs_eigs_gausswin.m b/matlab/tfgm/illustrations_gaborTools/rank_estimation_halko_vs_eigs_gausswin.m deleted file mode 100644 index ae7c2a8efc01af112c42250146a2b4e5e681ec79..0000000000000000000000000000000000000000 --- a/matlab/tfgm/illustrations_gaborTools/rank_estimation_halko_vs_eigs_gausswin.m +++ /dev/null @@ -1,99 +0,0 @@ -clc; clear; close all; - -% The script permet d'�tuider l'estimation du rang par Halko vs eigs -%% Repertoires pour les figures - -pwd; -pathname ='figures_JSTSP'; -if ~exist('figures_JSTSP','dir') - mkdir('figures_JSTSP'); -end -addpath('figures_JSTSP') - -%% Parametres du signal - -resampling_fs=8000; % frequence d'echantillonage -sig_len = 8192; % longueur du signal - -tolerance = 1e-6; % parametres pour Halko -proba = 1-1e-4; -r = compute_r(sig_len, sig_len, proba); - -%% Generation des parametres de la DGT - - -t_lim = [0.4, 0.6]; -f_lims = 0.2:0.05:0.6; - -win_type = 'gauss'; - -approx_win_len = 64; % changer sinon trop long. - -dgt_params = generate_dgt_parameters(win_type, approx_win_len); -signal_params = generate_signal_parameters(resampling_fs, sig_len); -[dgt, idgt] = get_stft_operators(dgt_params, signal_params); - - -%% -mask_area_list = zeros(length(f_lims),1); -ranks_arrf = zeros(length(f_lims),1); -ranks_eigs= zeros(length(f_lims),1); -t_arrf = zeros(length(f_lims),1); -t_eigs = zeros(length(f_lims),1); -s_vec_list = cell(length(f_lims),1); - - -seuil = 10^(-14); % pour la EVD via eigs -%% -for k =1:length(f_lims) - fprintf("Je suis a l'iteration numero %.f patiente\n",k); - % Mask Generation - %% - f_lim =[0.1, f_lims(k)]; - mask = generate_rectangular_mask(dgt_params.nbins,dgt_params.hop, signal_params.sig_len, t_lim, f_lim); - - [mask_area, mask_area_ratio] = get_mask_area(mask); - mask_area_list(k) = mask_area; - - fprintf('mask area:%.f\n', mask_area) - if mask_area>signal_params.sig_len - fprintf('attention %.f\n',k) - end - figure(k); - plot_mask(mask, dgt_params.nbins, dgt_params.hop, signal_params.fs); - %% Gabor multiplier - gab_mul = gen_gabmul_operator(dgt, idgt, mask); - - %% EVD via Halko - tic; - q_mat = adaptative_randomized_range_finder(gab_mul, sig_len, tolerance, r); - t_arrf(k) = toc; - - ranks_arrf(k)= size(q_mat,2); - %% EVD via eigs - tic; - [u_mat,s] = eigs(gab_mul, signal_params.sig_len, signal_params.sig_len); - t_eigs(k) = toc; - - s_vec = diag(s); - s_vec_list{k} = s_vec; - ranks_eigs(k) = length(s_vec(s_vec > seuil)); -end - -%% -save('rank_estimation.mat','ranks_arrf','ranks_eigs', 'mask_area_list',..., - 't_arrf','t_eigs', 's_vec_list'); - -%% plot figures - -figure; -plot(mask_area_list,ranks_arrf,'LineWidth',3); hold on; -plot(mask_area_list,ranks_eigs,'LineWidth',3); -%set(gca,'XScale','log') -xlabel('Mask area') -ylabel('Estimated rank') -grid('on'); -legend('Rand-EVD', 'eigs', 'Location','northwest'); -set(gca, 'FontSize', 20, 'fontName','Times'); -saveas(gcf,fullfile(pathname,'rank_estimation_gauss.png')); -saveas(gcf,fullfile(pathname,'rank_estimation_gauss.fig')); diff --git a/matlab/tfgm/illustrations_gaborTools/run_illustration_cuicui_eigenvalues.m b/matlab/tfgm/illustrations_gaborTools/run_illustration_cuicui_eigenvalues.m deleted file mode 100644 index ad95d49d0109fbda199ce5c590a27bfddecaebf6..0000000000000000000000000000000000000000 --- a/matlab/tfgm/illustrations_gaborTools/run_illustration_cuicui_eigenvalues.m +++ /dev/null @@ -1,14 +0,0 @@ -clc; clear; close all; - -%% - -resampling_fs=8000; -sig_len = 16384; - -win_type = 'hann'; -approx_win_len = 128; - -%% - -[signal_params,dgt_params, signals,sdr_mix, mask, mask_area,...., - gab_mul,q_mat,evdn] = illustration_cuicui_eigenvalues(win_type, resampling_fs, sig_len,approx_win_len );