亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? psnsps_mig.m

?? 用matlab語言寫的地震偏移成像軟件集,很有用的東東呵
?? M
字號:
function [seismig,zmig,xmig]=psnsps_mig(aryin,t,x,velmod,dz,zmax,params)
% PSNSPS_MIG: Exploding reflector depth migration by NSPS
%
% [seismig,zmig,xmig]=psnsps_mig(aryin,t,x,velmod,dz,zmax,params)
%
% psnsps performs a zero offset wavefield extrapolation using
% 	nonstationary filters. One depth step is taken through an 
%	arbitrarily laterally variable velocity field. The algorithm is
%   convolutional nonstationary phase shift implemented in the mixed domain.
%	The direction of extrapolation can be either up or down. Ecanescent
%	energy is correctly handled as a decaying real exponential. The depth
%	step can be x variant.
% 
% aryin ... matrix of zero offset data. One trace per column.
% velmod ... velocity model, same number of columns as aryin
% t ... the time coordinates for the rows of aryin.
% x ... the x coordinates of the columns of aryin
% dz ... extrapolation step size, either a scalar or a vector the same size
%	as x.
% zmax ... maximum depth to extrapolate to
% params ... vector of extrapolation parameters
%	params(1) ... maximum frequency (Hz) to extrapolate
%       ***** default = .6*fnyquist *********
%	params(2) ... width of cosine taper (Hz) to apply above params(1)
%       ***** default = .2*(fnyquist-params(1)) ********
%	params(3) ... maximum dip (degrees) to extrapolate
%       ***** default = 80 degrees *****
%	params(4) ... butterworth order of dip filter
%       ***** default = 12 *****
%	params(5) ... size of zero pad in time (seconds)
%       ***** default = min([.5*tmax, tmax/cos(params(3))]) ******
%   params(6) ... size of zero pad in space (length units)
%       ***** default = min([.5*xmax, xmax*sin(params(3))]) ******
%   params(7) ... if 1, zero pads are removed, if 0 they are retained
%       ***** default = 1 *****
%   params(8) ...  percentage of imaginary velocity to use
%       ***** default = 1.0 (percent) ********
%	params(9) ... Not used
%	params(10) ... Not used
%	params(11) ... Not used
%	params(12) ... if 1 use faster fk transforms
%	               if 0, use slower, memory conserving, transforms
%	    ******* default = 0 ******
%	params(13) ... =n means print a message as every n'th frequency 
%			is extrapolated.
%	    ******* default = 50 ******
% aryex ... the output extrapolated time section
% tex ... t coordinates of extrapolated data
% xex ... x coordinates of extrapolated data
%
% G.F. Margrave, CREWES Project, U of Calgary, 1996
%
% NOTE: It is illegal for you to use this software for a purpose other
% than non-profit education or research UNLESS you are employed by a CREWES
% Project sponsor. By using this software, you are agreeing to the terms
% detailed in this software's Matlab source file.
 

tstart=clock; % save start time
%totflops=flops;

[nsamp,ntr]=size(aryin);

if(length(t)>1)
	if(length(t)~=nsamp)
		error('Incorrect time specification')
	end
	dt=t(2)-t(1);
else
	dt=t;
	t=((0:nsamp-1)*dt)';
end

if(length(x)>1)
	if(length(x)~=ntr)
		error('Incorrect x specification')
	end
	dx=x(2)-x(1);
else
	dx=x;
	x=(0:ntr-1)*dx;
end
if(length(dz)>1)
	if(length(dz)~=ntr)
		error('Incorrect dz specification')
	end
end

fnyq=1/(2*dt);
knyq=1/(2*dx);
tmax=t(nsamp);
xmax=abs(x(ntr)-x(1));

%examine parameters
nparams=13;% number of defined parameters
if(nargin<7) params= nan*ones(1,nparams); end
if(length(params)<nparams) 
		params = [params nan*ones(1,nparams-length(params))];
end

%assign parameter defaults
if( isnan(params(1)) ) fmax= .6*fnyq; 
else fmax = params(1); if(fmax>fnyq) fmax=fnyq; end
end
if( isnan(params(2)) ) fwid = .2*(fnyq-fmax);
else fwid = params(2);
		if( (fmax+fwid)>fnyq ) fwid = fnyq-fmax; end
