2023年现代信号处理大型作业。
选择1,2,3三道题)
一、请用多层感知器(mlp)神经网络误差反向传播(bp)算法实现异或问题(输入为,要求可以判别输出为0或1),并画出学习曲线。其中,非线性函数采用s型logistic函数。
1、原理:反向传播(bp)算法:
1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。
2)、反向传播算法:从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。分两个阶段:
正向过程:从输入层经隐层逐层正向计算各单元的输出。
反向过程:由输出层误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值。
2、流程图:
3、程序:使用了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、学习曲线图:
图1 mlp
二、试用用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;并画出其频响。滤波器设计参数为: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
a(i)=(1-alpha(i)*wc+wc^2)/(1+alpha(i)*wc+wc^2);
endfor i=1:n2
b(i)=(1-beta(i)*wc+wc^2)/(1+beta(i)*wc+wc^2);
endw=0:0.0001:0.5;
lp=zeros(size(w));hp=zeros(size(w));
for n=1:length(w)
z=exp(j*w(n)*2*pi);
h1=1;for i=1:n1
h1=h1*(a(i)+z^(-2))/1+a(i)*z^(-2))
endh2=1/z;
for i=1:n2
h2=h2*(b(i)+z^(-2))/1+b(i)*z^(-2));
endlp(n)=abs((h1+h2)/2);
hp(n)=abs((h1-h2)/2);
end plot(w,lp,'k',w,hp,'m');
hold on;
xlabel('数字频率');
ylabel('幅度');
3、实验结果:
图2 两带滤波器。
4、四带滤波器组程序:
function filterfour
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);
现代信号处理作业
中国矿业大学。20 级硕士研究生课程考试试卷。考试科目现代信号处理基础 考试时间。学生姓名。学生学号。所在院系信电学院 任课教师。中国矿业大学研究生院培养管理处印制。一 自适应滤波。1 自适应df的工作原理 自适应滤波器是以最小均方误差为准则的最佳滤波器,它能自动调节其本身的单位脉冲响应h n 特性...
现代信号处理作业
中北大学。研究生 现代信号处理 作业。所在院 系 信息与通信工程学院 专业 测试计量技术及仪器 姓名王栋。学号 s20100329 班级 y100503 156 小波变换与matlab相关程序的学习 小波变换是在傅里叶变换的基础上发展起来的,它优于傅里叶分析的地方是它在时域与空域都是局部化的,其局部...
现代信号处理作业
1.总结学过的滤波器设计方法,用matlab 例子分析不同设计方法的滤波器的性能及适应场合。答 1.1模拟低通滤波器的设计方法。1.1.1 butterworth滤波器设计步骤 确定阶次n 1 已知 c s和as求butterworth df阶数n 由 求出n 2 已知 c s和 p 的衰减ap 求...