comp_filt
Complimentary filtering of a signal
Syntax
Matlab & Octave
Xf = comp_filt(X,fs,fc) % X is a vector or matrix or Xf = comp_filt(X,fc) % X is a signal structure
R
Xf <- comp_filt(X,fs,fc) % X is a vector or matrix or Xf <- comp_filt(X,fc) % X is a signal list
Description
Complimentary filtering of a signal. This breaks signal X into two or more frequency bands such that the sum of the signals in the separate bands is equal to the original signal.
Inputs
Input var | Description | Units | Default value |
---|---|---|---|
X | is a sensor vector or matrix (i.e., with a signal in each column), or a sensor structure. | N/A | N/A |
fs | is the sampling rate of the sensor data (samples per second). fs is only needed if X is not a sensor structure. | Hz | N/A |
fc | specifies the cut-off frequency or frequencies of the complimentary filters. If one frequency is given, X will be split into a low- and a high-frequency component. If fc contains more than one value, X will be split into multiple complimentary bands. Each filter length is 4*fs/fc. Filtering adds no group delay | Hz | N/A |
Outputs
Output var | Description | Units |
---|---|---|
Xf | is a cell array of filtered signals. There are n+1 cells where n is the length of fc. Cells are ordered in Xf from lowest to highest frequency. Each cell contains a vector or matrix of the same size as X, and at the same sampling rate as X. | Hz |
Notes & assumptions
Example
Matlab & Octave
The example below uses data from the file testset1.nc. You can download it from the animaltags website's example data sets. If the file is saved in your current working directory, load it via:
testset1 = load_nc(‘testset1.nc’)
Xf = comp_filt(testset1.A.data, testset1.A.sampling_rate, 0.8) plott(Xf{1,1}, testset1.A.sampling_rate, Xf{1,2}, testset1.A.sampling_rate)
R
The example below uses data from the file testset1.nc. You can download it from the animaltags website's example data sets. If the file is saved in your current working directory, load it via:
testset1 <- load_nc(‘testset1.nc’)
Xf <- comp_filt(X = testset1$A$data, sampling_rate = testset1$A$sampling_rate, fc = .8) xf <- list(Xf1 = Xf[[1]], Xf2 = Xf[[2]]) plott(xf, testset1$A$sampling_rate)
About
bugs@animaltags.org Last modified: 2 July 2017