sembstackedamp.m

来自「这是matlab在地球物理数据处理方面的源码」· M 代码 · 共 49 行

M
49
字号
function [vel,semb] = sembstackedamp(traces,t,x,v1,v2,n)% function out = sembstackedamp(traces,t,x,v1,v2,n)% traces = gather, t = timebase in seconds, x = offsets % v1 = initial velocity in m/s, v2 = final constant nmo velocity% n = number of trial velocities to calculate.
% Calculates a velocity spectra using the normalized stacked amplitude (Eqn. 3.18 of Yilmaz)
% or the simple stacked amplitude (Eqn 3.16 of Yilmaz).

[m,N] = size(traces);
delv = (v2-v1)/(n-1);subplot(1,3,1)imagesc(x,t,traces)title('gather'), xlabel('Offset m'), ylabel('Time seconds')

semb = zeros(m,n);
vel = v1:delv:v2;
for i = 1:n	junk = nmo(traces,t,x,vel(i)*ones(m,1));
	temp = sum(junk,2);
	temp2 = sum(abs(junk),2);
   for k = 1:m
      if temp2(k) == 0
         semb(k,i) = 0;
      else
         % semb(k,i) = temp(k)/temp2(k); % Case - Normalized stacked amplitude
         semb(k,i) = temp(k); % Case - Simple stacked amplitude      
      end % if
      
   end % k
       
end % i

subplot(1,3,2)
imagesc(vel,t,semb), xlabel('Stacking Velocity m/s')
ylabel('Time seconds'), title('Simple Stacked Amplitude - Image')

subplot(1,3,3)
contour(vel,t,semb), xlabel('Stacking Velocity m/s')
ylabel('Time seconds'), axis('ij'), title('Simple Stacked Amplitude - Contour')

out = 1;return;

⌨️ 快捷键说明

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