📄 timingrecovery.m
字号:
%% LOGN timing recovery %%
% made by 65.0kg
clear all;
clc;
L = 100; % symbol length
N = 8; % symbol gene
fb = 2400;
T = 1/fb;
alpha = 0.5;
d = 4;
exp_time_count = 10; % experiment times
delay = T/8; % time delay
v = 0*fb; % frequency offset
snr_in_dB = [5:1:30];% SNR,dB
psf = rcosine(1,N,'fir/sqrt',alpha,d);
totaldataSamples = N*L;
totalSymbolSamples = totaldataSamples;
observ_length = 50;
info = randsrc(1,L,[0,pi/4,pi/2,3*pi/4,pi,5*pi/4,3*pi/2,7*pi/4]); % 8PSK
data = exp(j.*info);
[dataout,t] = rcosflt(data,1,N,'filter',psf);
datafilt = dataout.';
T_s = datafilt(N*d+1:totalSymbolSamples+N*d); % transmission
for p =1:length(snr_in_dB)
p
for exp_time = 1:exp_time_count
exp_time
for jj = 1:totaldataSamples
T_ss(jj) = T_s(jj)*exp(j*2*pi*v*jj*T/N); % add frequency offset
end;
snr(p) = 10.^(snr_in_dB(p)/10);
sgma = sqrt(1/(2*snr(p)));
noise = sgma*(randn(1,totalSymbolSamples)+j.*randn(1,totalSymbolSamples));
R_s = T_ss+noise; % recieving
R_s_delay = zeros(1,length(R_s));
for i = 2:length(R_s)
R_s_delay(i) = R_s(i-1); % add time delay
end;
[r_match_dataout,t] = rcosflt(R_s_delay,1,N,'fs/filter',psf);
r_match_datafilt = r_match_dataout.';
r_match_data = r_match_datafilt(N*d+1:totalSymbolSamples+N*d);
r_z = (abs(r_match_data)).^2;
r_F = log(1+r_z.*((10.^(5/10))^2));
r_length = length(r_F);
observ_samples = N*observ_length;
for kk=1:observ_samples:r_length-observ_samples+1
for mm=1:observ_samples
observ_sequence(mm) = r_F(kk+mm-1)*exp(-j*2*pi*(mm-1)/N);
end
time_esti((kk-1)/observ_samples+1) = -(T/(2*pi))*angle(sum(observ_sequence));
end
time_esti_h(p,exp_time)= mean(time_esti);
time_esti_var(exp_time) = var((time_esti-delay)/T);
end;
time_esti_var_mean(p) = mean(time_esti_var);
MCRB(p) = MCRB_LOGN(L,snr_in_dB(p),alpha);
end
semilogy(snr_in_dB,time_esti_var_mean,'b-o');
hold on;
semilogy(snr_in_dB,MCRB,'r-');
%grid on;
xlabel('Eb/N0,dB');
ylabel('Normalized Timing Variance');
legend('LOGN','MCRB',1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -