📄 cc2420.asv
字号:
%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
% the program is written on path loss model for mica2 nodes by sunpg at 06-09-18.%################################################################################
format long;
%*************************************
%define wireless channel constants.Note: d0>>df and d0>>lambda.
%*************************************
Gt = 1;
Gr = 1;
freq = 2.4e+9;%cc2420 data rate.
L= 1.0;
speed_of_light = 3.0e+8;
lambda = speed_of_light./freq;
D = lambda/4;
df = 2*D.^2/lambda;%df = 0.01562500000000;
%**************************************
%parameter configuration.
%**************************************
d0 = 0.2000000; %reference distance.
std_var = 4.0;
pathlossExp = 4.0;
f = 27;%it is the frame long.
%**************************************
%transmission power configuration.
%**************************************
Pt=1;%0dbm is default.
Ptdb = 10*log10(Pt);
noise_db = -166;% the unit: dbm. the data value is computed by spg. and the two methods are all accurate. the computation is found in cc2420Pn.m.
%**************************************
%the following find d0.(unit:m)
%**************************************
pld0db = -10*log(lambda.^2/(4*pi*d0).^2);%the reference distance pldb(db) value.
d =0.2:0.02:10;
Xv = normrnd(0,std_var,size(d));
Prddb = 0 - pld0db - 10*pathlossExp*log10(d./d0) + Xv;%the raw data is necessary.
Prddb1 = 0 - pld0db - 10*pathlossExp*log10(d./d0);%the middle line.
Prddb2 = 0 - pld0db - 10*pathlossExp*log10(d./d0)+2*std_var;% the up line.
Prddb3 = 0 - pld0db - 10*pathlossExp*log10(d./d0)-2*std_var;% the low line.
%gama_udb = 10*log10(-1.28*log(2*(1-power(0.9,1/(8*f)))));
%gama_ldb = 10*log10(-1.28*log(2*(1-power(0.1,1/(8*f)))));
%gama_udb_pn = gama_udb + noise_db;
%gama_ldb_pn = gama_ldb + noise_db;
%ds = d0*power(10,((pld0db+gama_udb_pn+2*std_var)/(-10*pathlossExp)));
%de = power(10,(gama_ldb_pn+pld0db-2*std_var)/(-10*pathlossExp))*d0;
%gama_t = (de-ds)/ds;
Pr = power(10,Prddb./10);
%*******************************************************************
%plot in the graph.
%*******************************************************************
%hold on;
plot(d,Prddb);
plot(d,Prddb1,'m');
%plot(d,Prddb2,'r');
%plot(d,Prddb3);
%plot(d,gama_udb_pn);
%plot(d,gama_ldb_pn,'r');
%plot(ds,ds);
%axis([0 40 -240 -60]);
%hold off;
%grid;
%*******************************************************
%prr is drawn.
%*******************************************************
Pn = power(10,noise_db/10);
snr_p = Pr/Pn;
%snr_g = exp(-snr_p/1.28);
%prr = power((1 - 0.5*snr_g),8*f);
%plot(d,prr,'o');
%axis([0 40 0 1]);
%grid;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -