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

📄 modwt_functionality_tcase.m

📁 时间序列分析中很用的源码,书的原名为时间序列分析的小波方法.
💻 M
字号:
function tc = modwt_functionality_tcase% modwt_functionality_tcase -- munit test case to test modwt functionality.%%****f* wmtsa.Tests.dwt/modwt_functionality_tcase%% NAME%   modwt_functionality_tcase -- munit test case to test modwt functionality.%% USAGE%   run_tcase('modwt_functionality_tcase')%% INPUTS%%% OUTPUTS%   tc            = tcase structure for modwt testcase.%% DESCRIPTION%%% AUTHOR%   Charlie Cornish%% CREATION DATE%   2004-Apr-25%% COPYRIGHT%   (c) 2004, 2005 Charles R. Cornish%% CREDITS%%% REVISION%   $Revision: 612 $%%***%   $Id: modwt_functionality_tcase.m 612 2005-10-28 21:42:24Z ccornish $  tc = MU_tcase_new(mfilename);tc = MU_tcase_add_test(tc, @test_normal_default);tc = MU_tcase_add_test(tc, @test_normal_wavelet);tc = MU_tcase_add_test(tc, @test_normal_nlevels_J0);tc = MU_tcase_add_test(tc, @test_normal_nlevels_conservative);tc = MU_tcase_add_test(tc, @test_normal_nlevels_maximum);tc = MU_tcase_add_test(tc, @test_normal_nlevels_supermax);tc = MU_tcase_add_test(tc, @test_normal_reflection);tc = MU_tcase_add_test(tc, @test_normal_periodic);tc = MU_tcase_add_test(tc, @test_insufficient_num_arguments);tc = MU_tcase_add_test(tc, @test_negative_J0);tc = MU_tcase_add_test(tc, @test_invalid_wavelet);tc = MU_tcase_add_test(tc, @test_invalid_nlevels);tc = MU_tcase_add_test(tc, @test_invalid_boundary);tc = MU_tcase_add_test(tc, @test_opt_RetainVJ);tc = MU_tcase_add_test(tc, @test_multivariate);returnfunction test_normal_default(mode, varargin)  % Test Description:    %    Smoke test:  Normal execution, default parameters  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X);return  function test_normal_wavelet(mode, varargin)% test_normal_wavelet --  Normal execution, specify wavelet  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8');returnfunction test_normal_nlevels_J0(mode, varargin)  % Test Description:    %    Smoke test:  Normal execution, specify nlevels = J0 = 10.  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8', 10);returnfunction test_normal_nlevels_conservative(mode, varargin)  % Test Description:    %    Smoke test:  Normal execution, specify nlevels = 'conservative'  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8', 'conservative');returnfunction test_normal_nlevels_maximum(mode, varargin)  % Test Description:    %    Smoke test:  Normal execution, specify nlevels = 'maximum'  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8', 'maximum');returnfunction test_normal_nlevels_supermax(mode, varargin)  % Test Description:    %    Smoke test:  Normal execution, specify nlevels = 'supermax'  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8', 'supermax');returnfunction test_normal_reflection(mode, varargin)% test_normal_reflection --  Normal execution, specify boundary = 'reflection'      [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'la8', '', 'reflection');  % Ascertain that NW =  2*N  N = length(X);  N2 = 2*N;  [NW, J] = size(WJt);  MU_assert_isequal(N2, NW, 'Number of wavelet coefficients not equal 2 * N', mode);  [NV, JV] = size(WJt);  MU_assert_isequal(N2, NV, 'Number of wavelet coefficients not equal 2 * N', mode);returnfunction test_normal_periodic(mode, varargin)% test_normal_periodic -- Normal execution, specify boundary = 'periodic'  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, att] = modwt(X, 'haar', '', 'periodic');  % Ascertain that NW = N  N = length(X);  [NW, J] = size(WJt);  MU_assert_isequal(N, NW, 'Number of wavelet coefficients not equal 2 * N', mode);  [NV, JV] = size(WJt);  MU_assert_isequal(N, NV, 'Number of wavelet coefficients not equal 2 * N', mode);returnfunction test_insufficient_num_arguments(mode, varargin)% test_insufficient_num_arguments -- Expected error: Insufficient number of Arguments  [X, x_att] = wmtsa_data('ecg');  try    [WJt, VJt, att] = modwt;  catch    [errmsg, msg_id] = lasterr;    MU_assert_error('MATLAB:nargchk:notEnoughInputs', msg_id, '', mode);  endreturnfunction test_negative_J0(mode, varargin)% test_negative_J0 -- Expected error:  J0 < 0  [X, x_att] = wmtsa_data('ecg');  try    [WJt, VJt, w_att] = modwt(X, 'la8', -1);  catch    [errmsg, msg_id] = lasterr;    MU_assert_error('WMTSA:negativeJ0', msg_id, '', mode);  endreturnfunction test_invalid_wavelet(mode, varargin)% test_invalid_wavelet --  Expected error:  Invalid wavelet  [X, x_att] = wmtsa_data('ecg');  try    [WJt, VJt, w_att] = modwt(X, 'not_a_wavelet');  catch    [errmsg, msg_id] = lasterr;    MU_assert_error('WMTSA:invalidWaveletTransformFilter', msg_id, '', mode);  endreturnfunction test_invalid_nlevels(mode, varargin)  % Test Description:    %    Expected error:  Invalid nlevels  [X, x_att] = wmtsa_data('ecg');  try    [WJt, VJt, w_att] = modwt(X, 'la8', 'not_a_nlevel_method');  catch    [errmsg, msg_id] = lasterr;    MU_assert_error('WMTSA:invalidNLevelsValue', msg_id, '', mode);  endreturnfunction test_invalid_boundary(mode, varargin)  % Test Description:    %    Expected error:  Invalid boundary  [X, x_att] = wmtsa_data('ecg');  try    [WJt, VJt, w_att] = modwt(X, 'la8', '', 'not_a_boundary');  catch    [errmsg, msg_id] = lasterr;    MU_assert_error('WMTSA:invalidBoundary', msg_id, '', mode);  endreturnfunction test_opt_RetainVJ(mode, varargin)  % Test Description:  Test Retain VJ option  opts.RetainVJ = 1;  [X, x_att] = wmtsa_data('ecg');  [WJt, VJt, w_att] = modwt(X, 'la8', '', 'reflection', opts);    J0 = w_att.J0;    N = length(X);  N2 = 2*N;  [NV, JV] = size(VJt);    MU_assert_isequal(J0, JV, 'Number of levels of scaling coefficients not equal J', mode);returnfunction test_multivariate(mode, varargin)  % Test Description:  Test mulitvariate verions  opts.RetainVJ = 1;  [X, x_att] = wmtsa_data('ecg');  Y = repmat(X, [1 5]);  [WJt, VJt, w_att] = modwt(Y, 'la8', '', 'reflection');      [NW J0 NChan] = size(WJt);    MU_assert_isequal(NW, w_att.NW, 'Number of wavelet coefficients not equal to att.NW.', mode);  MU_assert_isequal(J0, w_att.J0, 'Number of levels not equal to att.J0.', mode);  MU_assert_isequal(NChan, w_att.NChan, 'Number of channels not equal to att.NChan.', ...                    mode);    for (i = 1:NChan)    MU_assert_fuzzy_diff(WJt(:,:,1), WJt(:,:,i), 0, ...                         ['Multi-variate wavelet coefficient channels are not equal']);    MU_assert_fuzzy_diff(VJt(:,:,1), VJt(:,:,i), 0, ...                         ['Multi-variate scaling coefficient channels are not equal']);  end      return

⌨️ 快捷键说明

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