当前位置:文档之家› 认知无线电频谱切换源码matlab仿真

认知无线电频谱切换源码matlab仿真

认知无线电频谱切换源码matlab仿真
认知无线电频谱切换源码matlab仿真

clear

clc

%rand('twister',1);

blockpu=[];

blocksu=[];

for N=3:2:7

block=[];

for lambdap =0.01:0.05:0.5

%*****************************************

%假设 1. CR网络和主网络(授权网络)共同存在于同一区域,并且使用同一频段。假设该频段共有N个信道,每个主用户或CR用户每次接入只占用一个信道。

% 若所有信道均被主用户占用,此时CR用户到达就被阻塞。若CR用户正在使用的信道有主用户出现,此时CR用户被迫中断,并进入缓存区排队等待

% 空闲可用信道以继续刚被中断的通信,若等待超过一定时限,则判定CR用户强制中断退离缓存区。

% 故共有三个队列,分别表示如下:

% X队列——主用户队列,抢占优先,优先级最高

% Y队列——次用户队列,优先级最低

% Z队列——次用户切换队列,优先级次高,若在时延Tao内,则较次用户队列优先接入可用信道

% 2. 主用户和次用户的到达服从泊松分布,参数分别为lambdap和lambdas,平均服务时间服从参数为mup和mus的负指数分布

% 3. 对次用户而言,主用户抢占优先。总共有N个信道,也就是最多可以有N个主用户抢占所有信道,

% 故Z队列的长度不会超过N,这里给定Z队列长度为N。

% 4. 假设初始状态所有N个信道均空闲,次用户理想感知,感知延时为0.005

%*****************************************

% 2009年10月12日10月25日

%*****************************************

%初始化

%*****************************************

a = 100; %主用户数量

b = 100; %次用户数量

%N =3 %Z队列最大长度/总的信道数

%Tao=5

%切换时延门限Tao

A = [ ]; %某主用户到达时刻占用信道序号的集合

B = [ ]; %某次用户到达时刻占用信道序号的集合

C = [ ]; %切换用户占用的当前所有信道序号集合

D = [ ]; %某次用户到达时刻主用户占用信道集合

member = [ ];

member_CR = [ ];

j1=1;

%主用户参数*****************************************

%lambdap = 0.3; %主用户到达率

mup =0.4; %主用户服务率

arr_meanp = 1/lambdap; %主用户平均到达时间

ser_meanp = 1/mup;%主用户平均服务时间

arr_nump = a; %round(Total_time*lambdap*2);

tp = zeros(6,arr_nump);

tp(1,:) = exprnd(arr_meanp,1,arr_nump); %按负指数分布产生各主用户到达时间间隔

tp(1,:) = cumsum(tp(1,:)); %各主用户的到达时刻等于时间间隔的累积和

tp(2,:) = exprnd(ser_meanp,1,arr_nump); %按负指数分布产生各主用户服务时间

%次用户参数*****************************************

lambdas =0.4;

mus =0.6; %次用户到达率与服务率

arr_means = 1/lambdas;

ser_means = 1/mus; %次用户平均到达时间与平均服务时间

arr_nums = b;

ts = zeros(6,arr_nums);

ts(1,:) = exprnd(arr_means,1,arr_nums); %按负指数分布产生各次用户达到时间间隔

ts(1,:) = cumsum(ts(1,:)); %各次用户的到达时刻等于时间间隔的累积和

ts(2,:) = exprnd(ser_means,1,arr_nums); %按负指数分布产生各次用户服务时间

%切换用户参数*****************************************待计算lambdah和muh arr_numh = 10; %切换用户排队长度设置

th = zeros(6,arr_numh);

tsh=[];

%*****************************************

%计算第1个主用户的信息

%*****************************************

if arr_nump>=1

tp(3,1) = 0; %第1个主用户进入系统后直接接受服务,无需等待

n = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

tp(4,1) = tp(1,1)+tp(2,1); %其离开时刻等于其到达时刻与服务时间之和

tp(5,1) = 1; %其肯定被系统接纳,此时系统内共有1个主用户,故标志位置1

tp(6,1) = n; %依次记录主用户占用信道的序号

A=[A n];

member = [1]; %其进入系统后,系统内已有成员序号为1

else

!echo No Primary Users!!!!

end

%*****************************************

if arr_nums>=1

if arr_nump>=1

k1 = sum(ts(1,:) < tp(1,1));

if k1~=0

for i =1:k1

if i==1

ts(3,i) = 0.005; %其等待时间为0

ts(4,i) = ts(1,i)+ts(2,i)+ts(3,i); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1 ,即次用户在用当前信道

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(6,i) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR =[1];

handoff1=find(tp(1,:)>ts(1,i));

handoff2=find(tp(1,:)

if isempty(handoff1)==0&&isempty(handoff2)==0

handoff3=setdiff(handoff1,handoff2);%当前次用户通信期间(时间段)到达的主用户

handoff=setdiff(handoff1,handoff3);

handoff4=[];

for puid=1:length(handoff)

if tp(6,handoff(puid))==ts(6,i)

handoff4=[handoff4,handoff(puid)];

break;

end

end

if isempty(handoff4)==0

if j1<=arr_numh

th(1,j1)=tp(1,handoff4(1));

th(2,j1)=ts(4,i)-tp(1,handoff4(1));

ts(4,i)=tp(1,handoff4(1));

tsh=ts(:,i);

%切换到其他可用信道

num_arrivep=find(tp(1,:)<=th(1,j1));

num_leavep=find(tp(4,:)>=th(1,j1));

num_present1=setdiff(num_arrivep,num_leavep);

num_present2=setdiff(num_arrivep,num_present1);%当前在的主用户

num_arrives=find(ts(1,:)

num_leaves=find(ts(4,:)>th(1,j1));

num_present3=setdiff(num_arrives,num_leaves);

num_present4=setdiff(num_arrives,num_present3);%当前在的次用户

num_present6=[];

wait=0;

if j1>1

j2=1:j1-1;

num_arriveh=find(th(1,j2)

num_leaveh=find(th(4,j2)>th(1,j1));

num_present5=setdiff(num_arriveh,num_leaveh);

num_present6=setdiff(num_arriveh,num_present5);%当前在的切换用户

for j3=1:length(num_present6)

wait=wait+th(3,num_present6(j3));

end

th(3,j1)=wait;%切换用户排队等待时间

end

if length(num_present2)==N

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present2)

if wait1==tp(4,num_present2(k))

wait2=num_present2(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tp(6,wait2);

tsh=[tsh,th(:,j1)];

elseif isempty(num_present2)&&length(num_present4)==N

wait1=ts(4,num_present4(1));

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

for k=1:length(num_present4)

if wait1==ts(4,num_present4(k))

wait3=num_present4(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=ts(6,wait3);

tsh=[tsh,th(:,j1)];

elseif

length(num_present2)+length(num_present4)==N&&isempty(num_present2)==0&&isempty(nu m_present4)==0

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

tps=[tp(:,num_present2),ts(:,num_present4)];

for k=1:length(tps)

if wait1==tps(4,k)

wait4=k;

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tps(6,wait4);

tsh=[tsh,th(:,j1)];

elseif length(num_present2)+length(num_present4)

channel1=[tp(6,num_present2),ts(6,num_present4)];

channel=setdiff([1:N],channel1);

th(3,j1)=0.006+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=channel(1);

tsh=[tsh,th(:,j1)];

end

j1=j1+1;

end

end

end

elseif i >= 2

j=1:i-1;

number_CR = find(ts(4,j) > ts(1,i)); %当前占用信道的次用户个数

[th1,th2]=find(th==0);

th(:,th2)=[];

if isempty(number_CR)&&isempty(th)

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(3,i) = 0.005;

ts(4,i) = ts(1,i)+ts(2,i)+ts(3,i); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1 ,即次用户在用当前信道

ts(6,i) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR = [member_CR,i];

handoff1=find(tp(1,:)>ts(1,i));

handoff2=find(tp(1,:)

if isempty(handoff1)==0&&isempty(handoff2)==0

handoff3=setdiff(handoff1,handoff2);%当前次用户通信期间(时间段)到达的主用户handoff=setdiff(handoff1,handoff3);

handoff4=[];

for puid=1:length(handoff)

if tp(6,handoff(puid))==ts(6,i)

handoff4=[handoff4,handoff(puid)];

break;

end

end

if isempty(handoff4)==0

if j1<=arr_numh

th(1,j1)=tp(1,handoff4(1));

th(2,j1)=ts(4,i)-tp(1,handoff4(1));

ts(4,i)=tp(1,handoff4(1));

tsh=[tsh,ts(:,i)];

%切换到其他可用信道

num_arrivep=find(tp(1,:)<=th(1,j1));

num_leavep=find(tp(4,:)>=th(1,j1));

num_present1=setdiff(num_arrivep,num_leavep);

num_present2=setdiff(num_arrivep,num_present1);%当前在的主用户

num_arrives=find(ts(1,:)

num_leaves=find(ts(4,:)>th(1,j1));

num_present3=setdiff(num_arrives,num_leaves);

num_present4=setdiff(num_arrives,num_present3);%当前在的次用户

num_present6=[];

wait=0;

if j1>1

j2=1:j1-1;

num_arriveh=find(th(1,j2)

num_leaveh=find(th(4,j2)>th(1,j1));

num_present5=setdiff(num_arriveh,num_leaveh);

num_present6=setdiff(num_arriveh,num_present5);%当前在的切换用户

for j3=1:length(num_present6)

wait=wait+th(3,num_present6(j3));

end

th(3,j1)=wait;%切换用户排队等待时间

end

if length(num_present2)==N

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present2)

if wait1==tp(4,num_present2(k))

wait2=num_present2(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tp(6,wait2);

tsh=[tsh,th(:,j1)];

elseif isempty(num_present2)&&length(num_present4)==N

wait1=ts(4,num_present4(1));

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

for k=1:length(num_present4)

if wait1==ts(4,num_present4(k))

wait3=num_present4(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=ts(6,wait3);

tsh=[tsh,th(:,j1)];

elseif

length(num_present2)+length(num_present4)==N&&isempty(num_present2)==0&&isempty(nu m_present4)==0

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

tps=[tp(:,num_present2),ts(:,num_present4)];

for k=1:length(tps)

if wait1==tps(4,k)

wait4=k;

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tps(6,wait4);

tsh=[tsh,th(:,j1)];

elseif length(num_present2)+length(num_present4)

channel1=[tp(6,num_present2),ts(6,num_present4)];

channel=setdiff([1:N],channel1);

th(3,j1)=0.006+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=channel(1);

tsh=[tsh,th(:,j1)];

end

j1=j1+1;

end

end

end

elseif length(number_CR)+length(th(1,:))>0&&length(number_CR)+length(th(1,:))

while any(m == ts(6,number_CR))&&any(m == th(6,:))

m = ceil(rand*N);

end

ts(3,i) = 0.005;

ts(4,i) = ts(1,i)+ts(2,i)+ts(3,i); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1 ,即次用户在用当前信道

ts(6,i) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR = [member_CR,i]; %如果系统有次用户正在接受服务,且系统等待队列未满,则第i个次用户进入系统

handoff1=find(tp(1,:)>ts(1,i));

handoff2=find(tp(1,:)

if isempty(handoff1)==0&&isempty(handoff2)==0

handoff3=setdiff(handoff1,handoff2);%当前次用户通信期间(时间段)到达的主用户

handoff=setdiff(handoff1,handoff3);

handoff4=[];

for puid=1:length(handoff)

if tp(6,handoff(puid))==ts(6,i)

handoff4=[handoff4,handoff(puid)];

break;

end

end

if isempty(handoff4)==0

if j1<=arr_numh

th(1,j1)=tp(1,handoff4(1));

th(2,j1)=ts(4,i)-tp(1,handoff4(1));

ts(4,i)=tp(1,handoff4(1));

tsh=[tsh,ts(:,i)];

%切换到其他可用信道

num_arrivep=find(tp(1,:)<=th(1,j1));

num_leavep=find(tp(4,:)>=th(1,j1));

num_present1=setdiff(num_arrivep,num_leavep);

num_present2=setdiff(num_arrivep,num_present1);%当前在的主用户

num_arrives=find(ts(1,:)

num_leaves=find(ts(4,:)>th(1,j1));

num_present3=setdiff(num_arrives,num_leaves);

num_present4=setdiff(num_arrives,num_present3);%当前在的次用户

num_present6=[];

wait=0;

if j1>1

j2=1:j1-1;

num_arriveh=find(th(1,j2)

num_leaveh=find(th(4,j2)>th(1,j1));

num_present5=setdiff(num_arriveh,num_leaveh);

num_present6=setdiff(num_arriveh,num_present5);%当前在的切换用户

for j3=1:length(num_present6)

wait=wait+th(3,num_present6(j3));

end

th(3,j1)=wait;%切换用户排队等待时间

end

if length(num_present2)==N

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present2)

if wait1==tp(4,num_present2(k))

wait2=num_present2(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tp(6,wait2);

tsh=[tsh,th(:,j1)];

elseif isempty(num_present2)&&length(num_present4)==N

wait1=ts(4,num_present4(1));

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

for k=1:length(num_present4)

if wait1==ts(4,num_present4(k))

wait3=num_present4(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=ts(6,wait3);

tsh=[tsh,th(:,j1)];

elseif

length(num_present2)+length(num_present4)==N&&isempty(num_present2)==0&&isempty(nu m_present4)==0

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

tps=[tp(:,num_present2),ts(:,num_present4)];

for k=1:length(tps)

if wait1==tps(4,k)

wait4=k;

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tps(6,wait4);

tsh=[tsh,th(:,j1)];

elseif length(num_present2)+length(num_present4)

channel1=[tp(6,num_present2),ts(6,num_present4)];

channel=setdiff([1:N],channel1);

th(3,j1)=0.006+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=channel(1);

tsh=[tsh,th(:,j1)];

end

j1=j1+1;

end

end

elseif number_CR+length(th(1,:)) >= N %如果系统已满,则系统拒绝第i个次用户,其标志位置0 //次用户阻塞

ts(5,i) = 0; %其标志位置0 ,即次用户在用当前信道

end

end

end

end

else

%***********************第一个次用户到达信息

ts(3,1) = 0.005; %其等待时间为0

ts(4,1) = ts(1,1)+ts(2,1)+ts(3,1); %其离开时刻等于到达时刻与服务时间之和

ts(5,1) = 1; %其标志位置1 ,即次用户在用当前信道

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(6,1) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR =[1];

%************************第一个之后的次用户到达信息

for i = 2:arr_nums

number = find(ts(4,:) > ts(1,i)); %当前占用信道的主用户个数

if isempty(number) %如果系统为空,则第i个主用户直接接受服务

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(3,i)=0.005;

ts(4,i)=ts(1,i)+ts(2,i)+ts(3,1); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1

ts(6,i) = m; %依次记录主用户占用信道的序号

B=[B m];

member_CR = [member_CR,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif isempty(number)==0&&length(number)

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

while any(m==ts(6,number))

m = ceil(rand*N);

end

ts(3,i)=0.005;

ts(4,i)=ts(1,i)+ts(2,i)+ts(3,1); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1

ts(6,i) = m; %依次记录主用户占用信道的序号

B=[B m];

member_CR = [member_CR,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif length(number) >= N %如果系统已满,则系统拒绝第i个主用户,其标志位置0 //主用户阻塞

ts(5,i) = 1; %其标志位置1 ,即主用户在用当前信道

end

end

else

!echo No Cognitive Radio Users!!!!

end

%*****************************************以上是第一个主用户到达时刻之前可能到达的次用户信息OK 10月26日

%*****************************************以下是第一个主用户之后到达的主用户信息

if arr_nump>=1

for i = 2:arr_nump

number = find(tp(4,:) > tp(1,i)); %当前占用信道的主用户个数

if isempty(number)==1 %如果系统为空,则第i个主用户直接接受服务

n = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

tp(3,i)=0;

tp(4,i)=tp(1,i)+tp(2,i); %其离开时刻等于到达时刻与服务时间之和

tp(5,i) = 1; %其标志位置1

tp(6,i) = n; %依次记录主用户占用信道的序号

A=[A n];

member = [member,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif isempty(number)==0&&length(number)

n = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

while any(n==tp(6,number))

n = ceil(rand*N);

end

tp(3,i)=0;

tp(4,i)=tp(1,i)+tp(2,i); %其离开时刻等于到达时刻与服务时间之和

tp(5,i) = 1; %其标志位置1

tp(6,i) = n; %依次记录主用户占用信道的序号

A=[A n];

member = [member,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif length(number) >= N %如果系统已满,则系统拒绝第i个主用户,其标志位置0 //主用户阻塞

tp(5,i) = 0; %其标志位置1 ,即主用户在用当前信道

end

end

end

if arr_nump>=1&&arr_nums>=1

if tp(4,end)>=ts(1,end)

arr_numss=arr_nums;

else

xxx=find(ts(1,:)<=tp(1,end));

arr_numss=xxx(end);

end

if k1

j = k1+1;

for i=2:arr_nump

num_arrive=find(tp(1,:)

num_leave=find(tp(4,:)>ts(1,j));

num_P=[];

num_S=[];

for num=1:length(num_arrive)

if any(num_arrive(num)==num_leave)

num_P=[num_P,num_arrive(num)];

end

end

if k1~=0

y=1:j-1;

num_S=find(ts(4,y) > ts(1,j)); %当前ts(1,p)时刻占用信道的次用户个数end

[th1,th2]=find(th==0);

th(:,th2)=[];

if isempty(num_S)&&isempty(num_P)&&isempty(th)

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(3,j) = 0.005;

ts(4,j) = ts(1,j)+ts(2,j)+ts(3,j); %其离开时刻等于到达时刻与服务时间之和

ts(5,j) = 1; %其标志位置1

ts(6,j) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR = [member_CR,j]; %如果系统有次用户正在接受服务,且系统等待队列未满,则第c个次用户进入系统

handoff1=find(tp(1,:)>ts(1,j));

handoff2=find(tp(1,:)

if isempty(handoff1)==0&&isempty(handoff2)==0

handoff3=setdiff(handoff1,handoff2);%当前次用户通信期间(时间段)到达的主用户

handoff=setdiff(handoff1,handoff3);

handoff4=[];

for puid=1:length(handoff)

if tp(6,handoff(puid))==ts(6,j)

handoff4=[handoff4,handoff(puid)];

break;

end

end

if isempty(handoff4)==0

if j1<=arr_numh

th(1,j1)=tp(1,handoff4(1));

th(2,j1)=ts(4,j)-tp(1,handoff4(1));

ts(4,j)=tp(1,handoff4(1));

tsh=[tsh,ts(:,i)];

%切换到其他可用信道

num_arrivep=find(tp(1,:)<=th(1,j1));

num_leavep=find(tp(4,:)>=th(1,j1));

num_present1=setdiff(num_arrivep,num_leavep);

num_present2=setdiff(num_arrivep,num_present1);%当前在的主用户

num_arrives=find(ts(1,:)

num_leaves=find(ts(4,:)>th(1,j1));

num_present3=setdiff(num_arrives,num_leaves);

num_present4=setdiff(num_arrives,num_present3);%当前在的次用户

num_present6=[];

wait=0;

if j1>1

j2=1:j1-1;

num_arriveh=find(th(1,j2)

num_leaveh=find(th(4,j2)>th(1,j1));

num_present5=setdiff(num_arriveh,num_leaveh);

num_present6=setdiff(num_arriveh,num_present5);%当前在的切换用户

for j3=1:length(num_present6)

wait=wait+th(3,num_present6(j3));

end

th(3,j1)=wait;%切换用户排队等待时间

end

if length(num_present2)==N

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present2)

if wait1==tp(4,num_present2(k))

wait2=num_present2(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tp(6,wait2);

tsh=[tsh,th(:,j1)];

elseif isempty(num_present2)&&length(num_present4)==N

wait1=ts(4,num_present4(1));

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

for k=1:length(num_present4)

if wait1==ts(4,num_present4(k))

wait3=num_present4(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=ts(6,wait3);

tsh=[tsh,th(:,j1)];

elseif

length(num_present2)+length(num_present4)==N&&isempty(num_present2)==0&&isempty(nu m_present4)==0

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

tps=[tp(:,num_present2),ts(:,num_present4)];

for k=1:length(tps)

if wait1==tps(4,k)

wait4=k;

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tps(6,wait4);

tsh=[tsh,th(:,j1)];

elseif length(num_present2)+length(num_present4)

channel1=[tp(6,num_present2),ts(6,num_present4)];

channel=setdiff([1:N],channel1);

th(3,j1)=0.006+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=channel(1);

tsh=[tsh,th(:,j1)];

end

j1=j1+1;

end

end

end

elseif

length(num_S)+length(num_P)+length(th(1,:))>0&&length(num_S)+length(num_P)+length(th(1,: ))< N

m = ceil(rand*N);

while any(m == tp(6,num_P))&&any(m == ts(6,num_S))&&any(m == th(6,:)) m = ceil(rand*N);

end

ts(3,j) = 0.005;

ts(4,j) = ts(1,j)+ts(2,j)+ts(3,j); %其离开时刻等于到达时刻与服务时间之和

ts(5,j) = 1; %其标志位置1

ts(6,j) = m; %依次记录次用户占用信道的序号

B=[B m];

member_CR = [member_CR,j];

handoff1=find(tp(1,:)>ts(1,j));

handoff2=find(tp(1,:)

if isempty(handoff1)==0&&isempty(handoff2)==0

handoff3=setdiff(handoff1,handoff2);%当前次用户通信期间(时间段)到达的主用户

handoff=setdiff(handoff1,handoff3);

handoff4=[];

for puid=1:length(handoff)

if tp(6,handoff(puid))==ts(6,j)

handoff4=[handoff4,handoff(puid)];

break;

end

end

if isempty(handoff4)==0

if j1<=arr_numh

th(1,j1)=tp(1,handoff4(1));

th(2,j1)=ts(4,j)-tp(1,handoff4(1));

ts(4,j)=tp(1,handoff4(1));

tsh=[tsh,ts(:,i)];

%切换到其他可用信道

num_arrivep=find(tp(1,:)<=th(1,j1));

num_leavep=find(tp(4,:)>=th(1,j1));

num_present1=setdiff(num_arrivep,num_leavep);

num_present2=setdiff(num_arrivep,num_present1);%当前在的主用户

num_arrives=find(ts(1,:)

num_leaves=find(ts(4,:)>th(1,j1));

num_present3=setdiff(num_arrives,num_leaves);

num_present4=setdiff(num_arrives,num_present3);%当前在的次用户

num_present6=[];

wait=0;

if j1>1

j2=1:j1-1;

num_arriveh=find(th(1,j2)

num_leaveh=find(th(4,j2)>th(1,j1));

num_present5=setdiff(num_arriveh,num_leaveh);

num_present6=setdiff(num_arriveh,num_present5);%当前在的切换用户

for j3=1:length(num_present6)

wait=wait+th(3,num_present6(j3));

end

th(3,j1)=wait;%切换用户排队等待时间

end

if length(num_present2)==N

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present2)

if wait1==tp(4,num_present2(k))

wait2=num_present2(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tp(6,wait2);

tsh=[tsh,th(:,j1)];

elseif isempty(num_present2)&&length(num_present4)==N

wait1=ts(4,num_present4(1));

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

for k=1:length(num_present4)

if wait1==ts(4,num_present4(k))

wait3=num_present4(k);

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=ts(6,wait3);

tsh=[tsh,th(:,j1)];

elseif

length(num_present2)+length(num_present4)==N&&isempty(num_present2)==0&&isempty(nu m_present4)==0

wait1=tp(4,num_present2(1));

for k=1:length(num_present2)

wait1=min(tp(4,num_present2(k)),wait1);

end

for k=1:length(num_present4)

wait1=min(ts(4,num_present4(k)),wait1);

end

tps=[tp(:,num_present2),ts(:,num_present4)];

for k=1:length(tps)

if wait1==tps(4,k)

wait4=k;

break;

end

end

th(3,j1)=wait1-th(1,j1)+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=tps(6,wait4);

tsh=[tsh,th(:,j1)];

elseif length(num_present2)+length(num_present4)

channel1=[tp(6,num_present2),ts(6,num_present4)];

channel=setdiff([1:N],channel1);

th(3,j1)=0.006+th(3,j1);

th(4,j1)=th(1,j1)+th(2,j1)+th(3,j1);

th(5,j1)=1;

th(6,j1)=channel(1);

tsh=[tsh,th(:,j1)];

end

j1=j1+1;

end

end

end

elseif (length(num_P)+length(num_S))+length(th(1,:))>=N %如果系统已满,则系统拒绝第i个次用户接入,其标志位置0 //次用户阻塞

ts(5,j)=0;

end

if j

j=j+1;

end

end

if arr_numss

for i = arr_numss+1:arr_nums

number = find(ts(4,:) > ts(1,i)); %当前占用信道的主用户个数

if isempty(number) %如果系统为空,则第i个主用户直接接受服务

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

ts(3,i)=0.005;

ts(4,i)=ts(1,i)+ts(2,i)+ts(3,1); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1

ts(6,i) = m; %依次记录主用户占用信道的序号

B=[B m];

member_CR = [member_CR,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif isempty(number)==0&&length(number)

m = ceil(rand*N); %产生一个在N范围内的随机数作为接入的信道序号

while any(m==ts(6,number))

m = ceil(rand*N);

end

ts(3,i)=0.005;

ts(4,i)=ts(1,i)+ts(2,i)+ts(3,1); %其离开时刻等于到达时刻与服务时间之和

ts(5,i) = 1; %其标志位置1

ts(6,i) = m; %依次记录主用户占用信道的序号

B=[B m];

member_CR = [member_CR,i]; %如果系统有主用户正在接受服务,且系统等待队列未满,则第i个主用户进入系统

elseif length(number) >= N %如果系统已满,则系统拒绝第i个主用户,其标志位置0 //主用户阻塞

ts(5,i) = 1; %其标志位置1 ,即主用户在用当前信道

end

end

end

end

%......................................................................

%仿真结束时,进入系统的总主用户数和总次用户数

len_X = length(member);

len_CR = length(member_CR);

%*****************************************

%输出结果

%*****************************************

%绘制进入系统的所有主用户和次用户的到达时刻和离开时刻曲线图(plot:绘制二维线性图,stairs:绘制二维阶梯图)

subplot(2,1,1);

plot([0 tp(1,member)],0:len_X);

%绘出各主用户的到达时间图;

hold on;

plot([0 tp(4,member)],0:len_X,'r');

grid on;

%绘出各主用户的离去时间图;

xlabel('Time/ms');

ylabel('Number of PU');

legend('PU Arrive curve','PU leave curve')

title 'Primary Users Arrive Time and Leave Time';

hold off;

subplot(2,1,2);

%绘出各次用户的到达时间图;

plot([0 ts(1,member_CR)],0:len_CR,'r-*');

hold on;

%绘出各次用户的离去时间图;

plot([0 ts(4,member_CR)],0:len_CR,'g-');

grid on;

xlabel('Time/s');

ylabel('Number of CU');

legend('CU Arrive curve','CU leave curve ')

title 'Cognitive Users Arrive Time and Leave Time';

hold off;

%*******************************************

%*******************************************%绘出次用户的停留时间;

figure(2);

%figure;

%subplot(3,1,3);

plot(1: len_CR,ts(2,member_CR)+ts(3,member_CR),'g-');

grid on;

legend('CU Stay Time');

xlabel('Number of CU');

ylabel('Time/s');

title 'Cognitive Users Stay Time';

%grid on; %..........................................................................

%*******************************************%计算次用户的阻塞概率和被迫中断概率

ockpu,(arr_nump-length(member))/arr_nump];

block=[block,(arr_nums-length(member_CR))/arr_nums];

thh=setdiff(th(1,:),zeros(1,10));

9种谱校正方法

9种谱校正方法及matlab 程序代码 采样间隔归一化成1T ?=,采样长度为N .这样FFT 离散谱线为0,1)i X i N =-(,相应的频率分辨率2/(1/)N f N ωπ?=?=. 设FFT 离散谱线局部极高谱线为m (为了数学上简洁,假定从0开始,注意在MA TLAB 环境下数组实际操作的是从1开始),记频偏量δωδω=?. 我们需要使用谱线m 和与之相邻一条次高谱线,记这连续两条谱线中左边一条序号为M (当次高谱线在m 左侧时1M m =-,反之M m =). 下面列出若干算法的δ计算公式 1. 加矩形窗的精确谱校正[1] i i i X U jV =+ 111()sin()()cos()M M M M opt M M V V M U U M K U U ωω+++-?+-?=- 1211cos()sin()cos()sin()opt M M opt M M K M Z V U M K M Z V U M ωωωωωω++-???=+?????-?+???=+???+??? 2121 cos()cos()()Z M Z M M m Z Z ωωωδ?+?-?=+-- 2. 加矩形窗情形,采用解析单频模型的幅值比校正[1, 2] 11||()|||| M M M X M m X X δ++=+-+ 3. 加汉宁窗情形,采用解析单频模型的幅值比校正[1, 2] 112||||()|||| M M M M X X M m X X δ++-=+-+ 4. 加矩形窗情形,采用解析单频模型的复比值校正[3] 1 1Re ()M M M X M m X X δ++??=+- ?-?? 5. 加汉宁窗情形,采用解析单频模型的复比值校正[3] 112()M M M M X X M m X X δ+++=+-- 6. 加矩形窗情形,采用解析单频模型的复合复比值校正[3]

无线电频率管理及业务划分

无线电频率管理及业务划分 无线电频谱是一种宝贵的自然资源,是现代社会得以发展的基本要素之一。它为人类所共有,为人类所共享。《条例》第四条明确:无线电频谱资源属国家所有。这是我国首次在法律上确认了无线电频谱资源作为一种自然资源的性质和地位。 无线电频谱具有一般自然资源共有的属性,也具有独特的个性。如同土地、矿产、水资源一样,无线电频谱是有限的,我国将3赫兹-3000吉赫范围内的频率列为无线电频谱,这是基于人们对无线电波的认识水平而定的。实际上,由于技术条件的限制,目前仅仅在几十吉赫以下的频谱得到了应用。这就是说,人们目前能够使用的无线电频谱仅仅是划分的总量的十分之一而己。在已用的频谱范围内,尽管可以通过科学管理和技术手段对其充分利用,但在一定的时间、空间条件下,其利用毕竟是有限的。不同于土地、矿产等资源,无线电频谱具有非耗竭性,它可以被使用,但不会消耗掉。因此,不使用就是一种浪费。另外,由于无线电频谱具有传播固有性,使用不当也会造成浪费,甚至会带来危害。为此,我们必须加强频谱的管理,使其得到合理、充分的利用。 国家无线电管理部门代表国家对整个无线电频率从宏观上作出统一部署和长远计划,这种部署和规划主要是根据各种无线电业务的特点和需要,在国际电联总的要求下,划分频段,分配频率,使各种无线电业务在指定的频段内充分合理利用。 国际上负责无线电频谱管理的机构是联合国国际电信联盟(ITU)下设的无线电通信部门。各国无线电管理机构先将本国的无线电业务所用的频率报该部门,经审查后对这些频率进行登记。国际电信联盟一般每二年召开一次各成员国参加的世界无线电行政大会,也就是现改称为世界无线电通信大会,共同协商重大的频谱分配和使用方面的问题,各国又根据其决议对本国的无线电业务的频段进行划分或调整。因此,不管在国际上还是在国内,无线电业务的分类和所划分的频段不是一成不变的,根据业务的需要、技术水平的发展会有所变动或调整。

认知无线电中频谱感知技术研究+Matlab仿真

毕业设计(论文)题目:认知无线电中频谱感知技术研究专业: 学生姓名: 班级学号: 指导教师: 指导单位: 日期:年月日至年月日

摘要 无线业务的持续增长带来频谱需求的不断增加,无线通信的发展面临着前所未有的挑战。无线电频谱资源一般是由政府统一授权分配使用,这种固定分配频谱的管理方式常常会出现频谱资源分配不均,甚至浪费的情形,这与日益严重的频谱短缺问题相互矛盾。认知无线电技术作为一种智能频谱共享技术有效的缓解了这一矛盾。它通过感知时域、频域和空域等频谱环境,自动搜寻已授权频段的空闲频谱并合理利用,达到提高现有频谱利用率的目的。频谱感知技术是决定认知无线电能否实现的关键技术之一。 本文首先介绍了认知无线电的基本概念,对认知无线电在 WRAN 系统、UWB 系统及 WLAN 系统等领域的应用分别进行了讨论。在此基础上,针对实现认知无线电的关键技术从理论上进行了探索,分析了影响认知网络正常工作的相关因素及认知网络对授权用户正常工作所形成的干扰。从理论上推导了在实现认知无线电系统所必须面对的弱信号低噪声比恶劣环境下,信号检测的相关方法和技术,并进行了数字滤波器的算法分析,指出了窗函数的选择原则。接着详细讨论了频谱检测技术中基于发射机检测的三种方法:匹配滤波器检测法、能量检测法和循环平稳特性检测法。为了检验其正确性,借助 Matlab 工具,在Matlab 平台下对能量检测和循环特性检测法进行了建模仿真,比较分析了这两种方法的检测性能。研究结果表明:在低信噪比的情况下,能量检测法检测正确率较低,检测性能远不如循环特征检测。 其次还详细的分析认知无线电的国内外研究现状及关键技术。详细阐述了频谱感知技术的研究现状和概念,并指出了目前频谱感知研究工作中受到关注的一些主要问题,围绕这些问题进行了深入研究。 关键词:感知无线电;频谱感知;匹配滤波器感知;能量感知;合作式感知;

用MATLAB进行FFT频谱分析

用MATLAB 进行FFT 频谱分析 假设一信号: ()()292.7/2cos 1.0996.2/2sin 1.06.0+++=t t R ππ 画出其频谱图。 分析: 首先,连续周期信号截断对频谱的影响。 DFT 变换频谱泄漏的根本原因是信号的截断。即时域加窗,对应为频域卷积,因此,窗函数的主瓣宽度等就会影响到频谱。 实验表明,连续周期信号截断时持续时间与信号周期呈整数倍关系时,利用DFT 变换可以得到精确的模拟信号频谱。举一个简单的例子: ()ππ2.0100cos +=t Y 其周期为0.02。截断时不同的持续时间影响如图一.1:(对应程序shiyan1ex1.m ) 图 错误!文档中没有指定样式的文字。.1 140.0160.0180.02 截断时,时间间期为周期整数倍,频谱图 0.0250.03 0100200300400500600 7008009001000 20 40 60 80 100 截断时,时间间期不为周期整数倍,频谱图

其次,采样频率的确定。 根据Shannon 采样定理,采样带限信号采样频率为截止频率的两倍以上,给定信号的采样频率应>1/7.92,取16。 再次,DFT 算法包括时域采样和频域采样两步,频域采样长度M 和时域采样长度N 的关系要符合M ≧N 时,从频谱X(k)才可完全重建原信号。 实验中信号R 经采样后的离散信号不是周期信号,但是它又是一个无限长的信号,因此处理时时域窗函数尽量取得宽一些已接近实际信号。 实验结果如图一.2:其中,0点位置的冲激项为直流分量0.6造成(对应程序为shiyan1.m ) 图 错误!文档中没有指定样式的文字。.2 ?ARMA (Auto Recursive Moving Average )模型: 将平稳随机信号x(n)看作是零均值,方差为σu 2的白噪声u(n)经过线性非移变系统H(z)后的输出,模型的传递函数为 020406080100120140160180200 0.4 0.50.60.7 0.800.050.10.150.20.250.30.350.40.450.5 50100 150

认知无线电学习笔记二-频谱感知方法总结

研究初期。大量文献。判断有无信号传输。识别信号类型。 1)匹配滤波器 主用户信号已知时最佳。感知速度快。但对信号已知信息的要求高,感知单元的实现复杂度极高(需要对大量类型信号的匹配滤波)。 2)基于波形的感知 已知主用户信号的patterns(用于同步等的前导序列等等),对观测数据做相关。在稳定性和收敛速度上比基于能量检测的感知要好。 判决门限的选取。信号功率因信道传输特性和收、发信机之间的距离的不确定性而难以估计。实际中,可由特定的虚警概率给出门限,此时只需知道噪声方差。 3)基于循环平稳性的感知 信号的平稳特征由信号或信号统计量(期望、自相关等)周期性引起。利用循环相关函数(而非功率谱密度)检测信号,可将噪声与信号分离。因为噪声广义平稳无相关量,而调制信号由于循环平稳而存在谱相关。循环谱密度(CSD)函数的计算是对循环自相关函数做傅里叶变换。循环频率与信号的基本频率一致时,CSD函数输出峰值。 4)基于能量检测的感知 低运算复杂度和低实现复杂度。缺点在于:判决门限的选择困难;无法区分能量来源是信号还是噪声; 低SNR条件下性能差。噪声水平的动态估计,降秩特征值分解法。GSM时隙能量检测,需与GSM系统同步,检测时间限制在时隙间隔内。FFT之后频域能量检测。检测概率在各种信道条件下的闭式解。 5)无线电识别 识别主用户采用的传输技术。获得更多的信息,更高的精度。比如蓝牙信号的主用户位置局限在10m 之内。特征提取和归类技术。各种盲无线电识别技术。 6)其它感知方法 多窗口谱估计。最大似然PSD估计的近似,对宽带信号接近最优。计算量大。 Hough变换。 基于小波变换的估计。检测宽带信道PSD的边界。 协同感知—— 协同(合作、协作)用来应对频谱感知中噪声不确定性、衰落和阴影等问题。解决隐终端问题,降低感知时间。提出有效的信息共享算法和处理增加的复杂度是协同感知要解决的难题。控制信道可利用:1)指配频带;2)非授权频带;3)衬于底层的UWB。 共享信息可以是软判决或硬判决结果。(基于能量检测的)感知合并方式:等增益合并、选择式合并、Switch & Stay(扫描式)合并。协同算法应:协议开支小;鲁棒性强;引入延迟小。 非协同感知,优点为计算和实现简单,缺点为存在隐终端问题、多径和阴影的影响。 协同感知,优点为更高的精度(接近最优)、可解决阴影效应和隐终端问题;缺点为复杂度高、额外通信流量开支和需要控制信道。 协同感知的两种实现形式: 1)中心式感知。中心单元广播可用频谱信息或直接控制CR通信。AP。硬信息合并、软信息合并。 2)分布式感知。彼此共享信息,自己对频谱做出判决。不需要配置基础结构网络。 外部感知—— 外部感知网络将频谱感知结果广播给CR。优点:可解决隐终端问题和衰落及阴影引起的不确定性;CR无需为感知分配时间,提高频谱效率;感知网络可以是固定的(避免电池供电)。外部感知可以是连续的或周期性的。感知数据传递给中心节点进一步处理,并将频谱占用信息共享。

无线电频谱资源审计方法 第3部分:电视和声音广播系统 编制说明

无线电频率使用率评价方法第3部分:电视 和声音广播系统 (征求意见稿) 编制说明 标准起草小组 2020年3月

编制说明 1.标准“范围”的内容 本部分规定了对调频频段广播系统、地面电视系统频率使用率评价的专用方法,通过以固定监测站监测为主,以车载或可搬移式监测设备为辅的方式,利用常规监测设备、调频广播和地面电视专用监测设备开展测试,具体包括频率使用率评价方法、测试系统要求、测试要求等内容。 本部分适用于调频广播、调频频段数字音频广播、地面数字及模拟电视的频率使用率评价测试。2.工作简况,主要包括:任务来源、主要工作过程、各起草单位和起草人及其在起草过程中所承担的工作等情况、对标准草案进行会议讨论范围、征求意见的范围、审查的范围2018年国家标准化管理委员会《关于下达第四批推荐性国家标准计划的通知》(国标委发函﹝2018﹞83号)中将“无线电频谱资源审计方法”系列标准纳入国家标准制修订计划,项目编号为:20184245-T-339,项目计划名称为“无线电频谱资源审计方法第3部分:电视和声音广播系统”。 本标准项目任务下达后,国家无线电监测中心(以下简称中心)筹备成立标准起草组,依据2016年以来国家无线电办公室开展的全国无线电频谱使用评估、使用率评价工作,制定此标准。 2016年底,《中华人民共和国无线电管理条例》(以下简称《条例》)正式发布,《条例》中对无线电频谱资源的使用率要求提出了具体要求,第十六条指出无线电频率使用许可证应当载明无线电频率的用途、使用范围、使用率要求、使用期限等事项,第二十六条指出除因不可抗力外,取得无线电频率使用许可后超过2年不使用或者使用率达不到许可证规定要求的,做出许可决定的无线电管理机构有权撤销无线电频率使用许可,收回无线电频率。2017年12月15日,工业和信息化部颁布《无线电频率使用率要求及核查管理暂行规定》(工信部无[2017]322号,以下简称《暂行规定》),并规定自2018年1月1日起施行,以具体支撑《条例》中无线电频率使用率的要求。《暂行规定》规定对无线电频率使用率采用频段占用度、年时间占用度、区域覆盖率以及用户承载率(用户规模)等指标进行评价,并特别对各种指标进行了定义,对陆地移动通信、水上移动通信、固定业务、无线电测定业务、气象辅助业务及空间无线电电台和卫星通信网等的使用率指标进行了规定,但指标中没有具体提及广播及电视方面的内容。 前期工作情况:2016年,为满足国家无线电办公室组织的全国无线电频谱使用评估专项活动工作技术要求,在工业和信息化部无线电管理局指导下,在调研我国无线电管理需求并结合监测能力和厂商意见基础上,中心起草了《无线电频谱使用评估通用方法》建议并经无线电管理局认可,提出了评估指标及计算方法。2016年、2017年,全国无线电管理机构以此通用方法,开展了针对公众移动通信、通信卫星、广播等多项无线电业务的频率使用情况评估工作,中心参与支撑相关工作,协助无线电管理局完成了2016、2017年国家无线电频谱使用评估报告,为我国频率资源事中、事后管理提供了有力的支撑。国家

信号的频域分析及MATLAB实现.doc

《M A T L A B电子信息应用》 课程设计 设计五 信号的频域分析及MATLAB实现 学院: 专业: 班级: 姓名: 学号:

信号的频域分析及MATLAB实现 一、设计目的 通过该设计,理解傅里叶变换的定义及含义,掌握对信号进行频域分析的方法。 二、课程设计环境 计算机 MATLAB软件 三、设计内容及主要使用函数 快速傅里叶变换的应用 1)滤波器频率响应 对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器。其功能就是得到一个特定频率或消除一个特定频率,滤波器是一种对信号有处理作用的器件或电路。主要作用是:让有用信号尽可能无衰减的通过,对无用信号尽可能大的。 滤波器的类型:巴特沃斯响应(最平坦响应),贝赛尔响应,切贝雪夫响应。 滤波器冲激响应的傅里叶变换就是该滤波器的频率响应。

2)快速卷积 卷积定理指出,函数卷积的傅里叶变换是函数傅里叶变换的乘积。即一个域中的卷积相当于另一个域中的乘积,例如时域中的卷积就对应于频域中的乘积。其中表示f 的傅里叶变换。 这一定理对拉普拉斯变换、双边拉普拉斯变换等各种傅里叶变换的变体同样成立。在调和分析中还可以推广到在局部紧致的阿贝尔群上定义的傅里叶变换。 利用卷积定理可以简化卷积的运算量。对于长度为n 的序列,按照卷积的定义进行计算,需要做2n - 1组对位乘法,其计算复杂度为;而利用傅里叶变换将序列变换到频域上后,只需要一组对位乘法,利用傅里叶变换的快速算法之后,总的计算复杂度为。这一结果可以在快速乘法计算中得到应用。 1. 信号的离散傅里叶变换 有限长序列的离散傅里叶变换公式为: kn N j N n e n x k X )/2(10)()(π--=∑= ∑==1_0)/2()(1)(N n kn N j e k X N n x π MATLAB 函数:fft 功能是实现快速傅里叶变换,fft 函数的格式为: ),(x fft y =返回向量x 的不连续fourier 变换。 若)6 cos()(πn n x =是一个N=12的有限序列,利用MATLAB 计算

无线电频谱监测

广东省无线电频谱监测统计工作规范 (试行) 广东省信息产业厅 二○○七年十月十六日

目录 第一章总则 (3) 1.1目的 (3) 1.2适用范围 (3) 1.3参考文件 (3) 1.4名词解释 (4) 第二章无线电频谱监测统计工作职责 (5) 2.1省级无线电管理机构的工作职责 (5) 2.1.1广东省信息产业厅(广东省无线电管理办公室)的工作职责 (5) 2.1.2广东省无线电监测站的工作职责 (5) 2.2各地以上市(含地级)无线电管理机构的工作职责 (5) 第三章无线电频谱监测统计工作内容 (6) 3.1无线电频谱监测工作计划的制定 (6) 3.2无线电频谱监测统计 (6) 3.2.1监测频段范围 (6) 3.2.2监测时间要求 (6) 3.2.3监测内容及技术方法 (6) 3.3监测情况总结 (7) 3.4监测统计结果的上报 (7) 第四章无线电频谱监测统计工作技术规范 (8) 4.1频道占用度 (8) 4.1.1频道占用度的计算公式 (8) 4.1.2频道占用度测试方法及测试参数的设定 (8) 4.1.3频道占用度测试的设定 (9) 4.2频段占用度 (9) 4.2.1频段占用度的计算公式 (9) 4.2.2频段占用度统计方法 (10) 4.2.2.1同城单站频段占用度数据统计方法 (10) 4.2.2.2同城多站频段占用度数据统计方法 (10) 4.2.3全省频段占用度数据统计方法 (11) 4.3测量结果记录和上报要求 (11) 4.3.1测量数据记录要求 (11) 4.3.2测量数据上报要求 (11) 第五章?无线电频谱监测统计报告?报送要求 (12) 5.1?无线电频谱监测统计报告?内容及格式要求 (12) 5.1.1文字部分 (12) 5.1.2报表部分 (12) 5.2报送时间及报送方式要求 (13) 第六章无线电频谱监测统计报告评价指标体系 (14) 6.1评价机制 (14)

离散频谱校正技术

图3.1.1 窗函数的频谱函数 三、离散频谱校正技术 经FFT 得到的离散频谱其幅值、相位和频率都可能产生较大的误差。从理论上分析,加矩形窗时单谐波频率的最大误差可达36.4%,即使加其它窗时,也不能完全消除此影响,如加Hanning 窗时,只进行幅值恢复时的最大误差仍高达15.3%,相位误差更大,高达90度。 目前国内外有四种对幅值谱或功率谱进行校正的方法:第一种方法是离散频谱能量重心校正法,第二种方法是对幅值谱进行校正的比值法,第三种方法是FFT+DFT 谱连续细化分析傅立叶变换法,第四种方法是相位差法,这些方法各有其特点。在相位差校正法中,有时移法、缩短窗长法和综合法。 1.比值校正法 这种方法利用频率归一化后差值为1的主瓣峰顶附近二条谱线的窗谱函数比值,建立一个以校正频率为变量的方程,解出校正频率,进而进行幅值和相位校正。解方程求校正频率的方法是多样化的,直接导出公式的方法称比值公式法,利用迭代求解的方法称为比值迭代公式法,用搜索求解的方法称比值峰值搜索法。研究表明,加Hanning 窗的比例校正法精度非常高,频率误差小于0.0001f ?,幅值误差小于万分之一,相位误差小于1度。 (1)频率校正 频率校正即求出主瓣中心的横坐标。设窗函数的频谱函数为 ()x f ,()x f 对称于y 轴,见图3.1.1。对于任一x ,窗谱函数为()x f , 离散频谱为y x ;对于任一()1+x ,窗谱函数为()1+x f ,离散频谱为 y x +1,构造v 为间隔为1的两点()x f 、()1+x f 的比值函数,由()x f 、()1+x f 、y x 和y x +1就能求出x 。由于f(x)的函数表达式为已知,故 可构造一函数 v F x f x f x y y x x == +=+()() ()11 (3.1.1) v 是间隔为1的两点的比值,是x 的函数,对上式解出其反函数: x g v =() (3.1.2) 即求解谱线校正量x k x -=?=?,这种方法称为比值公式法。 校正频率为: N f k k f s x ) (?+= (3.1.3) 式中,()12/,,2,1,0-=N k k Λ为谱线号,N 为分析点数,s f 为采样频率。 (2)幅值校正 设窗函数的频谱模函数为()x f ,主瓣函数为: )(0x x Af y -= (3.1.4) 这就是信号频谱与窗函数卷积的结果,式中,A 为真实幅值,对应主瓣中心0x ,现将k y y =,k x =代入式(3.1.4)得: )(0x k Af y k -= (3.1.5)

用Matlab进行信号与系统的时、频域分析

课程实验报告 题目:用Matlab进行 信号与系统的时、频域分析 学院 学生姓名 班级学号 指导教师 开课学院 日期 用Matlab进行信号与系统的时、频域分析 一、实验目的 进一步了解并掌握Matlab软件的程序编写及运行; 掌握一些信号与系统的时、频域分析实例; 了解不同的实例分析方法,如:数值计算法、符号计算法; 通过使用不同的分析方法编写相应的Matlab程序; 通过上机,加深对信号与系统中的基本概念、基本理论和基本分析方法的理解。 二、实验任务 了解数值计算法编写程序,解决实例; 在Matlab上输入三道例题的程序代码,观察波形图; 通过上机实验,完成思考题; 完成实验报告。 三、主要仪器设备

硬件:微型计算机 软件:Matlab 四、 实验内容 (1) 连续时间信号的卷积 已知两个信号)2()1()(1---=t t t x εε和)1()()(2--=t t t x εε,试分别画出)(),(21t x t x 和卷积)()()(21t x t x t y *=的波形。 程序代码: T=0.01; t1=1;t2=2; t3=0;t4=1; t=0:T:t2+t4; x1=ones(size(t)).*((t>t1)-(t>t2)); x2=ones(size(t)).*((t>t3)-(t>t4)); y=conv(x1,x2)*T; subplot(3,1,1),plot(t,x1); ylabel('x1(t)'); subplot(3,1,2),plot(t,x2); ylabel('x2(t)'); subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1)); ylabel('y(t)=x1*x2'); xlabel('----t/s'); (2)已知两个信号)()(t e t x t ε-=和)()(2/t te t h t ε-=,试用数值计算法求卷积,并分别画出)(),(t h t x 和卷积)()()(t h t x t y *=的波形。 程序代码: t2=3;t4=11; T=0.01; t=0:T:t2+t4; x=exp(-t).*((t>0)-(t>t2)); h=t.*exp(-t/2).*((t>0)-(t>t4)); y=conv(x,h)*T; yt=4*exp(-t)+2*t.*exp(-1/2*t)-4*exp(-1/2*t); subplot(3,1,1),plot(t,x); ylabel('x(t)'); subplot(3,1,2),plot(t,h); ylabel('h(t)'); subplot(3,1,3),plot(t,y(1:(t2+t4)/T+1),t,yt,'--r'); legend('by numberical','Theoretical'); ylabel('y=x*h'); xlabel('----t/s'); (3)求周期矩形脉冲信号的频谱图,已知s T s A 5.0,1.0,1===τ

认知无线电频谱检测

Xilinx大学生竞赛项目申请报告提纲及说明 1. 项目背景 (1)项目名称:认知无线电的频谱检测 (2) 项目背景:随着无线通信需求的不断增长,可用的频谱资源越来越少,呈现日趋紧张的状况;另一方面,人们发现 全球授权频段尤其是信号传播特性较好的低频段的频谱利 用率极低。认知无线电技术为解决频谱利用率低的问题提 供了行之有效的方法。由于认知无线电在使用空闲频段进 行通信的同时不断地检测授权用户的出现,一旦检测到授 权用户要使用该频段,认知无线电用户便自动退出并转移 到其他空闲频段继续通信,确保在不干扰授权用户的情况 下,与他们进行频谱共享。这样一来,在没有增加新频段 的情况下提升了用户量,且保证授权用户和认知用户通信 的可靠性,大大提高了频谱的使用效率。 (3)项目内容:本次课题主要研究认知无线电频谱检测的FPGA 实现。目前最为常用的认知无线电频谱检测方法是能量检 测。我们将一路电视信号下变频至基带信号再进入电路调 理模块对信号进行50欧匹配,并对信号进行放大,然后用 宽带A/D对信号进行采样,将采样后的数字信号做8点FFT 运算,再通入能量和累加电路,最后通过能量阈值判决电 路,判断频带的利用情况,从而找到频谱空穴,为认知无 线电的功能实现打下基础。 (4)项目难点:(1)高效低成本的FFT模块的设计与实现。 (2)累加器和阈值判决电路模块的设计与实现。 (5)项目的开发意义:认知无线电的显著特征是具有认知能 力,认知功能包括频谱感知,频谱分析和频谱判决。频谱 感知用于频谱空穴检测,是认知无线电系统实现的前提之 一。 (6) 硬件开发平台:Spartan 3E Board 2. 频谱感知的背景知识 本次设计以四通道的电视信号为例进行实现,在我国一路电视信号的传输需要8M的带宽,那么传输四路电视信号需要32M的带宽才 能实现。 我们将该四路电视信号进行复信号处理和频谱搬移,使其生成I,Q 两路正交信号,其AD频率采样为32MHZ,为了检测各个通道的频谱

国外频谱管理的现状

国外无线电频谱的管理现状 一、外部环境 二十一世纪将是信息社会时代,谁掌握了信息谁就有了竞争的优势。信息时代将改变人们的工作方式以及生活方式,而且将彻底改变世界利益的格局和竞争的态势。通信的重要性已经不仅表现为社会的基础设施,它已经成为现代社会生产力的要素和综合国力的组成部分。因此世界各国均投入巨资,促进和加强通信的现代化。无线电通信是传递信息的重要手段,为全社会提供着各类信息传递服务,在社会协调、经济发展、国防建设和人民生活中发挥着重要的作用。每天收听无线广播电台,使用蜂窝移动通信技术已经是人们同常生活中不可缺少的一部分了,尤其是移动状态下的通信,无线电已经成为其他方式无法替代的手段。无线电通信广泛的应用于公众通信、广播、电视、交通、石油化工、气象、渔业、旅游、教育、国防、公共安全等部门,并大量用于外贸、金融、证券、工商、体育等社会的各行各业,对于促进信息交流、保障国家安全、维护社会稳定、搞好生产调度、丰富人们物质文化生活都发挥着重要的作用,具有明显的社会与经济效益。 如上所述,无线电频谱是一种特殊宝贵的自然资源,它的应用非常重要而且广泛。当前在人类走向信息社会的情况下,无线电频谱越来越显得重要,可以说谁能够对无线电频谱资源丌发的充分,管理与利用得更科学有效,谁就能够在国际范围的竞争中处于优势地位。由于无线电频谱的管理涉及到很多方面,不仅有频率的划分、分配和设置无线电台的频率指配等问题,还有无线电设备的研制、生产和销售等问题。既有行政管理问题,又有技术问题。因此,管理无线电频率,台站和设备必须综合采用行政管理,法制管理,经济管理,技术管理等有效手段行政管理手段是无线电频谱管理工作中最常使用的手段,目前还被很多国家政府所采用。一般由相关政府机构颁布对频谱资源的利用与指配规则,指定相对业务,并采取执照或许可的方式对使用频谱资源的设备进行市场准入。 二、国外无限频谱管理现状 首先,无线电管理部门需要详细规定频率划分政策,指定频谱使用规则。例如美国的联邦通信委员会(FCC)就颁布实施了通信管理条例共一百余个部分,详细规定了各段频谱资源可用于进行的无线业务;并详细规定了相对应设备的技术指标。 目前制定无线电管理法的国家有日本《电波法》、澳大利亚《RadioCommunication Bill))、新西兰((Radio Communication ACT))、中国《无线电管理条例》,美国、英国、荷兰则以通信法((Communication ACT))涵盖之。 1.下面主要介绍美国无线电管理 美国电信方面的法律已形成比较完整的体系,主要有:通信法(Communication Act of 1934),1996年作了较大的修改,称作Telecommunication Act of 1996。主要修改是增加保证公平竞争方面的规定和促进技术发展的规定等。卫星通信法(Communication Satellite Act of l 962)国家电信和信息管理组织法(National Telecommunications and InformationAdministration Organization Act)电话揭发和争端解决法(Telephone Disclosure and DisputeAct)法律执行通信援助法(Communications Assistance for Law Enforcement Act)附加通信法令(Additional Communications Statute)

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

多种频谱校正方法及matlab代码

多种频谱校正方法 采样间隔归一化成1T ?=,采样长度为N .这样FFT 离散谱线为0,1)i X i N =-(,相应的 频率分辨率2/(1/)N f N ωπ?=?=.设FFT 离散谱线局部极高谱线为m (为了数学上简洁,假定从0开始,注意在MATLAB 环境下数组实际操作的是从1开始),记频偏量δωδω=?.我们需要使用谱线m 和与之相邻一条次高谱线,记这连续两条谱线中左边一条序号为M (当次高谱线在m 左侧时1M m =-,反之M m =). 下面列出若干算法的δ计算公式 1.加矩形窗的精确谱校正[1] i i i X U jV =+111()sin()()cos() M M M M opt M M V V M U U M K U U ωω+++-?+-?=-1211cos()sin()cos()sin()opt M M opt M M K M Z V U M K M Z V U M ωωωωωω++-???=+???? -?+???=+???+??? 2121 cos()cos()()Z M Z M M m Z Z ωωωδ?+?-?=+--2.加矩形窗情形,采用解析单频模型的幅值比校正[1,2]11||()||||M M M X M m X X δ++= +-+3.加汉宁窗情形,采用解析单频模型的幅值比校正[1,2] 112||||()|||| M M M M X X M m X X δ++-=+-+4.加矩形窗情形,采用解析单频模型的复比值校正[3] 11Re ()M M M X M m X X δ++??=+- ?-?? 5.加汉宁窗情形,采用解析单频模型的复比值校正[3] 112()M M M M X X M m X X δ+++=+--6.加矩形窗情形,采用解析单频模型的复合复比值校正[3]

讲座1-3 离散频谱校正技术(DOC)

图3.1.1 窗函数的频谱函数 讲座1-3 三、离散频谱校正技术 经FFT 得到的离散频谱其幅值、相位和频率都可能产生较大的误差。从理论上分析,加矩形窗时单谐波频率的最大误差可达36.4%,即使加其它窗时,也不能完全消除此影响,如加Hanning 窗时,只进行幅值恢复时的最大误差仍高达15.3%,相位误差更大,高达90度。 目前国内外有四种对幅值谱或功率谱进行校正的方法:第一种方法是离散频谱能量重心校正法,第二种方法是对幅值谱进行校正的比值法,第三种方法是FFT+DFT 谱连续细化分析傅立叶变换法,第四种方法是相位差法,这些方法各有其特点。在相位差校正法中,有时移法、缩短窗长法和综合法。 1.比值校正法 这种方法利用频率归一化后差值为1的主瓣峰顶附近二条谱线的窗谱函数比值,建立一个以校正频率为变量的方程,解出校正频率,进而进行幅值和相位校正。解方程求校正频率的方法是多样化的,直接导出公式的方法称比值公式法,利用迭代求解的方法称为比值迭代公式法,用搜索求解的方法称比值峰值搜索法。研究表明,加Hanning 窗的比例校正法精度非常高,频率误差小于0.0001f ?,幅值误差小于万分之一,相位误差小于1度。 (1)频率校正 频率校正即求出主瓣中心的横坐标。设窗函数的频谱函数为 ()x f ,()x f 对称于y 轴,见图3.1.1。对于任一x ,窗谱函数为()x f , 离散频谱为y x ;对于任一()1+x ,窗谱函数为()1+x f ,离散频谱为y x +1,构造v 为间隔为1的两点()x f 、()1+x f 的比值函数,由()x f 、 ()1+x f 、y x 和y x +1就能求出x 。由于f(x)的函数表达式为已知,故 可构造一函数 v F x f x f x y y x x == +=+()() ()11 (3.1.1) v 是间隔为1的两点的比值,是x 的函数,对上式解出其反函数: x g v =() (3.1.2) 即求解谱线校正量x k x -=?=?,这种方法称为比值公式法。 校正频率为: N f k k f s x ) (?+= (3.1.3) 式中,()12/,,2,1,0-=N k k 为谱线号,N 为分析点数,s f 为采样频率。 (2)幅值校正 设窗函数的频谱模函数为()x f ,主瓣函数为: )(0x x Af y -= (3.1.4) 这就是信号频谱与窗函数卷积的结果,式中,A 为真实幅值,对应主瓣中心0x ,现将k y y =,k x =代 入式(3.1.4)得:

国家无线电监测中心国家无线电频谱管理中心-中国无线电管理

国家无线电监测中心 国家无线电频谱管理中心 VHF 地空话音与数据通信系统监测方法

国家无线电监测中心 国家无线电频谱管理中心

国 家无线电监测中心 国家无线电频谱管理中心 目 录 1 范围 ...................................................................... 4 2 规范性引用文件 ............................................................. 4 3 术语和定义 ................................................................. 4 4 VHF 地空数据通信系统 . (6) 4.1 通信频率 ..................................................... 6 4.2 信号类型及参数特征 ............................................. 6 4.3 系统框图 ..................................................... 7 4.4 设备组成 ..................................................... 8 4.5 设备主要技术参数 . (9) 4.6 设备发射场强和有效辐射功率 (9) 5 监测设备配置规范 (9) 5.1 监测设备总的要求 .............................................. 9 5.2 接收机的基本要求 .............................................. 9 5.3 测量天线 .................................................... 10 5.4 射频电缆 .................................................... 10 6 VHF 地空数据通信系统监测方法 . (10) 6.1 监测方式 .................................................... 10 6.2 监测地点 .................................................... 11 6.3 监测类型 . (11) 6.4 监测流程 .................................................... 12 6.5 场强测量 .................................................... 13 6.6 占用度测量 ................................................... 13 6.7 干扰判定分析 ................................................. 14 6.8 干扰类别分析 ................................................. 15 6.9 干扰源定位方法 ............................................... 16 附录A ...................................................................... 18 附录 B ..................................................................... 20 附录 C (21)

认知无线电频谱分配的博弈论方法

《认知无线电频谱分配的博弈论方法》总结 张烨,龚晓峰 2009 摘要:问题:认知无线电中频谱分配问题备受关注,分配给用户的频谱资源却在时间或空间上存在不同程度的闲置。分析:为了提高频谱分配,需要涉及大量策略选择问题,可以利用博弈论的相关原理进行分析研究。解决问题方法:建立合适的认知无线电频谱分配问题的博弈论框架,从而促进无线通信的发展。 1、提出问题:无线通信技术不断发展,人们对无线通信需求不断增长,适用于无线通信的 频谱资源变得日益紧张,提高频谱利用率是当前亟待解决的问题。 2、分析问题: 2.1认知无线电技术:通过对周围环境的感知,动态改变传输功率、载频、调制方式等传输参数以适应运行环境的变化,从而提高频谱利用率[。 2.2认知无线电的频谱分配技术 2.2.1问题:在认知无线电中,频谱分配是根据需要接入系统的节点数目及其 QoS 要求将频谱分配给一个或多个指定节点。 2.2.2分析:(1)因此需要一种更为有效的频谱分配方法从而在各地区和各时间段里有效地利用空闲频谱,提高频谱利用率。频谱分配策略的选择直接决定系统容量、频谱利用率以及能否满足用户因不同业务而不断变化的需求。 (2)认知无线电的频谱分配原则:1)保证灵活性。2)应能提高系统性能。3)应尽量减小信令开销和计算量。

2.3.1问题:图论模型和定价拍卖模型都有很大的局限性,无法更好推动认知无线电频谱分配问题。 2.3.2分析:在频谱分配算法设计过程中,设计了大量的策略选择问题,因此需要提出新的频谱分配模型。 2.3.3解决方法:对于涉及策略选择的频谱分配问题,可以利用博弈论对相关的自适应算法进行分析。在分析过程中,主要需要确定以下四个方面的问题:(1) 算法是否具有稳 定状态;(2) 这些稳定状态是什么;(3) 这些稳定状态是否满足需要;(4) 算法收敛到稳定状态所需要的约束条件 图(1)认知无线电博弈论分析流程 1)论证算法具有稳定状态。在多数博弈论模型里,分布式算法的稳定状态为纳什均衡。 一般情况下,判断一个博弈过程中存在纳什均衡的充分条件:a、参与者集合是有限的;b、行动集合是封闭的,有界的凸集;c、效用函数是在行动空间上的连续的、拟凹函数。 补充1、纳什均衡:若一个行动向量满足:ui(a)≥uibi,a-i)?i∈N,bi∈Ai,则向量 a 被称为纳什均衡。也就是说,在参与者集合里,如果没有一个参与者能够靠自身行动的改变来提高自身收益时,整个参与者集合对应的行动向量就称为纳什均衡。 补充2、实际应用中,绝大多数算法都满足这些条件,即多数认知无线电的算法都有一个默认的稳定状态。 2)判定稳定状态。通过遍历一个博弈过程中所有可能的行动向量来判定一个博弈过程中 所有的稳定状态。 3)确定稳定状态是否满足需求。在找到纳什均衡点后,还应该确定此纳什均衡点是否为 我们所需要的。 3).1举例模型:一个具有中心接收机的单一簇 DS-SS 网络,除了中心接收机外,网络中的所有节点调整它们的发射功率,使得信号与加性干扰噪声比达到最大。所有者参与者的效用函数方程: ( ui(p)=hipi/??(1/k) k∈N\i∑hpkk+σ] (1) 其中,参与者集合是簇中除了中心接收机外的节点;行动集合是所有可能的功率等级(假设可选的功率等级有限);所有参与者的效用函数由式(1)给出;pi 是节

相关主题
文本预览
相关文档 最新文档