声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 846|回复: 8

[编程技巧] 自己写的关于 LMS 的程序出错指教

[复制链接]
发表于 2008-3-13 19:17 | 显示全部楼层 |阅读模式

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

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

x
这是我写的程序,见笑了,也是刚学这个,大家看看错误在什么地方,谢谢
%信号的获得
periodicalsignal=sin(pi*0.02*[1:500]);
randomsignal=randn(1,500);
noisesignal=periodicalsignal+randomsignal;
subplot(2,1,1);plot(noisesignal);grid;title('原始信号');
%滤波器系数初始化
mu=0.15;%收敛系数
M=32;%滤波器阶数
N=length(noisesignal);%迭代次数
e=zeros(N,1);
w=zeros(M,N);%初始化原始加权系数
%算法迭代
for k=M:N
    xn=noisesignal(k:-1:k-M+1);
    e(k)=noisesignal(k)-w(:,k-1)'*xn;
    w(:,k)=w(:,k-1)+2*mu*e(k)*xn;
end
subplot(2,1,2);plot(e(M:N));grid;title('误差');

[ 本帖最后由 eight 于 2008-3-13 21:21 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-3-13 20:12 | 显示全部楼层

回复 楼主 的帖子

请把你的错误提示贴出来
 楼主| 发表于 2008-3-13 20:19 | 显示全部楼层
错误提示是
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> lmssignal at 15
    e(k)=noisesignal(k)-w(:,k-1)'*xn
发表于 2008-3-13 20:26 | 显示全部楼层
e(k)=noisesignal(k)-w(:,k-1)'.*xn;
这样试试
发表于 2008-3-13 21:22 | 显示全部楼层
这个错误置顶帖有整理,请赚取积分后自行解决
 楼主| 发表于 2008-3-13 21:22 | 显示全部楼层
试过了,还是出错啊
发表于 2008-3-14 10:26 | 显示全部楼层
你仔细检查矩阵的维数,noisesignal是1*500,w是32*500,e是500*1,wn是1*32
你这样的矩阵根本没法相乘的。
错误就在于少了很多的转置。

评分

1

查看全部评分

 楼主| 发表于 2008-3-14 10:37 | 显示全部楼层
谢谢您了^_^
发表于 2008-3-14 11:09 | 显示全部楼层
这些都是很基础的东西,而且自己调试一下马上出来了,看书、看置顶帖都行
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 03:11 , Processed in 0.064616 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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