无线传感器网络的快速捕获算法

1.问题描述:

  • 已有的捕获算法
  1. 单步捕获算法

脉冲主机同步的单步捕获过程,类似于顺序搜索的算法过程。在传统的积分顺序搜索

捕获中,接收机需要不断顺序调整本地相关模板信号相位,通过相关输出判断是否达到同步要求。主机同步捕获则是在WSN主机发射结点自主顺序调整发射信号,由标签接受机通过与本地固定本振相位信号相关,即同步判决,并将结果反馈给主机的过程。

  1. 两步捕获算法(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

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值