run_rls_eq.m
上传用户:kendun0711
上传日期:2007-06-03
资源大小:32k
文件大小:1k
源码类别:

技术管理

开发平台:

Matlab

  1. function rsleq(rp)
  2. % Computer Experiment
  3. % Section 13.7, Adaptive Filter Theory, 3rd edition
  4. % Adaptive equalization
  5. seed  = 0:(rp.Niter-1);
  6. h      = [1/2*(1+cos(2*pi/rp.T*((1:3) - 2)))];
  7. Npred = rp.Ndata - 1 - rp.p;
  8. A = zeros(rp.Niter, Npred);
  9. E = zeros(rp.Niter, Npred);
  10. Wx = zeros(rp.p, Npred);
  11. for iter = 1:rp.Niter,
  12.   disp([rp.T iter])
  13.   rand('seed', seed(iter));
  14.   randn('seed', seed(iter));
  15.   a = [2*(rand(rp.Ndata, 1) > 0.5) - 1];
  16.   Xi = conv(a, h);
  17.   % account for shift in input sequence introduced by
  18.   % convolution with h and offset 1 addressing in MATLAB
  19.   Xi = Xi((length(h)+1):length(Xi));
  20. keyboard
  21.   Xi = Xi + sqrt(rp.var_v)*randn(length(Xi), 1);
  22.   [Xi, Y] = mksstrndata(Xi, rp.p);
  23.   Y = a((rp.tau+1):rp.Ndata);
  24. %  keyboard
  25.   [Wo, xp, alpha, e] = rls_AR_pred(Xi, Y, rp.verbose, rp.lambda, rp.delta);
  26.   A(iter, :) = alpha;
  27.   E(iter, :) = e;
  28.   Wx = Wx + Wo;
  29. end; % for iter
  30. Wx = Wx / rp.Niter;
  31. eval(['save ', rp.name])