Navigation : Top/zero-down法

zero-down法


*zero-down法で個別波を計算する

 function[ height, amp_c, amp_t, period, nw ] = zerodown( f, t ); 
 % 
 % zerodown.m: computing zero-down crossing wave height from data 
 % 
 % Input - f: single column data 
 % t: time series 
 % 
 % Output - height: time series of wave height 
 % amp_c : time series of crest wave amplitude 
 % amp_t : time series of trough wave amplitude 
 % period: time series of wave period 
 % nw : number of data 
 % 
 % By Nobuhito Mori 
 % Update 2001/04/10 
 % 
 
 % 
 % --- test 
 %  
 
 itest = 0; 
 if itest == 9 
 n = 1000 
 dt = 0.1 
 T = n*dt 
 Tp = T/10 
 t = 0:dt:(n-1)*dt; 
 f = cos(2*pi/Tp*t); 
 end  
 
 % 
 % --- main computation 
 % 
 
 n = length( f );  
 
 nw = 0; 
 iflag = 0; 
 fmax = 0; 
 fmin = 0; 
 
 for i=1:n-1 
 fmax = max( f(i+1), fmax ); 
 fmin = min( f(i+1), fmin ); 
 if ( f(i) >0 ) & ( f(i+1)<= 0 ) 
 t0 = t(i) - ( t(i+1) - t(i) )/( f(i+1) - f(i) )*f(i); 
 if iflag == 0; 
 iflag = 9; 
 t_start = t0; 
 fmax = 0; 
 fmin = 0; 
 else 
 nw = nw + 1; 
 height(nw) = fmax - fmin; 
 amp_c(nw) = fmax; 
 amp_t(nw) = fmin; 
 fmax = 0; 
 fmin = 0; 
 t_end = t0; 
 period(nw) = t_end - t_start; 
 t_start = t_end; 
 end 
 end 
 end