stdmean.m
上传用户:m_sun_001
上传日期:2014-07-30
资源大小:1115k
文件大小:1k
- function Y=stdmean(X,A)
- %STDMEAN Weighted average based on error from the mean
- % stdmean(X,A)
- % This calculates a weighted mean based on how clusted the
- % data is. Each value is weighted inversely by the number
- % of standard deviations it is to the mean (Z).
- % A is the power to weight the Z by, for example:
- % if A = -1, then the values are weighted by Z^-1.
- % if A = -2, then the values are weighted by Z^-2.
- % A can be a fractional number.
- % Note : A is an optional parameter with default of -2
- %
- % For vectors, STDMEAN(X) is the mean value of the elements in X.
- % For matrices, STDMEAN(X) is a row vector containing the mean value
- % of each column.
- %
- % Early tested have shown that using the stdmean does not
- % improve the performance, or reduce phase error .
- if nargin < 2,
- A = -2;
- end
- if size(X,1) == 1,
- Z = (X - mean(X))./std(X); %Find number of std each point
- %is away from mean.
- W = abs((Z+0.01).^(A)); %Calc the weighting factor of each point
- Y = sum(X.*W)./sum(W);
- else
- for k = 1:size(X,2),
- Z(:,k) = (X(:,k) - mean(X(:,k)))./std(X(:,k));
- %Find number of std each point
- %is away from mean.
- W(:,k) = abs((Z(:,k)+0.01).^(A));
- %Calc the weighting factor of each point
- Y(:,k) = sum((X(:,k).*W(:,k)))./sum(W(:,k));
- end
- end