fn_filt
Contents
Syntax
y = fn_filt(x,tau[,'l|h|b|n'][,dim][,filtertype][,'mirror']['mask'[,mask]][,'zero'][,'detrend']['complex|phase']) y = fn_filt(x,tau[,options][,dim]) y = fn_filt(x,'detrend|detrendz'[,dim])
Description
FFT-based filter
Input:
- x ND array - data
- tau scalar or 2-elements vector or 2-element cell array - threshold
period expressed in number of samples (tau = fsampling/fthresh)
A sine wave of frequency fthresh will have its amplitude
divided by two after filtering. Low-pass filtering with fn_filt
is equivalent to convolution with a Gaussian kernel of standard
deviation sqrt(2*log(2))/(2*pi)*tau...
If there are 2 elements, they must verify tau(1) < tau(2)
- type 'l' for low-pass, 'h' for high-pass, 'b' for band-pass, 'n' for
notch
if type is not specified, it is gueesed from the format of the
'tau' argument:
taul or [taul 0] will result in a low-pass filtering
[0 tauh] will result in a high-pass filtering
[taul tauh] will result in a band-pass filtering
- dim 1, 2, or [1 2] - dimension where to apply the filter ([1 2]
results in a 2-dimensional filtering)
- filtertype
'gaussian' [default] performs a Gaussian fft filter
'sharp' performs a 0-1 fft filter (warning: this creates
oscillations at near-threshold frequencies)
'butterN' Butterworth filter of order N (if N is omitted,
default value of N=2 is used)
- 'mirror'
data will be padded with its mirror reflections before
filtering, instead of the default which effectively does wrap
around
- 'mask|maskin'
points that do not have a full neighborhood are adjusted
use 'maskin' flag to mask the input that is outside the mask,
but not the output (e.g. for a low pass filter, the holes will
be filled-in)
- 'zero' will preserve the constant even in the case of high-pass and
band-pass
- 'detrend'
removes (if high-pass or band-pass) or keep! (if
low-pass or notch) a linear trend; use fn_filt(x,'detrend')
to perform only a detrending!, and fn_filt(x,'detrendz') to
remove only the trend but not the constant
- 'complex'
return a complex signal
- 'phase' or 'phase01'
return the phase of the complex signal; 'phase01' results in
values between 0 and 1 instead of between -pi and pi
- options a string summarizing all options: for example 'hmz' results in
a high-pass filter, using mirror padding, and preserving the
constant
available shortcuts are:
l,h,b,n type (Low,High,Band,Notch)
g,s,u filter type (Gaussian,Sharp,bUtter)
z zero
d detrend
m mirror
k maskOutput: - y filtered data
Source
Thomas Deneux
Copyright 2015-2017