Skip to content
Snippets Groups Projects
Commit 7b1250ec authored by Marina Kreme's avatar Marina Kreme
Browse files

useless file deletion

parent 566d7f54
No related branches found
No related tags found
No related merge requests found
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
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'));
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'));
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 );
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment