1.问题描述:
- 已有的捕获算法
- 单步捕获算法
脉冲主机同步的单步捕获过程,类似于顺序搜索的算法过程。在传统的积分顺序搜索
捕获中,接收机需要不断顺序调整本地相关模板信号相位,通过相关输出判断是否达到同步要求。主机同步捕获则是在WSN主机发射结点自主顺序调整发射信号,由标签接受机通过与本地固定本振相位信号相关,即同步判决,并将结果反馈给主机的过程。
- 两步捕获算法(Multiple-Shift Algorithm)
两步捕获算法(MS算法)包括两次主机捕获过程,其区别在于主机所发射的同步脉冲信
号宽度。基本思想是把搜索空间内总的相位点数F划分为Q个子区间,每个子区间包括M个相位。Q和M的表示为:Q=[F/M],[ ]表示向上取整。正确相位就在某个子区间内。两步过程为:
a)首次捕获过程中,主机节点发射的脉冲信号为连续M个脉冲的和,即宽度为M*τd。
标签接收机相关脉冲宽度不变。
b)在第一步的搜索中,当相关值超过了门限,说明正确的相位位于第m个子区间,然
后转向第二步搜索,搜索第m个子区间里面的M个相位。主机节点发射脉宽为τd的同步
信号,搜索过程与单步捕获相同。
主机节点发射的同步信号用图表示为:
2.部分程序:
function ostep_PdN
% evluate the performance of master timing synchronization
% 单步积分顺序搜索方法
% 求不同Pd下反馈次数的仿真和理论值曲线
fPd = [0.50:0.1:0.90,0.95,0.99]; % 前向链路检测概率
fPfa = 0.1; % 前向链路虚警概率
rPack = 0.9; % 反向链路同步确认概率,反向链路确认信息丢失的概率
K = 10; % 为防止虚警,重复确认次数,单位:T
D = 5; % 反馈时延,单位:T
Ts = 100; % 搜索的最大相位差
T = 1; % 捕获积分宽度,单位:信号周期数
N = 500; % 特定相位差条件下求均值的随机次数
pnacq = zeros(1,Ts);
nnacq = zeros(1,N);
Nacq = zeros(1,length(fPd)); % 仿真获得不同fPd时的平均反馈次数
for pdi=1:length(fPd)
for i=1:Ts % 不同初始相位求平均
rndphase = i-1; % 初始相位差, 设本振相位为0
for j=1:N % 指定初始相位条件求平均
nacq = 0; % 捕获时长,单位:T
curphase = rndphase; % 主机当前调整的相位
while(1)
if(curphase==0) % 正好在同步相位位置
if(rand()>fPd(pdi) || rand()>rPack) % 同步漏检 或 同步确认丢失
curphase = Ts-1;
else
nacq = nacq + 1;% 同步确认,设同步确认是理想的
break; % 同步捕获完成
end;
else
if(rand()<fPfa) % 出现虚警
nacq = nacq + 1;
curphase = curphase -1;
else
curphase = curphase -1;
end;
end;
end;
nnacq(j)=nacq+1;
end; % end j cycle
pnacq(i)=mean(nnacq);
end; % end i cycle
Nacq(pdi) = mean(pnacq)
end;
plot(fPd,Nacq,'rx-'); hold on;
% theoretic results
fPd = [0.50:0.01:0.99]; % 前向链路检测概率
NacqA = zeros(1,length(fPd)); % 理论分析获得不同fPd时的平均反馈次数
q = Ts;
for pdi=1:length(fPd)
NacqA(pdi) = 2+fPfa*(1/fPd(pdi)/rPack-0.5)*(Ts/T);
end;
plot(fPd,NacqA,'k');
3.仿真结论:
C-19