现代信号处理大作业题目+答案

时间:2025-04-05

研究生“现代信号处理”课程大型作业

(以下四个题目任选三题做)

1. 请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为,并画出学习曲线。其中,非线性函数X [0 0;0 1;1 0;1 1]T,要求可以判别输出为0或1)采用S型Logistic函数。

2. 试用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;并画出其频响。滤波器设计参数为:Fp=1.7KHz, Fr=2.3KHz, Fs=8KHz, Armin≥70dB。

3. 根据《现代数字信号处理》(姚天任等,华中理工大学出版社,2001)第四章附录提供的数据(pp.352-353),试用如下方法估计其功率谱,并画出不同参数情况下的功率谱曲线: 1) Levinson算法 2) Burg算法 3) ARMA模型法 4) MUSIC算法

4. 图1为均衡带限信号所引起失真的横向或格型自适应均衡器(其中横向FIR系统长M=11), 系统输入是取值为±1的随机序列x(n),其均值为零;参考信号d(n) x(n 7);信道具有脉冲响应:

2 (n 2) 1

)] n 1,2,3 [1 cos(

h(n) 2W

0 其它

式中W用来控制信道的幅度失真(W = 2~4, 如取W = 2.9,3.1,3.3,3.5等),且信道受到均

2

值为零、方差 v 0.001(相当于信噪比为30dB)的高斯白噪声v(n)的干扰。试比较基

于下列几种算法的自适应均衡器在不同信道失真、不同噪声干扰下的收敛情况(对应于每一种情况,在同一坐标下画出其学习曲线): 1) 横向/格-梯型结构LMS算法 2) 横向/格-梯型结构RLS算法 并分析其结果。

图1 横向或格-梯型自适应均衡器

参考文献

[1] 姚天任, 孙洪. 现代数字信号处理[M]. 武汉: 华中理工大学出版社, 2001 [2] 杨绿溪. 现代数字信号处理[M]. 北京: 科学出版社, 2007

[3] S. K. Mitra. 孙洪等译. 数字信号处理——基于计算机的方法(第三版)[M]. 北京: 电子工

业出版社, 2006

[4] S.Haykin, 郑宝玉等译. 自适应滤波器原理(第四版)[M].北京: 电子工业出版社, 2003 [5] J. G. Proakis, C. M. Rader, F. Y. Ling, etc. Algorithms for Statistical Signal Processing [M].

Beijing: Tsinghua University Press, 2003

一、请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为X [0 0;0 1;1 0;1 1]T,要求可以判别输出为0或1),并画出学习曲线。其中,非线性函 数采用S型Logistic函数。

1、原理:

反向传播(BP)算法:

(1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。

(2)、反向传播算法:从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。分两个阶段:

正向过程:从输入层经隐层逐层正向计算各单元的输出

反向过程:由输出层误差逐层反向计算隐层各单元的误差,并用此误

差修正前层的权值。 2、流程图:

j

3、程序:

%使用了3层结构,第二层隐藏层4个单元。2,3层都使用Logisitic函数。 %训练xor数据。 function mlp()

f= fopen('XOR.txt');

A = fscanf(f, '%g',[3 inf]); A = A;

p = A(1:2, :)';%训练输入数据 t = A(3, :)';%desire out

[train_num , input_scale]= size(p) ;%规模 fclose(f);

accumulate_error=zeros(1,3001); alpha = 0.5;%学习率

threshold = 0.005;% 收敛条件 ∑e^2 < threshold wd1=0; wd2=0; bd1=0; bd2=0; circle_time =0;

hidden_unitnum = 4; %隐藏层的单元数

w1 = rand(hidden_unitnum,2);%4个神经元,每个神经元接受2个输入 w2 = rand(1,hidden_unitnum);%一个神经元,每个神经元接受4个输入 b1 = rand(hidden_unitnum,1); b2 = rand(1,1); while 1

temp=0;

circle_time = circle_time +1; for i=1:train_num

%前向传播

a0 = 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 + wd1; w2 = w2 + wd2; bd1 = alpha .* s1; bd2 = alpha .* s2; b1 = b1 + bd1;

b2 = b2 + bd2; end;%end of for

if accumulate_error(circle_time) <= threshold| circle_time>3001 break;

end;%end of if end;%end of while

plot(accumulate_error,'m'); grid;

xlabel('学习次数') ylabel('误差')

disp(['计算误差 = ',num2str(accumulate_error(circle_time))] ) ; disp(['迭代次数 = ',num2str(circle_time)]); %测试

a0 = double ([0 0]'); n1 = w1*a0+b1; a1 = Logistic(n1); n2 = w2*a1+b2; a2 = Logistic(n2); a = a2;

disp(['0 0 = ',num2str(a)]); a0 = double ([0 1]'); n1 = w1*a0+b1;

%then

a1 = Logistic(n1); n2 = w2*a1+b2; a2 = Logistic(n2); a = a2;

disp(['0 1 = ',num2str(a)]); a0 = double ([1 0]'); n1 = w1*a0+b1; a1 = Logistic(n1); n2 = w2*a1+b2; a2 = Logistic(n2); a = a2;

disp(['1 0 = ',num2str(a)]); a0 = double ([1 1]'); n1 = w1*a0+b1; a1 = Logistic(n1); n2 = w2*a1+b2; a2 = Logistic(n2); a = a2;

disp(['1 1 = ',num2str(a)]); m=0;

%---------------------------------------------------------- function [a]= Logistic(n) a = 1./(1+exp(-n));

%---------------------------------------------------------- function [result]= F(a) [r,c] = size(a); result = zeros(r,r); fo …… 此处隐藏:7283字,全部文档内容请下载后查看。喜欢就下载吧 ……

现代信号处理大作业题目+答案.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219