Files
imdd_silas/Classes/04_DSP/Timing Recovery/Timing_Recovery.m
magf 005e821131 Added:
- 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
2026-02-02 10:56:12 +01:00

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