📄 main10.m
字号:
%产生4个节点的训练集
clear all;
rb=1000;%码率
fc=12000;%载频
df=rb;%FSK调制频偏
N=50;%码元个数
L=120;%每个码字采样数
%-------------------------------------------
%nodel, 产生训练节点1的输入矩阵和目标矩阵
i=1;
p1=zeros(1,225);k1=0.1*ones(3,225);
for j=1:5
for snr_in_db=25:-5:5
for k=1:9
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(1));
p1(:,i)=p(1);
switch k
case{1,4,}
k1(1,i)=0.9;
case{9}
k1(2,i)=0.9;
otherwise
k1(3,i)=0.9;
end
i=i+1;
end
end
end
save p1.mat p1;
save k1.mat k1;
%---------------------------------------------------
%node 2, 产生训练节点的输入矩阵和目标矩阵
i=1;
p2=zeros(1,50);k2=0.1*ones(2,50);
for j=1:5
for snr_in_db=25:-5:5
k=1;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(2));
p2(:,i)=p(2);
k2(1,i)=0.9;
i=i+1;
k=4;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(2));
p2(:,i)=p(2);
k2(2,i)=0.9;
i=i+1;
end
end
save p2.mat p2;
save k2.mat k2;
%-----------------------------------------------------
%node 4,产生训练节点4的输入矩阵和目标矩阵
i=1;
p4=zeros(1,150);k4=0.1*ones(4,150);
for j=1:5
for snr_in_db=25:-5:5
k=3;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(1,i)=0.9;
i=i+1;
k=6;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(2,i)=0.9;
i=i+1;
k=8;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(3,i)=0.9;
i=i+1;
k=2;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(4,i)=0.9;
i=i+1;
k=5;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(4,i)=0.9;
i=i+1;
k=7;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(4));
p4(:,i)=p(4);
k4(4,i)=0.9;
i=i+1;
end
end
save p4.mat p4;
save k4.mat k4;
%--------------------------------------------------
%node 5,产生训练节点5的输入矩阵和目标矩阵
i=1;
p5=zeros(1,75);k5=0.1*ones(2,75);
for j=1:5
for snr_in_db=25:-5:5
k=2;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(5));
p5(:,i)=p(5);
k5(1,i)=0.9;
i=i+1;
k=5;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(5));
p5(:,i)=p(5);
k5(2,i)=0.9;
i=i+1;
k=7;
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(i);disp(k);disp(p(5));
p5(:,i)=p(5);
k5(2,i)=0.9;
i=i+1;
end
end
save p5.mat p5;
save k5.mat k5;
%对各节点进行训练
load p1.mat;
load k1.mat;
load p2.mat;
load k2.mat;
%load p3.mat;
%load k3.mat;
load p4.mat;
load k4.mat;
load p5.mat;
load k5.mat;
%load p6.mat;
%load k6.mat;
%---------------------------------------------
%node 1
p=p1;t=k1;sl=2;df=25;me=30000;eg=0.01;lr=0.001;
[w11,b11,w21,b21,ep,tr]=trainNN(p,t,sl,df,me,eg,lr);NNTWARN OFF;
save w11.mat w11;
save b11.mat b11;
save w21.mat w21;
save b21.mat b21;
%---------------------------------------------
%node 2
p=p2;t=k2;sl=2;df=25;me=30000;eg=0.01;lr=0.001;
[w12,b12,w22,b22,ep,tr]=trainNN(p,t,sl,df,me,eg,lr);NNTWARN OFF;
save w12.mat w12;
save b12.mat b12;
save w22.mat w22;
save b22.mat b22;
%---------------------------------------------
%node 3
%p=p3;t=k3;sl=2;df=25;me=30000;eg=0.01;lr=0.001;
%[w13,b13,w23,b23,ep,tr]=trainNN(p,t,sl,df,me,eg,lr);NNTWARN OFF;
%save w13.mat w13;
%save b13.mat b13;
%save w23.mat w23;
%save b23.mat b23;
%---------------------------------------------
%node 4
p=p4;t=k4;sl=4;df=25;me=30000;eg=0.01;lr=0.001;
[w14,b14,w24,b24,ep,tr]=trainNN(p,t,sl,df,me,eg,lr);NNTWARN OFF;
save w14.mat w14;
save b14.mat b14;
save w24.mat w24;
save b24.mat b24;
%---------------------------------------------
%node 5
p=p5;t=k5;sl=2;df=25;me=30000;eg=0.01;lr=0.001;
[w15,b15,w25,b25,ep,tr]=trainNN(p,t,sl,df,me,eg,lr);NNTWARN OFF;
save w15.mat w15;
save b15.mat b15;
save w25.mat w25;
save b25.mat b25;
%产生测试集,对分类器进行测试
load w11.mat; load w12.mat; load w14.mat;load w15.mat; %load w16.mat;
load b11.mat; load b12.mat; load b14.mat;load b15.mat; %load b16.mat;
load w21.mat; load w22.mat; load w24.mat;load w25.mat; %load w26.mat;
load b21.mat; load b22.mat; load b24.mat;load b25.mat; %load b26.mat;
snr_in_db=5;
N=50;
L=120;
rb=1000;
fc=12000;
df=rb;
result=zeros(9,9);p=zeros(1,5);
num=0;indx=0;
for i=1:10
for k=1:9
for j=1:20
%%----------------------------------------------------
x=modulator(rb,fc,snr_in_db,k,df,N,L);
p=paracaculator2(x);
disp(num);disp(k);
a=simuff(p(1),w11,b11,'tansig',w21,b21,'logsig');
[mx,indx]=max(a);
switch indx
case 1
a=simuff(p(2),w12,b12,'tansig',w22,b22,'logsig');
[mx,indx]=max(a);
switch indx
case 1
indx=1;
case 2
indx=4;
end
case 2
indx=9;
case 3
%a=simuff(p(3),w13,b13,'tansig',w23,b23,'logsig');
%[mx,indx]=max(a);
%switch indx
%case 1
a=simuff(p(4),w14,b14,'tansig',w24,b24,'logsig');
[mx,indx]=max(a);
switch indx
case 1
indx=3;
case 2
indx=6;
case 3
indx=8;
case 4
%end
%case 2
a=simuff(p(5),w15,b15,'tansig',w25,b25,'logsig');
[mx,indx]=max(a);
switch indx
case 1
indx=2;
case 2
indx=7;
end
end
end
disp(indx);
result(k,indx)=result(k,indx)+1;
num=num+1;
%%-------------------------------------------------------------------------
end
end
end
result=(result/num*9)*100;
disp(snr_in_db);disp(result);
bar3(result);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -