Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. function [d] = Calculation (f1, f2, g, N, T, df1, df2, P)
  2. alpha1 = ((pi * df1).^2) / (4*log(2));
  3. alpha2 = ((pi * df2).^2) / (4*log(2));
  4.  
  5.  
  6. for(i = 1:N)
  7. for(j = 1:N)
  8. K(i, j) = eps.^(-1*alpha1*((i-j)*T).^2);
  9. Z(i, j) = (eps.^(j*2*pi*f1*T*i)) / sqrt(N);
  10. S(i, j) = (eps.^(j*2*pi*f2*T*i)) / sqrt(N);
  11. R(i, j) = P*eps.^(-1*alpha2*((i-j)*T).^2);
  12. endfor
  13. endfor
  14.  
  15. [Ps, mu] = eig(K);
  16. mu = diag(mu);
  17.  
  18. RA = R';
  19. SA = S';
  20. A = Z * Ps';
  21. BA = SA*Ps;
  22. B = BA';
  23.  
  24. for(l = 1:N)
  25. for(k = 1:N)
  26. C(l, k) = 0;
  27. for(i = 1:N)
  28. C(l, k) += RA(l, i)*Ps(i, k);
  29. endfor
  30. endfor
  31. endfor
  32. D = C.'*Ps';
  33.  
  34.  
  35. if(g == false)
  36. window2 = figure('Name', 'Graphic');
  37. grid on;
  38. hold on;
  39. [mu_sorted, origpos] = sort(mu, 'descend');
  40. plot(1:N, A(origpos(1:4), :));
  41. plot(1:N, K(N/2, :));
  42. legend('1', '2', '3', '4', 'N/2 row of K');
  43. endif
  44.  
  45.  
  46. d = 0; den = 0;
  47. for(k = 1:N)
  48. d += (A(f1, k)*BA(f2, k)) / mu(k);
  49. endfor
  50. d *= d;
  51.  
  52. for(k = 1:N)
  53. for(m = 1:N)
  54. den += (D(k, m)*B(f2, k)*BA(f2, m)) / (mu(k)*mu(m));
  55. endfor
  56. endfor
  57. d /= den;
  58. end
  59.  
  60.  
  61. Calculation(1,1,false);
  62. window1 = figure('Name', 'Graphic result');
  63. grid on;
  64. hold on;
  65. H = 1:16;
  66. for(f2p = 1:7)
  67. for(f1p = 1:16)
  68. G(f1p) = Calculation(f1p, f2p, true, 16, 0.002, 1, 3, 1000);
  69. endfor
  70. plot(H, G);
  71. endfor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement