simon0714 发表于 2006-4-13 16:22

[求助]MATLAB实现小波变换LMS滤波算法

想用MATLAB实现小波变换LMS滤波算法,请各位高人指点。

aspen 发表于 2006-4-13 17:42

回复:(simon0714)[求助]MATLAB实现小波变换LMS滤波...

matlab   lms 算法实例<BR>function =lms(xn,dn,M,delt,varargin)<BR>% LMS Algorithm ,返回滤波器加权系数矩阵和误差向量<BR>%<BR>% 调用格式<BR>% =lms(xn,dn,M,delt,itr)<BR>% en=滤波器输出和d(n)的误差序列,为列向量<BR>% wn=滤波器的加权参量序列,为一矩阵,其每行代表一个加权参量,每列代表一次迭代;初始化值设为0<BR>% xn=输入列向量信号<BR>% dn=期望列向量信号<BR>% M=滤波器阶数<BR>% delt=步长<BR>% itr=迭代次数<BR>% <BR>% =lms(xn,dn,M,delt)<BR>% 迭代次数为默认值,即等于x(n)的点数
<P>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<BR>% 输入输出参数的检查<BR>%--------------------------------------------------------------------------<BR>vin=length(varargin); Item=vin+4; <BR>error(nargchk(4,Item,nargin)); % 检查输入变量数目是否合适,其中前四个参数必须输入<BR>if nargout&gt;2 % 检查输出变量数目是否合适<BR>error('Too many output arguments');<BR>end<BR>%------------------------------------------------------------------------<BR>Nx=length(xn); % x(n)的长度<BR>if Nx~=length(dn) % 检查x(n)和d(n)长度是否相等<BR>error('The length of x(n) is not equal to that of d(n)');<BR>end<BR>%------------------------------------------------------------------------<BR>sizex=size(xn); % 检查输入向量是否为列向量<BR>if sizex(1)&lt;sizex(2)<BR>xn=xn.';<BR>end<BR>sizedn=size(dn); % 检查期望信号向量是否为列向量<BR>if sizedn(1)&lt;sizedn(2)<BR>dn=dn.';<BR>end<BR>%-------------------------------------------------------------------------<BR>itr=Nx; % 迭代次数取默认值<BR>%-------------------------------------------------------------------------<BR>% 当输入变量为5个时<BR>if Item==5 % 确定迭代次数<BR>itr=varargin{1};<BR>if itr&gt;Nx | itr&lt;M <BR>error('Too many or too few iterations');<BR>end<BR>end<BR>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<BR>% 参数的初始化<BR>en=zeros(itr,1);<BR>wn=zeros(M,itr); % 每行代表一个加权参量,每列代表一次迭代<BR>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<BR>% 迭代计算<BR>for k=M:itr % 第k次迭代<BR>x_tap=xn(k:-1:k-M+1);<BR>en(k)=dn(k)-wn(:,k-1)'*x_tap;<BR>wn(:,k)=wn(:,k-1)+2*delt*en(k,1)*x_tap;<BR>end</P>

simon0714 发表于 2006-4-13 19:34

谢谢,你的是基本的LMS程序,不知道怎么在这个基础上改为DWLMS程序。请各位高手帮帮忙!多谢!!

happy 发表于 2006-4-14 10:58

回复:(simon0714)[求助]MATLAB实现小波变换LMS滤波...

不懂DWLMS,

haoduo 发表于 2006-4-15 12:56

多谢分享! <br>

sunny567 发表于 2006-5-11 16:26

<P>大家好啊</P>

sunny567 发表于 2006-5-11 16:29

aspen默默无闻的落叶:<BR>   校长好啊,你会用matlab编写图像压缩编码的程序吗,要用小波变换的,在线等待回复阿

sunny567 发表于 2006-5-11 16:35

有没有谁帮帮我啊?
页: [1]
查看完整版本: [求助]MATLAB实现小波变换LMS滤波算法