自己写的关于 LMS 的程序出错指教
这是我写的程序,见笑了,也是刚学这个,大家看看错误在什么地方,谢谢%信号的获得
periodicalsignal=sin(pi*0.02*);
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 编辑 ]
回复 楼主 的帖子
请把你的错误提示贴出来 错误提示是??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> lmssignal at 15
e(k)=noisesignal(k)-w(:,k-1)'*xn e(k)=noisesignal(k)-w(:,k-1)'.*xn;
这样试试 这个错误置顶帖有整理,请赚取积分后自行解决 试过了,还是出错啊 你仔细检查矩阵的维数,noisesignal是1*500,w是32*500,e是500*1,wn是1*32
你这样的矩阵根本没法相乘的。
错误就在于少了很多的转置。 谢谢您了^_^ 这些都是很基础的东西,而且自己调试一下马上出来了,看书、看置顶帖都行
页:
[1]