📄 mainbp.m
字号:
clear
%load d:\ling\goldpnfile
load d:\ling\commsim\data\codefile
gold_seq=code;
SNR_in=6;
%SNR_in=1:1:10;%unit is dB
usernum=4;
dataleg=1000;
addnum=1;
ecrtaladd=zeros(1,10);
convecrtaladd=zeros(1,10);
epochtaladd=zeros(1,10);
for j=1:addnum
ecrtal=[];
epochtal=[];
convecrtal=[];
neuralnum_hid=15;
neuralnum_in=4;
weight1=rand(neuralnum_in,neuralnum_hid)*2-1;
weight2=rand(neuralnum_hid,1)*2-1;
% central=rand(neuralnum_in,neuralnum_hid)*40-20;
%variant=rand(neuralnum_in*neuralnum_hid,neuralnum_in);
% variant=rand(neuralnum_hid,1)+1;
trainsample1=[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1; ...
0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1]';
tempdata=randint(usernum,dataleg-16);
tempdata=[trainsample1 tempdata];
tempdata=tempdata*2-1;
for i=1:length(SNR_in)
%SNR_in_dB=ones(1,4)'*SNR_in(i);
SNR_in_dB=[SNR_in(i) 14 16 18]';
%hh=SNR_in(i);
%SNR_in_dB=[8 8 8 8]'-[0 hh hh hh]';
[filterout,truedata]=inputf(SNR_in_dB,gold_seq,usernum,tempdata,dataleg);
[convecr]=convfilt(filterout,truedata);
convecrtal=[convecrtal convecr];
[ecrone,epoch,weight1,weight2]=mudbp(SNR_in(i),filterout,truedata,dataleg,usernum,j,weight1,weight2);
%[ecr,epoch,central,variant,weight,weight0]=mulrbffcn(SNR_in(i),filterout,truedata,dataleg,usernum,j,central,variant,weight,weight0);
ecrtal=[ecrtal ecrone];
epochtal=[epochtal epoch];
end
ecrtaladd=ecrtaladd+ecrtal;
epochtaladd=epochtaladd+epochtal;
convecrtaladd=convecrtaladd+convecrtal;
end
ecrtal=ecrtaladd/addnum;
epochtal=epochtaladd/addnum;
convecrtal=convecrtaladd/addnum;
%save d:\ling\commsim\bp\bpresult\bppow2 ecrtal convecrtal epochtal SNR_in usernum
semilogy(SNR_in,ecrtal,'-',SNR_in,ecrtal,'r*')
hold on
semilogy(SNR_in,convecrtal,'g-',SNR_in,convecrtal,'go')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -