SeaSwellFun¶
[Hm0,Hm0sea,Hm0swell,Tp,Tpsea,Tpswell,fp,fseparation,f,Syy]=SeaSwellFun(input,fs,duration,nfft,h,fmin,fmax,ftailcorrection,tailpower,fminswell,fmaxswell,mincutoff,maxcutoff,tailcorrection,dispout)
DESCRIPTION¶
Separate sea wave from swell wave
INPUT¶
- input=importdata(‘h.mat’);
- Load water depth (h)/surface elevation (Eta) data and rename it “input” in (m)
- fs=10;
- Sampling frequency that data collected at in (Hz)
- duration=1024;
- Duration time that data collected in input in each burst in second
- nfft=2^10;
- NFFT for Fast Fourier Transform
- h=1;
- Mean water depth in (m)
- fmin=0.04;
- Minimum frequency for cut off the lower part of spectra
- fmax=1;
- Maximum frequency for cut off the upper part of spectra
- ftailcorrection=1;
- Frequency that diagnostic tail apply after that (typically set at 2.5fm, fm=1/Tm01)
- tailpower=-4;
- Power that diagnostic tail apply based on that (-3 for shallow water to -5 for deep water)
- fminswell=0.1;
- Minimum frequency that is used for Tpswell calculation
- fmaxswell=0.25;
- Maximum frequency that swell can have, It is about 0.2 in Gulf of Mexico
- mincutoff=’off’;
- Define if to cut off the spectra below fmin
mincutoff=’off’: Cutoff off
mincutoff=’on’: Cutoff on
- maxcutoff=’off’;
- Define if to cut off the spectra beyond fmax
maxcutoff=’off’: Cutoff off
maxcutoff=’on’: Cutoff on
- tailcorrection=’off’;
- Define if to apply diagnostic tail correction or not
tailcorrection=’off’: Not apply
tailcorrection=’jonswap’: JONSWAP Spectrum tail
tailcorrection=’tma’: TMA Spectrum tail
- dispout=’on’;
- Define to display outputs or not (‘off’: not display, ‘on’: display)
OUTPUT¶
- Hm0
- Zero-Moment Wave Height (m)
- Hm0sea
- Sea Zero-Moment Wave Height (m)
- Hm0swell
- Swell Zero-Moment Wave Height (m)
- Tp
- Peak wave period (second)
- Tpsea
- Peak Sea period (second)
- Tpswell
- Peak Swell Period (second)
- fp
- Peak Wave Frequency (Hz)
- f
- Frequency (Hz)
- fseparation
- Sea and Swell Separation Frequency (Hz)
- Syy
- Wave Surface Elevation Power Spectrum (m^2s)
EXAMPLE¶
[Hm0,Hm0sea,Hm0swell,Tp,Tpswell,fp,fseparation,f,Syy]= SeaSwellFun(input,10,1024,2^10,1.07,0.05,2,0.9,-4,0.1,0.25,'on','on','off','on');
NOTES¶
In case that data are measured by a pressure sensor, data should be corrected for pressure attenuation. In that case, function “PcorFFTFun.m” or “PcorZerocrossingFun.m” should be called first to correct pressure (water depth) data before calculating wave properties. Results from either of those functions can be imported to this function for spectral analysis of wave parameters. If provided “RunOceanlyz.m” file is used, it will do this procedure if proper input parameters are selected in “oceanlyzinput.m” file. Please read the note in “PcorFFTFun.m”.
This function can be used as a standalone command in Matlab/GNU Octave command line or it can be embedded in Matalb/GNU Octave script file (.m file) as:
[Hm0,Hm0sea,Hm0swell,Tp,Tpsea,Tpswell,fp,fseparation,f,Syy]=SeaSwellFun(input,fs,duration,nfft,h,fmin,fmax,ftailcorrection,tailpower,fminswell,fmaxswell,mincutoff,maxcutoff,tailcorrection,dispout);
Example for using a provided sample input file:
[Hm0,Hm0sea,Hm0swell,Tp,Tpswell,fp,fseparation,f,Syy]= SeaSwellFun(input,10,1024,2^10,1.07,0.05,2,0.9,-4,0.1,0.25,'on','on','off','on');