文档章节

LSM 自适应信号处理代码

MtrS
 MtrS
发布于 2017/05/26 10:44
字数 272
阅读 7
收藏 0
function [yhat, c, e] = lms(x, y, mu, M, c_0)
% function [yhat, c, e] = lms(x, y, mu, M, c_0) % FIR Adaptive Filter using LMS Algorithm, % reference to "Statistical and Adaptive Signal Processing" % by Dimitris G. Manolakis, Vinay K. Ingle, and Stephen M. Kogon. McGraw-Hill Higher Education. % x = input sequence % y = desired sequence % mu = step-size % M = filter order % c_0 = initialization of coefficient vector % yhat = filtered sequence % c = FIR filter coefficient vector % e = error signal % P = squared error
if nargin ~= 5    error('The input parameters error!')    return end if M <= 0    error('The input filter order must be a postive integer!')    return end if sum(size(x)>1)>1 || sum(size(y)>1)>1 || sum(size(c_0)>1)>1    error('Input data dimension error!')    return end if length(c_0) ~= M    error('initial filter order mismatch!')    return end
x = squeeze(x); y = squeeze(y); Nx = length(x); x = reshape(x,Nx,1); Ny = length(y); y = reshape(y,Ny,1); c_0 = reshape(c_0,M,1);
if Ny > Nx    y = y(1:Nx); elseif Ny < Nx    y = [y;zeros(Nx-Ny,1)]; end
yhat = zeros(Nx,1); c = zeros(M,Nx); P = zeros(Nx,1); e = zeros(Nx,1); xm = zeros(M,1);
c(:,1) = c_0; for n = 1:Nx    if n < M         xm(1:n) = flipud(x(1:n));    else          xm = flipud(x(n+1-M:n));    end    yhat(n) = xm'*c(:,n);    e(n) = y(n)-yhat(n); %     P(n) = (abs(e(n)))^2;    c(:,n+1) = c(:,n)+2*mu*xm*e(n); end
return;

© 著作权归作者所有

共有 人打赏支持
MtrS
粉丝 30
博文 549
码字总数 352132
作品 0
榆林
私信 提问
利用Matlab2017b Simulink基于模型设计的自动代码生成对STM32F4进行开发 (4)----(ADC电压采集以及自适应滤波实验)

本ADC实验通过1个电压采集来演示STM32的ADC功能,以及如何在simulink平台上面完成这些功能的具体操作,并利用simulink强大的信号处理工具相,将采集回来的电压信号进行自适应滤波,告别一些传...

weixin_36967309
05/12
0
0
信号处理基本理论及工程应用Live-

本次知乎 Live (点我、点我) Live 简介 Esquirrel ,北京大学在读博士生,专注智能硬件、人工智能与医学结合的交叉领域,知乎 6.3k 赞, 13k 收藏的小透明,人工智能医疗应用系列专栏作者。...

陈司空
2017/06/02
0
0
SP++3.0 发布,欢迎大家使用

消息来自 Jerry 的博客: SP++ (Signal Processing in C++) 是一个关于信号处理与数值计算的开源C++程序库,该库提供了信号处理与数值计算中常用算法的C++实现。SP++中所有算法都以C++类模板...

红薯
2011/02/12
4.5K
4
信号处理基本理论及工程应用Live预告

知乎 Live (点我,点我) 各位关注Esquirrel的亲们,准备大半个月的信号处理基本理论及工程应用Live终于要开讲啦!(虽然主咖是别人,我也跟着鸡动) 6月21号晚上7点,由北京理工大学的刘锋...

陈司空
2017/06/20
0
0
SP++3.0已发布,欢迎大家使用(同心协力,共创开源)

SP++ (Signal Processing in C++) 是一个关于信号处理与数值计算的开源C++程序库,该库提供了信号处理与数值计算中常用算法的C++实现。SP++中所有算法都以C++类模板方法实现,以头文件形式组...

张明
2011/02/12
0
55

没有更多内容

加载失败,请刷新页面

加载更多

nuc970 uboot nand-boot,kernel, filesystem 烧录位置

一 烧写到Nand Flash **1.1 **相关文件说明 l BSP版本:nuc970bsp-release-20150519.zip l NuWriter版本:2015/04/28-V01,nuvoTon Nu-Writer V1.0 l 烧写文件: u-boot-spl.bin:负责将u-b......

CookieDemo
44分钟前
1
0
python中sort和sorted函数小结

L.sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) 这样看,sorted函数只比sort函数多一个iterable参数,其余没什么不同,iterable是一个迭代......

上官夏洛特
今天
3
0
thinkphp 常用SQL执行语句总结

第一条:Db::tablera('vr_panomas')->where(['delete_time'=>0,'id'=>['in',$pids]])->field(['id'=>'id','post_thumb'=>'thumb','post_title'=>'title','post_tags'=>'tags','post_price'=>......

koothon
今天
4
0
支付宝返回状态resultStatus意思

上一篇集成支付宝的时候,会有一些支付宝返回的resultStatus,具体意思是: 9000 订单支付成功 8000 正在处理中 4000 订单支付失败 6001 用户中途取消 6002 网络连接出错 还有memo,意思就是...

RainOrz
今天
3
0
electron webview 页面加载事件顺序

1.did-start-loading 页面开始加载 2.load-commit 主页面文档加载 3.page-title-updated title 4.dom-ready 主页面 dom 加载完成 5.load-commit frame文档加载 6.did-frame-finish-load fram......

dubox
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部