-
Notifications
You must be signed in to change notification settings - Fork 2
/
vypocet.m
51 lines (33 loc) · 1.24 KB
/
vypocet.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
function [ BER ] = vypocet( data_Ac, data_Bc, SNR_AR, SNR_BR, zvolmodul, NC, PnA, PnR, PnB )
% Inicializace promìnných
BER_A = 0;
BER_B = 0;
cas = 0;
%%%%%%%%%% Samotné øešení
% Rozsekání bitù na pakety
% nekompletní paket bude zahozený
R = 50; % délka paketu v bitech
r = floor (numel(data_Ac)/R); % urèení poètu paketù
for s=1:r
data_A = data_Ac((R*(s-1)+1):R*s);
data_B = data_Bc((R*(s-1)+1):R*s);
%% Techniky Network codingu
switch NC
case 1 % Routování
[chybaA,chybaB] = routovani(data_A, data_B, SNR_AR, SNR_BR, zvolmodul, PnA, PnR, PnB );
case 2 % Decode and Forward
[chybaA,chybaB] = DF(data_A, data_B, SNR_AR, SNR_BR, zvolmodul, PnA, PnR, PnB );
case 3 % Amplify and Forward
[chybaA,chybaB] = AF(data_A, data_B, SNR_AR, SNR_BR, zvolmodul, PnA, PnR, PnB );
case 4 % Denoise and Forward
[chybaA,chybaB] = DNF(data_A, data_B, SNR_AR, SNR_BR, zvolmodul, PnA, PnR, PnB );
end
% Vyhodnocení chybovosti
BER_A = BER_A + chybaA;
BER_B = BER_B + chybaB;
end
BER_A = BER_A / numel (data_Ac);
BER_B = BER_B / numel (data_Bc);
% BER = [BER_A BER_B (BER_A+BER_B)];
BER = BER_A+BER_B;
end