自适应信号处理仿真报告.docx
- 文档编号:3883104
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:19
- 大小:294.44KB
自适应信号处理仿真报告.docx
《自适应信号处理仿真报告.docx》由会员分享,可在线阅读,更多相关《自适应信号处理仿真报告.docx(19页珍藏版)》请在冰豆网上搜索。
自适应信号处理仿真报告
自适应信号处理仿真作业
信号定义:
其中:
;参数:
1、产生数据估计R,和理论计算值比较。
理论计算:
(1)
对
(1)式左右两边都乘
,再求数学期望得
(2)
对
(1)式左右两边都乘
,再求数学期望得
(3)
对
(1)式左右两边都乘
,再求数学期望得
(4)
解方程组:
可求得理论值R。
在本次仿真中产生1500个信号点来估计R,图1给出两组参数各自的估计值R以及由估计值求出的最优权:
图1R的理论值与估计值
2、.令
,实现LMS算法给出w1,w2的收敛曲线及学习曲线
在仿真中当
时,w1,w2不收敛,所以对步长因子取
和
来产生各自的学习曲线以及收敛轨迹。
第一组参数下的学习曲线与权值收敛轨迹如下,其中权值的起始值取(-1,-2.5)。
第二组参数下的学习曲线与权值收敛轨迹如下,其中权值的起始值取(-1,-2.5)。
从两组参数下,各自取两种不同步长实现的学习曲线以及权值收敛轨迹可以看出,在权值收敛值范围内,步长越大收敛越快,波动越大,达到稳定时权的起伏越厉害。
当初始权值设置的越靠近最优权,权收敛所用的时间越小。
3、SER算法
在SER算法仿真中,对
取两组值分别为0.1和10,各自仿真产生的学习曲线以及权值收敛轨迹如下:
以下为在第一组参数即a1=-0.1950;a2=0.95下的学习曲线与权值收敛轨迹。
以下为在第二组参数即a1=-1.5955;a2=0.95下的学习曲线与权值收敛轨迹。
在相同的a值下,对参数一来说,其
=10时,其收敛效果较好,说明了
取值为10时,较0.1接近
中的
的真值。
而对参数二来说,当
=0.1的收敛效果较好。
从收敛速度来看,在同一
取值下,参数二所对应的信号求权值时收敛速度明显快于参数一的。
4、RLS算法
在RLS算法中,取
,权值起始值取(-1,-2.5),其学习曲线与权值收敛轨迹如下:
从以上的学习曲线以及收敛轨迹图来看,RLS算法收敛速度快,参数二下的信号其权值收敛速度快于参数一。
5、各种算法收敛轨迹比较
下图中的收敛轨迹是取参数二下的各自收敛轨迹,其中LMS算法是取
时的轨迹,SER是取
=0.1时的收敛轨迹。
从图看一明显看出收敛速度是:
LMS LMS算法收敛过程是按梯度下降方向,并非直接指向最优点,迭代比较慢;而SER算法收敛过程是始终指向最优权,SER算法收敛很快。 RLS基本上是只经过了几步就达到了最优值。 Matlab源程序: clc; clearall; closeall; N=1500;%信号长度 I=eye (2); a=[-0.1950,0.95;-1.5955,0.95];%a的第一行为第一组参数 x=randn(2,N); w=1*randn(1,N);%噪声功率为1 fori=1: 2 forj=3: N%%产生1500点的数据 x(i,j)=-a(i,1: 2)*x(i,j-1: -1: j-2)'+w(j); end end %由Ax=b求出理论R b=[1;0;0]; R=zeros(3,2); fori=1: 2 A=[1,a(i,1),a(i,2);a(i,1),1+a(i,2),0;a(i,2),a(i,1),1]; R(: i)=A\b; end R11=[R(1: 2,1)';R(2: -1: 1,1)']; disp('第一组参数所对应R理论值: ');disp(R11); R1=[R(1: 2,2)';R(2: -1: 1,2)']; disp('第二组参数所对应R理论值: ');disp(R1); fori=1: 2 Ro(i,1)=1/N*(x(i,1: N)*x(i,1: N)'); Ro(i,2)=1/(N-1)*(x(i,1: N-1)*x(i,2: N)'); Ro(i,3)=1/(N-1)*(x(i,2: N)*x(i,1: N-1)'); Ro(i,4)=1/(N-1)*(x(i,2: N)*x(i,2: N)'); end R1=[Ro(1,1: 2);Ro(1,3: 4)]; disp('第一组参数所对应R估计值: ');disp(R1); R2=[Ro(2,1: 2);Ro(2,3: 4)]; disp('第二组参数所对应R估计值: ');disp(R2); p1=1/(N-2)*x(1,3: N)*[x(1,2: N-1)',x(1,1: N-2)']; p1=p1'; p2=1/(N-2)*x(2,3: N)*[x(2,2: N-1)',x(2,1: N-2)']; p2=p2'; Wopt1=inv(R1)*p1; Wopt2=inv(R2)*p2; disp('第一组参数估计值求最优权Wopt: ');disp(Wopt1'); disp('第二组参数估计值求最优权Wopt: ');disp(Wopt2'); Emin (1)=1/N*x(1,1: N)*x(1,1: N)'-Wopt1'*p1; Emin (2)=1/N*x(2,1: N)*x(2,1: N)'-Wopt2'*p2; forj=1: 2 u=1/(20*(Ro(j,1)+Ro(j,4))); u1=1/(100*(Ro(j,1)+Ro(j,4))); x1=x(j,1: N); %u=0.5; W=zeros(N-2,2); W(1,: )=[-1,-2.5]; e=zeros(1,N); e (1)=x1(3)-x1(2: -1: 1)*W(1,1: 2)'; W1=zeros(N-2,2); W1(1,: )=[-1,-2.5]; e1=zeros(1,N); E=zeros(1,N-2); E1=zeros(1,N-2); e1 (1)=x1(3)-x1(2: -1: 1)*W1(1,1: 2)'; E (1)=e (1).^2; E1 (1)=e1 (1).^2; fori=2: N-2 W(i,1: 2)=W(i-1,1: 2)+2*u*e(i-1).*x1(i: -1: i-1); e(i)=x1(i+2)-x1(i+1: -1: i)*W(i,1: 2)'; E(i)=((i-1)*E(i-1)+e(i).^2)/i; W1(i,1: 2)=W1(i-1,1: 2)+2*u1*e1(i-1).*x1(i: -1: i-1); e1(i)=x1(i+2)-x1(i+1: -1: i)*W1(i,1: 2)'; E1(i)=((i-1)*E1(i-1)+e1(i).^2)/i; end i=5: N-2; figure; subplot(211); plot(i,E,'b',i,Emin(j),'r'); title('参数学习曲线(u=1/(20*trace(R)): '); ylabel('均方误差E[e.^2]') xlabel('学习次数k') gridon subplot(212); plot(i,E1,'b',i,Emin(j),'r'); title('参数学习曲线(u=1/(100*trace(R)): '); ylabel('均方误差E[e.^2]') xlabel('学习次数k') gridon ifj==1 b=Wopt1'; p=p1'; R=R1; else b=Wopt2'; p=p2'; R=R2; end figure; [w1,w2]=meshgrid(b (1)-3: .1: b (1)+3,b (2)-3: .1: b (2)+3); ew=sum(x1(3: N).^2)/(N-2)+w1.^2*R(1,1)+w1.*w2.*(R(1,2)+R(2,1))+w2.^2.*R(2,2)-2*w1.*p (1)-2*w2.*p (2); contour(w1,w2,ew,25); holdon h=plot(W(i,1),W(i,2),'g-',W1(i,1),W1(i,2),'k: ',b (1),b (2),'r-*'); legend(h,'绿色实线为u=1/(20*trace(R))','黑色点线为u=1/(100*trace(R)'); text(b (1)-0.5,b (2)-0.5,strcat('(',num2str(b (1)),',',num2str(b (2)),')')) title('参数a下不同u值的权值收敛轨迹'); xlabel('w1') ylabel('w2') holdoff end %%%%%%%%%%%%%%%%%%%%%%%%%%%SER%%%%%%%%%%%%%%%%%%%%%%%%%%%% forj=1: 2 ifj==1 b=Wopt1'; p=p1'; R=R1; else b=Wopt2'; p=p2'; R=R2; end x2=x(j,: )'; q0=0.1; q00=10; a=2^(-1/N); av=sum(eig(R))/2; u2=0.001; e2=zeros(1,N); e22=zeros(1,N); Q0=q0*I; Q00=q00*I; W2=zeros(2,N); W22=zeros(2,N); W2(: 1)=[-1;-2.5]; W22(: 1)=[-1;-2.5]; W2(: 2)=W2(: 1)+2*u2*av*Q0*e2 (1)*x2(2: -1: 1); W22(: 2)=W22(: 1)+2*u2*av*Q00*e2 (1)*x2(2: -1: 1); E2=zeros(1,N-1); E22=zeros(1,N-1); E2 (1)=e2 (1).^2; E22 (1)=e22 (1).^2; fori=2: N-1 e2(i)=x2(i+1)-x2(i: -1: i-1)'*W2(1: 2,i); E2(i)=((i-1)*E2(i-1)+e2(i).^2)/i; S=Q0*x2(i: -1: i-1); r=a+x2(i: -1: i-1)'*S; Q0=(Q0-S*S'/r)/a; W2(: i+1)=W2(: i)+(2*u2*av*(1-a^(i+1)))*Q0*e2(i)*x2(i: -1: i-1)/(1-a); e22(i)=x2(i+1)-x2(i: -1: i-1)'*W22(1: 2,i); E22(i)=((i-1)*E22(i-1)+e22(i).^2)/i; S2=Q00*x2(i: -1: i-1); r2=a+x2(i: -1: i-1)'*S2; Q00=(Q00-S2*S2'/r2)/a; W22(: i+1)=W22(: i)+(2*u2*av*(1-a^(i+1)))*Q00*e22(i)*x2(i: -1: i-1)/(1-a); end i=1: N-1; figure; subplot(211); plot(i,E2,'b',i,Emin(j),'r'); title('参数学习曲线(q=0.1): '); ylabel('均方误差E[e.^2]') xlabel('学习次数k') gridon subplot(212); plot(i,E22,'b',i,Emin(j),'r'); title('参数学习曲线(q=10): '); ylabel('均方误差E[e.^2]') xlabel('学习次数k') gridon figure; [w1,w2]=meshgrid(b (1)-3: .1: b (1)+3,b (2)-3: .1: b (2)+3); ew=sum(x2(3: N).^2)/(N-2)+w1.^2*R(1,1)+w1.*w2.*(R(1,2)+R(2,1))+w2.^2.*R(2,2)-2*w1.*p (1)-2*w2.*p (2); contour(w1,w2,ew,25); holdon h=plot(W2(1,: ),W2(2,: ),'g-',W22(1,: ),W22(2,: ),'k: ',b (1),b (2),'r-*'); legend(h,'绿色实线为q=0.1','黑色点线为q=10'); text(b (1)-0.5,b (2)-0.5,strcat('(',num2str(b (1)),',',num2str(b (2)),')')) title('参数a下不同q值的权值收敛轨迹'); xlabel('w1') ylabel('w2') holdoff end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%RLS%%%%%%%%%%%%%%%%%% forj=1: 2 ifj==1 b=Wopt1'; p=p1'; R=R1; else b=Wopt2'; p=p2'; R=R2; end x3=x(j,: )'; a1=0.99; e3=zeros(1,N); E3=zeros(1,N); W3=zeros(2,N); W3(: 1)=[-1;-2.5]; W3(: 2)=[-1;-2.5]; R0=eye (2); fori=3: N e3(i)=x3(i)-W3(: i)'*x3(i-1: -1: i-2); E3(i)=((i-1)*E3(i-1)+e3(i).^2)/i; R0=(I-R0*x3(i-1: -1: i-2)*x3(i-1: -1: i-2)'/(a1+x3(i-1: -1: i-2)'*R0*x3(i-1: -1: i-2)))*R0/a1; M=R0*x3(i-1: -1: i-2); W3(: i+1)=M*e3(i)+W3(: i); end i=3: N; figure; plot(i,E3(i),'b',i,Emin(j),'r'); title('参数学习曲线: '); ylabel('均方误差E[e.^2]') xlabel('学习次数k') gridon figure; [w1,w2]=meshgrid(b (1)-3: .1: b (1)+3,b (2)-3: .1: b (2)+3); ew=sum(x3(3: N).^2)/(N-2)+w1.^2*R(1,1)+w1.*w2.*(R(1,2)+R(2,1))+w2.^2.*R(2,2)-2*w1.*p (1)-2*w2.*p (2); contour(w1,w2,ew,25); holdon h=plot(W3(1,2: N),W3(2,2: N),'g-',b (1),b (2),'r-*'); text(b (1)-0.5,b (2)-0.5,strcat('(',num2str(b (1)),',',num2str(b (2)),')')) title('参数a下权值收敛轨迹'); xlabel('w1') ylabel('w2') holdoff end %%%%%%%%%%%%%%%%%%%%%在参数二下各方法比较%%%%% figure; [w1,w2]=meshgrid(b (1)-3: .1: b (1)+3,b (2)-3: .1: b (2)+3); ew=sum(x3(3: N).^2)/(N-2)+w1.^2*R(1,1)+w1.*w2.*(R(1,2)+R(2,1))+w2.^2.*R(2,2)-2*w1.*p (1)-2*w2.*p (2); contour(w1,w2,ew,25); holdon h=plot(W1(: 1),W1(: 2),'k: ',W2(1,: ),W2(2,: ),'b-',W3(1,: ),W3(2,: ),'g-',b (1),b (2),'r-*'); text(b (1)-0.5,b (2)-0.5,strcat('(',num2str(b (1)),',',num2str(b (2)),')')) legend(h,'黑色点线为(LMS)','蓝色实线为(SER)','绿色实线为(RLS)'); title('参数二下各算法权值收敛轨迹'); holdoff
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自适应 信号 处理 仿真 报告