南邮研究生“现代信号处理”期末课程大作业。
四个题目任选三题做)
1. 请用多层感知器(mlp)神经网络误差反向传播(bp)算法实现异或问题(输入为,要求可以判别输出为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的随机序列,其均值为零;参考信号;信道具有脉冲响应:
式中用来控制信道的幅度失真(w = 2~4, 如取w = 2.9,3.1,3.
3,3.5等),且信道受到均值为零、方差(相当于信噪比为30db)的高斯白噪声的干扰。试比较基于下列几种算法的自适应均衡器在不同信道失真、不同噪声干扰下的收敛情况(对应于每一种情况,在同一坐标下画出其学习曲线):
1) 横向/格-梯型结构lms算法。
2) 横向/格-梯型结构rls算法。
并分析其结果。
图1 横向或格-梯型自适应均衡器。
一、请用多层感知器(mlp)神经网络误差反向传播(bp)算法实现异或问题(输入为,要求可以判别输出为0或1),并画出学习曲线。其中,非线性函数采用s型logistic函数。
1、原理:反向传播(bp)算法:
1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。
2)、反向传播算法:从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。分两个阶段:
正向过程:从输入层经隐层逐层正向计算各单元的输出。
反向过程:由输出层误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值。
2、流程图:
j3、程序:
使用了3层结构,第二层隐藏层4个单元。2,3层都使用logisitic函数。
训练xor数据。
function mlp()
f= fopen(''
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)
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;
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);
for i =1:r
result(i,i) =1-a(i))*a(i);
end;4、实验结果:
计算误差 = 0.0049993
迭代次数 = 2706
5、学习曲线图:
图。二、试用用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;并画出其频响。滤波器设计参数为:
fp=1.7khz, fr=2.3khz, fs=8khz, armin≥70db。
1、设计步骤:
1)对fp、fr进行预畸。
2)计算,判断是否等于1,即该互补滤波器是否为互补镜像滤波器。
3)计算相关系数。
4)互补镜像滤波器的数字实现。
2、程序:function filter2()
fp=1700;fr=2300;fs=8000;
wp=tan(pi*fp/fs);
wr=tan(pi*fr/fs);
wc=sqrt(wp*wr);
k=wp/wr;
k1=sqrt(sqrt(1-k^2));
q0=0.5*(1-k1)/(1+k1);
q=q0+2*q0^5+15*q0^9+150*q0^13;
n=11;n2=fix(n/4);
m=fix(n/2);
n1=m-n2;
for jj=1:m
a=0;for m=0:5
a=a+(-1)^m*q^(m*(m+1))*sin((2*m+1)*pi*jj/n);%n is odd, u=jenda
b=0;for m=1:5
b=b+(-1)^m*q^(m^2)*cos(2*m*pi*jj/n);endb
w(jj)=2*q^0.25*a/(1+2*b);
v(jj)=sqrt((1-k*w(jj)^2)*(1-w(jj)^2/k));
endfor i=1:n1
alpha(i)=2*v(2*i-1)/(1+w(2*i-1)^2);
endfor i=1:n2
beta(i)=2*v(2*i)/(1+w(2*i)^2);
endfor i=1:n1
现代信号处理大作业
姓名 潘晓丹。学号 0140349045 班级 a1403492 ld算法实现ar过程估计。p阶ar模型的差分方程为 其中是均值为0的白噪声。ar过程的线性 方法为 先求得观测数据的自相关函数,然后利用yule walker方程递推求得模型参数,再根据公式求得功率谱的估计。yule walker方程...
现代信号处理大作业
姚苏洋 1130349171 1.使用matlab实现ld迭代算法。1.1 levinson durbin算法。功率谱估计大致可以分为经典谱估计和现代功率谱估计,经典谱估计方法存在着以下几点缺陷 a 数据加窗或自相关加窗,都隐含着假定在窗外未观测到的数据或自相关系数为零,该假设不切实际。b 要性能好...
现代信号处理作业
中国矿业大学。20 级硕士研究生课程考试试卷。考试科目现代信号处理基础 考试时间。学生姓名。学生学号。所在院系信电学院 任课教师。中国矿业大学研究生院培养管理处印制。一 自适应滤波。1 自适应df的工作原理 自适应滤波器是以最小均方误差为准则的最佳滤波器,它能自动调节其本身的单位脉冲响应h n 特性...