📄 acf.m
字号:
function []=acf(x, k, caption)%ACF Plot of sample autocorrelation function.%% ACF(x) plots the sample autocorrelation function of the univariate% time series in vector x. By default, the sample autocorrelation% function is plotted up to lag 25. ACF(x,k) plots the sample% autocorrelation function up to lag k. ACF(X,k,'name') sets the% title of the plot to 'name'.%% The approximate 95% confidence limits of the autocorrelation% function of an IID process of the same length as X are also% displayed. Sample autocorrlations lying outside the 95% confidence% intervals of an IID process are marked by an asterisk.%% ACF requires XCORR from the Signal Processing Toolbox.%% See also XCORR.% Modified 30-Dec-99% Author: Tapio Schneider% tapio@gps.caltech.edu if ~exist('xcorr') error('ACF requires XCORR from the Signal Processing Toolbox.') end [m,n] = size(x); if (min(m,n) > 1) error('Time series must be univariate.'); end n = max(m,n); if (nargin < 3) caption='ACF'; end if (nargin < 2) k=25; end if (nargin < 1) error('Usage: ACF(vector).'); end % Compute autocorrelation sequence with XCORR from the Signal % Processing Toolbox cor = xcorr(x,'coeff'); rho = cor(n:n+k); % autocorrelation function up to lag k abscis = [0:1:k]; % abscissa for plot % Approximate 95% confidence limits for IID process of the same length bound = zeros(size(rho)); bound = bound + 1.96/sqrt(n); % Initialize abscissas and ordinates for ACF values within and outside the % approximate 95% confidence intervals of IID process inabsc = zeros(1, k+1); inl = zeros(1, k+1); outabsc = zeros(1, k+1); outl = zeros(1, k+1); % Find lags within and outside approximate 95% confidence % intervals; start with lag 0 inl(1) = rho(1); % stores ACF at lags within cfd intervals inabsc(1) = 0; % lags at which ACF is within cfd intervals nin = 1; % number of points within confidence intervals nout = 0; % number of points outside confidence intervals for i=2:k+1 if abs(rho(i)) > bound(1) % point outside confidence intervals nout = nout+1; outl(nout) = rho(i); outabsc(nout) = i-1; else % point within confidence intervals nin = nin+1; inl(nin) = rho(i); inabsc(nin) = i-1; end; end; % Plot ACF plot(abscis, rho, abscis, bound, '-.', abscis, -bound, '-.', ... outabsc(1:nout), outl(1:nout), '*', ... inabsc(1:nin), inl(1:nin), 'o'); axis([0 k -1 1]) title(caption) xlabel('Lag') ylabel('Autocorrelation function')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -