武汉理工大学《通信工程应用技术综合训练与实习》报告
%下面创建一个两层网络。 S1=10;
[R,Q]=size(number); [S2,Q]=size(targets); P=number;
net=newff(minmax(P),[S1,S2],{'logsig' 'logsig'},'traingdx'); net.LW{2,1}=net.LW{2,1}*0.01; net.b{2}=net.b{2}*0.01; %下面对原始标准信号进行训练
%训练结束条件:最大次数1000,误差平方和为0.01; P=number; T=targets;
net.performFcn='sse'; net.trainParam.goal=0.01; net.trainParam.show=10; net.trainParam.epochs=1000; net.trainParam.mc=0.95; [net,tr]=train(net,P,T); %下面进行含噪声信号的训练 netn=net;
netn.trainParam.goal=0.005; netn.trainParam.epochs=5000;
T=[targets targets targets targets]; for i=1:10
P=[number,number,(number+randn(R,Q)*0.1),(number+randn(R,Q)*0.2)]; [netn,tr]=train(netn,P,T);
26
武汉理工大学《通信工程应用技术综合训练与实习》报告
end
%下面网络再次对标准信号进行训练 P=number; T=targets;
netn.performFcn='sse'; netn.trainParam.goal=0.01; netn.trainParam.show=10; netn.trainParam.epochs=1000; netn.trainParam.mc=0.95; [netn,tr]=train(netn,P,T); %下面代码用来测试网络正确率 noise_range=0:0.01:0.35; max_test=100; T=targets; for i=1:10
noise_level(i)=noise_range(i); errors1(i)=0; errors2(i)=0; for j=1:max_test
P=number+randn(35,10).*noise_level(i); A=sim(net,P); AA=compet(A);
errors1(i)=errors1(i)+sum(sum(abs(AA-T)))/2; An=sim(netn,P); AAn=compet(An);
errors2(i)=errors2(i)+sum(sum(abs(AAn-T)))/2;
27
武汉理工大学《通信工程应用技术综合训练与实习》报告
end; end;
correct1=1-errors1/1000; correct2=1-errors2/1000; figure(1);
plot(noise_range,correct1,'r-',noise_range,correct2); title('识别率'); xlabel('噪声指标');
ylabel('未经误差训练的网络 - 经过误差训练的网络---'); figure(2); err=0.45; for index=1:1:10
noisyJ=number(:,index)+randn(35,1)*err; e=index; subplot(4,5,e); plotchar(noisyJ); A2=sim(net,noisyJ); A2=compet(A2);
answer=find(compet(A2)==1); subplot(4,5,e+10);
plotchar(number(:,answer)); end;
28
武汉理工大学《通信工程应用技术综合训练与实习》报告
本科生课程设计成绩评定表
姓 名 专业、班级 性 别 课程设计题目:模式识别 课程设计答辩或质疑记录: 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字:
年 月 日
29