《基于MATLAB的数字信号处理》实验报告.doc

上传人:PIYPING 文档编号:10530844 上传时间:2021-05-22 格式:DOC 页数:57 大小:1.28MB
返回 下载 相关 举报
《基于MATLAB的数字信号处理》实验报告.doc_第1页
第1页 / 共57页
《基于MATLAB的数字信号处理》实验报告.doc_第2页
第2页 / 共57页
《基于MATLAB的数字信号处理》实验报告.doc_第3页
第3页 / 共57页
《基于MATLAB的数字信号处理》实验报告.doc_第4页
第4页 / 共57页
《基于MATLAB的数字信号处理》实验报告.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《《基于MATLAB的数字信号处理》实验报告.doc》由会员分享,可在线阅读,更多相关《《基于MATLAB的数字信号处理》实验报告.doc(57页珍藏版)》请在三一文库上搜索。

1、西北工业大学基于MATLAB的数字信号处理实验报告学 院: 学号: 姓名: 专 业: 实验时间: 2014年7月 指导教师: 西北工业大学2014年 07 月实验一 MATLAB基本编程实验一、实验目的及要求1熟悉MATLAB运行环境;2. 掌握MATLAB的基本语法和函数;3. 掌握MATLAB的基本绘图功能二、实验设备(环境)及要求1 计算机2 Matlab软件编程实验平台三、实验内容与步骤1求下列线性方程组的解 2. 分别用for或while循环结构编写程序,求出 。并考虑一种避免循环语句的程序设计算法实现同样的运算。 3. 在同一坐标系下绘制以下3条曲线,并作标记。 四、设计思想设计思

2、想1.1:对于AX=B类型的方程组求解,需要先对非奇异矩阵A求逆,若存在逆矩阵,然后与B相乘即为所求设计思想1.2:用for或while循环结构编写程序时,首先对K初始化为0,确定循环的起始条件、步长和终值条件;用非循环语句时,先确定首项、公比,然后带入到等比数列求和公式中设计思想1.3:首先确定绘制曲线的每两点之间的间隔,然后在一幅图上绘制出所有曲线,并进行标注五、程序代码及注释程序代码1: A=6 3 4; -2 5 7;8 -4 -3; %矩阵A X=inv(A) X = 0.1300 -0.0700 0.0100 0.5000 -0.5000 -0.5000 -0.3200 0.480

3、0 0.3600 B=3 -4 -7; X=X*B程序代码2:方法1:for循环结构实现%结果初始化0K= 0.0;for i = 1: 106 %默认步长为1K=K+sqrt(3)/(2i);end;fprintf(K=%fn,K);方法2:while循环结构实现K = 0.0;i = 1;while i 107K = K +sqrt(3)/(2i);i = i + 1;end;fprintf(K=%fn,K);方法3:不使用循环,利用等比数列的前106项和公式实现K = sqrt(3)/2.0; %数列首项K = K *(1-0.5106)/(1-0.5);%公比为0.5fprintf(K

4、=%fn,K);程序代码3:x=0:0.01:pi; %步长0.01y1=sin(x); y2=sin(x).*sin(10*x);y3=-cos(x);grid on%显示网格hold on %在一幅图中绘制多条曲线plot(x, y1, r,LineWidth,2); %y1红线表示,线宽为2plot(x, y2, g,LineWidth,2); %y2绿线表示,线宽为2plot(x, y3, b,LineWidth,2); %y3蓝线表示,线宽为2%x轴范围03.5,y轴范围-1.21.2 axis(0,3.5,-1.2,1.2); %图例注释自动放在最佳位置legend(sin(x),

5、sin(x)sin(10x),-cos(x); xlabel(x坐标轴); %标注横坐标ylabel(y坐标轴); %标注纵坐标title(三曲线对比图); %标注标题六、实验结果实验结果1:X = 0.6000 7.0000 -5.4000所以,X=x1,x2,x3= 0.6000, 7.0000, -5.4000实验结果2:K=1.732051实验结果3:三曲线的对比图如下所示: 图1.1 三曲线的对比实验二 基于MATLAB信号处理实验一、实验目的及要求1. 回顾数字信号处理的主要内容;2. 掌握利用MATLAB进行信号处理的方法;3. 了解信号处理工具箱中一些函数的功能;二、实验设备(

6、环境)及要求1 计算机2 Matlab软件编程实验平台三、实验内容1 设序列 其中, 2 . 一数字滤波器由 频率响应函数描述 1)写出其差分方程表示; 2)画出上面滤波器的幅频和相频图; 3)产生信号 的200个样本,通过该滤波器得到输出y(n), 试将输出y(n)的稳态部分与x(n)作比较,说明这两个正弦信号的幅度和相位是如何受该滤波器影响的。3. 设计FIR滤波器(带通滤波器,四种窗函数, fs2000Hz, 带通频率300Hz600Hz,阶数自选, 画频率特性并分析比较)。四、设计思想设计思想2.1:将求互相关问题转化为求卷积的问题,互相关的区间大小为两信号的区间端点分别相加,区间长度

7、为两信号区间长度之和设计思想2.2:由系统的差分方程,得到方程的各个项的系数,进而可求出系统的幅频和相频响应设计思想2.3:首先选定带通滤波器的阶数,根据采样频率、上、下限截止频率求得滤波器的各个参数,然后得出窗函数的频率特性五、程序代码及注释程序代码2.1:clc;clear all;x=3,1,7,0,-1,4,2;%冲击信号x的幅度nx=-3:3; %冲击信号x的取值范围%对x进行右移2个单位,得到 x(n-2)ny=nx+2;y=x;w=normrnd(0,1,1,7); %w为均值为0,方差为1的高斯随机序列nw=ny; %得到 y(n)=x(n-2)+w(n)%对x进行翻折x=fl

8、iplr(x);nx=-fliplr(nx);%卷积nyb=ny(1)+nx(1);nye=ny(length(y)+nx(length(x);nrxy=nyb:nye;rxy=conv(y,x);subplot(1,1,1);stem(nrxy,rxy);axis(-5,9,0,90);xlabel(x);title(x(n)与y(n)的互相关);程序代码2.2.2:clcclear allfs=1000;b=1 0 0 0 1;a=1 0 0 0 -.8145;h,f=freqz(b,a,512,fs);mag=abs(h);%幅度ph=angle(h);%相位subplot(2,1,1)

9、;ph=ph*180/pi;%由弧度转换为角度plot(f,mag);grid;xlabel(Frequency/Hz);ylabel(Magnitude);title(幅频响应);subplot(2,1,2);plot(f,ph);grid;xlabel(Frequency/Hz);ylabel(Phase);title(相频响应);程序代码2.2.3:clcclear allN=200;n=linspace(-100,100,N);x=sin(pi*n/2)+5*cos(pi*n);N_fft=2nextpow2(2*N);w=linspace(0,2*pi,N_fft);h_fft=(1

10、+exp(-1j*4*w)./(1-0.8145*exp(-1j*4*w);x_fft=fft(x,N_fft);y_fft=x_fft.*h_fft;y_temp=fftshift(ifft(y_fft);y=y_temp(N_fft/2:N_fft/2+N-1);figure;plot(w,abs(h_fft),b,LineWidth,2);hold on;plot(w,angle(h_fft),g,LineWidth,2);legend(幅度,相位)figure;plot(n,x,b);hold on;plot(n,real(y),g);legend(x(n),y(n)稳态部分)程序代码

11、2.3:fs=2000; %采样频率fc1=300; %下限截止频率fc2=600;%上限截止频率N=31; % 滤波器的阶数 wlp=fc1/(fs/2);whp=fc2/(fs/2);wn=wlp,whp; %滤波器归一化后的上下限截止频率w1=boxcar(N); %矩形窗的时域响应w2=hanning(N); %汉宁窗的时域响应w3=hamming(N); %海明窗的时域响应w4=blackman(N); %布莱克窗的时域响应%用不同的窗函数设计N阶的滤波器b1=fir1(N-1,wn,w1); b2=fir1(N-1,wn,w2); b3=fir1(N-1,wn,w3); b4=fi

12、r1(N-1,wn,w4); %求出滤波器的频率响应H1 f1=freqz(b1,1,512,fs);H2 f2=freqz(b2,1,512,fs);H3 f3=freqz(b3,1,512,fs);H4 f4=freqz(b4,1,512,fs);figure;subplot(2,1,1); plot(f1,20*log10(abs(H1);xlabel(频率/Hz);ylabel(振幅/dB); title(矩形窗的幅频特性);grid on;subplot(2,1,2); plot(f1,180/pi*unwrap(angle(H1);xlabel(频率/Hz);ylabel(相位);

13、 title(矩形窗的相频特性);grid on;figure;subplot(2,1,1);plot(f2,20*log10(abs(H2);xlabel(频率/Hz);ylabel(振幅/dB); title(汉宁窗的幅频特性);grid on;subplot(2,1,2); plot(f2,180/pi*unwrap(angle(H2);xlabel(频率/Hz);ylabel(相位); title(汉宁窗的相频特性);grid on;figure;subplot(2,1,1);plot(f3,20*log10(abs(H3);xlabel(频率/Hz);ylabel(振幅/dB); t

14、itle(海明窗的幅频特性);grid on;subplot(2,1,2);plot(f3,180/pi*unwrap(angle(H3);xlabel(频率/Hz);ylabel(相位); title(海明窗的相频特性);grid on;figure;subplot(2,1,1);plot(f4,20*log10(abs(H4);xlabel(频率/Hz);ylabel(振幅/dB);title(布莱克窗的幅频特性);grid on;subplot(2,1,2); plot(f4,180/pi*unwrap(angle(H4); xlabel(频率/Hz);ylabel(相位); title

15、(布莱克窗的相频特性);grid on;六、实验结果实验结果2.1:图2-1 x(n)与y(n)的互相关序列图由实验结果可知,x(n)与y(n)的互相关只在区间-4,8上有能力,刚好是区间-3,3与右移后的区间-1,5两端点之和,与结论一致。且互相关在2处达到最大。实验结果2.2.1:其表示的差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4)实验结果2.2.2:滤波器的幅频和相频图如下所示:图2-2 滤波器的幅频与相频图实验结果2.2.3:由下图实验结果可知,输出信号相对于输入信号有一小小的延迟,基本上x(n)的频点都通过了,滤波器是个梳状filter,正好在想通过的点附近

16、相位为0,也就是附加延迟为0图2-3 滤波器的幅度和相位变化图2-4 两信号波形实验结果2.3:四种带通滤波器的窗函数的频率响应如下所示: 图2-5 矩形窗的频率特性 图2-6 汉宁窗的频率特性 图2-7 海明窗的频率特性图2-8 布莱克曼窗的频率特性实验三 基于MATLAB的图像处理实验一、实验目的及要求1了解图像处理的基本概念和功能;2. 掌握利用MATLAB进行图像处理的方法;3. 了解图像处理工具箱中一些函数的功能;二、实验设备(环境)及要求1 计算机2 Matlab软件编程实验平台三、实验内容1对一幅分别添加了椒盐噪声和高斯白噪声的图象进行均值和中值滤波(取三种不同大小的模板),并分

17、析实验结果。2对一幅图像进行DCT变换,分别将小于5、10、20的变换系数置为0,进行反DCT得到重构图像,显示原图像和各重构图像并分别计算重构图像的峰值信噪比和置为0的变换系数的个数。 四、设计思想设计思想3.1:任意读取一幅图像,利用matlab自带函数imnoise()向图像中加入椒盐噪声和高斯噪声,并分别用3*3、5*5、7*7模板进行均值、中值滤波处理。均值滤波是一种线性滤波,也是低通滤波。中值滤波是一种统计滤波器,是非线性的。分别向图像中加入高斯噪声和椒盐噪声,利用不同的滤波方法,以及不同大小的窗口模板进行滤波,比较结果,得出结论。由实验可以看出,中值滤波对椒盐噪声的处理效果好,均

18、值滤波对高斯噪声的处理效果好。无论是中值滤波还是均值滤波,都是其模板越大,图像越模糊。所以选择模板大小时,以处理图片效果最佳为宜。设计思想3.2:由于DCT变换有使图像能量几种在左上方的特性,因此重构图像保留了原始图像大部分的图像特征,其视觉效果与原始图像相差不大。对比重构前后的图像易知,重构后的图像稍显模糊,这是因为该压缩算法为有损压缩,压缩后的图像丢失了原始图像部分数据信息。五、程序代码及注释程序代码3.1:%读取源图像I = imread(cameraman.tif);%向图像中加入椒盐噪声J = imnoise(I,salt & pepper,0.1);%向图像中加入高斯噪声K = i

19、mnoise(I,gaussian,0.02);figure;subplot(2,2,1);imshow(I);title(原图像);subplot(2,2,3);imshow(J);title(加入椒盐噪声);subplot(2,2,4);imshow(K);title(加入高斯噪声);%进行3*3均值滤波J_average1=filter2(fspecial(average,3),J)/255;%进行5*5均值滤波J_average2=filter2(fspecial(average,5),J)/255;%进行7*7均值滤波J_average3=filter2(fspecial(avera

20、ge,7),J)/255;figure;subplot(2,2,1);imshow(J); title(加入椒盐噪声);subplot(2,2,2);imshow(J_average1);title(3*3模板均值滤波);subplot(2,2,3);imshow(J_average2);title(5*5模板均值滤波);subplot(2,2,4);imshow(J_average3);title(7*7模板均值滤波);%进行3*3中值滤波J_Med1=medfilt2(J,3 3);%进行5*5中值滤波J_Med2=medfilt2(J,5 5);%进行5*5中值滤波J_Med3=medf

21、ilt2(J,7 7);figure;subplot(2,2,1);imshow(J); title(加入椒盐噪声);subplot(2,2,2);imshow(J_Med1);title(3*3模板中值滤波);subplot(2,2,3);imshow(J_Med2);title(5*5模板中值滤波);subplot(2,2,4);imshow(J_Med3);title(7*7模板中值滤波);%进行3*3均值滤波K_average1=filter2(fspecial(average,3),K)/255;%进行5*5均值滤波K_average2=filter2(fspecial(averag

22、e,5),K)/255;%进行7*7均值滤波K_average3=filter2(fspecial(average,7),K)/255;figure;subplot(2,2,1);imshow(K); title(加入高斯噪声);subplot(2,2,2);imshow(K_average1);title(3*3模板均值滤波);subplot(2,2,3);imshow(K_average2);title(5*5模板均值滤波);subplot(2,2,4);imshow(K_average3);title(7*7模板均值滤波);%进行3*3中值滤波K_Med1=medfilt2(K,3 3)

23、;%进行5*5中值滤波K_Med2=medfilt2(K,5 5);%进行5*5中值滤波K_Med3=medfilt2(K,7 7);figure;subplot(2,2,1);imshow(K); title(加入高斯噪声);subplot(2,2,2);imshow(K_Med1);title(3*3模板中值滤波);subplot(2,2,3);imshow(K_Med2);title(5*5模板中值滤波);subplot(2,2,4);imshow(K_Med3);title(7*7模板中值滤波);程序代码3.2:%读取源图像I=imread(cameraman.tif);%第2题 离散

24、余弦变换及反变换%对图像进行离散余弦变换J=dct2(I);%小于5的变换系数的索引值col row = size(find(abs(J) 5);A=col*row;%置为0的变换系数的个数%小于10的变换系数的索引值col row= size(find(abs(J) 10);B=col*row;%置为0的变换系数的个数%小于20的变换系数的索引值col row= size(find(abs(J) 20);C=col*row;%置为0的变换系数的个数%将小于5的变换系数置为0后做离散余弦反变换J(abs(J) 5 ) = 0;I1=idct2(J);%将小于10的变换系数置为0后做离散余弦反变

25、换J(abs(J) 10) = 0;I2=idct2(J);%将小于20的变换系数置为0后做离散余弦反变换J(abs(J) 20) = 0;I3=idct2(J);%显示原图及反变换结果figure(2);subplot(2,2,1);imshow(I);title(原图);subplot(2,2,2);imshow(I1,0,255);title(系数置0的个数小于5);subplot(2,2,3);imshow(I2,0,255);title(系数置0的个数小于10);subplot(2,2,4);imshow(I3,0,255);title(系数置0的个数小于20);%计算反重构时,DC

26、T的变换系数的置0个数小于5时的峰值信噪比及置为0的变换系数的个数I = double(I);I1 = double(I1);Row,Col = size(I);Row,Col = size(I1);MSE1 = sum(sum(I-I1).2)/(Row * Col);PSNR1 = 10 * log10(2552/MSE1);fprintf(图像的峰值信噪比:MSE1=%fn,MSE1);fprintf(置为0的变换系数的个数为:PSNR1=%fn,PSNR1);%计算反重构时,DCT的变换系数的置0个数小于10时的峰值信噪比及置为0的变换系数的个数I = double(I);I2 = d

27、ouble(I2);Row,Col = size(I);Row,Col = size(I2);MSE2 = sum(sum(I-I2).2)/(Row * Col);PSNR2 = 10 * log10(2552/MSE2);fprintf(图像的峰值信噪比:MSE2=%fn,MSE2);fprintf(置为0的变换系数的个数为:PSNR2=%fn,PSNR2);%计算反重构时,DCT的变换系数的置0个数小于20时的峰值信噪比及置为0的变换系数的个数I = double(I);I3 = double(I3);Row,Col = size(I);Row,Col = size(I3);MSE3 =

28、 sum(sum(I-I3).2)/(Row * Col);PSNR3 = 10 * log10(2552/MSE3);fprintf(图像的峰值信噪比:MSE3=%fn,MSE1);fprintf(置为0的变换系数的个数为:PSNR3=%fn,PSNR3);六、实验结果实验结果3.1:由实验结果可以看出,对于椒盐噪声,中值滤波效果明显优于均值滤波,对于高斯噪声,上图中中值滤波比均值滤波效果略佳。随着模板从3*3增加到7*7,对于均值滤波,滤噪效果变好,但图像变模糊;对于中值滤波,图像细节丢失变多,滤除高斯噪声的效果变好。 图3-1 加噪前、后图像对比图3-2 加椒盐噪声的图像均值滤波前、后的

29、图像对比图3-3 加椒盐噪声的图像中值滤波前、后的图像对比 图3-4加高斯噪声的图像均值滤波前、后的图像对比图3-5 加高斯噪声的图像中值滤波前、后的图像对比实验结果3.2:图3-6 原图及重构图像图3-7 程序运行结果由实验结果可知,当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.768259,重构图像置为0的变换系数的个数个数为:43.708737;当DCT变换的系数置0个数小于10时,重构图像与原图像的峰值信噪比15.922448,重构图像置为0的变换系数的个数个数为:36.110705;当DCT变换的系数置0个数小于5时,重构图像与原图像的峰值信噪比为2.7682

30、59,重构图像置为0的变换系数的个数个数为:30.366348;可以发现,在抛弃部分DCT系数后,重构图像时不会带来其画面质量的显著下降,采用这种方法来实现压缩算法时,可以通过修改mask变量中的DCT系数来更好地比较仿真结果。对比重构前后的图像易知,重构后的图像稍显模糊,这是因为该压缩算法为有损压缩,压缩后的图像丢失了原始图像部分数据信息。实验四 基于MATLAB神经网络编程实验一、实验目的及要求1了解神经网络的基本概念和原理;2. 掌握用MATLAB实现神经网络的思路和方法;3. 了解神经网络工具箱函数的功能。二、实验设备(环境)及要求1 计算机2 Matlab软件编程实验平台三、实验内容

31、1、 利用2输入的MP模型是否可实现“与”、“或”、“非”和“异或”功能?若能,编程实现并给出实现各种功能的权值和实验结果,若不能,请说明原因。2、用人工神经网络拟合函数 说明:1)网络结构为三层(输入层、1个隐层和输出层) 2)获取两组数据,一组作为训练集,一组作为测试集 3)用训练集训练网络 4)用测试集检验训练结果 四、设计思想设计思想4.1:如果能够找到一条直线将输入数据分开,则此功能可以利用2输入的MP模型实现,否则,此功能不可以利用2输入的MP模型实现设计思想4.2:BP神经网络是误差反向传播神经网络的简称,是神经网络的一个重要分支,是有监督学习网络,也是在实际应用中最常见的网络。

32、基于并行的网络结构,主要由输入层、隐含层、输出层组成,能够实现m到n维的非线性映射,网络的学习方法采用梯度下降法。当一对学习模式提供给网络后,各神经元获得网络的输入响应并产生神经元之间的连接权值,然后按照减小希望输出与实际输出误差的方向传播,这个过程即为前向传播。网络连接的权值的修改从输出层开始,经各中间层到输入层(误差的反向传输过程)。正向传输和反向传输过程反复进行j直到网络的全局误差趋向于设定的极小值,这就是BP算法,采用这种算法的多级非循环网络被称之为BP神经网络。所以设计神经网络时,首先要确定隐层层数、隐层节点数,设置网络参数,同时选定训练集。若要提高判断或识别的准确率,可适当地增大测

33、试集数据。五、程序代码及注释程序代码4.1:clc; clear all; close all; % P为输入矢量 P1 = 0 0 1 1;0 1 0 1; P2 = 0 1; % T为目标矢量 T1 = 0 0 0 1;0 1 1 1; T2 = 1 0;% 与门clc;P=P1;T=T1(1,:);% 定义感知器神经元并对其初始化 net=newp(0 1;0 1,1);net.initFcn=initlay;net.layers1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.layerWeights1,1.initFcn=r

34、ands;net.biases1.initFcn=rands;net=init(net);% 训练感知器神经元net=train(net,P,T);cell2mat(net.iw)cell2mat(net.b)% 绘制结果分类曲线figure(1);plotpv(P,T)plotpc(net.iw1,1,net.b1);title(与门结果分类曲线);% 利用训练完的感知器神经元分类for i=0:1 for j=0:1 p= i;j a= sim(net,p) endend% pause;%或门clc;P=P1;T=T1(2,:);% 定义感知器神经元并对其初始化 net=newp(0 1;

35、0 1,1);net.initFcn=initlay;net.layers1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.layerWeights1,1.initFcn=rands;net.biases1.initFcn=rands;net=init(net);% 训练感知器神经元net=train(net,P,T);cell2mat(net.iw)cell2mat(net.b)% 绘制结果分类曲线figure(2);plotpv(P,T)plotpc(net.iw1,1,net.b1);title(或门结果分类曲线);% 利用训练

36、完的感知器神经元分类for i=0:1 for j=0:1 p=i;j a = sim(net,p) endend% pause;%非门clc;P=P2;T=T2;% 定义感知器神经元并对其初始化 net=newp(0 1,1);net.initFcn=initlay;net.layers1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.layerWeights1,1.initFcn=rands;net.biases1.initFcn=rands;net=init(net);% 训练感知器神经元net=train(net,P,T);c

37、ell2mat(net.iw)cell2mat(net.b)% 绘制结果分类曲线figure(3);plotpv(P,T)plotpc(net.iw1,1,net.b1);title(非门结果分类曲线);% 利用训练完的感知器神经元分类for i=0:1 p=i a = sim(net,p)end代码4.2:clc;clear all;% 产生训练样本与测试样本x1=-3 :0.36:3;x2=-2:0.24:2;P1 = (x1.2-2*x1).*exp(-x1.2-x2.2-x1.*x2); % 训练样本T1 = P1; % 训练目标x3=-3:0.15:3;x4=-2:0.1:2;P2

38、= (x3.2-2*x3).*exp(-x3.2-x4.2-x3.*x4); % 测试样本T2 = P2; % 测试目标% 归一化PN1,minp,maxp,TN1,mint,maxt = premnmx(P1,T1);PN2 = tramnmx(P2,minp,maxp);TN2 = tramnmx(T2,mint,maxt);% 设置网络参数HideNum=1; % 隐层层数NodeNum = 5; % 隐层节点数 TypeNum = 1; % 输出维数TF1 = tansig;TF2 = purelin; % 判别函数(缺省值)net = newff(minmax(PN1),NodeNu

39、m TypeNum,TF1 TF2);net.trainFcn = trainlm; net.trainParam.show = 20; % 训练显示间隔net.trainParam.lr = 0.3; % 学习步长 - traingd,traingdmnet.trainParam.mc = 0.95; % 动量项系数 - traingdm,traingdxnet.trainParam.mem_reduc = 1; % 分块计算Hessian矩阵net.trainParam.epochs = 1000; % 最大训练次数net.trainParam.goal = 1e-8; % 最小均方误差n

40、et.trainParam.min_grad = 1e-20; % 最小梯度net.trainParam.time = inf; % 最大训练时间net = train(net,PN1,TN1); % 训练YN1 = sim(net,PN1); % 训练样本实际输出YN2 = sim(net,PN2); % 测试样本实际输出MSE1 = mean(TN1-YN1).2) % 训练均方误差MSE2 = mean(TN2-YN2).2) % 测试均方误差Y2 = postmnmx(YN2,mint,maxt); % 反归一化% 结果作图plot(1:length(T2),T2,r,1:length

41、(Y2),Y2,b);legend(测试集,训练集); title(期望输出与实际输出对比);六、实验结果实验结果4.1: 图4-1 与门结果分类权值及实验结果:net.iw = 1.8116 1.2540net.b = -2.3706p =00a =0p =01a =0p =10a =0p =11a =1图4-2 或门结果分类权值及实验结果:net.iw = 0.2647 0.1951net.b = -0.1732p =00a =0p =01a =1p =10a =1p =11a =1图4-3 非门结果分类权值及实验结果:net.iw = -0.9062net.b = 0.5570p =0a =1p =1a =0由实验结果可知,与门、或门和非门都能够找到一条直线将结果分开,所以可以利用2输入的MP模型是否可实现“与”、“或”、“非”功能。然而异或门却不能找到一条曲线将结果分开,所以无法使用MP模型来实现异或功能。实验结果4.3:图4-4 BP神

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1