end
if( isnan(params(3)) ) dipmax = 85;
else dipmax = params(3); if(dipmax>90) dipmax=90; end
end
if( isnan(params(4)) ) order = 12;
else order = params(4);
end
if( isnan(params(5)) ) tpad= min([.5*tmax abs(tmax/cos(pi*dipmax/180))]);
else tpad = params(5);
end
if( isnan(params(6)) ) xpad= min([.5*xmax xmax*sin(pi*dipmax/180)]);
else xpad = params(6);
end
if( isnan(params(7)) ) padflag= 1;
else padflag = params(7);
end
if( isnan(params(8)) ) ivel= 1;
else ivel = params(8);
end
if( isnan(params(9)) ) cosflag= 1;
else cosflag = params(9);
end
if( isnan(params(10)) ) lsinc= 8;
else lsinc = params(10);
end
if( isnan(params(11)) ) ntable= 25;
else ntable = params(11);
end
if( isnan(params(12)) ) mcflag= 1;
else mcflag = params(12);
end
if( isnan(params(13)) ) fpflag= 10;
else fpflag = params(13);
end

%apply pads

%tpad
nsampnew = round((tmax+tpad)/dt+1);
nsampnew = 2^nextpow2(nsampnew);
tmaxnew = (nsampnew-1)*dt;
tnew = t(1):dt:tmaxnew;
ntpad = nsampnew-nsamp;
aryin = [aryin;zeros(ntpad,ntr)];

%xpad
ntrnew = round((xmax+xpad)/dx+1);
ntrnew = 2^nextpow2(ntrnew);
xmaxnew = (ntrnew-1)*dx+x(1);
xnew = x(1):dx:xmaxnew;
nxpad = ntrnew-ntr;
aryin = [aryin zeros(nsampnew,nxpad)];
velmod = [velmod velmod(:,length(x))*ones(1,nxpad)]; %pad velocities

disp([' tpad = ' int2str(ntpad) ' samples']);
disp([' xpad = ' int2str(nxpad) ' traces']);

%forward f transform
disp('forward f transform')

[spec,f]= fftrl(aryin, tnew);

clear aryin; %free space
df=f(2)-f(1);
nf=length(f);

%compute frequency mask
ifmaxex = round((fmax+fwid)/df+1);%determine maximum frequency to extrapolate
pct = 100*(fwid/(fmax+fwid));
fmask = [mwhalf(ifmaxex,pct); zeros(nf-ifmaxex,1)];
fmaxex = (ifmaxex-1)*df; %i.e. fmax+fwid to nearest sample

%compute wavenumber vector
kxnyq = 1./(2.*(xnew(2)-xnew(1)));
dkx = 2.*kxnyq/ntrnew;
kx=2*pi*[-kxnyq:dkx:-dkx 0:dkx:kxnyq-dkx ]';
dkx=kx(2)-kx(1);
kxnyq=-kx(1);

eikxx = exp(i*kx*xnew);
ik0=length(kx)/2 + 1;
kxh=kx(1:ik0); %first half of kx
kxh2= kxh.*kxh;
kxh2mat=kxh2(:,ones(size(xnew))); % expand to matrix



dzmat=[];
if(length(dz)>1)
	error('topographic stuff not allowed');
	dz=dz(:)';
	dzmat=dz(ones(size(kx)),:);
end

%loop over depth steps
nz=floor(zmax/dz+1);

%allocate seismig
seismig=zeros(nz,length(kx));
zmig=zeros(nz,1);

seismig(1,:)=sum(2*real(spec(1:ifmaxex,:)));

disp([int2str(nz) ' depth steps to take'])
disp([int2str(ifmaxex) ' frequencies to extrapolate']);

time0=clock;

for iz=2:nz
	%extrapolate to the next depth
	zmig(iz)=zmig(iz-1)+dz;
	
	%determine v
	v=.5*velmod(iz,:);

	%include a small imaginary component
	%v=(1+i*ivel/100)*v;
	iv2= v.^(-2);
	iv2mat= iv2(ones(size(kxh)),:);% expand to matrix
	


