m无线传感器网络WSN的时间同步捕获算法matlab仿真,对比单步捕获法,双步捕获法以及锯齿波匹配捕获法

目录

1.算法仿真效果

2.MATLAB核心程序

3.算法涉及理论知识概要

3.1WSN同步概要

3.2锯齿波匹配法

3.3单步捕获算法和双步捕获算法的优缺点

4.完整MATLAB


1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

2.MATLAB核心程序

...........................................................
Ts    = 100;    % 搜索的最大相位差
Ts1   = 10;     % 初步搜索步长
Ts2   = Ts/Ts1; % 初步搜索宽度,要求Ts是Ts1整数倍!
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            
            rndp1 = floor(rndphase/Ts1);       % 分为两步搜索
            rndp2 = mod(rndphase,Ts1);
        for j=1:N       % 指定初始相位条件求平均

            nacq  = 0;                  % 捕获时长,单位:T
            curphase = rndp1;           % 主机当前调整的相位
            while(1)
                if(curphase==0)         % 正好在同步相位位置
                    if(rand()>fPd(pdi) || rand()>rPack)   % 同步漏检 或 同步确认丢失
                        curphase = Ts2-1;
                    else
                        nacq = nacq + 1; % 同步确认,设同步确认是理想的
                        break;          % 同步捕获完成
                    end;
                else
                    if(rand()<fPfa)     % 出现虚警
                        curphase = curphase -1;
                        nacq = nacq + 1;
                    else
                        curphase = curphase -1;
                    end;
                end;
            end;
            nacq = nacq+1;
            
            % 第二步搜索
            curphase = rndp2;
            while(1)
.................................................
            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,'gx-'); hold on;
save sbfkcs.mat fPd Nacq
12_004_m

3.算法涉及理论知识概要

3.1WSN同步概要

       由于,信息传输和计算会消耗大量的能量,无线传感器网络中的节点都是由电池供电,能源有限,让节点长时间持续时间同步过程以达到极高精确度的时钟同步将导致极大的损耗,节点持续进行时钟同步对能量有限的无线传感器网络来说是一种巨大的浪费。因此,在实际中,需要对节点的同步精度进行规划,此外,为了降低每个节点的反馈次数,可以考虑多节点协作的反馈方式。对于原算法,主机和目标节点的反馈是基于1对1的方式,即对于任何一个节点,需要进行同步,那么需要通过主机和节点之间进行反馈运算:

       每个节点需要做相位估计和反馈操作。为了进一步降低每个节点损耗,需要降低每个节点的运算量,那么我们采取如下的网络结构进行。

      即节点将相位估计的结果,以最小的功率发送到相邻节点,再由相邻节点发送给主机,这样,对于节点1,其在同一时间段内,只需要使用相位估计和短距离发送的功率,从而大大降低了单个节点的使用寿命。

 

        采用这种方式,可以大大降低发送功率,但是采用这种方式,需要在主机端设计多对一的接收机制,需要引入波速成形等技术。通过上述的思想,可以降低单个节点损耗,从而延长了单个节点的使用寿命。而采用多个相邻节点组合的方式,更进一步降低了发送节点的功耗,在接收端只要通过接收n个节点的信息来提取目标节点1的相位估计值。

3.2锯齿波匹配法

        利用锯齿波的这种线性特性进行分析:

       锯齿波的鉴相范围是指PFD的输出电压随相位误差单调、线性变化的范围。理想的PFD

的鉴相范围是,如商图所示。

 

 以上就是使用锯齿波线性特性的基本原理,下面将其特性应用到本课题中。

       由于实际中,主机发送的是窄脉冲信号,而不是直接发送一个相位信息,因此,需要通过将主机发送的窄脉冲信号和本地节点的锯齿波做相关操作,获得相关值。

3.3单步捕获算法和双步捕获算法的优缺点

       两步捕获算法(MS算法)包括两次主机捕获过程,其区别在于主机所发射的同步脉冲信号宽度。基本思想是把搜索空间内总的相位点数F划分为Q个子区间,每个子区间包括M个相位。Q和M的表示为:Q=[F/M],[ ]表示向上取整。正确相位就在某个子区间内。两步过程为:

第一步,粗相位的捕获:

        对Q个相位值,首先判断Q/2情况,计算其相关值(不同于原算法的相关运算),判断其正负,如果为正,所以真实相位<Q/2,如果为负说明真实相位>Q/2。

       然后进入下一个搜索区间,比如进入了1~Q/2区间,开始计算与Q/4的相关值,,,依次进行下去,那么搜索到正确值所需要的运算次数为:log2(Q)。

   那么其平均搜索次数为(1+log2(Q))/2 < (1+Q)/2

第二步:精相位的捕获:

    和上面同样道路,在定位粗相位的时候,开始下一步搜索,其平均搜索次数仅为

(1+log2(M))/2

从而在搜索时长方面远优于原始的捕获算法。

单步捕获

双步捕获

优点

缺点

优点

缺点

算法简单

只适用于低精度同步

满足高精度捕获需求

一定程度上增加了节点功耗(Pd概率值较小的情况)

一次完成同步

高精度同步时延大

高精度同步时延较小

节点功耗较低

4.完整MATLAB

V

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我爱C编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值