Contents
% This example produce the result from Modified Gauss-Newten Full-waveform % inversion. % ----------------------------------------------- % % In this example, we process FWI from low frequency band to high frequency % band. 10 GN subproblems are solved for each frequency band which contains % 10 frequencies. For each GN subproblem, we use 7 randomly selected simultaneous % shots and roughly 20 L1 solver iterations % % We sugguest you run this script with parallel matlab, 10 workers will be the best % % Results will be saved as a mat file under results directory. % ------------------------------------------------ % % setup a random seed RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));
setup parameters for the experiment
clear; close all; model.minf = 2.9; % minimal frequency model.maxf = 22; % maximal frequency model.sourcet = 1; % source type: 1 sim source; 2 sequential source. model.name = ['/example_BG/FWIresult_BG']; % name of result model.vmin = 1480;model.vmax = 4800;% min vel and max vel for the projection model.nf = 10; % number of frequencies in each frequency band model.snf = 10; % number of frequencies for each GN updates model.ol = 5; % number of overlap frequencies for two adjacent bands model.gl = 10; % grid length model.nshot = 351;% number of shot positions model.nsim = 7; % Number of sim-shots for each GN subproblem model.sdep = 3; % source depth, unit: meters model.sp = round(linspace(1,701,351)); % source position model.rdep = 2; % receiver depth, unit: meters model.nrec = 701; % number of receivers model.rp = round(linspace(1,701,701)); % receiver positions model.water = 16; % estimated water depth, unit: number of grid
load observation data and wavelet information
load('obdata.mat') Dobs = data; clear data % observation data wavelet = wavelet; % wavelet info opts.iterations = 20;% max iterations for the l1 solver % load initial model and wavelet info load bg2dmodel.mat
inversion
[results] = MGNFWI(vel1,Dobs,wavelet,model,opts);