亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产亚洲精品超碰| 日韩毛片精品高清免费| 欧美国产一区在线| 午夜精品久久久久久久99水蜜桃| 国产一区在线观看麻豆| 欧美日韩一区二区三区高清 | 精品国产免费一区二区三区四区 | 久久精品欧美日韩| 亚洲成人av免费| 99久久精品99国产精品| 337p日本欧洲亚洲大胆精品| 婷婷国产在线综合| 在线观看www91| 国产精品国产自产拍在线| 精品一区二区三区视频在线观看| 色94色欧美sute亚洲线路二| 国产精品网友自拍| 国产乱码精品一区二区三区忘忧草 | 欧美国产禁国产网站cc| 精品一区二区国语对白| 欧美成人官网二区| 久久国产精品色婷婷| 欧美肥大bbwbbw高潮| 亚洲国产视频一区二区| 欧美亚洲高清一区二区三区不卡| 亚洲人成网站色在线观看| 成人污污视频在线观看| 欧美激情在线观看视频免费| 成人精品视频.| 亚洲国产精品成人综合| 成人精品免费视频| 欧美激情中文不卡| 成人午夜激情影院| 亚洲免费观看高清完整版在线 | 日韩亚洲欧美综合| 蜜臀av性久久久久蜜臀aⅴ| 欧美精品自拍偷拍动漫精品| 日韩av电影天堂| 日韩视频一区二区三区在线播放| 久久精品国产一区二区三区免费看| 日韩精品最新网址| 国产成人免费视频网站| 中文字幕佐山爱一区二区免费| 色婷婷久久久久swag精品| 亚洲成人黄色小说| 欧美成人艳星乳罩| 国产成a人无v码亚洲福利| 国产精品国产三级国产aⅴ无密码| 99久久国产综合精品女不卡| 亚洲国产精品久久艾草纯爱| 91精品国产入口| 国产在线看一区| 中文字幕永久在线不卡| 欧美色图12p| 国内精品伊人久久久久av一坑| 国产欧美日韩视频一区二区| 色婷婷综合久久久久中文| 日日欢夜夜爽一区| 欧美激情一二三区| 99国产精品一区| 五月天激情小说综合| 久久久综合视频| 色播五月激情综合网| 久久99热狠狠色一区二区| 中文一区二区在线观看| 欧美三级日韩三级国产三级| 国产美女视频一区| 一区二区三区四区国产精品| 精品免费国产二区三区 | 中文字幕一区在线观看| 91精品欧美久久久久久动漫 | 亚洲精品免费在线播放| 日韩欧美一级二级三级久久久| 成人污视频在线观看| 午夜电影网一区| 国产精品污网站| 欧美一区二区三区啪啪| 色综合欧美在线视频区| 国产一区二区在线影院| 亚洲一区欧美一区| 国产精品伦理在线| 精品少妇一区二区三区视频免付费| 91麻豆精东视频| 国产成人精品综合在线观看 | 99国产精品久久久久久久久久 | 亚洲午夜国产一区99re久久| 亚洲精品在线网站| 欧美日韩一区 二区 三区 久久精品 | 91一区二区三区在线观看| 男女男精品网站| 亚洲一区成人在线| 国产精品福利一区| 欧美激情自拍偷拍| 久久精品夜色噜噜亚洲aⅴ| 6080午夜不卡| 欧美日韩免费在线视频| 97久久超碰国产精品| 国产aⅴ综合色| 久久91精品久久久久久秒播| 日本成人超碰在线观看| 亚洲第一搞黄网站| 亚洲欧美日本在线| 亚洲色图另类专区| 日韩美女久久久| 亚洲欧洲av在线| 最好看的中文字幕久久| 国产欧美一区二区三区鸳鸯浴| 欧美v日韩v国产v| 欧美成人女星排名| 精品国产乱码久久久久久夜甘婷婷 | 精品亚洲成a人| 蜜桃av一区二区| 久久疯狂做爰流白浆xx| 美腿丝袜亚洲三区| 久久精品99国产国产精| 久久国产麻豆精品| 激情av综合网| 成人黄色电影在线| 色综合久久久久久久久| 在线视频国内自拍亚洲视频| 精品视频资源站| 日韩一区二区三区三四区视频在线观看| 在线精品视频免费观看| 欧美午夜电影在线播放| 3d动漫精品啪啪| 久久蜜桃av一区精品变态类天堂| 国产午夜精品一区二区三区视频| 国产精品欧美一级免费| 国产精品电影一区二区三区| 伊人夜夜躁av伊人久久| 五月天亚洲婷婷| 国产综合色在线| 不卡av在线网| 欧美日韩免费一区二区三区视频| 欧美一区二区三区精品| 国产亚洲一区二区在线观看| 国产精品热久久久久夜色精品三区 | 亚洲三级电影网站| 五月天久久比比资源色| 国产在线观看一区二区| a美女胸又www黄视频久久| 欧美丝袜第三区| 精品盗摄一区二区三区| 中文字幕av资源一区| 一区二区三区四区亚洲| 捆绑紧缚一区二区三区视频| av午夜一区麻豆| 欧美一区二区三区公司| 国产精品国产精品国产专区不片| 亚洲国产精品久久人人爱蜜臀| 激情图区综合网| 97久久精品人人澡人人爽| 日韩欧美国产综合一区| 自拍偷拍欧美精品| 美腿丝袜在线亚洲一区| 一本色道久久综合狠狠躁的推荐 | 亚洲人妖av一区二区| 日本欧洲一区二区| 99re6这里只有精品视频在线观看| 欧美日韩国产另类一区| 国产欧美日韩不卡免费| 五月天激情小说综合| 成人h动漫精品一区二区| 51午夜精品国产| 亚洲欧美另类在线| 国产成人精品在线看| 日韩一区二区三区在线观看| 一区二区三区中文字幕在线观看| 国产一区二区影院| 欧美一区二区在线播放| 亚洲女厕所小便bbb| 风间由美中文字幕在线看视频国产欧美| 欧美日韩一级片网站| 亚洲丝袜自拍清纯另类| 国产v日产∨综合v精品视频| 日韩一区二区三区视频在线| 亚洲午夜成aⅴ人片| 91丝袜美腿高跟国产极品老师| 国产色爱av资源综合区| 日本欧美大码aⅴ在线播放| 欧美日韩一区三区四区| 亚洲免费在线视频一区 二区| 成人一级视频在线观看| 久久久欧美精品sm网站| 美日韩一区二区三区| 777色狠狠一区二区三区| 亚洲午夜精品久久久久久久久| 色悠悠久久综合| 亚洲激情欧美激情| 色综合久久88色综合天天| 亚洲欧洲一区二区三区| 成人高清av在线| 国产精品毛片a∨一区二区三区| 国产成人av电影在线观看| 亚洲精品国产a久久久久久| 成人一区在线看| 中文字幕中文在线不卡住| 成人开心网精品视频| 亚洲欧美影音先锋| 色综合天天综合网天天看片|