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

技术管理

开发平台:

Matlab

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