Mercurial > hg > smallbox
diff examples/private/remove_dc.m @ 1:7750624e0c73 version0.5
(none)
author | idamnjanovic |
---|---|
date | Thu, 05 Nov 2009 16:36:01 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/private/remove_dc.m Thu Nov 05 16:36:01 2009 +0000 @@ -0,0 +1,31 @@ +function [y,dc] = remove_dc(x,columns) +%REMOVE_DC Remove DC channel from signals. +% [Y,DC] = REMOVE_DC(X) removes the DC channel (i.e. the mean) from the +% specified (possibly multi-dimensional) signal X. Y is the DC-free +% signal and is the same size as X. DC is a scalar containing the mean of +% the signal X. +% +% [Y,DC] = REMOVE_DC(X,'columns') where X is a 2D matrix, treats the +% columns of X as a set of 1D signals, removing the DC channel from each +% one individually. Y is the same size as X and contains the DC-free +% signals. DC is a row vector of length size(X,2) containing the means of +% the signals in X. +% +% See also ADD_DC. + + +if (nargin==2 && strcmpi(columns,'columns')), columns = 1; +else columns = 0; +end + +if (columns) + dc = mean(x); + y = addtocols(x,-dc); +else + if (ndims(x)==2) % temporary, will remove in future + warning('Treating 2D matrix X as a single signal and not each column individually'); + end + dc = mean(x(:)); + y = x-dc; +end +