亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gennoiseds.m

?? 遞歸貝葉斯估計的工具包
?? M
?? 第 1 頁 / 共 2 頁
字號:
function NoiseDS = gennoiseds(ArgDS)% GENNOISEDS    Generates a NoiseDS data structure describing a noise source.%%   NoiseDS = gennoiseds(ArgDS)%%   This function generates a ReBEL noise source which is encapsulated in the NoiseDS data structure.%   All arguments to the function are passed via the ArgDS argument data structure which has the%   following fields, depending on the required noise source type:%%   1) Gaussian Noise Source   :  Single Gaussian noise source%%      ArgDS.type    : (string)    'gaussian'%           .cov_type : (string)    'full'       full covariance matrix (default value)%                                  'diag'       single diagonal covariance%                                  'sqrt'       square-root form (lower triangular Cholesky factor)%                                  'sqrt-diag'  square-root single diagonal form%           .tag     : (string)     ID tag      (default='')%           .dim     : (scalar)     noise vector length%           .mu      : (c-vector)   mean vector%           .cov     : (matrix)     covariance matrix (should comply with cov_type)%%   2) Combination Gaussian Noise Source : Combination of N independent Gaussian sources. All Gaussian%                                          sources must have the same cov_type.%%      ArgDS.type     : (string)      'combo-gaussian'%           .tag      : (string)      ID tag%           .dim      : (scalar)      noise vector length%           .noiseSources : (cell array)  cell array of N Guassian noise sources (NoiseDS data structures)%%%   3) Generic Combination Noise Source : Combination of N independent noise sources.%%      ArgDS.type     : (string)      'combo'%           .tag      : (string)      ID tag%           .dim      : (scalar)      noise vector length%           .noiseSources : (cell array)  cell array of N noise sources (NoiseDS data structure)%%%   4) Scalar Gamma noise source%%      ArgDS.type     : (string)      'gamma'%           .tag      : (string)      ID tag%           .dim      : (scalar)      1 (multivariate Gamma noise not yet supported)%           .alpha    : (scalar)      alpha parameter%           .beta     : (scalar)      beta parameter%%%   5) Gaussian Mixture noise Source%%      ArgDS.type     : (string)   'gmm'%           .cov_type  : (string)   'full'       full covariance matrix (default value)%                                  'diag'       single diagonal covariance%                                  'sqrt'       square-root form (lower triangular Cholesky factor)%                                  'sqrt-diag'  square-root single diagonal form%           .tag     : (string)     ID tag      (default='')%           .dim     : (scalar)     noise vector dimension%           .M       : (scalar)     number of Gaussian component densities%           .mu      : (dim-by-M matrix)  noise mean vectors of M mixture components%           .cov     : (dim-by-dim-by-M matrix)  noise covariance matrices of N mixture components (should comply with cov_type)%           .weights : (1-by-N vector)    mixing weights (priors) of mixture components%%%   The generated noise source data structure, NoiseDS, has the following required fields. Depending on the noise source%   type, the data structure may also have other type dependent fields. See documentation for full details.%%     NoiseDS.type       : (string) data structure type : 'NoiseDS'%            .ns_type    : (string) noise source type%            .dim        : (scalar) noise source dimension%            .sample     : (function handle) Function to generate N noise source samples%            .likelihood : (finction handle) Function to evaluate the likelihood of a given noise source sample%            .update     : (function handle) <<optional>> Function to update the internal structure of noise source.%                                            This is not required of all noise sources.%%   See also%     CONSISTENT, GENSYSNOISEDS%%   Copyright  (c) Rudolph van der Merwe (2002)%%   This file is part of the ReBEL Toolkit. The ReBEL Toolkit is available free for%   academic use only (see included license file) and can be obtained by contacting%   rvdmerwe@ece.ogi.edu.  Businesses wishing to obtain a copy of the software should%   contact ericwan@ece.ogi.edu for commercial licensing information.%%   See LICENSE (which should be part of the main toolkit distribution) for more%   detail.%========================================================================================================%--- ERROR CHECKING & TYPE INDEPENDENT STRUCTURE ASSIGNMENT ---------------------------------------------if (nargin ~= 1), error(' [ gennoiseds ] Incorrect number of inputs'); endif ~isstruct(ArgDS), error(' [ gennoiseds ] The input argument to this function must be an argument data structure.'); endif ~(isfield(ArgDS,'type') & ischar(ArgDS.type))  error(' [ gennoiseds ] The argument data structure must have a ''type'' field, specifying the desired noise source type. This field must be a string.');else  Noise.type = ArgDS.type;       % assign noise source typeendif isfield(ArgDS,'tag')          % assign tag  if ischar(ArgDS.tag)    Noise.tag = ArgDS.tag;  else    error(' [ gennoiseds ] The ''tag'' field must be a string.');  endelse  Noise.tag = '';endif (isfield(ArgDS,'dim') & isnumeric(ArgDS.dim) & (length(ArgDS.dim(:))==1))   %-- Check for and assign noise source dimension  Noise.dim  = ArgDS.dim;else  error(' [ gennoiseds ] Noise source dimension not specified or not a scalar.');end%--- BUILD NOISE SOURCE DEPENDENT ON TYPE ----------------------------------------------------switch (Noise.type)%=============================================================================================case 'gamma'    if (Noise.dim~=1)        error(' [ gennoiseds::gamma ] Multivariate Gamma noise not supported yet.');    end    if isfield(ArgDS,'alpha') & isnumeric(ArgDS.alpha) & (size(ArgDS.alpha) == [1 1])        Noise.alpha = ArgDS.alpha;    else        error(' [ gennoiseds::gamma ] Alpha parameter must be a scalar');    end    if isfield(ArgDS,'beta') & isnumeric(ArgDS.beta) & (size(ArgDS.beta) == [1 1])        Noise.beta = ArgDS.beta;    else        error(' [ gennoiseds::gamma ] Beta parameter must be a scalar');    end    Noise.mu = Noise.alpha*Noise.beta;    Noise.cov = Noise.alpha*(Noise.beta^2);    NoiseDS.type = 'NoiseDS';    NoiseDS.ns_type = Noise.type;    NoiseDS.tag = Noise.tag;    NoiseDS.dim = Noise.dim;    NoiseDS.alpha = Noise.alpha;    NoiseDS.beta = Noise.beta;    NoiseDS.mu = Noise.mu;    NoiseDS.cov = Noise.cov;    NoiseDS.sample = @sample_gamma;    NoiseDS.likelihood = @likelihood_gamma;%=============================================================================================case 'gaussian'    %-- check for and assign cov_type    if isfield(ArgDS,'cov_type')        if (ischar(ArgDS.cov_type) & stringmatch(ArgDS.cov_type,{'full','diag','sqrt','sqrt-diag'}))            Noise.cov_type = ArgDS.cov_type;        else            error(' [ gennoiseds::gaussian ] Noise source cov_type not recognized or not a string.');        end    else        warning(' [ gennoiseds::gaussian ] Covariance type field .cov_type not assigned!. Assuming default value, ''full''');        Noise.cov_type = 'full';             % default cov_type    end    %-- assign noise source mean vector    if ~isfield(ArgDS,'mu')        Noise.mu = zeros(Noise.dim,1);    % default value    else        Noise.mu = ArgDS.mu;    end    if ~isfield(ArgDS,'cov')      warning(' [ gennoiseds::gaussian ] Covariance field .cov not assigned!. Assuming default unity value.');    end    %-- assign rest of noise source structure    switch (Noise.cov_type)    %.............................................................................................    case 'full'        %-- assign noise source covariance structure        if ~isfield(ArgDS,'cov')            Noise.cov = eye(Noise.dim);    % default value        elseif (isnumeric(ArgDS.cov) & (size(ArgDS.cov) == [Noise.dim Noise.dim]))            Noise.cov = ArgDS.cov;        else            error([' [ gennoiseds::gaussian::full ] Noise source covariance matrix of incorrect ' ...                   'dimensions or type.']);        end    %.............................................................................................    case 'diag'        %-- assign noise source covariance structure        if ~isfield(ArgDS,'cov')            Noise.cov = eye(Noise.dim);           % default value        elseif (isnumeric(ArgDS.cov) & (size(ArgDS.cov) == [Noise.dim Noise.dim]))            % check if covariance only has entries on the diagonal            if (ArgDS.cov==diag(diag(ArgDS.cov)))                Noise.cov = ArgDS.cov;              % assign covariance matrix            else                error([' [ gennoiseds::gaussian::diag ] Diagonal Guassian noise source cannot ' ...                       'have non-zero off diagonal values in the covariance matrix.']);            end        else            error([' [ gennoiseds::gaussian::diag ] Noise source covariance matrix of incorrect ' ...                  'dimensions or type.']);        end    %.............................................................................................    case 'sqrt'        %-- assign noise source covariance structure        if ~isfield(ArgDS,'cov')            Noise.cov = eye(Noise.dim);    % default value        elseif (isnumeric(ArgDS.cov) & (size(ArgDS.cov) == [Noise.dim Noise.dim]))            Noise.cov = ArgDS.cov;        else            error([' [ gennoiseds::gaussian::sqrt ] Noise source covariance matrix of incorrect ' ...                   'dimensions or type.']);        end    %.............................................................................................    case 'sqrt-diag'        %-- assign noise source covariance structure        if ~isfield(ArgDS,'cov')            Noise.cov = eye(Noise.dim);            % default value        elseif (isnumeric(ArgDS.cov) & (size(ArgDS.cov) == [Noise.dim Noise.dim]))            % check if covariance only has entries on the diagonal            if (ArgDS.cov == diag(diag(ArgDS.cov)))                Noise.cov = ArgDS.cov;               % assign covariance matrix            else                error([' [ gennoiseds::gaussian::sqrt-diag ] Diagonal Guassian noise source ' ...                       'cannot have non-zero off diagonal values in the covariance matrix.']);            end        else            error([' [ gennoiseds::gaussian::sqrt-diag ] Noise source covariance matrix of ' ...                   'incorrect dimensions or type.']);        end    %.............................................................................................    otherwise        error(' [ gennoiseds::gaussian ] Unkown noise source cov_type.');    end    % Restructure NoiseDS data structure    NoiseDS.type = 'NoiseDS';    NoiseDS.ns_type = Noise.type;    NoiseDS.cov_type = Noise.cov_type;    NoiseDS.tag = Noise.tag;    NoiseDS.dim = Noise.dim;    NoiseDS.mu = Noise.mu;    NoiseDS.cov = Noise.cov;    NoiseDS.sample = @gaussample;    NoiseDS.update = @update_gaussian;    NoiseDS.likelihood = @gauseval;%===================================================================================================case 'combo-gaussian'    if (~isfield(ArgDS,'noiseSources') | ~iscell(ArgDS.noiseSources))        error([' [ gennoiseds::combo-gaussian ] Sub noise source field (ArgDS.noiseSources) is ' ...               'missing or is not a cell array.']);    end    Noise.N = length(ArgDS.noiseSources);    % number of sub noise sources    if (Noise.N < 2)        error([' [ gennoiseds::combo-gaussian ] A combo-Gaussian noise sources needs at ' ...               'least 2 sub noise sources.']);    end    noisetype = ArgDS.noiseSources{1}.ns_type;    cov_type = ArgDS.noiseSources{1}.cov_type;    % Check cov_type type for correctness    if ~(stringmatch(noisetype,{'gaussian','combo-gaussian'}) & ...         stringmatch(cov_type,{'full','diag','sqrt','sqrt-diag'}))        error(['[ gennoiseds::combo-gaussian ] A combination Gaussian noise source can ' ...               'only have Gaussian sub noise sources.']);    end    % check for consistentency of cov_type of sub noise sources    for k=1:Noise.N        subNoise = ArgDS.noiseSources{k};        if ~stringmatch(subNoise.cov_type,cov_type)            error('[ gennoiseds::combo-gaussian ] Sub noise sources does not have consistentent cov_types.');        end    end    Noise.cov_type = cov_type;                    % assign cov_type    Noise.mu   = zeros(Noise.dim,1);            % setup mean vector    Noise.cov  = zeros(Noise.dim);              % setup covariance matrix    Noise.idxArr = zeros(Noise.N,2);            % buffer for beginning and ending indeces of sub noise                                                % source entries in global mean and covariance    % Extract sub noise source detail and build combo noise source    dim = 0;    for j=1:Noise.N,        subNoise = ArgDS.noiseSources{j};       % copy j'th sub noise source        dim = dim + subNoise.dim;               % add sub noise dimension to global dimension        ind1 = dim-subNoise.dim+1;              % calculate beginning index value        ind2 = dim;                             % calculate ending index value        Noise.idxArr(j,:) = [ind1 ind2];        % store indeces in index array        Noise.mu(ind1:ind2,1) = subNoise.mu;    % copy sub noise source mean        Noise.cov(ind1:ind2,ind1:ind2) = subNoise.cov;  % copy sub noise covariance    end    if (Noise.dim ~= dim),        error([' [ gennoiseds::combo-gaussian ] Combinded noise vector dimension does ' ...               'not agree with agregate dimension of sub noise sources.']);    end    % Restructure NoiseDS data structure    NoiseDS.type = 'NoiseDS';    NoiseDS.ns_type = Noise.type;    NoiseDS.cov_type = Noise.cov_type;    NoiseDS.tag = Noise.tag;    NoiseDS.N = Noise.N;    NoiseDS.idxArr = Noise.idxArr;    NoiseDS.dim = Noise.dim;    NoiseDS.mu = Noise.mu;    NoiseDS.cov = Noise.cov;    NoiseDS.noiseSources = ArgDS.noiseSources;    NoiseDS.sample = @sample_combo_gaussian;    NoiseDS.update = @update_combo_gaussian;    NoiseDS.likelihood = @likelihood_combo_gaussian;%==================================================================================================case 'combo'    if (~isfield(ArgDS,'noiseSources') | ~iscell(ArgDS.noiseSources))        error([' [ gennoiseds::combo ] Sub noise source field (ArgDS.noiseSources) ' ...               'is missing or is not a cell array.']);    end    Noise.N = length(ArgDS.noiseSources);     % number of sub noise sources    if (Noise.N < 2)      error('[ gennoiseds::combo-gaussian ] A combo-Gaussian noise sources needs at least 2 sub noise sources.');    end    Noise.noiseSources = ArgDS.noiseSources;  % copy cell-array of sub noise sources    Gaussian_flag = 1;                        % flag to check for the possibility of a Gaussian combination    Noise.idxArr = zeros(Noise.N,2);          % buffer for beginning and ending indeces of sub noise                                              % source entries in global mean and covariance    dim = 0;    for j=1:Noise.N,        subNoise = Noise.noiseSources{j};        dim = dim + subNoise.dim;        ind1 = dim-subNoise.dim+1;        ind2 = dim;        Noise.idxArr(j,:) = [ind1 ind2];        if ~stringmatch(subNoise.ns_type,{'gaussian','combo-gaussian'})            Gaussian_flag = 0;        end    end    if (Noise.dim ~= dim),        error([' [ gennoiseds::combo-gaussian ] Combinded noise vector dimension does ' ...               'not agree with agregate dimension of sub noise sources.']);    end    % A Gaussian combination should always be constructed if  the underlying sub    % noise sources are all Gaussian

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级中文字幕在线观看| 久久er99热精品一区二区| 色综合天天做天天爱| 国产精品三级久久久久三级| 9色porny自拍视频一区二区| 国产精品久久国产精麻豆99网站| 成人a免费在线看| 亚洲综合精品自拍| 欧美一区二区三级| 国产在线不卡一区| 中文字幕永久在线不卡| 欧美日韩视频在线第一区| 秋霞电影网一区二区| 久久综合久久综合亚洲| 91在线视频在线| 日韩激情一区二区| 久久久噜噜噜久久中文字幕色伊伊| 国产91精品露脸国语对白| 日韩美女久久久| 日韩视频免费观看高清完整版 | 国产制服丝袜一区| 国产精品久久久久久久久晋中 | 欧美乱妇20p| 国产激情一区二区三区| 亚洲免费视频成人| 精品不卡在线视频| 色系网站成人免费| 久88久久88久久久| 夜夜精品浪潮av一区二区三区| 宅男在线国产精品| 丁香六月久久综合狠狠色| 夜夜嗨av一区二区三区中文字幕| 欧美成人在线直播| 91搞黄在线观看| 粉嫩av一区二区三区在线播放| 五月天中文字幕一区二区| 亚洲免费毛片网站| 久久夜色精品国产欧美乱极品| 色久综合一二码| 国产成人av电影在线| 日韩激情中文字幕| 一区二区三区蜜桃网| 久久久亚洲国产美女国产盗摄| 欧美色涩在线第一页| 99久久精品免费| 极品少妇xxxx精品少妇| 石原莉奈在线亚洲三区| 日韩码欧中文字| 国产欧美一区二区精品忘忧草| 欧美绝品在线观看成人午夜影视| 波多野洁衣一区| 国产91在线观看| 久久99精品国产.久久久久久| 亚洲电影第三页| 亚洲精品一卡二卡| 国产精品久久看| 国产亚洲精品中文字幕| 精品国产免费一区二区三区香蕉| 欧美亚洲国产一区在线观看网站| 99久久精品国产观看| 丰满少妇久久久久久久 | 国产91色综合久久免费分享| 久久精品噜噜噜成人88aⅴ| 亚洲va天堂va国产va久| 亚洲免费观看高清在线观看| 综合av第一页| 国产精品色在线观看| 欧美激情一区在线| 国产色一区二区| 国产日韩精品久久久| 国产喂奶挤奶一区二区三区| 精品国产一区二区三区四区四| 欧美一区二区美女| 日韩欧美精品在线视频| 日韩女同互慰一区二区| 日韩精品一区二区三区四区| 日韩视频一区二区三区在线播放 | 精品久久久久久亚洲综合网| 欧美一区二区性放荡片| 日韩欧美高清在线| 久久一区二区三区四区| 久久精品一二三| 国产精品国产三级国产| 国产精品麻豆网站| 亚洲精品免费在线| 亚洲五月六月丁香激情| 日韩精品午夜视频| 久久精品国产成人一区二区三区| 毛片av一区二区| 国产精品白丝jk白祙喷水网站 | 国产欧美日韩中文久久| 国产精品成人网| 亚洲综合区在线| 国产福利一区在线| 懂色中文一区二区在线播放| 色哟哟国产精品| 欧美日韩一区二区在线观看| 欧美一区二区三区视频在线| 精品国产91洋老外米糕| 国产精品久久久久久一区二区三区| 亚洲欧美综合色| 亚洲午夜激情av| 国产中文一区二区三区| 97久久精品人人做人人爽50路| 色av一区二区| www久久精品| 亚洲精品欧美在线| 免费欧美高清视频| 成人免费视频免费观看| 欧美人xxxx| 亚洲国产激情av| 性做久久久久久免费观看| 国产精品中文字幕欧美| 色婷婷综合久久| 精品欧美久久久| 亚洲综合在线视频| 国产一区二区三区| 欧美性受xxxx黑人xyx性爽| 欧美成人精品1314www| 亚洲欧美色图小说| 国产美女精品在线| 欧美日韩精品一区二区在线播放| 久久色在线视频| 天堂一区二区在线免费观看| 夫妻av一区二区| 91精品久久久久久久久99蜜臂| 国产精品久久一级| 久久国产综合精品| 在线观看日韩国产| 国产精品区一区二区三| 免费观看成人鲁鲁鲁鲁鲁视频| 91看片淫黄大片一级在线观看| 久久夜色精品国产噜噜av| 三级欧美韩日大片在线看| 成人开心网精品视频| 欧美大片拔萝卜| 亚洲午夜精品17c| 91丨国产丨九色丨pron| 精品久久99ma| 日韩高清在线不卡| 欧洲在线/亚洲| 亚洲女人小视频在线观看| 国产精品亚洲成人| 精品日韩99亚洲| 奇米综合一区二区三区精品视频| 在线观看一区二区精品视频| 国产精品家庭影院| 高清视频一区二区| 久久精品免视看| 国产在线国偷精品免费看| 欧美mv和日韩mv国产网站| 日韩电影一区二区三区四区| 欧美性三三影院| 一区二区欧美国产| 91啪在线观看| 自拍偷自拍亚洲精品播放| 97久久超碰国产精品| 国产精品大尺度| 成人va在线观看| 亚洲天堂免费看| 91香蕉视频黄| 亚洲人精品一区| 在线精品国精品国产尤物884a| 亚洲另类色综合网站| 色综合久久久久综合99| 亚洲欧美偷拍三级| 欧美自拍偷拍一区| 亚洲一区二区三区不卡国产欧美| 91福利在线免费观看| 亚洲韩国一区二区三区| 久久久久久电影| 国产美女久久久久| 中文成人综合网| 97国产一区二区| 亚洲一区电影777| 欧美日韩电影在线| 久久不见久久见免费视频1| 精品国产91洋老外米糕| 成人综合激情网| 国产精品动漫网站| 欧美自拍偷拍一区| 免费看欧美女人艹b| 久久久91精品国产一区二区三区| 国产精品羞羞答答xxdd| 亚洲日本一区二区| 欧美日韩不卡一区| 国产伦精一区二区三区| 国产精品蜜臀在线观看| 色丁香久综合在线久综合在线观看| 亚洲成人第一页| 欧美成人a视频| 成人黄动漫网站免费app| 一区二区在线观看视频| 91精品国产欧美一区二区18| 久草这里只有精品视频| 国产精品美女久久久久久久网站| 欧美在线观看一区| 久久国产视频网| 亚洲欧美经典视频| 欧美一区二视频|