stuff from 400G analysis (project deliv 01)
This commit is contained in:
@@ -26,7 +26,9 @@ classdef Duobinary
|
||||
M = numel(u);
|
||||
|
||||
%make unipolar
|
||||
if M == 4
|
||||
if M == 2
|
||||
data = data;
|
||||
elseif M == 4
|
||||
data = data .* sqrt(5);
|
||||
elseif M == 6
|
||||
data = data .* sqrt(10);
|
||||
@@ -59,7 +61,9 @@ classdef Duobinary
|
||||
bk = bk .* 2;
|
||||
bk = bk + b;
|
||||
|
||||
if M == 4
|
||||
if M == 2
|
||||
bk = bk;
|
||||
elseif M == 4
|
||||
bk = bk ./ sqrt(5);
|
||||
elseif M == 6
|
||||
bk = bk ./ sqrt(10);
|
||||
@@ -100,7 +104,9 @@ classdef Duobinary
|
||||
end
|
||||
|
||||
%make unipolar
|
||||
if options.M == 4
|
||||
if options.M == 2
|
||||
data = data;
|
||||
elseif options.M == 4
|
||||
data = data .* sqrt(5);
|
||||
elseif options.M == 6
|
||||
data = data .* sqrt(10);
|
||||
@@ -140,7 +146,9 @@ classdef Duobinary
|
||||
mean_power = sum((unique_points .^ 2) .* probabilities);
|
||||
scaling_factor = sqrt(mean_power);
|
||||
|
||||
if options.M == 4
|
||||
if options.M == 2
|
||||
data = data ./ sqrt(0.5);
|
||||
elseif options.M == 4
|
||||
data = data ./ sqrt(2.5); % 7-level constellation weighted with probability after DB code i.e. mean([-3 3 -2 -2 2 2 -1 -1 -1 1 1 1 0 0 0 0].^2) = 2.5 --> sqrt(2.5) == rms(constellation)
|
||||
elseif options.M == 6
|
||||
data = data ./ sqrt(5.8);
|
||||
@@ -186,7 +194,9 @@ classdef Duobinary
|
||||
end
|
||||
|
||||
%make unipolar
|
||||
if I == 7 || I == 6
|
||||
if I == 3
|
||||
data = data .* 0.5;
|
||||
elseif I == 7 || I == 6
|
||||
data = data .* sqrt(2.5);
|
||||
elseif I == 11
|
||||
data = data .* sqrt(5.8);
|
||||
@@ -206,7 +216,9 @@ classdef Duobinary
|
||||
data = data .* 2;
|
||||
data = data - round(mean(data));
|
||||
|
||||
if M == 4
|
||||
if M == 2
|
||||
data = data;
|
||||
elseif M == 4
|
||||
data = data ./ sqrt(5);
|
||||
elseif M == 6
|
||||
data = data ./ sqrt(10);
|
||||
|
||||
Reference in New Issue
Block a user