PcorFFTFun¶
[Eta,ftailcorrection]=PcorFFTFun(input,fs,duration,nfft,h,heightfrombed,fminpcorr,fmaxpcorr,ftailcorrection,pressureattenuation,autofmaxpcorr,dispout)
DESCRIPTION¶
Apply pressure correction factor to water depth data from pressure gauge reading using FFT
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)
- heightfrombed=0.0;
- Sensor height from bed
- fminpcorr=0.15;
- Minimum frequency that automated calculated fmaxpcorr can have if autofmaxpcorr=’on’ in (Hz)
- fmaxpcorr=0.8;
- Maximum frequency for applying pressure attenuation factor
- ftailcorrection=1;
- Frequency that diagnostic tail apply after that (typically set at 2.5fm, fm=1/Tm01)
- pressureattenuation=’all’;
- Define if to apply pressure attenuation factor or not
pressureattenuation=’off’: No pressure attenuation applied
pressureattenuation=’on’: Pressure attenuation applied without correction after fmaxpcorr
pressureattenuation=’all’: Pressure attenuation applied with constant correction after fmaxpcorr
- autofmaxpcorr=’on’;
- Define if to calculate fmaxpcorr and ftailcorrection based on water depth or not
autofmaxpcorr=’off’: Off
autofmaxpcorr=’on’: On
- dispout=’on’;
- Define to display outputs or not (‘off’: not display, ‘on’: display)
OUTPUT¶
- Eta
- Corrected Water Surface Level Time Series (m)
EXAMPLE¶
[Eta]=PcorFFTFun(input,10,1024,2^10,1.07,0.05,0.04,0.8,'all','off','on');
NOTES¶
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:
[Eta,ftailcorrection]=PcorFFTFun(input,fs,duration,nfft,h,heightfrombed,fminpcorr,fmaxpcorr,ftailcorrection,pressureattenuation,autofmaxpcorr,dispout);
Example for using a provided sample input file:
[Eta]=PcorFFTFun(input,10,1024,2^10,1.07,0.05,0.04,0.8,'all','off','on');
In case of using a pressure attenuation correction function, choosing a proper upper limit for applying a correction is essential. If the upper limit is chosen unreasonably high, it will lead to a wrong over-estimation of the results. The under-estimation also can happen, if the upper limit is chosen unreasonably low. The waves that are large enough that can be sensed by a sensor should be included in attenuation correction. Note that pressure from small waves with high frequency can be damped in the water column and therefore may not reach a sensor depth. In that case, these small waves should not be included in attenuation correction. Wave height, wave frequency, water depth, height of a sensor above a seabed all play roles on if a wave effect reaches down to a sensor depth or not. Because of that, a deployment situation and wave properties should be used to define the highest frequency that a sensor senses its effect. Pressure correction should not be applied beyond that point. (refer to Applying Pressure Response Factor section)