Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. % конкретно та формула
  2. P = qfunc(sqrt(((3*E)/N0) * (1/(q-1))));
  3. Pe = 2*P - P^2;
  4.  
  5. % на всякий случай программа целиком
  6. clear;
  7. close all;
  8.  
  9. f0 = 2400;
  10. T = 1/600;
  11. q = 4;
  12. i1 = [0, 0, 1, 1];
  13. i2 = [0, 1, 0, 1];
  14. A = 1;
  15. X = zeros(0,q);
  16. Y = zeros(0,q);
  17. for i = 1:q
  18. X(i) = A*(1-(2*i1(i)/(sqrt(q)-1)));
  19. Y(i) = A*(1-(2*i2(i)/(sqrt(q)-1)));
  20. end
  21.  
  22. Td=T/1000; time = 0:Td:T-0.0000001;
  23. signal = zeros(q, 1000);
  24. basis = zeros(2, 1000);
  25. noise = zeros(1000);
  26. for i = 1:q
  27. signal(i, :) = X(i)*((2/T)^(1/2))*cos(2*pi*f0*time)+Y(i)*((2/T)^(1/2))*sin(2*pi*f0*time);
  28. end
  29. basis(1, :) = (2/T)^(1/2)*cos(2*pi*f0*time);
  30. basis(2, :) = (2/T)^(1/2)*sin(2*pi*f0*time);
  31.  
  32. SNR = [ 0 1 2 3 4 5 6 7 8 9 10 11 12];
  33. gamma = zeros(length(SNR), 1);
  34. errors = zeros(length(SNR), 1);
  35. Pe = zeros(length(SNR), 1);
  36. P = zeros(length(SNR), 1);
  37. Pr = zeros(length(SNR), 1);
  38. E = norm(signal(1,:))^2;
  39.  
  40. for snr = 1:length(SNR)
  41. gamma(snr) = 10^(SNR(snr)/10);
  42. N0 = E/gamma(snr);
  43. for i = 1:100000
  44. noise = sqrt(N0/2)*randn(1, 1000);
  45. I = randi([1, 4]);
  46. r = signal(I, :)+noise;
  47. mind = 9999999999;
  48. n1 = sum(r .* basis(1, :))*Td;
  49. n2 = sum(r .* basis(2, :))*Td;
  50. newI = 0;
  51. for j = 1:q
  52. if ((n1 - X(j))^2 + (n2 - Y(j))^2 < mind)
  53. mind = (n1 - X(j))^2 + (n2 - Y(j))^2;
  54. newI = j;
  55. end
  56. end
  57. if (newI ~= I)
  58. errors(snr) = errors(snr) + 1;
  59. end
  60. end
  61. Pr(snr) = errors(snr)/100000;
  62. P(snr) = qfunc(sqrt(((3*E)/N0) * (1/(q-1))));
  63. Pe(snr) = 2*P(snr) - P(snr)^2;
  64. end
  65.  
  66. figure(1);
  67. semilogy(SNR, Pe);
  68. hold on;
  69. for i = 1:length(SNR)
  70. plot(SNR(i), Pr(i), 'o', 'Color', 'k');
  71. end
  72. grid on;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement