`test_dmssa_denoise.m`This script is used to run the denoising demonstration using the synthetic 3D seismic data. It is based on the algorithm described in Huang et al. (2016).`test_dmssa_recon.m`This script is used to run the simultaneous denoising and reconstruction of the incomplete and noisy synthetic 3D seismic data. It will generate all the required binary files for Figures 1,3,4. For quick look at the performance, some 2D image comparisons will also be generated automatically.

The main source subroutines are listed below. All the input and output parameters are clearly annotated in the subroutines.

`fxymssa.m`This code is used for MSSA based denoising for 2D/3D seismic data.`fxydmssa.m`This code is used for DMSSA based denoising for 2D/3D seismic data.`fxymssa_recon.m`This code is used for MSSA based simultaneous denoising and reconstruction for 2D/3D seismic data.`fxydmssa_recon.m`This code is used for DMSSA based simultaneous denoising and reconstruction for 2D/3D seismic data.

The other source subroutines are listed below.

`genmask.m`This code is used for generating the random mask sampling operator (Chen et al., 2015) for the reconstruction test.`rperm.m`This code is used for permutating the seismic traces randomly.`snrcyk.m`This code is used to numerically measure the signal-to-noise ratio (SNR) of the reconstructed and denoised data based on the criteria introduced in Chen and Fomel (2015).

There are five different functions in the main subroutines

`P_H()`This function corresponds to the Hankelization operator in equations 11 and 12.`P_R()`This function corresponds to the rank reduction operator in equation 12.`P_RD()`This function corresponds to the damped rank reduction operator in equation 11.`P_A()`This function corresponds to the averaging operator in equations 11 and 12.`ave_antid()`This function applies averaging along the anti-diagonals of an input matrix.

The only difference between the traditional MSSA program and the proposed DMSSA program is the rank reduction operator. For a better comparison, we copy the interior functions `P_R()` and `P_RD()` as follows:

`P_R()``function`=`P_R`

=`svd`;

;`return``P_RD()``function`=`P_RD`

=`svd`;

`for`

;

`end`

;`return`

There is also a Python script called SConstruct. It is used for generating the final 2D/3D figures used in the paper. It should be run in the Madagascar software platform (Fomel et al., 2013), which is an open-source geophysical processing software package, which is available for download at .

2020-03-10