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

技术管理

开发平台:

Matlab

  1. function run_qrd_rls_mvdr(rp)
  2. % Computer Experiment
  3. % Section 14.5, Adaptive Filter Theory, 3rd edition
  4. % MVDR adaptive beamforming
  5. % modify path to suit
  6. % path(path, '/home/yee/aft/qrd_rls');
  7. Ninit  = rp.p;
  8. Ndata  = Ninit + rp.Nsnaps;
  9. seed  = 1;
  10. lambda = 1;
  11. % enter mean and variance of complex-valued AWGN
  12. rp.mean_v = 0;
  13. rp.var_v  = 1;
  14. % A_1, phi_1 are target signal amplitude/elec. angle
  15. % A_2, phi_2 are interference signal amplitude/elec. angle
  16. % s is steering vector along elec. angle of look direction of interest
  17. A_1 = sqrt (rp.var_v) * 10^ (rp.TNRdB/20);
  18. phi_1 = pi*rp.sin_theta_1;
  19. A_2 = sqrt(rp.var_v) * 10^ (rp.INRdB/20);
  20. phi_2 = pi*rp.sin_theta_2;
  21. s = exp(-j*[0:(rp.p-1)]'*phi_1);
  22. % setup input/output sequences
  23. for i = 1:Ndata,
  24. % setup random disturbances
  25. randn('seed', i);
  26. vr  = sqrt(rp.var_v/2) * randn(1, rp.p) + rp.mean_v;
  27. vi  = sqrt(rp.var_v/2) * randn(1, rp.p) + rp.mean_v;
  28. v  = vr + j*vi;
  29. rand('seed', i);
  30. Psi = 2*pi*rand(1);
  31. Xi(i, :) = A_1*exp(j*[1:rp.p]*phi_1) + A_2*exp(j*[1:rp.p]*phi_2 + Psi) + v;
  32. end;
  33. Y = zeros(1, Ndata);
  34. % run bea/nformer for indicated number of snapshots
  35. [Wo, xp, gamma, e] = qrd_rls_AR_pred(Xi, Y, rp.verbose, lambda, 'mvdr', s);
  36. % test vectors for spatially sampled response
  37. W_H = Wo(Ndata, :);
  38. st = -1:0.025:1;
  39. est = exp(j*pi*[0:(rp.p-1)]'*st);
  40. W=Wo; % simple renaming so that the format jives with thtat expected by the
  41.    % plot_mvdr.m routine
  42. eval(['save ' rp.name])