![無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書_第1頁](http://file4.renrendoc.com/view/70e41aa89142f58266e6da2f83b65567/70e41aa89142f58266e6da2f83b655671.gif)
![無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書_第2頁](http://file4.renrendoc.com/view/70e41aa89142f58266e6da2f83b65567/70e41aa89142f58266e6da2f83b655672.gif)
![無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書_第3頁](http://file4.renrendoc.com/view/70e41aa89142f58266e6da2f83b65567/70e41aa89142f58266e6da2f83b655673.gif)
![無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書_第4頁](http://file4.renrendoc.com/view/70e41aa89142f58266e6da2f83b65567/70e41aa89142f58266e6da2f83b655674.gif)
![無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書_第5頁](http://file4.renrendoc.com/view/70e41aa89142f58266e6da2f83b65567/70e41aa89142f58266e6da2f83b655675.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
無線傳感器網(wǎng)絡(luò)實(shí)驗(yàn)指導(dǎo)書信息工程學(xué)院實(shí)驗(yàn)一質(zhì)心算法一、實(shí)驗(yàn)?zāi)康恼莆蘸喜①|(zhì)心算法的基本思想;學(xué)會利用MATLAB實(shí)現(xiàn)質(zhì)心算法;學(xué)會利用數(shù)學(xué)計算軟件解決實(shí)際問題。二、實(shí)驗(yàn)內(nèi)容和原理無需測距的定位技術(shù)不需要直接測量距離和角度信息。定位精度相對較低,不過可以滿足某些應(yīng)用的需要。在計算幾何學(xué)里多邊形的幾何中心稱為質(zhì)心,多邊形頂點(diǎn)坐標(biāo)的平均值就是質(zhì)心節(jié)點(diǎn)的坐標(biāo)。假設(shè)多邊形定點(diǎn)位置的坐標(biāo)向量表示為p尸(%,Ji)T,則這個多邊形的質(zhì)心坐標(biāo)為:(")—(字、例如,如果四邊形ABCD的頂點(diǎn)坐標(biāo)分別為(X],七),(x2,y2),(x3,y3)和(七,尸4),則它的質(zhì)心坐標(biāo)計算如下:(x,y)=這種方法的計算與實(shí)現(xiàn)都非常簡單,根據(jù)網(wǎng)絡(luò)的連通性確定出目標(biāo)節(jié)點(diǎn)周圍的信標(biāo)參考節(jié)點(diǎn),直接求解信標(biāo)參考節(jié)點(diǎn)構(gòu)成的多邊形的質(zhì)心。錨點(diǎn)周期性地向臨近節(jié)點(diǎn)廣播分組信息,該信息包含了錨點(diǎn)的標(biāo)識和位置。當(dāng)未知結(jié)點(diǎn)接收到來自不同錨點(diǎn)的分組信息數(shù)量超過某一門限或在一定接收時間之后,就可以計算這些錨點(diǎn)所組成的多邊形的質(zhì)心,作為確定出自身位置。由于質(zhì)心算法完全基于網(wǎng)絡(luò)連通性,無需錨點(diǎn)和未知結(jié)點(diǎn)之間的協(xié)作和交互式通信協(xié)調(diào),因而易于實(shí)現(xiàn)。三、實(shí)驗(yàn)內(nèi)容及步驟該程序在Matlab環(huán)境下完成無線傳感器中的質(zhì)心算法的實(shí)現(xiàn)。在長為100米的正方形區(qū)域,信標(biāo)節(jié)點(diǎn)(錨點(diǎn))為90個,隨機(jī)生成50個網(wǎng)絡(luò)節(jié)點(diǎn)。節(jié)點(diǎn)的通信距離為30米。需完成:分別畫出不同通信半徑,不同未知節(jié)點(diǎn)數(shù)目下的誤差圖,并討論得到的結(jié)果所用到的函數(shù):1.M=min(A)返回A最小的元素.如果A是一個向量,然后min(A)返回A的最小元素.如果A是一個矩陣,然后min(A)是一個包含每一列的最小值的行向量。2.randX=rand返回一個單一均勻分布隨機(jī)數(shù)在區(qū)間(0,1)。X=rand(n)返回n--n矩陣的隨機(jī)數(shù)字。S=sum(A)返回A沿其大小不等于1的第一個數(shù)組維度的元素的總和。如果A是一個向量,sum(A)可返回元素的總和。如果A是一個矩陣,然后sum(A)返回一個行向量包含每個列的總和。inf無窮大此MATLAB函數(shù)返回正無窮大的IEEE算術(shù)表示。除以零和溢出等操作會生成無窮值,從而導(dǎo)致結(jié)果因太大而無法表示為傳統(tǒng)的浮點(diǎn)值5.zeros-創(chuàng)建全零數(shù)組X=zeros返回標(biāo)量0.X=zeros(n)-由一n矩陣的零返回n.plot(X,Y)畫出Y隨X變化的2D曲線。plot(X,Y,o)用。描述(X,Y)這一點(diǎn)。n=norm(v)返回的2-范數(shù)或歐氏范數(shù)的向量v.n=norm(v,p)返回向量范數(shù)定義的sum(abs(v)"p)'(1/p),這里p是任何正值,Inf或一1nf.s=num2str(A)數(shù)值數(shù)組轉(zhuǎn)換為字符數(shù)組輸出,它表示的數(shù)字。輸出格式取決于原始值的大小°num2str是用于標(biāo)簽和標(biāo)題情節(jié)與數(shù)字值。所用到的變量:xy:均勻分布的信標(biāo)節(jié)點(diǎn)位置矩陣n:未知節(jié)點(diǎn)數(shù)量SS:未知節(jié)點(diǎn)位置矩陣dm:通信半徑cent:質(zhì)心MM:未知節(jié)點(diǎn)估計坐標(biāo)矩陣e:估計位置和實(shí)際位置距離矩陣(誤差)四、源程序clearclc%錨節(jié)點(diǎn)節(jié)點(diǎn)設(shè)置fori=1:1:10%1^U10,步長是1;畫出錨點(diǎn),前一個括號是標(biāo)號。forj=1:1:10x(j+(i-1)*10)=(i-1)大10;y(j+(i-1)*10)=(j-1)*10;endendfigure%出現(xiàn)圖形界面plot(x,y,'k.');%黑點(diǎn)holdon%繼續(xù)畫圖axis([01000100]);xy=[x;y];把X,Y的坐標(biāo)付給矩陣XYxy;holdonxm=90;ym=90;n=50;%未知節(jié)點(diǎn)fori=1:1:nSx(i)=rand(1,1)*xm;%產(chǎn)生一個一行一列的矩陣;依然是0-1中任意一個值。Sy(i)=rand(1,1)大ym;plot(Sx(i),Sy(i),‘r*');%紅星xlabel('x車由');ylabel('y軸');holdonenddm=30;%通信半徑m=100;一共100個點(diǎn);forj=1:1:n%未知節(jié)點(diǎn)循環(huán);每一個未知節(jié)點(diǎn)都與在通訊范圍內(nèi)所有的錨點(diǎn)算一遍距離,放到一個矩陣中,通訊距離以外的點(diǎn)為零。SS=[Sx(j);Sy(j)];k=0;%表示通信半徑內(nèi)的信標(biāo)節(jié)點(diǎn)數(shù)fori=1:1:md=norm((xy(:,i)—SS),2);%2范數(shù)就是求直線距離;不管行,第i列;ifdv=dm是否在范圍內(nèi),取出信標(biāo)節(jié)點(diǎn),放到XX,yy中xx(j,i)=xy(1,i);第1行第i列;%X坐標(biāo)都給了XXyy(j,i)=xy(2,i);第2行第i列;k=k+1;elsexx(j,i)=0;yy(j,i)=0;endendifk?=0%k不等于零
cent(:,j)=[sum(Xx(j,:));sum(yy(j,:))]/k;%第j行的所有列elsecent(:,j)=0;令第j列的所有元素為零。endplot(cent(1,j),cent(2,j),‘o');holdonPlot([cent(],j)Sx(j)],[cent(2,j)Sy(j)],'R—-');%估計位置和真實(shí)位置連接title('Centroid');holdonMM=[cent(1,j);cent(2,j)];e(j)=norm((MM-SS),2);%定位誤差end%figure/dm%axis([0n01])%j=1:1:n%plot(j,e(j),'-r.')%holdon%title('Centroid')%E=sum(e)/nE=sum(e)/(n*dm);disp(['定位誤差=,,num2str(E)]);%將結(jié)果轉(zhuǎn)換成字符串輸出10090ao7D60號5040302DID0Centroid0ID203040506070B090100
實(shí)驗(yàn)二DV-hop算法一、實(shí)驗(yàn)?zāi)康腃entroid掌握DV-hop算法的基本思想;學(xué)會利用MATLAB實(shí)現(xiàn)DV-hop算法;學(xué)會利用數(shù)學(xué)計算軟件解決實(shí)際問題。二、實(shí)驗(yàn)內(nèi)容和原理DV-Hop算法解決了低錨點(diǎn)密度引發(fā)的問題,它根據(jù)距離矢量路由協(xié)議的原理在全網(wǎng)范圍內(nèi)廣播跳數(shù)和位置。已知錨點(diǎn)L1與L?L3之間的距離和跳數(shù)。L2計算得到校正值(即平均每跳距離)為(40+75)/(2+5)=16.42m。假設(shè)傳感器網(wǎng)絡(luò)中的待定位節(jié)點(diǎn)A從L2獲得校正值,則它與3個錨點(diǎn)之間的距離分別是L]=3X16.42,L2=2X16.42,L3=3X16.42,然后使用多邊測量法確定節(jié)點(diǎn)的位置。圖1圖1DVhop算法示意圖三、實(shí)驗(yàn)內(nèi)容及步驟該程序在Matlab環(huán)境下完成無線傳感器中的DV-HoP算法的實(shí)現(xiàn)。在長為100米的正方形區(qū)域,隨機(jī)生成100個網(wǎng)絡(luò)節(jié)點(diǎn),其中信標(biāo)節(jié)點(diǎn)(錨點(diǎn))為8個,未知坐標(biāo)節(jié)點(diǎn)為92個。節(jié)點(diǎn)的通信距離為50米??伤愠鲎疃搪方?jīng)算法計算節(jié)點(diǎn)間跳數(shù)、每個信標(biāo)節(jié)點(diǎn)的校正值并可用用跳數(shù)估計距離。(1000—1000,300個節(jié)點(diǎn),60個信標(biāo)節(jié)點(diǎn))所用到的函數(shù):參見上節(jié):質(zhì)心算法;需完成:1)運(yùn)行程序,生成隨機(jī)分布的節(jié)點(diǎn);2)更正程序中的錯誤,求每個信標(biāo)節(jié)點(diǎn)的校正值;3)繼續(xù)運(yùn)行程序,利用跳數(shù)估計待求節(jié)點(diǎn)的距離。四、源程序DV-Hop算法?????DV-Hop算法???????????????%BorderLength--—--正方形區(qū)域的邊長,單位:m%NodeAmount-—網(wǎng)絡(luò)節(jié)點(diǎn)的個數(shù)%BeaconAmount—--信標(biāo)節(jié)點(diǎn)數(shù)%Sxy--———一-—--用于存儲節(jié)點(diǎn)的序號,橫坐標(biāo),縱坐標(biāo)的矩陣%Beacon-信標(biāo)節(jié)點(diǎn)坐標(biāo)矩陣;BeaconAmount大BeaconAmount%UN—--——-------—未知節(jié)點(diǎn)坐標(biāo)矩陣;2*UNAmount%Distance—-—--—未知節(jié)點(diǎn)到信標(biāo)節(jié)點(diǎn)距離矩陣;2大BeaconAmount%h———-——-節(jié)點(diǎn)間初始跳數(shù)矩陣%X--—-—---———一-節(jié)點(diǎn)估計坐標(biāo)初始矩陣,X=[x,y]'%R——--—-—-節(jié)點(diǎn)的通信距離,一般為10—100mclear,closeall;BorderLength=100;NodeAmount=100;BeaconAmount=8;UNAmount=NodeAmount-BeaconAmount;R=50;%D=zeros(NodeAmount,NodeAmount);%未知節(jié)電到信標(biāo)節(jié)點(diǎn)距離初始矩陣;BeaconAmount彳亍NodeAmount列h=zeros(NodeAmount,NodeAmount);%初始跳數(shù)為0;NodeAmount行NodeAmount列X=zeros(2,UNAmount);%節(jié)點(diǎn)估計坐標(biāo)初始矩陣%在正方形區(qū)域內(nèi)產(chǎn)生均勻分布的隨機(jī)拓?fù)?????????????????C=BorderLength.*rand(2,NodeAmount);%帶邏輯號的節(jié)點(diǎn)坐標(biāo)Sxy=[[1:NodeAmount];C];%<1-NodeAmount與C上下合到一起,產(chǎn)生一個總矩陣。Beacon=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%信標(biāo)節(jié)點(diǎn)坐標(biāo)UN=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmount)];%未知節(jié)點(diǎn)坐標(biāo)%畫出節(jié)點(diǎn)分布圖plot(Sxy(2,1:BeaconAmount),Sxy(3,1:BeaconAmount),'r*',Sxy(2,(BeaconAmount+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')xlim([0,BorderLength]);ylim([0,BorderLength]);title('*紅色信標(biāo)節(jié)點(diǎn).黑色未知節(jié)點(diǎn)')%?——???——????——???初始化節(jié)點(diǎn)間距離、跳數(shù)矩陣??????^^?????????^^fori=1:NodeAmount
forj=1:NodeAmountDall(i,j)=((Sxy(2,i)-Sxy(2,j))A2+(Sxy(3,i)-Sxy(3,j))A2)A0.5;%所有節(jié)點(diǎn)間相互距離if(Dall(i,j)<=R)&(Dall(i,j)>0)h(i,j)=1;%初始跳數(shù)矩陣elseifi==jh(i,j)=0;%自己到自己的距離e1seh(i,j)=inf;endendend%??最短路經(jīng)算法計算節(jié)點(diǎn)間跳數(shù)???????fork=1:NodeAmountfori=1:NodeAmountforj=1:NodeAmountifh(i,k)+h(k,j)〈h(i,j)%min(h(i,j),h(i,k)+h(k,j))h(i,j)=h(i,k)+h(k,j);endendendendh%??求每個信標(biāo)節(jié)點(diǎn)的校正值??????????—??????????????h1=h(1:BeaconAmount,1:BeaconAmount);%從大矩陣中取出信標(biāo)節(jié)點(diǎn)的跳數(shù)D1=Dall(1:BeaconAmount,1:BeaconAmount);%從大矩陣中取出信標(biāo)節(jié)點(diǎn)的距離fori=1:%??求每個信標(biāo)節(jié)點(diǎn)的校正值??????????—??dhop(i,1)=sum(D1(i,:))/sum(h1(i,:));%每個信標(biāo)節(jié)點(diǎn)的平均每跳距離endD2=Da1l(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%新標(biāo)節(jié)點(diǎn)與未知節(jié)點(diǎn)的距離,逗號前面是行的范圍,后面是列的范圍。fori=1:BeaconAmountforj=1:UNAmountifmin(D2(:,j))==D2(i,j)Dhop(1,j)=dhop(i,j);%未知節(jié)點(diǎn)從最近的信標(biāo)獲得校正值
endDhop%???—用跳數(shù)估計距離?????~?~?hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount)%未知節(jié)點(diǎn)到信標(biāo)跳數(shù),BeaconAmount行UNAmount列fori=1:UNAmounthop=Dhop(1,i);%hop為從最近信標(biāo)獲得的校正值Distance(:,i)=hop*hop1(:,i);%%Beacon行UN列;end%%?~??最小二乘法求未知點(diǎn)坐標(biāo)?~??~??????????^"^d=Distance;fori=1:2forj=1:(BeaconAmount—1)a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount);endend%a為第一個信標(biāo)節(jié)點(diǎn)和最后一個信號節(jié)點(diǎn)的坐標(biāo)差值,保留最后一個信標(biāo)節(jié)點(diǎn)%a'A=—2*(a');%d=d1';form=1:UNAmountfori=1:(BeaconAmount-1)B(i,1)=d(i,m)A2-d(BeaconAmount,m)A2-Beacon(1,i)A2+Beacon(1,BeaconAmount)A2-Beacon(2,i)'2+Beacon(2,BeaconAmount)"2;最后信標(biāo)節(jié)點(diǎn)到未知節(jié)點(diǎn)的距離平方前九個信標(biāo)節(jié)點(diǎn)橫坐標(biāo)平方最后信標(biāo)節(jié)點(diǎn)到未知節(jié)點(diǎn)的橫坐標(biāo)%inv最后信標(biāo)節(jié)點(diǎn)到未知節(jié)點(diǎn)的距離平方前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農(nóng)政策扶持項目實(shí)施方案匯編
- 辦公裝修保潔合同范本
- 出售蜂蛹養(yǎng)殖合同范本
- 代理意向合同范本
- 債權(quán)抵房款合同范本
- 出地修路合同范本
- 興業(yè)銀行還款合同范例
- 人力外包招聘合同范本
- 勞動合同范例 博客
- 2025年度鍋爐銷售人員銷售團(tuán)隊激勵合同
- 服裝廠安全生產(chǎn)培訓(xùn)
- 城市隧道工程施工質(zhì)量驗(yàn)收規(guī)范
- 2025年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 五 100以內(nèi)的筆算加、減法2.筆算減法 第1課時 筆算減法課件2024-2025人教版一年級數(shù)學(xué)下冊
- 2025年八省聯(lián)考陜西高考生物試卷真題答案詳解(精校打印)
- 2025脫貧攻堅工作計劃
- 借款人解除合同通知書(2024年版)
- 《血小板及其功能》課件
- 沐足店長合同范例
- 《既有軌道交通盾構(gòu)隧道結(jié)構(gòu)安全保護(hù)技術(shù)規(guī)程》
- 初中物理22-23人大附中初三物理寒假作業(yè)及答案
評論
0/150
提交評論