您现在的位置:首页 >> 通信 >> 内容

m基于RFID和DBSCAN聚类的InSAR室内三维定位算法的matlab仿真

时间:2022/12/21 18:20:55 点击:

  核心提示: 01_179m包括程序操作录像+参考文献...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5qZmZdu

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览






3.算法概述

       许多室内应用需要有关物体的空间信息。示例应用程序包括项目查找,对象级别映射和在仓库或库中管理的大型对象。然而,使用802.11,可见光或声学的基于位置的服务的传统解决方案通常关注于用户,即人的位置而不是对象的位置。RFID技术通过集成RFID标签,可以在日常生活中识别和定位物体。标签反向散射的RF信号包括关于对象环境的许多信息,这些信息可用于导出对象的空间信息。为此,Malla等人。

       在本文中,我们提出了一种3D定位方案3DinSAR,用于通过分析标签反向散射载波的相位特征为室内RFID应用提供空间信息的对象。为了降低复杂性并最大限度地减少将我们的解决方案集成到现有系统的工作量,我们的方法不在环境中使用参考标签或额外的读取器天线。我们的3D定位方案仅使用一个可移动天线实现。它适用于便携式阅读器和运输车辆。

        我们的方法利用干涉合成孔径雷达(InSAR)高度确定理论。它扩展了现有的2D全息图定位方案。我们不是遍历所有耗时且因此效率不高的空间像素,而是通过使用与波路差异和标签高度相关的空间域相位差作为附加信息,将幼稚全息图定位扩展为3D方案。我们还考虑基于密度的空间聚类方法来选择最可能的位置以提高准确性。

4.部分源码  

for sel = 1:6;   

    pos_reader=[0.2 0 0.63];

    N=50;

    d=zeros(1,N);

    for i=1:N;

        pos_reader(1)=0.2+0.02*(i-1);

        d(i)=norm(pos_tag(sel,:)-pos_reader);    %标签与天线之间的距离

    end

    C      = 3e8;                         %propagation speed

    f_c    = 920625000;                 %carrier frequency

    lambda = C/f_c;                  %wavelength

    phi    = [];

    std    = 5;

    phi_ii = mod(4*pi*d/lambda+randn(1,N)/2,2*pi);  %the measured phase offset 

    %WxL grid

    [w,l] = meshgrid(0.05:0.01:3,0.05:0.01:3);  

%     X     = [w(:) l(:)];

    P     = zeros(size(w));

    for n=1:N        

        pos_reader(1) = 0.2+0.02*(n-1);

        %网格点与天线的距离 

        d_2           = sqrt((w-pos_tag(sel,1)).^2+(l-pos_tag(sel,2)).^2);  

        P_1           = exp((mod(4*pi/lambda.*d_2,2*pi)-phi_ii(n)));   %RF holographic image

        P   =  P+real(P_1 );

    end 

    p = 0;               

    M = length(w);

    idx=0;

    x_t=[];

    y_t=[];

    [x,y]=find(P==min(min(P)));

    x_t=w(x,y);

    y_t=l(x,y);

    H=0.63;

    X=[];

    Y=[];

    Z=[];

    R_n=0.8;

    d_yz=sqrt((pos_tag(sel,2)-pos_reader(2))^2+(pos_tag(sel,3)-pos_reader(3))^2);

    STD=5;

    phi_yz=[];

    for j=1:STD

        phi_j=mod(4*pi*d_yz/lambda+randn(1)/2,2*pi);  

        phi_yz=[phi_yz phi_j];

    end

    phi_yz=mean(phi_yz);                        %利用InSAR时天线An测得相位 

    for B=0.01:0.01:0.34                          %改变天线高度 

        k=fix(2*B/lambda);                  %k is integer related to the antenna and tag positions

        for i=-k:1:k

            D=sqrt((pos_tag(sel,2)-pos_reader(2))^2+(pos_tag(sel,3)-pos_reader(3)-B)^2);      %天线高度为H+B时与标签距离  

            phi_B=mod(4*pi*D/lambda,2*pi);      %天线在z轴上的位置为H+B时测得的相位

            Delta_phi=phi_yz-phi_B+2*k*pi;              %相位差

            Delta_Rn=Delta_phi*lambda/(4*pi);           %天线高度改变前后与标签距离的差值

            R_n1=R_n+Delta_Rn;                          %天线高度为H+B时与标签的距离

            cosbeta=(R_n^2+B^2-Delta_Rn^2)/(2*R_n*B);   

            z_t=H+B*cosbeta;

            X=[X x_t];

            Y=[Y y_t];

            Z=[Z z_t];

        end

    end

 

    data1=[X;Y];

    data2=[Y;Z];

    data3=[X;Z];

    [k,C1] = dbscan(data1);

    [k,C2] = dbscan(data2);

    [k,C3] = dbscan(data3);

    X1=mean(C1(1,:));

    Y1=mean(C1(2,:));

    Y2=mean(C2(1,:));

    Z2=mean(C3(2,:));

    X3=mean(C1(1,:));

    Z3=mean(C1(2,:));

    X_(sel)=(X1+X3)/2;

    Y_(sel)=(Y1+Y2)/2;

    Z_(sel)=(Z2+Z3)/2;

end

01_179m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168