⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s_exp_scaling.m

📁 基于Matlab的地震数据处理显示和测井数据显示于处理的小程序
💻 M
字号:
function [seismic,aux]=s_exp_scaling(seismic,varargin)% Function applies an exponential scale factor to each trace of "seismic'.%	s(t) ==> exp(-c*t)*s(t)%% Written by: E. R.: January 9, 2004% Last updated: October 29, 2005: Append info to history field%%             [seismic,aux]=s_exp_scaling(seismic,varargin)% INPUT% seismic   seismic data set% varargin  one or more cell arrays; the first element of each cell array is a%           keyword, the other elements are parameters. Presently, keywords are:%       'coefficient'    coefficient "c" in  exp(-c*t); no default%       'amp100'         reduction in amplitude after 100 ms%                        no default;%       'amp1000'        reduction in amplitude after 1000 ms%                        no default; the three parameters are checked in the order%                        "coefficient", "amp100", "amp1000"% OUTPUT% seismic   scaled seismic data set% aux       structure with field "coefficient"; coefficient "c" in  exp(-c*t)%                                "decayps"      decay per sample, i.e. exp(-c*step)% Set default parametersparam.final_amp=0.1;param.coefficient=[];param.amp100=[];param.amp1000=[];%        Decode input arguments and assign values to defaults structureparam=assign_input(param,varargin);[nsamp,ntr]=size(seismic.traces);if isfield(seismic,'null')   for ii=1:ntr      idx=find(~isnan(seismic.traces(:,ii)));      nsamp1=idx(end)-idx(1)+1;      seismic.traces(1:nsamp1,ii)=seismic.traces(idx(1):idx(end),ii);      seismic.traces(nsamp1+1:end,ii)=NaN;   endendtest=~isnan(seismic.traces);index=find(any(test,2));seismic.traces=seismic.traces(1:index(end),:);seismic.last=seismic.first+(index(end)-1)*seismic.step;nsamp=size(seismic.traces,1);if ~isempty(param.coefficient)   coeff=param.coefficient;elseif ~isempty(param.amp100)   coeff=-log(param.amp100)/100;elseif ~isempty(param.amp1000)   coeff=-log(param.amp1000)/1000;else   tlength=seismic.last-seismic.first;   coeff=-log(param.final_amp)/tlength;endfact=exp(-coeff*(0:nsamp-1)'*seismic.step);for ii=1:ntr   seismic.traces(:,ii)=seismic.traces(:,ii).*fact;endaux.coefficient=coeff;aux.decayps=exp(-coeff*seismic.step);%	Append line to history field of "seismic"seismic=s_history(seismic,'append',['Scale coefficient: ',num2str(coeff)]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -