Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear;
- close all;
- a = 20;
- M = 10000;
- X = zeros(M, 1);
- for i = 1:M
- X(i) = randi([-a, a]);
- end
- U = zeros(M, 7);
- delta = [0, 0, 0, 0, 0, 0, 0];
- for R = 1:7
- quants = 2^R;
- delta(R) = 2*a/quants;
- for i = 1:M
- U(i, R) = delta(R)*fix(X(i)/delta(R));
- if X(i) >= 0
- U(i, R) = U(i, R) + delta(R)/2;
- else
- U(i, R) = U(i, R) - delta(R)/2;
- end
- end
- end
- SNR = zeros (7, 1);
- A = X.^2;
- for R = 1:7
- B = (X-U).^2;
- SNR(R) = 10*log10(sum(A)/sum(B(:,R)));
- end
- TheorSNR = zeros (7, 1);
- for R = 1:7
- TheorSNR(R) = 6.02*R;
- end
- t = 1:1:7;
- plot(t, SNR, t, TheorSNR, "r--");
- figure(2);
- intervals_x = zeros(quants, 1);
- intervals_y = zeros(quants, 1);
- for i = 1:quants
- intervals_x(i) = -20+(i - 1)*delta(7);
- intervals_y(i) = -20+(i-1)*delta(7)+delta(7)/2;
- end
- stairs(intervals_x, intervals_y);
- hold on;
- grid on;
- for i = 1:M
- plot (X(i), U(i, 7), '.r');
- hold on;
- end
- figure(3);
- t = 1:1:M;
- plot(t, X);
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- clear;
- close all;
- a = 20;
- M = 10000;
- X = zeros(M, 1);
- for i = 1:M
- X(i) = (a/3)*randn();
- end
- U = zeros(M, 7);
- delta = [0, 0, 0, 0, 0, 0, 0];
- for R = 1:7
- quants = 2^R;
- delta(R) = 2*a/quants;
- for i = 1:M
- U(i, R) = delta(R)*fix(X(i)/delta(R));
- if X(i) >= 0
- U(i, R) = U(i, R) + delta(R)/2;
- if U(i, R) > a
- U(i, R) = a - delta(R)/2;
- end
- else
- U(i, R) = U(i, R) - delta(R)/2;
- if U(i, R) < -a
- U(i, R) = -a + delta(R)/2;
- end
- end
- end
- end
- SNR = zeros (7, 1);
- A = X.^2;
- for R = 1:7
- B = (X-U).^2;
- SNR(R) = 10*log10(sum(A)/sum(B(:,R)));
- end
- t = -20:0.0001:20;
- f = (1/(a/3*sqrt(2*pi)))*exp(-(t.^2)/(2*((a/3)^2)));
- plot(t, f);
- f1 = @(T0) (1/(a/3*sqrt(2*pi)))*exp(-(T0.^2)/(2*((a/3)^2)));
- disp(integral(f1, -1000, 1000));
- tmp = zeros (M, 1);
- epsilon = zeros (7,1);
- TheorSNR = zeros (7, 1);
- for R = 1:7
- for i = 1:M
- func = @(T) ((X(i)-U(i))^2)*((1/(a/3*sqrt(2*pi)))*exp(-(T.^2)/(2*((a/3)^2))));
- if X(i) >= 0
- 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));
- else
- 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)));
- end
- end
- epsilon(R) = sum(tmp);
- TheorSNR(R) = 10*log10(((a/3)^2)/epsilon(R));
- end
- TheorSNR2 = zeros (7, 1);
- for R = 1:7
- TheorSNR2(R) = 6.02*R;
- end
- t = 1:1:7;
- figure(2);
- plot(t, SNR, t, TheorSNR, t, TheorSNR2), legend('SNR(R)', 'TheorSNR(R)', 'FrontSNR(R)');
- figure(3);
- t = 1:1:M;
- plot(t, X);
- figure(4);
- intervals_x = zeros(quants, 1);
- intervals_y = zeros(quants, 1);
- for i = 1:quants
- intervals_x(i) = -20+(i - 1)*delta(7);
- intervals_y(i) = -20+(i-1)*delta(7)+delta(7)/2;
- end
- stairs(intervals_x, intervals_y);
- hold on;
- grid on;
- for i = 1:M
- plot (X(i), U(i, 7), '.r');
- hold on;
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement