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

📄 plot_fit.m

📁 用于模拟时变非平稳的ARMA过程
💻 M
📖 第 1 页 / 共 2 页
字号:
function plot_fit(exp, fig, style, test, sub)% function plot_fit(exp, fig, style, test, sub)%   This file is part of the TFPM toolbox v1.0 (c)%   michael.jachan@tuwien.ac.at and underlies the GPL.% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;tfpm;exp= 'ord2A';fig= 99;style= '-';test= 0;sub= 1;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%re_im= 'i';mo_no= 'n';alpha= 1/2;beta = 1/2;rho= 1-log(12);%rho=0;M= 2;L= 2;MSEn= [];meanMn= [];meanLn= [];for n= 6:9   N= 2^n;   resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no);   load(resultname)   sprintf('%s%4d', resultname, MM)   switch(exp(end))    case 'A'     Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1;    case 'B'     Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1;    case 'C'     Ns= (2*(1:Mmax))'*(2*(0:Lmax)+1)-1;   end;if(sub)   ee     = min(log(EE)     , [], 3);   eeprime= min(log(EEprime), [], 3);else   ee     = log(EE(:, :, 1, :));   eeprime= log(EEprime(:, :, 1, :));end;   MDLhist= zeros(Mmax, Lmax+1);   BIChist= zeros(Mmax, Lmax+1);   AIChist= zeros(Mmax, Lmax+1);   GIChist= zeros(Mmax, Lmax+1);   MIChist= zeros(Mmax, Lmax+1);   mdlhist= zeros(Mmax, Lmax+1);   bichist= zeros(Mmax, Lmax+1);   aichist= zeros(Mmax, Lmax+1);   gichist= zeros(Mmax, Lmax+1);   michist= zeros(Mmax, Lmax+1);      for mm= 1:MM      e= ee(:, :, 1, mm);      eprime= eeprime(:, :, 1, mm);      MDL= eprime + (log(N+1)+rho)  *(Ns+1/2)/N;      BIC= eprime + log(N)          *(Ns    )/N;      AIC= eprime + 2               *(Ns    )/N;      GIC= eprime + (2+rho)         *(Ns    )/N;      MIC= eprime + (1+rho+log(N)/2)*(Ns    )/N;      mdl= e + (log(N+1)+rho)  *(Ns+1/2)/N;      bic= e + log(N)          *(Ns    )/N;      aic= e + 2               *(Ns    )/N;      gic= e + (2+rho)         *(Ns    )/N;      mic= e + (1+rho+log(N)/2)*(Ns    )/N;      [MMDL, LMDL] = find(MDL==min(min(MDL)));LMDL= LMDL-1;      [MBIC, LBIC] = find(BIC==min(min(BIC)));LBIC= LBIC-1;      [MAIC, LAIC] = find(AIC==min(min(AIC)));LAIC= LAIC-1;      [MGIC, LGIC] = find(GIC==min(min(GIC)));LGIC= LGIC-1;      [MMIC, LMIC] = find(MIC==min(min(MIC)));LMIC= LMIC-1;      [Mmdl, Lmdl] = find(mdl==min(min(mdl)));Lmdl= Lmdl-1;      [Mbic, Lbic] = find(bic==min(min(bic)));Lbic= Lbic-1;      [Maic, Laic] = find(aic==min(min(aic)));Laic= Laic-1;      [Mgic, Lgic] = find(gic==min(min(gic)));Lgic= Lgic-1;      [Mmic, Lmic] = find(mic==min(min(mic)));Lmic= Lmic-1;%      [N M L mm MMDL, LMDL, MBIC, LBIC, MAIC, LAIC, MGIC, LGIC, MMIC, LMIC]%      [N M L mm Mmdl, Lmdl, Mbic, Lbic, Maic, Laic, Mgic, Lgic, Mmic, Lmic]      MDLhist(MMDL, LMDL+1)= MDLhist(MMDL, LMDL+1) + 1;      BIChist(MBIC, LBIC+1)= BIChist(MBIC, LBIC+1) + 1;      AIChist(MAIC, LAIC+1)= AIChist(MAIC, LAIC+1) + 1;      GIChist(MGIC, LGIC+1)= GIChist(MGIC, LGIC+1) + 1;      MIChist(MMIC, LMIC+1)= MIChist(MMIC, LMIC+1) + 1;      mdlhist(Mmdl, Lmdl+1)= mdlhist(Mmdl, Lmdl+1) + 1;      bichist(Mbic, Lbic+1)= bichist(Mbic, Lbic+1) + 1;      aichist(Maic, Laic+1)= aichist(Maic, Laic+1) + 1;      gichist(Mgic, Lgic+1)= gichist(Mgic, Lgic+1) + 1;      michist(Mmic, Lmic+1)= michist(Mmic, Lmic+1) + 1;   end;   MDLM= sum(MDLhist.').';MDLL= sum(MDLhist);   BICM= sum(BIChist.').';BICL= sum(BIChist);   AICM= sum(AIChist.').';AICL= sum(AIChist);   GICM= sum(GIChist.').';GICL= sum(GIChist);   MICM= sum(MIChist.').';MICL= sum(MIChist);   mdlM= sum(mdlhist.').';mdlL= sum(mdlhist);   bicM= sum(bichist.').';bicL= sum(bichist);   aicM= sum(aichist.').';aicL= sum(aichist);   gicM= sum(gichist.').';gicL= sum(gichist);   micM= sum(michist.').';micL= sum(michist);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%figure(n);clf;subplot(4, 2, 1);bar(MDLM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 2);bar(MDLL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 3);bar(BICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 4);bar(BICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 5);bar(AICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 6);bar(AICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)subplot(4, 2, 7);bar(GICM, 1);axis([.5 Mmax+0.5 0 MM])subplot(4, 2, 8);bar(GICL, 1);axis([.5 Lmax+1.5 0 MM])set(gca, 'XTick', 1:Lmax+1)set(gca, 'XTickLabel', 0:Lmax)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%mean= [    sum((1:Mmax)'.*MDLM)/MM;    sum((1:Mmax)'.*BICM)/MM;    sum((1:Mmax)'.*AICM)/MM;    sum((1:Mmax)'.*GICM)/MM;    sum((1:Mmax)'.*MICM)/MM;    sum((1:Mmax)'.*mdlM)/MM;    sum((1:Mmax)'.*bicM)/MM;    sum((1:Mmax)'.*aicM)/MM;    sum((1:Mmax)'.*gicM)/MM;    sum((1:Mmax)'.*micM)/MM;    ];meanMn= [meanMn mean];mean= [    sum((0:Lmax).*MDLL)/MM;    sum((0:Lmax).*BICL)/MM;    sum((0:Lmax).*AICL)/MM;    sum((0:Lmax).*GICL)/MM;    sum((0:Lmax).*MICL)/MM;    sum((0:Lmax).*mdlL)/MM;    sum((0:Lmax).*bicL)/MM;    sum((0:Lmax).*aicL)/MM;    sum((0:Lmax).*gicL)/MM;    sum((0:Lmax).*micL)/MM;    ];meanLn= [meanLn mean];mse= [       10*log10((sum(((1:Mmax)'-M).^2.*MDLM) + sum(((0:Lmax)-L).^2.*MDLL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*BICM) + sum(((0:Lmax)-L).^2.*BICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*AICM) + sum(((0:Lmax)-L).^2.*AICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*GICM) + sum(((0:Lmax)-L).^2.*GICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*MICM) + sum(((0:Lmax)-L).^2.*MICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*mdlM) + sum(((0:Lmax)-L).^2.*mdlL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*bicM) + sum(((0:Lmax)-L).^2.*bicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*aicM) + sum(((0:Lmax)-L).^2.*aicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*gicM) + sum(((0:Lmax)-L).^2.*gicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*micM) + sum(((0:Lmax)-L).^2.*micL))/MM/(M^2+L^2));       ];   MSEn= [MSEn mse];   drawnowendN= 256;L= 2;MSEm= [];meanMm= [];meanLm= [];for M= 2:5   resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no);   load(resultname)   sprintf('%s%4d', resultname, MM)   switch(exp(end))    case 'A'     Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1;    case 'B'     Ns= (2:(1+Mmax))'*(2*(0:Lmax)+1)-1;    case 'C'     Ns= (2*(1:Mmax))'*(2*(0:Lmax)+1)-1;   end;   if(sub)   ee     = min(log(EE)     , [], 3);   eeprime= min(log(EEprime), [], 3);else   ee     = log(EE(:, :, 1, :));   eeprime= log(EEprime(:, :, 1, :));end;   MDLhist= zeros(Mmax, Lmax+1);   BIChist= zeros(Mmax, Lmax+1);   AIChist= zeros(Mmax, Lmax+1);   GIChist= zeros(Mmax, Lmax+1);   MIChist= zeros(Mmax, Lmax+1);   mdlhist= zeros(Mmax, Lmax+1);   bichist= zeros(Mmax, Lmax+1);   aichist= zeros(Mmax, Lmax+1);   gichist= zeros(Mmax, Lmax+1);   michist= zeros(Mmax, Lmax+1);   for mm= 1:MM      e= ee(:, :, 1, mm);      eprime= eeprime(:, :, 1, mm);      MDL= eprime + (log(N+1)+rho)  *(Ns+1/2)/N;      BIC= eprime + log(N)          *(Ns   )/N;      AIC= eprime + 2               *(Ns   )/N;      GIC= eprime + (2+rho)         *(Ns   )/N;      MIC= eprime + (1+rho+log(N)/2)*(Ns   )/N;      mdl= e + (log(N+1)+rho)  *(Ns+1/2)/N;      bic= e + log(N)          *(Ns   )/N;      aic= e + 2               *(Ns   )/N;      gic= e + (2+rho)         *(Ns   )/N;      mic= e + (1+rho+log(N)/2)*(Ns   )/N;      [MMDL, LMDL] = find(MDL==min(min(MDL)));LMDL= LMDL-1;      [MBIC, LBIC] = find(BIC==min(min(BIC)));LBIC= LBIC-1;      [MAIC, LAIC] = find(AIC==min(min(AIC)));LAIC= LAIC-1;      [MGIC, LGIC] = find(GIC==min(min(GIC)));LGIC= LGIC-1;      [MMIC, LMIC] = find(MIC==min(min(MIC)));LMIC= LMIC-1;      [Mmdl, Lmdl] = find(mdl==min(min(mdl)));Lmdl= Lmdl-1;      [Mbic, Lbic] = find(bic==min(min(bic)));Lbic= Lbic-1;      [Maic, Laic] = find(aic==min(min(aic)));Laic= Laic-1;      [Mgic, Lgic] = find(gic==min(min(gic)));Lgic= Lgic-1;      [Mmic, Lmic] = find(mic==min(min(mic)));Lmic= Lmic-1;%      [N M L mm MMDL, LMDL, MBIC, LBIC, MAIC, LAIC, MGIC, LGIC, MMIC, LMIC]%      [N M L mm Mmdl, Lmdl, Mbic, Lbic, Maic, Laic, Mgic, Lgic, Mmic, Lmic]      MDLhist(MMDL, LMDL+1)= MDLhist(MMDL, LMDL+1) + 1;      BIChist(MBIC, LBIC+1)= BIChist(MBIC, LBIC+1) + 1;      AIChist(MAIC, LAIC+1)= AIChist(MAIC, LAIC+1) + 1;      GIChist(MGIC, LGIC+1)= GIChist(MGIC, LGIC+1) + 1;      MIChist(MMIC, LMIC+1)= MIChist(MMIC, LMIC+1) + 1;      mdlhist(Mmdl, Lmdl+1)= mdlhist(Mmdl, Lmdl+1) + 1;      bichist(Mbic, Lbic+1)= bichist(Mbic, Lbic+1) + 1;      aichist(Maic, Laic+1)= aichist(Maic, Laic+1) + 1;      gichist(Mgic, Lgic+1)= gichist(Mgic, Lgic+1) + 1;      michist(Mmic, Lmic+1)= michist(Mmic, Lmic+1) + 1;   end;   MDLM= sum(MDLhist.').';MDLL= sum(MDLhist);   BICM= sum(BIChist.').';BICL= sum(BIChist);   AICM= sum(AIChist.').';AICL= sum(AIChist);   GICM= sum(GIChist.').';GICL= sum(GIChist);   MICM= sum(MIChist.').';MICL= sum(MIChist);   mdlM= sum(mdlhist.').';mdlL= sum(mdlhist);   bicM= sum(bichist.').';bicL= sum(bichist);   aicM= sum(aichist.').';aicL= sum(aichist);   gicM= sum(gichist.').';gicL= sum(gichist);   micM= sum(michist.').';micL= sum(michist);mean= [    sum((1:Mmax)'.*MDLM)/MM;    sum((1:Mmax)'.*BICM)/MM;    sum((1:Mmax)'.*AICM)/MM;    sum((1:Mmax)'.*GICM)/MM;    sum((1:Mmax)'.*MICM)/MM;    sum((1:Mmax)'.*mdlM)/MM;    sum((1:Mmax)'.*bicM)/MM;    sum((1:Mmax)'.*aicM)/MM;    sum((1:Mmax)'.*gicM)/MM;    sum((1:Mmax)'.*micM)/MM;    ];meanMm= [meanMm mean];mean= [    sum((0:Lmax).*MDLL)/MM;    sum((0:Lmax).*BICL)/MM;    sum((0:Lmax).*AICL)/MM;    sum((0:Lmax).*GICL)/MM;    sum((0:Lmax).*MICL)/MM;    sum((0:Lmax).*mdlL)/MM;    sum((0:Lmax).*bicL)/MM;    sum((0:Lmax).*aicL)/MM;    sum((0:Lmax).*gicL)/MM;    sum((0:Lmax).*micL)/MM;    ];meanLm= [meanLm mean];   mse= [       10*log10((sum(((1:Mmax)'-M).^2.*MDLM) + sum(((0:Lmax)-L).^2.*MDLL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*BICM) + sum(((0:Lmax)-L).^2.*BICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*AICM) + sum(((0:Lmax)-L).^2.*AICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*GICM) + sum(((0:Lmax)-L).^2.*GICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*MICM) + sum(((0:Lmax)-L).^2.*MICL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*mdlM) + sum(((0:Lmax)-L).^2.*mdlL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*bicM) + sum(((0:Lmax)-L).^2.*bicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*aicM) + sum(((0:Lmax)-L).^2.*aicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*gicM) + sum(((0:Lmax)-L).^2.*gicL))/MM/(M^2+L^2));       10*log10((sum(((1:Mmax)'-M).^2.*micM) + sum(((0:Lmax)-L).^2.*micL))/MM/(M^2+L^2));       ];   MSEm= [MSEm mse];   drawnowend;N= 256;M= 2;MSEl= [];meanMl= [];meanLl= [];for L= 0:3   resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no);   load(resultname)   sprintf('%s%4d', resultname, MM)   switch(exp(end))

⌨️ 快捷键说明

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