欢迎来到天天文库
浏览记录
ID:14703550
大小:233.00 KB
页数:17页
时间:2018-07-30
《南邮现代信号处理最后大作业4道题目(含答案)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、南邮研究生“现代信号处理”期末课程大作业(四个题目任选三题做)1.请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为,要求可以判别输出为0或1),并画出学习曲线。其中,非线性函数采用S型Logistic函数。2.试用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;并画出其频响。滤波器设计参数为:Fp=1.7KHz,Fr=2.3KHz,Fs=8KHz,Armin≥70dB。3.根据《现代数字信号处理》(姚天任等,华中理工大学出版社,2001)第四章附录提供的数据(pp.352-353),试用如下方法估计其功率谱,并画出不同参数情况
2、下的功率谱曲线:1)Levinson算法2)Burg算法3)ARMA模型法4)MUSIC算法4.图1为均衡带限信号所引起失真的横向或格型自适应均衡器(其中横向FIR系统长M=11),系统输入是取值为±1的随机序列,其均值为零;参考信号;信道具有脉冲响应:式中用来控制信道的幅度失真(W=2~4,如取W=2.9,3.1,3.3,3.5等),且信道受到均值为零、方差(相当于信噪比为30dB)的高斯白噪声的干扰。试比较基于下列几种算法的自适应均衡器在不同信道失真、不同噪声干扰下的收敛情况(对应于每一种情况,在同一坐标下画出其学习曲线):1)横向/格-梯型结构LMS算法2)横向/格
3、-梯型结构RLS算法并分析其结果。图1横向或格-梯型自适应均衡器一、请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为,要求可以判别输出为0或1),并画出学习曲线。其中,非线性函数采用S型Logistic函数。1、原理:反向传播(BP)算法:(1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。(2)、反向传播算法:从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。分两个阶段:正向过程:从输入层经隐层逐层正向计算各单元的输出反向过程:由输出层误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值。选择初始值开始前向计算求所
4、有神经元的输出计算输出层从后向前计算隐层计算保存权值修正量修正权值是否收敛?结束YN2、流程图:j3、程序:%使用了3层结构,第二层隐藏层4个单元。2,3层都使用Logisitic函数。%训练xor数据。functionmlp()f=fopen('XOR.txt');A=fscanf(f,'%g',[3inf]);A=A;p=A(1:2,:)';%训练输入数据t=A(3,:)';%desireout[train_num,input_scale]=size(p);%规模fclose(f);accumulate_error=zeros(1,3001);alpha=0.5;%学
5、习率threshold=0.005;%收敛条件∑e^26、=double(p(i,:)');%第i行数据n1=w1*a0+b1;a1=Logistic(n1);%第一个的输出n2=w2*a1+b2;a2=Logistic(n2);%第二个的输出a=a2;%后向传播敏感性e=t(i,:)-a;accumulate_error(circle_time)=temp+abs(e)^2;temp=accumulate_error(circle_time);s2=F(a2)*e;%输出层delta值s1=F(a1)*w2'*s2;%隐层delta值%修改权值wd1=alpha.*s1*a0';wd2=alpha.*s2*a1';w1=w1+7、wd1;w2=w2+wd2;bd1=alpha.*s1;bd2=alpha.*s2;b1=b1+bd1;b2=b2+bd2;end;%endofforifaccumulate_error(circle_time)<=threshold8、circle_time>3001%thenbreak;end;%endofifend;%endofwhileplot(accumulate_error,'m');grid;xlabel('学习次数')ylabel('误差')disp(['计算误差=',num2str(accumulate_err
6、=double(p(i,:)');%第i行数据n1=w1*a0+b1;a1=Logistic(n1);%第一个的输出n2=w2*a1+b2;a2=Logistic(n2);%第二个的输出a=a2;%后向传播敏感性e=t(i,:)-a;accumulate_error(circle_time)=temp+abs(e)^2;temp=accumulate_error(circle_time);s2=F(a2)*e;%输出层delta值s1=F(a1)*w2'*s2;%隐层delta值%修改权值wd1=alpha.*s1*a0';wd2=alpha.*s2*a1';w1=w1+
7、wd1;w2=w2+wd2;bd1=alpha.*s1;bd2=alpha.*s2;b1=b1+bd1;b2=b2+bd2;end;%endofforifaccumulate_error(circle_time)<=threshold
8、circle_time>3001%thenbreak;end;%endofifend;%endofwhileplot(accumulate_error,'m');grid;xlabel('学习次数')ylabel('误差')disp(['计算误差=',num2str(accumulate_err
此文档下载收益归作者所有