- Class folder 'Timing Recovery' with different timing recoveries - Minimal example for the timing recovery on the FSO data - New evaluation scripts in the FSO project folder
50 lines
1.5 KiB
Matlab
50 lines
1.5 KiB
Matlab
classdef Timing_Recovery < handle
|
|
|
|
properties(Access=public)
|
|
modulation
|
|
timing_error_detector
|
|
sps
|
|
damping_factor
|
|
normalized_loop_bandwidth
|
|
detector_gain
|
|
end
|
|
|
|
methods(Access=public)
|
|
function obj = Timing_Recovery(options)
|
|
arguments(Input)
|
|
|
|
options.modulation = 'PAM/PSK/QAM';
|
|
options.timing_error_detector = 'Gardner (non-data-aided)';
|
|
options.sps = 2;
|
|
options.damping_factor = 1.0;
|
|
options.normalized_loop_bandwidth = 0.01;
|
|
options.detector_gain = 2.7;
|
|
|
|
end
|
|
|
|
fn = fieldnames(options);
|
|
for n = 1:numel(fn)
|
|
obj.(fn{n}) = options.(fn{n});
|
|
end
|
|
|
|
%obj-Initialization here%
|
|
|
|
end
|
|
|
|
function [data_out, timing_error] = process(obj, data_in)
|
|
|
|
timing_synchronization = comm.SymbolSynchronizer( ...
|
|
"Modulation", obj.modulation,...
|
|
"TimingErrorDetector", obj.timing_error_detector, ...
|
|
"SamplesPerSymbol", obj.sps, ...
|
|
"DampingFactor", obj.damping_factor, ...
|
|
"NormalizedLoopBandwidth", obj.normalized_loop_bandwidth, ...
|
|
"DetectorGain", obj.detector_gain);
|
|
data_out = data_in;
|
|
[data_out.signal, timing_error] = timing_synchronization(data_in.signal);
|
|
|
|
end
|
|
end
|
|
end
|
|
|