pressure2surfaceelevfft#
[Eta, t] = pressure2surfaceelevfft(P, fs, duration, h, heightfrombed, fmaxpcorr, fminpcorr, fcL, fcH, fmaxpcorrCalcMethod, Kpafterfmaxpcorr, kCalcMethod, Rho, dispout)
Description#
Calculate water surface elevation time series from water pressure time series by using Fast Fourier Transform
Inputs#
- P
Water pressure time series data in (N/m^2)
- fs
Sampling frequency that data collected at in (Hz)
- duration
Duration time that data are collected (second)
- h
Water depth in (m)
- heightfrombed=0;
Height from bed that data collected at in (m)
- fmaxpcorr=fs/2;
- Maximum frequency that a pressure attenuation factor applies up on that (Hz)If fmaxpcorrCalcMethod=’user’, then the smaller of calculated and user defined fmaxpcorr will be chosen
- fminpcorr=0;
- Minimum frequency that is used for defining fmaxpcorr if fmaxpcorrCalcMethod=’auto’ (Hz)fminpcorr should be smaller than fpIf swell energy exists, fminpcorr should be smaller than fp of wind sea (fpsea) and larger than fp of swell (fpswell) if there swell
- fcL=0;
Low cut-off frequency, between 0*fs to 0.5*fs (Hz)
- fcH=fs/2;
High cut-off frequency, between 0*fs to 0.5*fs (Hz)
- fmaxpcorrCalcMethod=’auto’;
- Define if to calculate fmaxpcorr and ftail or to use user defined‘user’: use user defined value for fmaxpcorr‘auto’: automatically define value for fmaxpcorr
- Kpafterfmaxpcorr=’constant’;
- Define a pressure response factor, Kp, value for frequency larger than fmaxpcorr‘nochange’: Kp is not changed for frequency larger than fmaxpcorr‘one’: Kp=1 for frequency larger than fmaxpcorr‘constant’: Kp for f larger than fmaxpcorr stays equal to Kp at fmaxpcorr (constant)
- kCalcMethod=’beji’;
- Wave number calculation method‘hunt’: Hunt (1979), ‘beji’: Beji (2013), ‘vatankhah’: Vatankhah and Aghashariatmadari (2013)‘goda’: Goda (2010), ‘exact’: calculate exact value
- Rho=1000;
Water density (kg/m^3)
- dispout=’no’;
Define to display outputs or not (‘yes’: display, ‘no’: not display)
Outputs#
- Eta
Water surface elevation time series in (m)
- t
Time (s)
Examples#
fs=2; %Sampling frequency
duration=1024; %Duration of the data
N=fs*duration; %Total number of points
df=fs/N; %Frequency difference
dt=1/fs; %Time difference, dt=1/fs
t(:,1)=linspace(0,duration-dt,N); %Time
Eta(:,1)=detrend(0.5.*cos(2*pi*0.2*t)+(-0.1+(0.1-(-0.1))).*rand(N,1));
hfrombed=4;
h=5;
k=0.2;
P=Eta.*9.81.*1000.*(cosh(k*hfrombed)/cosh(k*h));
[Eta,t]=pressure2surfaceelevfft(P,fs,duration,5,4,0.7,0.15,0,fs/2,'auto','constant','beji',1025,'yes');
References#
Beji, S. (2013). Improved explicit approximation of linear dispersion relationship for gravity waves. Coastal Engineering, 73, 11-12.
Goda, Y. (2010). Random seas and design of maritime structures. World scientific.
Hunt, J. N. (1979). Direct solution of wave dispersion equation. Journal of the Waterway Port Coastal and Ocean Division, 105(4), 457-459.
Vatankhah, A. R., & Aghashariatmadari, Z. (2013). Improved explicit approximation of linear dispersion relationship for gravity waves: A discussion. Coastal engineering, 78, 21-22.
Welch, P. (1967). The use of fast Fourier transform for the estimation of power spectra: a method based on time averaging over short, modified periodograms. IEEE Transactions on audio and electroacoustics, 15(2), 70-73.