www.gusucode.com > signal 案例源码程序 matlab代码 > signal/ParameterEstimationUsingTheYuleWalkerMethodExample.m
%% Parameter Estimation Using the Yule-Walker Method % Use a vector of polynomial coefficients to generate an AR(4) process by % filtering 1024 samples of white noise. Reset the random number generator % for reproducible results. Use the Yule-Walker method to estimate the % coefficients. % Copyright 2015 The MathWorks, Inc. rng default A = [1 -2.7607 3.8106 -2.6535 0.9238]; y = filter(1,A,0.2*randn(1024,1)); arcoeffs = aryule(y,4) %% % Generate 50 realizations of the process, changing each time the variance % of the input noise. Compare the Yule-Walker-estimated variances to the % actual values. nrealiz = 50; noisestdz = rand(1,nrealiz)+0.5; randnoise = randn(1024,nrealiz); for k = 1:nrealiz y = filter(1,A,noisestdz(k) * randnoise(:,k)); [arcoeffs,noisevar(k)] = aryule(y,4); end plot(noisestdz.^2,noisevar,'*') title('Noise Variance') xlabel('Input') ylabel('Estimated') %% % Repeat the procedure using |aryule|'s multichannel syntax. realiz = bsxfun(@times,noisestdz,randnoise); Y = filter(1,A,realiz); [coeffs,variances] = aryule(Y,4); hold on plot(noisestdz.^2,variances,'o') q = legend('Single channel loop','Multichannel'); q.Location = 'best';