MATLAB里面有LMS算法的程序,下面是我自己编写的LMS算法程序,供交流(zzl.friends@163.com):
function [wn,en]=lms(xn,dn,M,delt,varargin)
% LMS Algorithm ,返回滤波器加权系数矩阵和误差向量
%
% 调用格式
% [wn,en]=lms(xn,dn,M,delt,itr)
% en=滤波器输出和d(n)的误差序列,为列向量
% wn=滤波器的加权参量序列,为一矩阵,其每行代表一个加权参量,每列代表一次迭代;初始化值设为0
% xn=输入列向量信号
% dn=期望列向量信号
% M=滤波器阶数
% delt=步长
% itr=迭代次数
%
% [wn,en]=lms(xn,dn,M,delt)
% 迭代次数为默认值,即等于x(n)的点数
% 作者: 张智林
% 版本: v2.5
% 最后修改于2003年5月1日 4:15 PM
%
% 参考:
% 龚耀寰,自适应信号处理,P22
% 何振亚,自适应信号处理,P31
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 输入输出参数的检查
%--------------------------------------------------------------------------
vin=length(varargin); Item=vin+4;
error(nargchk(4,Item,nargin)); % 检查输入变量数目是否合适,其中前四个参数必须输入
if nargout>2 % 检查输出变量数目是否合适
error('Too many output arguments');
end
%------------------------------------------------------------------------
Nx=length(xn); % x(n)的长度
if Nx~=length(dn) % 检查x(n)和d(n)长度是否相等
error('The length of x(n) is not equal to that of d(n)');
end
%------------------------------------------------------------------------
sizex=size(xn); % 检查输入向量是否为列向量
if sizex(1)<sizex(2)
xn=xn.';
end
sizedn=size(dn); % 检查期望信号向量是否为列向量
if sizedn(1)<sizedn(2)
dn=dn.';
end
%-------------------------------------------------------------------------
itr=Nx; % 迭代次数取默认值
%-------------------------------------------------------------------------
% 当输入变量为5个时
if Item==5 % 确定迭代次数
itr=varargin{1};
if itr>Nx | itr<M
error('Too many or too few iterations');
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 参数的初始化
en=zeros(itr,1);
wn=zeros(M,itr); % 每行代表一个加权参量,每列代表一次迭代
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 迭代计算
for k=M:itr % 第k次迭代
x_tap=xn(k:-1:k-M+1);
en(k)=dn(k)-wn(:,k-1)'*x_tap;
wn(:,k)=wn(:,k-1)+2*delt*en(k,1)*x_tap;
end
LMS MATLAB DSP算法实现和程序收集
3星 · 超过75%的资源 需积分: 9 101 浏览量
2009-06-13
21:35:55
上传
评论 1
收藏 1.45MB RAR 举报
Augusdi
- 粉丝: 1w+
- 资源: 5762
最新资源
- TestBrightness2.zip
- 用DAC0832产生锯齿波电压_单片机C语言实例(纯C语言源代码).zip
- [其他类别]SimpleID 0.6.5_simpleid-codepub.rar
- [图片动画]Singapore v0.10.0_singapore-0.10.0.rar
- NiceChord 好和弦:Wiwi寫給想做音樂的你,厲害的人都在用!超過80個寫歌、編曲創作原理.pdf
- IMG_20240420_234000.jpg
- [其他类别]PHP Web admin System v1.0_webadmin_php.rar
- 实用密码锁_单片机C语言实例(纯C语言源代码).zip
- 女孩写字.zip
- 请问更好发挥和规范化风格化发货
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