📄 chf.m
字号:
% Simulation of reduance wsn networks handoff foactor
% Needs the Communications toolbox and file "normrnd.m"
clear all;
ht=zeros(1,1000);
hk=zeros(1,1000);
lable='a';
Fd = 1; Fs = 1;
N= 70000 ; % Number of simulated points
method='qask'; % Quadrature amplitude modulation
set(1) = 4; set(2) = 16; set(3) = 64; % Sizes of constellations
for j=3:1:3
M = set(j); % Size of M-QAM constellation
l=1:1:M;
aux = sum(abs(modmap(l-1,Fd,Fs,method,M)).^2)/M;
energy(j) = aux(1)+aux(2);
i=1;
% for esno=0:2:26;
for k=0:1:50
esno=rand*30;
sigma = sqrt(10^(-esno/10)/2)*sqrt(energy(j));
x = randint(N,1,M); % Random information symbols (integers)
y = modmap(x,Fd,Fs,method,M); % Mapped signal
ynoisy = y + normrnd(0,sigma,N*Fs,2); % Gaussian noise added
z = demodmap(ynoisy,Fd,Fs,method,M); % Demapped noisy signal
s = symerr(x,z); % Number of symbol errors after demapping
bera(j,i) = (s/N)/log2(M); % Bit error rate (BER) with Gray mapping
snra(i) = esno;
i=i+1;
end
j
end
for j=3:1:3
M = set(j); % Size of M-QAM constellation
l=1:1:M;
aux = sum(abs(modmap(l-1,Fd,Fs,method,M)).^2)/M;
energy(j) = aux(1)+aux(2);
i=1;
% for esno=0:2:26;
for k=0:1:50
esno=rand*30;
sigma = sqrt(10^(-esno/10)/2)*sqrt(energy(j));
x = randint(N,1,M); % Random information symbols (integers)
y = modmap(x,Fd,Fs,method,M); % Mapped signal
ynoisy = y + normrnd(0,sigma,N*Fs,2); % Gaussian noise added
z = demodmap(ynoisy,Fd,Fs,method,M); % Demapped noisy signal
s = symerr(x,z); % Number of symbol errors after demapping
berg(j,i) = (s/N)/log2(M); % Bit error rate (BER) with Gray mapping
snrg(i) = esno;
i=i+1;
end
j
end
for i=1:1:51
if ((bera(3,i)>berg(3,i))&&(lable=='a'))
ht(1,i+1)=ht(1,i);
elseif((bera(3,i)>berg(3,i))&&(lable=='b'))
ht(1,i+1)=ht(1,i)+1;
lable='a';
else((bera(3,i)>berg(3,i))&&(lable=='a'))
ht(1,i+1)=ht(1,i)+1;
lable='b';
end
end
%set the CHF throughout is 0.05
for i=1:1:51
if (((bera(3,i)>0.05)&&(berg(3,i)>0.05))&&(bera(3,i)>berg(3,i))&&(lable=='a'))
hk(1,i+1)=hk(1,i);
elseif(((bera(3,i)>0.05)&&(berg(3,i)>0.05))&&(bera(3,i)>berg(3,i))&&(lable=='b'))
hk(1,i+1)=hk(1,i)+1;
lable='a';
else(((bera(3,i)>0.05)&&(berg(3,i)>0.05))&&(bera(3,i)>berg(3,i))&&(lable=='a'))
hk(1,i+1)=hk(1,i)+1;
lable='b';
end
end
% semilogy(snr,ber(1,:),'-b^',snr,ber(2,:),'-bo',snr,ber(3,:),'-bs');
%semilogy(snra,bera(3,:),'-o',snrg,berg(3,:),'-*');
i=[1:1:51];
plot(i,ht(1,i),'-*',i,hk(1,i),'-o');
grid on;
ylabel('切换次数');
xlabel('CHF采样次数');
legend( 'CHF切换','门限考虑CHF切换机制',1);
title('CHF切换机制及考虑门限切换机制对比.');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -