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

📄 tfma_fit2.m

📁 用于模拟时变非平稳的ARMA过程
💻 M
字号:
function [E, Eprime]= tfma_fit2(x, Mmax, Lmax, Psi, lambda)% function [E, Eprime]= tfma_fit2(x, Mmax, Lmax, Psi, lambda)%   This file is part of the TFPM toolbox v1.0 (c)%   michael.jachan@tuwien.ac.at and underlies the GPL.% % Searches TFMA(M, L) models for M= 1:Mmax, L= 0:Lmax. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;tfpm;N    = 256;MAR  =   0;LAR  =   0;MMA  =   2;LMA  =   2;re_im= 'i';mo_no= 'n';tfpm_file_gen;%-------------alpha= 1/2;beta = 1/2;lambda= .9800;Mmax= max([2*MAR 2]);Lmax= max([2*LAR 2]);%Psi= ones(N);Psi= tf_multiwin(N, 3*Mmax, 4*Lmax, 0, 2, 1);x= tfarma_gen(randn(N, 1), Aml, Bml, beta);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%alpha= 1/2;beta = 1/2;N= length(x);Ax= fft(corr_est(x, x, -1, alpha));Ax= [ Ax(N/2+1:N, :); Ax(1:N/2, :)].*conj(Psi);E= 99999*ones(Mmax, Lmax+1, Lmax+1);Eprime= 99999*ones(Mmax, Lmax+1, Lmax+1);for L= 0:Lmax   M= 1;      BB= tfma_est_cepsb(Ax, M, L);%      BB= tfma_est_lin(x, Ax, Psi, M, L, 2*M, 2*L);BB=BB(:, :, end);      [Bml1, lambdamax, mm, nrFDIR]= param_stabilize(BB, N, lambda);      e= tfarma_inv(x, 1, Bml1);      eprime= tfarma_inv(x, 1, Bml1/param_get(Bml1, 0, 0));      E(M, L+1, 1)     = e'*e/N;      Eprime(M, L+1, 1)= eprime'*eprime/N;      for M= 2:Mmax      BB= tfma_est_cepsb(Ax, M, L);      for LL= 0:L% Inverse TFAR Filtering         Mask= ones(2*L+1, M+1);         Mask(1:L-LL, end)= zeros(L-LL, 1);         Mask(L+2+LL:end, end)= zeros(L-LL, 1);%         figure(1);plot(abs(param_tdir(AA(:, 1:M+1, M), N)))%         figure(2);plot(abs(param_tdir(AA(:, 1:M+1, M).*Mask, N)))         [Bml1, lambdamax, mm, nrFDIR]= param_stabilize(BB(:, 1:M+1).*Mask, N, lambda);         e= tfarma_inv(x, 1, Bml1);         eprime= tfarma_inv(x, 1, Bml1/param_get(Bml1, 0, 0));         E(M, L+1, L-LL+1)     = e'*e/N;         Eprime(M, L+1, L-LL+1)= eprime'*eprime/N;%	 Aml1%	 Bml1%	 drawnow      end;   end;end;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if(0)% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;tfpm;for n= 8:8   N= 2^n;   re_im= 'i';   mo_no= 'n';   alpha= 1/2;   beta = 1/2;   lambda= .9800;   MM= 100;   for M= 2:2      for L= 3:3         MAR  =   0;         LAR  =   0;         MMA  =   M;         LMA  =   L;         tfpm_file_gen;%-------------------------         Bml= Bml/param_get(Bml, 0, 0);         Mmax= max([2*M 2]);         Lmax= max([2*L 2]);         [Psi, Mask, v2]= tf_multiwin(N, 2*Mmax+2, 2*Lmax+2, 5, 0, 0);%         Psi= ones(N);         EE= zeros(Mmax, Lmax+1, Lmax+1, MM);         EEprime= zeros(Mmax, Lmax+1, Lmax+1, MM);         for mm= 1:MM            x= tfarma_gen(randn(N, 1), Aml, Bml/param_get(Bml, 0, 0), 1/2);            [E, Eprime]= tfma_fit2(x, Mmax, Lmax, Psi, lambda);	    EE(:, :, :, mm)= E;	    EEprime(:, :, :, mm)= Eprime;            [N M L mm]	 end;         exp= 'ord2B';         resultname= sprintf('data/%04d/%s%d%d%s%s.mat', N, exp, M, L, re_im, mo_no)         save(resultname, 'lambda', 'Mmax', 'Lmax', 'MM', 'EE', 'EEprime')      end;   end;end;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%end;% TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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