%
% the extrapolation matrix for nsps operates of a frequency slice of the
% (x,f) spectrum and both extrapolates and forward transforms (x to kx)
% simultaneously. If the frequency slice is considered as a column vector
% then the extrapolator must have x as the column coordinate and kx as 
% the row coordinate. This operator is nearly the transpose of that 
% required for pspi. The "nearly" stems from the requirement that the
% sign on i*kx*x has to flip to allow pspi to do an inverse transform 
% while nsps does a forward transform. 
%

	

	%jj=near(f,25);

	%now loop over frequencies
	for j=1:ifmaxex
		tmp= spec(j,:).';
		%extrapolate
		w=2*pi*f(j);
		w2=w*w;
		%build phase shift operator

		psop=dz*sqrt( w2*iv2mat - kxh2mat );
		%determine wholly evanescent wavenumbers
		kxlim=w/min(v);
		ik1=max([floor((kxnyq-kxlim)/dkx)+1,1]);
		ik2=min([length(kx)-ik1+2 length(kx)]);
		%ik2=min([floor((kxnyq+kxlim)/dkx)+1,length(kx)]);

		eop=exp(i*real(psop(ik1:ik0,:))-abs(imag(psop(ik1:ik0,:))));

		%dip filter prep
		%ind=find(v~=0.0);
		%big=1.e12;
		%px = big*ones(size(v));
		%px(ind) = sin(pi*dipmax/180)./v(ind);
		%px=px(:)';
		%build dip filter
		%if(j==1|dipmax==90)
			%dipfilt=fmask(j)*ones(size(psop));
		%else
			%ikxnot = 1 ./(w*px);
			%dipfilt = fmask(j)*(1+(kx*ikxnot).^order).^(-1);
		%end
		%extrapolate and forward kx transform
		%tmp2 = (dipfilt(ik1:ik2,:).*exp(i*real(psop(ik1:ik2,:)) ...
		tmp2 = ([eop;flipud(eop(2:ik2-ik0+1,:))].*eikxx(ik1:ik2,:))*tmp;
		%tmp2 = ([eop;eop(ik0-1:-1:ik1,:)].*eikxx(ik1:ik2,:))*tmp;

		tmp = [zeros(1,ik1-1) tmp2.' zeros(1,length(kx)-ik2)]/length(kx);

		% inverse transform over kx
		spec(j,:) = fft(fftshift(tmp));
	
		if( floor(j/fpflag)*fpflag == j)
			disp(['finished frequency ' int2str(j)]);
		end
	end

	%normalize
	%spec=spec/length(kx);

	%inverse transform over kx
	%spec=fft(fftshift(spec.')).';

	%image the current depth
	seismig(iz,:)=sum(2*real(spec(1:ifmaxex,:)));

	%rezero the x pad
	spec(:,ntrnew-nxpad+1:ntrnew)=0;

	disp(['completed depth step ' int2str(iz) ' of ' int2str(nz)])
	timenow=clock;
	timeused=etime(timenow,time0);
	timeleft=timeused*nz/iz;
	disp(['elapsed time ' num2str(timeused) ' sec. Time left ' ...
		num2str(timeleft) ' sec.']);
	
end


%remove pad
seismig=seismig(:,1:ntr);
	
xmig=x;
	
tend=etime(clock,tstart);
disp(['Total elapsed time ' num2str(tend)])
%totflops= flops-totflops;
%disp(['Total floating point operations ' num2str(totflops)])

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美挠脚心视频网站| 欧美激情在线免费观看| 久久先锋影音av鲁色资源网| 亚洲欧美综合色| 九九视频精品免费| 欧美日韩不卡一区| 国产精品国产三级国产普通话蜜臀| 婷婷开心激情综合| 91在线视频免费观看| 欧美激情综合五月色丁香小说| 亚洲成人资源网| 色丁香久综合在线久综合在线观看| 精品噜噜噜噜久久久久久久久试看| 亚洲在线观看免费视频| 成人avav影音| 亚洲国产精华液网站w| 久久99精品一区二区三区三区| 欧美日韩精品一区二区| 亚洲黄色尤物视频| 99久久精品国产一区| 国产视频一区不卡| 国模冰冰炮一区二区| 91精品国产色综合久久久蜜香臀| 亚洲国产综合色| 色一情一伦一子一伦一区| 国产精品久久久久影院色老大| 国产一区二区三区精品视频| 欧美大胆一级视频| 美女网站一区二区| 日韩午夜在线观看视频| 日本不卡在线视频| 欧美一二三区精品| 日本亚洲天堂网| 日韩女优视频免费观看| 免费成人在线影院| 精品日韩欧美一区二区| 九九热在线视频观看这里只有精品| 欧美一区二区三区视频免费播放 | 亚洲高清在线精品| 欧美日韩免费在线视频| 亚洲1区2区3区4区| 欧美一区二区三区视频免费| 六月丁香综合在线视频| 337p粉嫩大胆色噜噜噜噜亚洲| 精品一区二区三区视频在线观看| 日韩免费电影一区| 国产一区二区日韩精品| 亚洲国产精品国自产拍av| 成人h动漫精品一区二| 亚洲人成精品久久久久久| 91麻豆自制传媒国产之光| 亚洲综合无码一区二区| 欧美精品一卡两卡| 九九精品视频在线看| 久久精品日产第一区二区三区高清版 | 国产欧美日韩精品在线| 99久免费精品视频在线观看| 一区二区三区中文在线观看| 欧美精品第一页| 国产美女主播视频一区| 日韩美女精品在线| 欧美日韩另类国产亚洲欧美一级| 麻豆视频一区二区| 18成人在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕欧美一区| 欧美一区午夜精品| 丁香六月综合激情| 亚洲成人av一区二区三区| 精品国产网站在线观看| 99久久国产免费看| 蜜桃视频一区二区| 日韩美女精品在线| 26uuu亚洲综合色欧美 | 日韩欧美国产综合在线一区二区三区| 国产在线精品一区在线观看麻豆| 国产精品不卡在线观看| 制服丝袜亚洲播放| 91热门视频在线观看| 另类小说欧美激情| 亚洲一区二区视频| 国产精品无遮挡| 日韩一级免费观看| 欧洲在线/亚洲| 高清国产一区二区| 麻豆中文一区二区| 午夜视频在线观看一区二区| 中文字幕第一区| 精品日本一线二线三线不卡| 色狠狠色噜噜噜综合网| 粉嫩欧美一区二区三区高清影视 | 亚洲精品第一国产综合野| 日韩欧美国产wwwww| 色哟哟亚洲精品| 成人免费看黄yyy456| 久久国产精品72免费观看| 一区二区三区**美女毛片| 国产精品久久久久四虎| 国产亚洲1区2区3区| 日韩亚洲欧美高清| 欧美一区二区三区在线观看| 在线影院国内精品| 91小视频免费观看| 成人永久看片免费视频天堂| 国产综合色视频| 另类小说一区二区三区| 奇米在线7777在线精品| 亚洲成av人影院| 亚洲丰满少妇videoshd| 亚洲一二三区在线观看| 亚洲精品乱码久久久久| 综合欧美一区二区三区| 亚洲欧洲综合另类| 亚洲欧美一区二区不卡| 亚洲裸体在线观看| 亚洲精品中文在线观看| 亚洲丝袜自拍清纯另类| 亚洲人妖av一区二区| 一区二区免费视频| 亚洲第一电影网| 日本成人在线一区| 精品在线观看视频| 国产成人精品免费一区二区| 不卡的av电影| 一本高清dvd不卡在线观看| 色成年激情久久综合| 欧美日韩国产一二三| 91精品国产综合久久精品app| 欧美一区二区三区不卡| 久久综合色一综合色88| 国产欧美一区二区三区在线老狼 | 欧美成人a∨高清免费观看| 日韩精品专区在线影院重磅| 国产午夜精品美女毛片视频| 国产精品九色蝌蚪自拍| 亚洲一线二线三线视频| 亚洲国产美女搞黄色| 亚洲综合视频网| 国产欧美一区在线| 久久精品人人爽人人爽| 亚洲欧美另类图片小说| 亚洲国产美女搞黄色| 午夜影院在线观看欧美| 韩国女主播一区| 国产91丝袜在线播放九色| 成人黄色av电影| 色欧美88888久久久久久影院| 成人精品免费网站| 色婷婷激情一区二区三区| 欧洲人成人精品| 91精品久久久久久久99蜜桃| 777xxx欧美| 国产精品进线69影院| 亚洲图片欧美一区| 麻豆精品一区二区av白丝在线| 香蕉影视欧美成人| 成人福利在线看| 日本高清不卡aⅴ免费网站| 欧美精选一区二区| 久久品道一品道久久精品| 一区二区欧美在线观看| 精品一区二区三区蜜桃| 成人av免费在线观看| 欧美丝袜第三区| 国产欧美日韩中文久久| 一区二区三区欧美日| 亚洲午夜免费电影| 激情五月激情综合网| 欧美制服丝袜第一页| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日韩电影在线观看一区| 99国产精品久久久久久久久久 | 国产福利一区二区三区视频| 一本大道久久a久久综合婷婷| 制服丝袜日韩国产| 亚洲精品国产无天堂网2021 | 国产成a人亚洲精品| 欧美一区二区三区在线| 亚洲日本韩国一区| 国模大尺度一区二区三区| 91国偷自产一区二区三区成为亚洲经典 | 免费看欧美美女黄的网站| jiyouzz国产精品久久| 宅男在线国产精品| 国产精品久久二区二区| 国产一区二区0| 7777精品伊人久久久大香线蕉经典版下载| 国产午夜精品一区二区三区四区| 亚洲国产成人高清精品| 久久er精品视频| 日韩欧美中文字幕精品| 一区二区三区免费观看| 国产一区二区三区四区五区入口| 欧美视频一二三区| 亚洲一区免费观看| bt7086福利一区国产| 久久精品亚洲麻豆av一区二区| 日韩和欧美一区二区三区| 91精品国产综合久久久久久漫画 | 在线视频你懂得一区|