tfdnoise-- time - frequency noise suppression
Sept, 2000 - P. G. A. Garossino
Introduction
Removing spurious noise from today's large 3D seismic data volumes is often a less than straight forward proposition. The identification of one or more time or frequency domain attributes has, in the past, allowed for some measure of automatic editing [see tfskill,trstat , skill, glitches, clean]. Alternately spectral balancing routines would provide some measure of relief [ fxbl, spbl, dafd ]. Using time - frequency [TF] methods [see stft (1996)] it became possible to generate sub-banded time-frequency attributes for much greater control over automatic trace editing.
This routine performs a spectral balancing act in the TF domain allowing the balancing to be performed in only the affected subband[s] rather than throughout the entire frequency spectra. The result is superior noise suppression with lower residual variations between input and output than was previously possible.
Algorithm
- A record of data is loaded to memory.
- A complex time-frequency [TF] transform of the record is performed and held in memory as well.
- The transform is split into amplitude and phase components. [glitch trace TF amplitude spectra]
- The median spectral amplitude from each frequency subband is computed.
- The median of these medians is assigned as a noise threshold.
- All frequency subbands are examined sample by sample.
- Any spectral amplitude found to be less than the threshold is passed unaltered.
- Any amplitude found to exceed the calculated threshold is replaced by the median of adjacent sample amplitudes [within only that subband and within a user defined trace aperture]. [filtered trace TF amplitude spectra] [animation]
- Once this process is complete for all samples in all subbands the untouched phase information is reunited and the inverse TF transform is calculated.
- The filtered time-space [TX] data is output for this record. [animation]
- This process is repeated for all records in the input dataset.
Data Examples
Crazy Horse 3D - noise glitches
Trinidad 3D - noise glitches and unbalanced amplitudes
Foinaven 2D OBC - noise glitches
Discussion
- The elimination of noise bursts from a dataset without affecting nearby samples is the essence of this algorithm. The sample wise noise suppression acts only on the frequency components of that sample requiring attention. The result is an incredibly clean dataset with nicely balanced spectra. The majority of samples within the dataset are passed unchanged making this one of the most benign noise suppression schemes available.
- The autothresholding capability allows the routine to adapt to the data throughout the application thus saving the user from the tedious task of picking a noise threshold manually. Should the scheme appear to be calculating an inappropriate threshold a command line threshold mulitplier is available to modify the application. Test on a selection of records from the input dataset being sure to also generate difference datasets. A visual inspection of the results in addition to an examination of the actual record variables median threshold values [recorded in the printout file] will give the user a very good idea of how the program is operating. To examine the TF transform being operated on choose a few typical traces [some with noise and some without] and pass them through the USP routine stft using the command line flag -TF. The output will be a trace-wise TF transform. Contrasting the observed spectral ampltitude range with the chosen threshold would provide evidence to the need [or not] of a threshold multiplier. The user may supply a global threshold for use on the command line if desired.
- Since the candidate spectral amplitudes used in the calculation of the median replacement amplitude are taken from adjacent samples within the trace aperture chosen it is a good idea to make sure that some type of nmo has been applied to the data. An alternative approach would be to sort the data to offsets prior to application. Also since the threshold chosen is used for all time within the window of operation it is also a good idea to have corrected for spherical divergence prior to application. A simple deterministic t**n scaling should be sufficient in most cases. Both the nmo and scaling can be removed afterward if so desired.
Pitfalls
- If run on data without nmo or scaling corrections, it is possible to alias the output in a very strange time and frequency dependant fashion. The problems this may cause down the processing road are unknown.
- If your input records are large the memory requirements of this algorithm may preclude its execution on all but the largest machines. One way around this is to utop the input dataset to provide fewer traces per record. The routine tracks a user defined trace header entry [RecNum by default] to determine when the calculation of a new threshold is required. This prevents the application of mulitple thresholds within a record which can cause seams in the data. Record tracking and auto thresholding are shut off if you supplied a global threshold on the command line.
- tfdnoise has yet to be run on enough data to be considered fully developed or for all the potential pitfalls to come to light. Be sure to maintain quality control vigilance if using this approach to noise suppression. Please report anything you consider to be unacceptable as it may be easy to prevent the routine from acting in that fashion. The USP model is to release early and modify in real time for any user defined errors or omissions.
Sample Jobs
Return to the USP Home Page.