声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1069|回复: 2

[编程技巧] [求助]这个程序如何改?好心人都进来看看

[复制链接]
发表于 2006-6-6 18:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
下面这个lms算法怎么改成RLS算法,其他参数都不变,帮我改改算法部分吧,毕业设计用。万分感谢。。。祝愿所有进来看的人永远幸福![em20]
function[gsrv1,gsrv2]=gngauss(m,sigma)
if nargin==0,
m=0;sigma=1;
else if nargin==1,
sigma=m;m=0;
end;
u=rand;
z=sigma*(sqrt(2*log(1/(1-u))));
u=rand;
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);
end;

上面是高斯噪声函数,能不能用类似randn()来代替这个啊?
下面是LMS


echo on
N=500;
K=5;
actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];
sigma=0.01;
delta=0.115;
Num_of_realization=1000;
mse_av=zeros(1,N-2*K);
for j=1:Num_of_realization,
for i=1:N,
if (rand<0.5),
info(i)=-1;
else
info(i)=1;
end;
end;
y=filter(actual_isi,1,info);
for i=1:2:N,
[noise(i) noise(i+1)]=gngauss(0,sigma);
end;
y=y+noise;
estimated_c=[0 0 0 0 0 1 0 0 0 0 0];
for k=1:N-2*K;
y_k=y(k:k+2*K);
z_k=estimated_c*y_k.';
e_k=info(k)-z_k;
estimated_c=estimated_c+delta*e_k*y_k;
mse(k)=e_k^2;
end;
mse_av=mse_av+mse;
end;
mse_av=mse_av/Num_of_realization;
figure;
semilogy(abs(mse_av)) ;
回复
分享到:

使用道具 举报

发表于 2006-6-7 09:17 | 显示全部楼层
我贴了两个RLS你参考一下吧
http://forum.vibunion.com/thread-16214-1-1.html
发表于 2006-6-7 09:18 | 显示全部楼层
高斯噪声可以用randn实现的
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 13:24 , Processed in 0.050177 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表