没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
LMS 算法
function [yn,W,en]=LMS(xn,dn,M,mu,itr)
% LMS(Least Mean Squre)算法
% 输入参数:
% xn 输入的信号序列 (列向量)
% dn 所期望的响应序列 (列向量)
% M 滤波器的阶数 (标量)
% mu 收敛因子(步长) (标量) 要求大于 0,小于 xn 的相关矩阵最大特征值的倒数
% itr 迭代次数 (标量) 默认为 xn 的长度,M<itr<length(xn)
% 输出参数:
% W 滤波器的权值矩阵 (矩阵)
% 大小为 M x itr,
% en 误差序列(itr x 1) (列向量)
% yn 实际输出序列 (列向量)
% 参数个数必须为 4 个或 5 个
if nargin == 4 % 4 个时递归迭代的次数为 xn 的长度
itr = length(xn);
elseif nargin == 5 % 5 个时满足 M<itr<length(xn)
if itr>length(xn) | itr<M
error('迭代次数过大或过小!');
end
else
error('请检查输入参数的个数!');
end
% 初始化参数
en = zeros(itr,1); % 误差序列,en(k)表示第 k 次迭代时预期输出与实际输入的误差
W = zeros(M,itr); % 每一行代表一个加权参量,每一列代表-次迭代,初始为 0
% 迭代计算
for k = M:itr % 第 k 次迭代
x = xn(k:-1:k-M+1); % 滤波器 M 个抽头的输入
y = W(:,k-1).' * x; % 滤波器的输出
en(k) = dn(k) - y ; % 第 k 次迭代的误差
% 滤波器权值计算的迭代式
W(:,k) = W(:,k-1) + 2*mu*en(k)*x;
end
% 求最优时滤波器的输出序列
yn = inf * ones(size(xn));
for k = M:length(xn)
x = xn(k:-1:k-M+1);
yn(k) = W(:,end).'* x;
end
调用 LMS 算法
%function main()
资源评论
- 单位冲激响应2013-05-24可以运行,但其实其他网站也可搜到,不需要积分
- lbking892013-10-19可以运行。加深对LMS算法的理解。
- kkjv172017-10-16还不错,总的来说
- hasj882012-06-22有代码 还没试可不可以实现 先留着
- baozixianzi2013-05-29可以实现,有参考价值吧。。。
adongxh
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功