Hello everyone,
I'm having troubles with SFO estimation and its correction on Speth
algorithm, since I don't get correct estimated values neither in AWGN nor
in ideal case.
Basically, I add SFO to OFDM signal through interpolation in time domain. Then
trying to estimate with following code:
temp_pilots_rx=[pos_pilot_symbols_rx_neg; 0; pos_pilot_symbols_rx_pos;]; %
separate negative & positive pilots
temp_split_position=find((temp_pilots_rx==0));
Zt_pilots(pilot_positions,k).*conj(fft_pilots(pilot_positions,k-1)); % k is the
last OFDM symbol; calulates rotation in frequency domain
sum_pos_neg= sum(Z(temp_pilots_rx(1:temp_split_position-1)));
sum_pos_pos= sum(Z(temp_pilots_rx(temp_split_position+1:end)));
phi_1= angle(sum_pos_neg);
phi_2= angle(sum_pos_pos);
f_SFO_estimated= 1/ 2 / pi *f_sampling * t_u * 1 /
(min(real(Z(temp_pilots_rx(temp_split_position+1:end))))+
max(real(Z(temp_pilots_rx(temp_split_position+1:end)))))*( phi_2 - phi_1) % t_u
useful data portion
Afterwards I tried either back rotating the subcarriers or interpolating in time
to compensate the signal, but up to now with no great luck. Even without
compensation and no AWGN, I don't get the artificial added SFO i.e the
problem is somewhere in the implementation.
Does any one of you see a problem in the above impementation or idea what else
still have to be considered?
Sampling frequency offset correction & estimation Speth et al.
Started by ●February 27, 2011