⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataindep.m

📁 回归分析工具箱
💻 M
字号:

function [X] = DataIndep(kk,func1,func2,func3,func4,func5,func6)

%   [X] = DataIndep(k,func1,func2,func3,func4,func5,func6)
%   [X] = DataIndep(k,func1,func2,func3,func4,func5)
%   [X] = DataIndep(k,func1,func2,func3,func4)
%   [X] = DataIndep(k,func1,func2,func3)
%   [X] = DataIndep(k,func1,func2)
%   [X] = DataIndep(k,func1)
%   [X] = DataIndep(k)
%   [X] = DataIndep
%
% Function mixes independent data sources (data whitened).
%
% Input parameters:
%  - k: Number of data samples (default 1000)
%  - func1,...,func6: If string, interpreted as a function of k
%    (note that this is denoted "kappa" in the text)
%    If a special string, interpreted as:
%      'f1' = sinusoid
%      'f2' = saw-tooth
%      'f3' = strange curve
%      'f4' = impulsive noise
%    (default "'f1','f2','f3','f4'")
% Return parameter:
%  - X: Data matrix (collection of row data vectors)
%
% Heikki Hyotyniemi Feb.12, 2000


if nargin < 1 | isnan(kk)
   kk = 1000;
end
k = [0:kk-1]';

if nargin < 2
   funcs = 4;
   func1 = 'f1';
   func2 = 'f2';
   func3 = 'f3';
   func4 = 'f4';
else
   funcs = nargin - 1;
end
XX = zeros(kk,funcs);

for i = 1:funcs
   eval(['func = func',num2str(i),';']);
   if strcmp(func,'f1'), func = 'sin(k/5)'; end
   if strcmp(func,'f2'), func = '(rem(k,27)-13)/9'; end
   if strcmp(func,'f3'), func = '((rem(k,23)-11)/9).^5'; end
   if strcmp(func,'f4'), func = '((rand(kk,1)<.5)*2-1).*log(rand(kk,1))'; end
   eval(['xx = ',func,';']);
   XX(:,i) = xx;   
end

figure(100)
for i = 1:funcs
   subplot(funcs,1,i);
   plot(XX(:,i))
end
title('Original signals');

XX = XX*randn(funcs,funcs);
XX = RegrCenter(XX);
X = RegrWhiten(XX);

figure(101)
for i = 1:funcs
   subplot(funcs,1,i);
   plot(X(:,i))
end
title('Mixed signals');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -