clock_rec_process

Proceed to clock recovery. Output signal y is resampled at symbol frequency and synchronized with the detected clock.

Séquence d'appel

[cr,y] = clock_rec_process(cr,x[,coarse_rssi]);
[cr,y,dbg] = clock_rec_process(cr,x[,coarse_rssi]);

Paramètres

x:

Input signal, sampled at osf sample/symbol

cr:

Clock recovery object (can be created with clock_rec_init())

coarse_rssi:

Optionnal vector, of same dimension as x, indicating the coarse RSSI indicator on the x signal. It will be used to normalize the gain on the timing error detection. If not provided, the signal is supposed to be already normalized.

y:

Output signal, synchronized and sampled at 1 sample/symbol

dbg:

Optionnal debug structure (dbg.e: instantaneous clock error (1d vector), dbg.mu: phase shift vector)

Description

Given an input oversampled binary signal, this function will downsample the signal at the symbol rate, and synchronize the sampling points with the signal clock.

Exemple

nsymb = 120; // Generate 120 symbols
osf = 9;     // Input oversampling factor = 9 samples / symbol
// Creation of a simple signal: NRZ filtered by its matched filter
// (e.g. a moving average)
x = ma(nrz(prbs(nsymb),osf),osf);
// Apply a fractionnal delay so as to have a desynchronized signal
// (otherwise the signal would be already synchronized)
x = frac_delay(x, osf/2);
// Proceed to clock recovery
cr = clock_rec_init(osf);
[cr,y] = clock_rec_process(cr,x);
// --> y is now sampled at one sample / symbol and synchronized
///////
/////// PLOTTING THE RESULTS
scf(0); clf();
// Initial sampling points
subplot(211); plot(x);
// Resampled output
subplot(212); plot(y);

Example of clock recovery


Voir aussi