forked from petrsvobodnik/Matla
-
Notifications
You must be signed in to change notification settings - Fork 1
/
hlavni1.m
68 lines (51 loc) · 1.31 KB
/
hlavni1.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
clear all; %problém clear all je, že maže breakpointy ve funkcích
close all;
clc;
tic
%%%%%%%%% Zadání parametrů simulace
% Počet přenášených bitů
N=10^4;
% Volba rozsahu SNR
SNR_od = 0;
SNR_do = 30;
SNR_A = SNR_od:2:SNR_do;
SNR_BR = 12;
% úroveň šumu na jednotlivých přijímačích v -dBW
PnA = 30;
PnR = 25;
PnB = 30;
% Volba modulace 1 - BPSK 2 - QPSK
modulace= 2;
% % Volba útlumu tras v dB (kladná hodnota)
% h_A = 8;
% h_B = 5;
% % Volba techniky přenosu 1 - routování 2 - DF 3 - AF 4 - DNF
% NC = 4;
% Generování náhodných dat, c jako celkové
data_Ac = generace_dat (N);
data_Bc = generace_dat (N);
BER = zeros(numel(SNR_A),4,3);
for NC = 1:4 % parfor sem
for t = 1:numel(SNR_A)
SNR_AR = SNR_A(t);
BER(t,NC,1:3) = vypocet(data_Ac, data_Bc, SNR_AR, SNR_BR, modulace, NC, PnA, PnR, PnB);
% BER(t,NC) = vypocet(data_Ac, data_Bc, SNR_AR, SNR_BR, modulace, NC, PnA, PnR, PnB); % pracovní verze
end
fprintf('dokončena metoda %d\n', NC)
end
% Rychlost
[a,b] = size(BER);
cas (1:a, 1) = .5;
cas (1:a, 2) = 2/3;
cas (1:a, 3:4) = 1;
rych = cas .* (1-BER(:, :, 3));
% vykreslování grafů
figure()
plot(SNR_A, rych)
grid on
axis([SNR_A(1) SNR_A(end) 0 1])
xlabel('SNR(A) [dB]');
ylabel('Normalizovaná rychlost');
% ylabel('BER [-]');
legend('routovani','DF','AF','DNF',4);
toc