文档章节

LSM 自适应信号处理代码

MtrS
 MtrS
发布于 2017/05/26 10:44
字数 272
阅读 8
收藏 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
粉丝 32
博文 566
码字总数 357787
作品 0
榆林
私信 提问
信号处理基本理论及工程应用Live-

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

陈司空
2017/06/02
0
0
利用Matlab2017b Simulink基于模型设计的自动代码生成对STM32F4进行开发 (4)----(ADC电压采集以及自适应滤波实验)

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

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

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

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

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

红薯
2011/02/12
4.9K
4
SP++3.0已发布,欢迎大家使用(同心协力,共创开源)

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

张明
2011/02/12
0
55

没有更多内容

加载失败,请刷新页面

加载更多

tac 与cat

tac从后往前看文件,结合grep使用

writeademo
今天
2
0
表单中readonly和dsabled的区别

这两种写法都会使显示出来的文本框不能输入文字, 但disabled会使文本框变灰,而且通过通过表单提交时,获取不到文本框中的value值(如果有的话), 而readonly只是使文本框不能输入,外观没...

少年已不再年少
今天
2
0
SpringBoot上传图片操作

首先有个上传文件的工具类 /** * 文件上传 * @param file * @param filePath * @param fileName * @throws Exception */public static void uploadFile(byte[] file, String ...

_liucui_
今天
6
0
DrawerLayout

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener,OnFragmentInteractionListener{ public NavigationView navView; ......

安卓工程师王恒
今天
2
0
python精简笔记

python精简笔记-字符串基本用法 字符串常见用法: * encode() # 编码成bytes类型 * find() # 查找子串 * index() # 获取下标 * replace() # 替换子串 * len(string) # 返回字符串长度,...

平头哥-Enjoystudy
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部