diff --git a/matlab/tfgm/tf_fading/interpolation_solver.m b/matlab/tfgm/tf_fading/interpolation_solver.m
index ca79151157990af16a8aa69cd170a415bbc73c2a..0bf82616bdfdf828e44caf4e4a6d10f637987f12 100644
--- a/matlab/tfgm/tf_fading/interpolation_solver.m
+++ b/matlab/tfgm/tf_fading/interpolation_solver.m
@@ -1,41 +1,60 @@
-function x_interp= solver_tfgm_interp(X, mask, idgt)
-%% x_interp= solver_tfgm_interp(X, mask, idgt)
+function x_est= interpolation_solver(x, mask, dgt, idgt, dgt_params,...,
+    signal_params, fig_dir)
+%% x_est= interpolation_solver(x, mask, dgt, idgt, dgt_params,...,
+%    signal_params, fig_dir)
+% Time-frequency fading solver using linear interpolation and random phases
 % This function apply a linear interpolation along
 % the frequency axis of the magnitude of observation time-frequency matrix
 % and  draws the related phase uniformly at random.
 %
 % Inputs:
-%     - X: time-frequency matrix
-%     - mask: binary mask
-%     - idgt: Inverse of Gabor transform operator
+%     - x (nd array):  mix signal
+%     - mask (nd- array): time-frequency mask
+%     - idgt,dgt (handle): DGT and IDGT . see utils/get_stft_operators.m
+%     - dgt_params (struct)  : DGT parameters
+%     - signal_params (struct) . :signals parameters
+%     - fig_dir : folder where figures are stored
 % Outputs:
-%     -x_interp: estimated signal
+%     -x_est (nd array): estimated signal
 %
 %
 % Author: Marina KREME
 
 %%
-
-X_abs = abs(X);
-X_ang = angle(X);
+x_tf = dgt(x);
+x_abs = abs(x_tf);
+x_ang = angle(x_tf);
 
 mask_copy = mask;
 
-%% modulus interpolation
-Y = X_abs.*(1-mask_copy);
+%%
+y_tf = x_abs.*(1-mask_copy);
+
+figure;
+plotdgtreal(y_tf,dgt_params.('hop'), dgt_params.('nbins'), signal_params.('fs'));
+title('Mask Before Interpolated TF matrix')
+saveas(gcf,fullfile(fig_dir,'interp_mask.pdf'));
 
-figure; imagesc(Y); title('before interp');
 
-Z = (Y==0);
+%%
+z_tf = (y_tf==0);
+y_tf(z_tf) = interp1(find(~z_tf),y_tf(~z_tf), find(z_tf),'linear');
+
 
-Y(Z) = interp1(find(~Z),Y(~Z), find(Z),'linear');
-figure; imagesc(Y); title('after interp')
+figure
+plotdgtreal(y_tf,dgt_params.('hop'), dgt_params.('nbins'), signal_params.('fs'));
+title('Interpolated TF matrix')
+saveas(gcf,fullfile(fig_dir,'interp_tf_est.pdf'));
 
 %%
 
-X_ang(mask==1) = 2*pi*rand(sum(mask(:)),1);
-X_interp = abs(Y).*exp(1i.*X_ang);
-x_interp = compute_idgt(X_interp, idgt);
+x_ang(mask==1) = 2*pi*rand(sum(mask(:)),1);
+x_est = abs(y_tf).*exp(1i.*x_ang);
+x_est = idgt(x_est);
 
+figure;
+plot_spectrogram(x_est, dgt_params,signal_params, dgt);
+title('Reconstructed signal by interp')
+saveas(gcf,fullfile(fig_dir,'interp_sig_est.pdf'));
 
 end
\ No newline at end of file