现代信号处理大型作业讲解.docx
- 文档编号:1107622
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:19
- 大小:200.48KB
现代信号处理大型作业讲解.docx
《现代信号处理大型作业讲解.docx》由会员分享,可在线阅读,更多相关《现代信号处理大型作业讲解.docx(19页珍藏版)》请在冰豆网上搜索。
现代信号处理大型作业讲解
2013年现代信号处理大型作业
(选择1,2,3三道题)
一、请用多层感知器(MLP)神经网络误差反向传播(BP)算法实现异或问题(输入为,要求可以判别输出为0或1),并画出学习曲线。
其中,非线性函数采用S型Logistic函数。
1、原理:
反向传播(BP)算法:
(1)、多层感知器的中间隐层不直接与外界连接,其误差无法估计。
(2)、反向传播算法:
从后向前(反向)逐层“传播”输出层的误差,以间接算出隐层误差。
分两个阶段:
正向过程:
从输入层经隐层逐层正向计算各单元的输出
反向过程:
由输出层误差逐层反向计算隐层各单元的误差,并用此误差修正前层的权值。
2、流程图:
3、程序:
%使用了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;%学习率
threshold=0.005;%收敛条件∑e^2 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); while1 temp=0; circle_time=circle_time+1; fori=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;%endoffor ifaccumulate_error(circle_time)<=threshold|circle_time>3001%thenbreak; end;%endofif end;%endofwhile plot(accumulate_error,'m'); grid; xlabel('学习次数') ylabel('误差') disp(['计算误差=',num2str(accumulate_error(circle_time))]); disp(['迭代次数=',num2str(circle_time)]); %测试 a0=double([00]'); n1=w1*a0+b1; a1=Logistic(n1); n2=w2*a1+b2; a2=Logistic(n2); a=a2; disp(['00=',num2str(a)]); a0=double([01]'); n1=w1*a0+b1; a1=Logistic(n1); n2=w2*a1+b2; a2=Logistic(n2); a=a2; disp(['01=',num2str(a)]); a0=double([10]'); n1=w1*a0+b1; a1=Logistic(n1); n2=w2*a1+b2; a2=Logistic(n2); a=a2; disp(['10=',num2str(a)]); a0=double([11]'); n1=w1*a0+b1; a1=Logistic(n1); n2=w2*a1+b2; a2=Logistic(n2); a=a2; disp(['11=',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); fori=1: r result(i,i)=(1-a(i))*a(i); end; 4、实验结果: 计算误差=0.0049993 迭代次数=2706 00=0.023182 01=0.963110 10=0.965390 11=0.043374 5、学习曲线图: 图1MLP 二、试用用奇阶互补法设计两带滤波器组(高、低通互补),进而实现四带滤波器组;并画出其频响。 滤波器设计参数为: Fp=1.7KHz,Fr=2.3KHz,Fs=8KHz,Armin≥70dB。 1、设计步骤: (1)对Fp、Fr进行预畸 (2)计算,判断是否等于1,即该互补滤波器是否为互补镜像滤波器 (3)计算相关系数 (4)互补镜像滤波器的数字实现 2、程序: functionfilter2() 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; forjj=1: M a=0; form=0: 5 a=a+(-1)^m*q^(m*(m+1))*sin((2*m+1)*pi*jj/N);%Nisodd,u=j end a b=0; form=1: 5 b=b+(-1)^m*q^(m^2)*cos(2*m*pi*jj/N); end b W(jj)=2*q^0.25*a/(1+2*b); V(jj)=sqrt((1-k*W(jj)^2)*(1-W(jj)^2/k)); end fori=1: N1 alpha(i)=2*V(2*i-1)/(1+W(2*i-1)^2); end fori=1: N2 beta(i)=2*V(2*i)/(1+W(2*i)^2); end fori=1: N1 a(i)=(1-alpha(i)*Wc+Wc^2)/(1+alpha(i)*Wc+Wc^2); end fori=1: N2 b(i)=(1-beta(i)*Wc+Wc^2)/(1+beta(i)*Wc+Wc^2); end w=0: 0.0001: 0.5; LP=zeros(size(w));HP=zeros(size(w)); forn=1: length(w) z=exp(j*w(n)*2*pi); H1=1; fori=1: N1 H1=H1*(a(i)+z^(-2))/(1+a(i)*z^(-2)); end H2=1/z; fori=1: N2 H2=H2*(b(i)+z^(-2))/(1+b(i)*z^(-2)); end LP(n)=abs((H1+H2)/2); HP(n)=abs((H1-H2)/2); end plot(w,LP,'k',w,HP,'m'); %holdon; xlabel('数字频率'); ylabel('幅度'); 3、实验结果: 图2两带滤波器 4、四带滤波器组程序: functionfilterfour 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; forjj=1: M a=0; form=0: 5 a=a+(-1)^m*q^(m*(m+1))*sin((2*m+1)*pi*jj/N);%Nisodd,u=j end b=0; form=1: 5 b=b+(-1)^m*q^(m^2)*cos(2*m*pi*jj/N); end W(jj)=2*q^0.25*a/(1+2*b); V(jj)=sqrt((1-k*W(jj)^2)*(1-W(jj)^2/k)); end fori=1: N1 alpha(i)=2*V(2*i-1)/(1+W(2*i-1)^2); end fori=1: N2 beta(i)=2*V(2*i)/(1+W(2*i)^2); end fori=1: N1 a(i)=(1-alpha(i)*Wc+Wc^2)/(1+alpha(i)*Wc+Wc^2); end fori=1: N2 b(i)=(1-beta(i)*Wc+Wc^2)/(1+beta(i)*Wc+Wc^2); end w=0: 0.0001: 0.5; LLP=zeros(size(w));LHP=zeros(size(w));HLP=zeros(size(w));HHP=zeros(size(w)); forn=1: length(w) z=exp(j*w(n)*2*pi); H1=1; fori=1: N1 H1=H1*(a(i)+z^(-2))/(1+a(i)*z^(-2)); end H21=1; fori=1: N1 H21=H21*(a(i)+z^
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 信号 处理 大型 作业 讲解