Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. clear;
  2. close all;
  3.  
  4. a = 20;
  5. M = 10000;
  6. X = zeros(M, 1);
  7. for i = 1:M
  8. X(i) = randi([-a, a]);
  9. end
  10.  
  11. U = zeros(M, 7);
  12. delta = [0, 0, 0, 0, 0, 0, 0];
  13.  
  14. for R = 1:7
  15. quants = 2^R;
  16. delta(R) = 2*a/quants;
  17. for i = 1:M
  18. U(i, R) = delta(R)*fix(X(i)/delta(R));
  19. if X(i) >= 0
  20. U(i, R) = U(i, R) + delta(R)/2;
  21. else
  22. U(i, R) = U(i, R) - delta(R)/2;
  23. end
  24. end
  25. end
  26.  
  27. SNR = zeros (7, 1);
  28. A = X.^2;
  29. for R = 1:7
  30. B = (X-U).^2;
  31. SNR(R) = 10*log10(sum(A)/sum(B(:,R)));
  32. end
  33.  
  34. TheorSNR = zeros (7, 1);
  35. for R = 1:7
  36. TheorSNR(R) = 6.02*R;
  37. end
  38.  
  39. t = 1:1:7;
  40. plot(t, SNR, t, TheorSNR, "r--");
  41.  
  42. figure(2);
  43. intervals_x = zeros(quants, 1);
  44. intervals_y = zeros(quants, 1);
  45. for i = 1:quants
  46. intervals_x(i) = -20+(i - 1)*delta(7);
  47. intervals_y(i) = -20+(i-1)*delta(7)+delta(7)/2;
  48. end
  49. stairs(intervals_x, intervals_y);
  50. hold on;
  51. grid on;
  52. for i = 1:M
  53. plot (X(i), U(i, 7), '.r');
  54. hold on;
  55. end
  56.  
  57. figure(3);
  58. t = 1:1:M;
  59. plot(t, X);
  60.  
  61.  
  62.  
  63. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  64.  
  65.  
  66.  
  67. clear;
  68. close all;
  69.  
  70. a = 20;
  71. M = 10000;
  72. X = zeros(M, 1);
  73. for i = 1:M
  74. X(i) = (a/3)*randn();
  75. end
  76.  
  77. U = zeros(M, 7);
  78. delta = [0, 0, 0, 0, 0, 0, 0];
  79.  
  80. for R = 1:7
  81. quants = 2^R;
  82. delta(R) = 2*a/quants;
  83. for i = 1:M
  84. U(i, R) = delta(R)*fix(X(i)/delta(R));
  85. if X(i) >= 0
  86. U(i, R) = U(i, R) + delta(R)/2;
  87. if U(i, R) > a
  88. U(i, R) = a - delta(R)/2;
  89. end
  90. else
  91. U(i, R) = U(i, R) - delta(R)/2;
  92. if U(i, R) < -a
  93. U(i, R) = -a + delta(R)/2;
  94. end
  95. end
  96. end
  97. end
  98.  
  99. SNR = zeros (7, 1);
  100. A = X.^2;
  101. for R = 1:7
  102. B = (X-U).^2;
  103. SNR(R) = 10*log10(sum(A)/sum(B(:,R)));
  104. end
  105.  
  106. t = -20:0.0001:20;
  107. f = (1/(a/3*sqrt(2*pi)))*exp(-(t.^2)/(2*((a/3)^2)));
  108. plot(t, f);
  109. f1 = @(T0) (1/(a/3*sqrt(2*pi)))*exp(-(T0.^2)/(2*((a/3)^2)));
  110. disp(integral(f1, -1000, 1000));
  111. tmp = zeros (M, 1);
  112. epsilon = zeros (7,1);
  113. TheorSNR = zeros (7, 1);
  114. for R = 1:7
  115. for i = 1:M
  116. func = @(T) ((X(i)-U(i))^2)*((1/(a/3*sqrt(2*pi)))*exp(-(T.^2)/(2*((a/3)^2))));
  117. if X(i) >= 0
  118. tmp(i) = ((X(i)-U(i))^2)*integral(f1, delta(R)*fix(X(i)/delta(R)), delta(R)*fix(X(i)/delta(R))+delta(R));
  119. else
  120. tmp(i) = ((X(i)-U(i))^2)*integral(f1, delta(R)*fix(X(i)/delta(R)) - delta(R), delta(R)*fix(X(i)/delta(R)));
  121. end
  122. end
  123. epsilon(R) = sum(tmp);
  124. TheorSNR(R) = 10*log10(((a/3)^2)/epsilon(R));
  125. end
  126.  
  127. TheorSNR2 = zeros (7, 1);
  128. for R = 1:7
  129. TheorSNR2(R) = 6.02*R;
  130. end
  131.  
  132. t = 1:1:7;
  133. figure(2);
  134. plot(t, SNR, t, TheorSNR, t, TheorSNR2), legend('SNR(R)', 'TheorSNR(R)', 'FrontSNR(R)');
  135.  
  136. figure(3);
  137. t = 1:1:M;
  138. plot(t, X);
  139.  
  140. figure(4);
  141. intervals_x = zeros(quants, 1);
  142. intervals_y = zeros(quants, 1);
  143. for i = 1:quants
  144. intervals_x(i) = -20+(i - 1)*delta(7);
  145. intervals_y(i) = -20+(i-1)*delta(7)+delta(7)/2;
  146. end
  147. stairs(intervals_x, intervals_y);
  148. hold on;
  149. grid on;
  150. for i = 1:M
  151. plot (X(i), U(i, 7), '.r');
  152. hold on;
  153. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement