You can subscribe to this list here.
2001 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(10) 
_{Aug}
(5) 
_{Sep}
(3) 
_{Oct}
(41) 
_{Nov}
(41) 
_{Dec}
(33) 

2002 
_{Jan}
(75) 
_{Feb}
(10) 
_{Mar}
(170) 
_{Apr}
(174) 
_{May}
(66) 
_{Jun}
(11) 
_{Jul}
(10) 
_{Aug}
(44) 
_{Sep}
(73) 
_{Oct}
(28) 
_{Nov}
(139) 
_{Dec}
(52) 
2003 
_{Jan}
(35) 
_{Feb}
(93) 
_{Mar}
(62) 
_{Apr}
(10) 
_{May}
(55) 
_{Jun}
(70) 
_{Jul}
(37) 
_{Aug}
(16) 
_{Sep}
(56) 
_{Oct}
(31) 
_{Nov}
(57) 
_{Dec}
(83) 
2004 
_{Jan}
(85) 
_{Feb}
(67) 
_{Mar}
(27) 
_{Apr}
(37) 
_{May}
(75) 
_{Jun}
(85) 
_{Jul}
(160) 
_{Aug}
(68) 
_{Sep}
(104) 
_{Oct}
(25) 
_{Nov}
(39) 
_{Dec}
(23) 
2005 
_{Jan}
(10) 
_{Feb}
(45) 
_{Mar}
(43) 
_{Apr}
(19) 
_{May}
(108) 
_{Jun}
(31) 
_{Jul}
(41) 
_{Aug}
(23) 
_{Sep}
(65) 
_{Oct}
(58) 
_{Nov}
(44) 
_{Dec}
(54) 
2006 
_{Jan}
(96) 
_{Feb}
(27) 
_{Mar}
(69) 
_{Apr}
(59) 
_{May}
(67) 
_{Jun}
(35) 
_{Jul}
(13) 
_{Aug}
(461) 
_{Sep}
(160) 
_{Oct}
(399) 
_{Nov}
(32) 
_{Dec}
(72) 
2007 
_{Jan}
(316) 
_{Feb}
(305) 
_{Mar}
(318) 
_{Apr}
(54) 
_{May}
(194) 
_{Jun}
(173) 
_{Jul}
(282) 
_{Aug}
(91) 
_{Sep}
(227) 
_{Oct}
(365) 
_{Nov}
(168) 
_{Dec}
(18) 
2008 
_{Jan}
(71) 
_{Feb}
(111) 
_{Mar}
(155) 
_{Apr}
(173) 
_{May}
(70) 
_{Jun}
(67) 
_{Jul}
(55) 
_{Aug}
(83) 
_{Sep}
(32) 
_{Oct}
(68) 
_{Nov}
(80) 
_{Dec}
(29) 
2009 
_{Jan}
(46) 
_{Feb}
(18) 
_{Mar}
(95) 
_{Apr}
(76) 
_{May}
(140) 
_{Jun}
(98) 
_{Jul}
(84) 
_{Aug}
(123) 
_{Sep}
(94) 
_{Oct}
(131) 
_{Nov}
(142) 
_{Dec}
(125) 
2010 
_{Jan}
(128) 
_{Feb}
(158) 
_{Mar}
(172) 
_{Apr}
(134) 
_{May}
(94) 
_{Jun}
(84) 
_{Jul}
(32) 
_{Aug}
(127) 
_{Sep}
(167) 
_{Oct}
(109) 
_{Nov}
(69) 
_{Dec}
(78) 
2011 
_{Jan}
(39) 
_{Feb}
(58) 
_{Mar}
(52) 
_{Apr}
(47) 
_{May}
(56) 
_{Jun}
(76) 
_{Jul}
(55) 
_{Aug}
(54) 
_{Sep}
(165) 
_{Oct}
(255) 
_{Nov}
(328) 
_{Dec}
(263) 
2012 
_{Jan}
(82) 
_{Feb}
(147) 
_{Mar}
(400) 
_{Apr}
(216) 
_{May}
(209) 
_{Jun}
(160) 
_{Jul}
(86) 
_{Aug}
(141) 
_{Sep}
(156) 
_{Oct}
(6) 
_{Nov}

_{Dec}

S  M  T  W  T  F  S 



1
(1) 
2
(1) 
3

4
(3) 
5

6
(11) 
7
(4) 
8
(2) 
9

10

11
(2) 
12

13
(1) 
14
(8) 
15
(4) 
16
(2) 
17
(1) 
18

19

20
(2) 
21
(6) 
22
(1) 
23
(2) 
24
(1) 
25
(5) 
26

27
(1) 
28






From: <schloegl@us...>  20110223 23:03:39

Revision: 8133 http://octave.svn.sourceforge.net/octave/?rev=8133&view=rev Author: schloegl Date: 20110223 23:03:33 +0000 (Wed, 23 Feb 2011) Log Message:  experimental functions for signal processing of data with missing values Modified Paths:  trunk/octaveforge/extra/NaN/doc/README.TXT Modified: trunk/octaveforge/extra/NaN/doc/README.TXT ===================================================================  trunk/octaveforge/extra/NaN/doc/README.TXT 20110223 23:03:12 UTC (rev 8132) +++ trunk/octaveforge/extra/NaN/doc/README.TXT 20110223 23:03:33 UTC (rev 8133) @@ 1,6 +1,6 @@ NaNTb: A statistics toolbox  Copyright (C) 20002005,2009,2010 Alois Schloegl <a.schloegl@...> +Copyright (C) 20002005,2009,2010,2011 Alois Schloegl <alois.schloegl@...> FEATURES of the NaNtb: @@ 31,9 +31,6 @@ Roundoff errors avoided by using internally extended accuracy DECOVM decomposes the extended covarianced matrix into mean and cov XCOVF crosscorrelation function  NANFILTER filter function  CONVSKIPNAN convolution  CONV2SKIPNAN (CONV2NAN) 2dimensional convolution FLAG_NANS_OCCURED returns 0 if no NaN's appeared in the input data of the last call to one of the following functions, and 1 otherwise: sumskipnan, covm, center, cor, coefficient of variation, corrcoef, geomean, harmmean, @@ 48,6 +45,13 @@ delimiter files XPTOPEN read and write SAS Transport Format (XPT); reads ARFF and STATA files + The following functions are experimental, not all effects of missing values are fully understood. + E.g. Missing values can cause aliasing, also effects on bandpass und highpass filters need to be investigated. + NANCONV convolution + NANCONV2 2dimensional convolution + NANFILTER filter function + NANFFT Fourier transform + level 2a: derived functions MEAN mean (options: arithmetic, geometric, harmonic) VAR variance @@ 202,7 +206,15 @@ For these reasons, the NaNtb is a bug fix. Furthermore, the check of the input arguments is implemented simpler. Overall, the code becomes cleaner and leaner. +14) NANCONV, NANCONV2, NANFFT, NANFILTER, NANFILTER1UC +are signal processing functions for graceful handling of data with +missing values. These functions are very experimental, because the behavior in +case of data with missing values is not fully investigated. +E.g. missing values can cause aliasing, and also the behavior of bandpass and highpass +filters is not sufficiently investigated. Therefore, these functions should be +used with care. + Q: WHY SKIPPING NaN's?:  A: Usually, NaN means that the value is not available. This meaning is most @@ 260,22 +272,13 @@ d) Compile mex files: This is useful to improve speed, and is required if you used weighted samples. Check if precompiled binaries are provided. If your platform is not supported,  compile the CMexfunction SUMSKIPNAN_MEX.CPP using  mex sumskipnan_mex.cpp  mex covm_mex.cpp  mex histo_mex.cpp  + compile the CMexfunctions using "make". + Run NANINSTTEST again to check the stability of the compiled SUMSKIPNAN. e) [OPTIONAL]  In case you want to use some other SVM classifiers (besides libSVM and LibLinear),  you need to install additional toolboxes:  OSUSVM: https://sourceforge.net/projects/svm/  simpleSVM: https://sourceforge.net/projects/simplesvm/  $Id$  Copyright (C) 20002005,2009,2010 by Alois Schloegl <a.schloegl@...>  WWW: http://biosigconsulting.com/matlab/NaN/ + Copyright (C) 20002005,2009,2010,2011 by Alois Schloegl <alois.schloegl@...> + http://pub.ist.ac.at/~schloegl/matlab/NaN/ LICENSE: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 
From: <schloegl@us...>  20110223 23:03:18

Revision: 8132 http://octave.svn.sourceforge.net/octave/?rev=8132&view=rev Author: schloegl Date: 20110223 23:03:12 +0000 (Wed, 23 Feb 2011) Log Message:  experimental functions for signal processing of data with missing values Added Paths:  trunk/octaveforge/extra/NaN/inst/nanconv.m trunk/octaveforge/extra/NaN/inst/nanconv2.m trunk/octaveforge/extra/NaN/inst/nanfft.m trunk/octaveforge/extra/NaN/inst/nanfilter.m trunk/octaveforge/extra/NaN/inst/nanfilter1uc.m Removed Paths:  trunk/octaveforge/extra/NaN/inst/conv2nan.m Deleted: trunk/octaveforge/extra/NaN/inst/conv2nan.m ===================================================================  trunk/octaveforge/extra/NaN/inst/conv2nan.m 20110222 16:21:06 UTC (rev 8131) +++ trunk/octaveforge/extra/NaN/inst/conv2nan.m 20110223 23:03:12 UTC (rev 8132) @@ 1,52 +0,0 @@ function [C,N,c] = conv2nan(X,Y,arg3) % CONV2 2dimensional convolution % X and Y can contain missing values encoded with NaN. % NaN's are skipped, NaN do not result in a NaN output. % The output gives NaN only if there are insufficient input data % % [...] = CONV2NAN(X,Y); % calculates 2dim convolution between X and Y % [C] = CONV2NAN(X,Y);  % This function is part of the NaNtoolbox % http://www.dpmi.tugraz.ac.at/~schloegl/matlab/NaN/  % $Id$ % Copyright (C) 20002005,2010 by Alois Schloegl <a.schloegl@...> % This function is part of the NaNtoolbox % http://www.dpmi.tugraz.ac.at/~schloegl/matlab/NaN/  % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation; either version 2 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; If not, see <http://www.gnu.org/licenses/>;.   if nargin~=2,  fprintf(2,'Error CONV2NAN: incorrect number of input arguments\n'); end;  m = isnan(X); n = isnan(Y);  X(m) = 0; Y(n) = 0;  C = conv2(X,Y); % 2dim convolution N = conv2(real(~m),real(~n)); % normalization term c = conv2(ones(size(X)),ones(size(Y))); % correction of normalization  if nargout==1,  C = C.*c./N; elseif nargout==2,  N = N./c; end;  Added: trunk/octaveforge/extra/NaN/inst/nanconv.m ===================================================================  trunk/octaveforge/extra/NaN/inst/nanconv.m (rev 0) +++ trunk/octaveforge/extra/NaN/inst/nanconv.m 20110223 23:03:12 UTC (rev 8132) @@ 0,0 +1,59 @@ +function [C,N,c] = nanconv(X,Y,arg3) +% NANCONV computes the convolution for data with missing values. +% X and Y can contain missing values encoded with NaN. +% NaN's are skipped, NaN do not result in a NaN output. +% The output gives NaN only if there are insufficient input data +% +% [...] = NANCONV(X,Y); +% calculates 2dim convolution between X and Y +% [C] = NANCONV(X,Y); +% +% WARNING: missing values can introduce aliasing  causing unintended results. +% Moreover, the behavior of bandpass and highpass filters in case of missing values +% is not fully understood, and might contain some pitfalls. +% +% see also: CONV, NANCONV2, NANFFT, NANFILTER + +% $Id: conv2nan.m 6973 20100228 20:19:12Z schloegl $ +% Copyright (C) 20002005,2010,2011 by Alois Schloegl <alois.schloegl@...> +% This function is part of the NaNtoolbox +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ and +% http://octave.svn.sourceforge.net/viewvc/octave/trunk/octaveforge/extra/NaN/inst/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; If not, see <http://www.gnu.org/licenses/>;. + + +warning('NANCONV is experimental. For more details see HELP NANCONV'); + + +if nargin~=2, + fprintf(2,'Error NANCONV2: incorrect number of input arguments\n'); +end; + +m = isnan(X); +n = isnan(Y); + +X(m) = 0; +Y(n) = 0; + +C = conv(X,Y); % 2dim convolution +N = conv(real(~m),real(~n)); % normalization term +c = conv(ones(size(X)),ones(size(Y))); % correction of normalization + +if nargout==1, + C = C.*c./N; +elseif nargout==2, + N = N./c; +end; + Copied: trunk/octaveforge/extra/NaN/inst/nanconv2.m (from rev 8119, trunk/octaveforge/extra/NaN/inst/conv2nan.m) ===================================================================  trunk/octaveforge/extra/NaN/inst/nanconv2.m (rev 0) +++ trunk/octaveforge/extra/NaN/inst/nanconv2.m 20110223 23:03:12 UTC (rev 8132) @@ 0,0 +1,52 @@ +function [C,N,c] = conv2nan(X,Y,arg3) +% CONV2 2dimensional convolution +% X and Y can contain missing values encoded with NaN. +% NaN's are skipped, NaN do not result in a NaN output. +% The output gives NaN only if there are insufficient input data +% +% [...] = CONV2NAN(X,Y); +% calculates 2dim convolution between X and Y +% [C] = CONV2NAN(X,Y); + +% This function is part of the NaNtoolbox +% http://www.dpmi.tugraz.ac.at/~schloegl/matlab/NaN/ + +% $Id$ +% Copyright (C) 20002005,2010 by Alois Schloegl <a.schloegl@...> +% This function is part of the NaNtoolbox +% http://www.dpmi.tugraz.ac.at/~schloegl/matlab/NaN/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; If not, see <http://www.gnu.org/licenses/>;. + + +if nargin~=2, + fprintf(2,'Error CONV2NAN: incorrect number of input arguments\n'); +end; + +m = isnan(X); +n = isnan(Y); + +X(m) = 0; +Y(n) = 0; + +C = conv2(X,Y); % 2dim convolution +N = conv2(real(~m),real(~n)); % normalization term +c = conv2(ones(size(X)),ones(size(Y))); % correction of normalization + +if nargout==1, + C = C.*c./N; +elseif nargout==2, + N = N./c; +end; + Added: trunk/octaveforge/extra/NaN/inst/nanfft.m ===================================================================  trunk/octaveforge/extra/NaN/inst/nanfft.m (rev 0) +++ trunk/octaveforge/extra/NaN/inst/nanfft.m 20110223 23:03:12 UTC (rev 8132) @@ 0,0 +1,58 @@ +function [Y,N,N2] = nanfft(X,N,DIM); +% NANFFT calculates the FourierTransform of X for data with missing values. +% NANFFT is the same as FFT but X can contain missing values encoded with NaN. +% NaN's are skipped, NaN do not result in a NaN output. +% +% Y = NANFFT(X) +% Y = NANFFT(X,N) +% Y = NANFFT(X,[],DIM) +% +% [Y,N] = NANFFT(...) +% returns the number of valid samples N +% +% +% WARNING: missing values can introduce aliasing  causing unintended results. +% Moreover, the behavior of bandpass and highpass filters in case of missing values +% is not fully understood, and might contain some pitfalls. +% +% see also: FFT, XCORR, NANCONV, NANFILTER + +% $Id$ +% Copyright (C) 2005,2011 by Alois Schloegl <alois.schloegl@...> +% This function is part of the NaNtoolbox available at +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ and +% http://octave.svn.sourceforge.net/viewvc/octave/trunk/octaveforge/extra/NaN/inst/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA + +warning('NANFFT is experimental. For more details see HELP NANFFT'); + +NX = isnan(X); +X(NX) = 0; + +if nargin==1, + Y = fft(X); + N2 = sum(1NX); % + N = fft(NX); +elseif nargin==2, + Y = fft(X,N); + N2 = sum(1NX); + N = fft(NX); +elseif nargin==3, + Y = fft(X,N,DIM); + N2 = sum(1NX,DIM); % + N = fft(NX,N,DIM); +end; + Added: trunk/octaveforge/extra/NaN/inst/nanfilter.m ===================================================================  trunk/octaveforge/extra/NaN/inst/nanfilter.m (rev 0) +++ trunk/octaveforge/extra/NaN/inst/nanfilter.m 20110223 23:03:12 UTC (rev 8132) @@ 0,0 +1,62 @@ +function [Y,Z] = nanfilter(B,A,X,z); +% NANFILTER is able to filter data with missing values encoded as NaN. +% +% [Y,Z] = nanfilter(B,A,X [, Z]); +% +% If X contains no missing data, NANFILTER should behave like FILTER. +% NaNvalues are handled gracefully. +% +% WARNING: missing values can introduce aliasing  causing unintended results. +% Moreover, the behavior of bandpass and highpass filters in case of missing values +% is not fully understood, and might contain some pitfalls. +% +% see also: FILTER, SUMSKIPNAN, NANFFT, NANCONV, NANFILTER1UC + +% $Id$ +% Copyright (C) 2005,2011 by Alois Schloegl <alois.schloegl@...> +% This function is part of the NaNtoolbox available at +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ and +% http://octave.svn.sourceforge.net/viewvc/octave/trunk/octaveforge/extra/NaN/inst/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA + + +warning('NANFILTER is experimental. For more details see HELP NANFILTER'); + +na = length(A); +nb = length(B); +if any(size(X)==1) + nc = 1; +else + nc = size(X,2); +end; + +if nargin<4, + [t,Z.S] = filter(B,A,zeros(na+nb,nc)); + [t,Z.N] = filter(B,A,zeros(na+nb,nc)); +elseif isnumeric(z), + Z.S = z; + [t, Z.N] = filter(B, A, zeros(na+nb,nc)); +elseif isstruct(z), + Z = z; +end; + +NX = isnan(X); +X(NX) = 0; + +[Y , Z.S] = filter(B, A, X, Z.S); +[NY, Z.N] = filter(B, A, ~NX, Z.N); +Y = (sum(B)/sum(A)) * Y./NY; + Added: trunk/octaveforge/extra/NaN/inst/nanfilter1uc.m ===================================================================  trunk/octaveforge/extra/NaN/inst/nanfilter1uc.m (rev 0) +++ trunk/octaveforge/extra/NaN/inst/nanfilter1uc.m 20110223 23:03:12 UTC (rev 8132) @@ 0,0 +1,54 @@ +function [x,z] = nanfilter1uc(uc,x,z); +% NANFILTER1UC is an adaptive filter for data with missing values encoded as NaN. +% +% [Y,Z] = nanfilter1uc(uc,X [, Z]); +% +% if X contains no missing data, NANFILTER behaves like FILTER(uc,[1,uc1],X[,Z]). +% +% see also: FILTER, NANFILTER, SUMSKIPNAN + +% $Id$ +% Copyright (C) 2010,2011 by Alois Schloegl <alois.schloegl@...> +% This function is part of the NaNtoolbox available at +% http://pub.ist.ac.at/~schloegl/matlab/NaN/ and +% http://octave.svn.sourceforge.net/viewvc/octave/trunk/octaveforge/extra/NaN/inst/ + +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 021111307 USA + + +na = 2; %length(A); +nb = 2; %length(B); +if any(size(x)==1) + nc = 1; +else + nc = size(x,2); +end; + +acN = zeros(1,nc); +if nargin<3, + z = zeros(1,nc); +end; +acc = NaN(1,nc); +for k = 1:size(x,1), + ix = isnan(x(k,:)); + acN = acN.*ix+1; + UC1 = ((1uc).^acN); + acc(~ix) = (1UC1(~ix)) .* x(k,~ix) + z(~ix); % / A{1}; + ix = isnan(acc); + acc(ix) = x(k,ix); + z = (1uc) * acc; + x(k,:) = acc; +end; + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. 