matlab (k),MATLAB的sgolay(k,f)的Python等价物是什么?
如果您检查Matlab的^{}函数返回的矩阵b,您将看到中心行与SciPy的savgol_coeffs返回的一维数组相同。b的上半部分和下半部分各有(framelen - 1)/2行,是要应用到信号末端的Savitzky-Golay滤波器的系数,其中滤波器是非对称的。也就是说,对于信号每一端的(framelen - 1)/2值,使用不同的一组系数来计算每个滤波值。在
您可以使用savgol_coeffs通过迭代pos参数来生成b。下面的ipython会话显示了一个示例。在In [74]: import numpy as np
In [75]: from scipy.signal import savgol_coeffs
In [76]: np.set_printoptions(precision=11, linewidth=90)
In [77]: order = 3
In [78]: windowlen = 5
这些是对称(即中心)Savitzky-Golay滤波器的系数。一维数组应与sgolay返回的矩阵的中心行匹配:
^{pr2}$
如果我们设置pos=windowlen-1,我们将得到在窗口一端计算滤波器的系数。它们应该与sgolay返回的数组的第一行相匹配:In [80]: savgol_coeffs(windowlen, order, pos=windowlen-1)
Out[80]: array([ 0.98571428571, 0.05714285714, -0.08571428571, 0.05714285714, -0.01428571429])
类似地,pos=0给出了窗口另一端的系数。它们应该与sgolay返回的矩阵的最后一行匹配:In [81]: savgol_coeffs(windowlen, order, pos=0)
Out[81]: array([-0.01428571429, 0.05714285714, -0.08571428571, 0.05714285714, 0.98571428571])
下面是与Matlab的sgolay的返回值匹配的完整数组:In [82]: b = np.array([savgol_coeffs(windowlen, order, pos=p) for p in range(windowlen-1, -1, -1)])
In [83]: b
Out[83]:
array([[ 0.98571428571, 0.05714285714, -0.08571428571, 0.05714285714, -0.01428571429],
[ 0.05714285714, 0.77142857143, 0.34285714286, -0.22857142857, 0.05714285714],
[-0.08571428571, 0.34285714286, 0.48571428571, 0.34285714286, -0.08571428571],
[ 0.05714285714, -0.22857142857, 0.34285714286, 0.77142857143, 0.05714285714],
[-0.01428571429, 0.05714285714, -0.08571428571, 0.05714285714, 0.98571428571]])
如果将其与Matlab中b = sgolay(3, 5)的结果进行比较,就会发现它们是相同的。在
要获得sgolay返回的g矩阵,必须调用savgol_coeffs,并将deriv设置为range(order+1)中的值,反转并转置数组,并按导数顺序的阶乘进行缩放。要反转系数,可以使用::-1形式的一部分,或者可以使用savgol_coeffs的use选项。在
下面是一种使用savgol_coeffs生成g矩阵的方法,其中order=3和{}:In [12]: import numpy as np
In [13]: from scipy.signal import savgol_coeffs
In [14]: from scipy.special import factorial
In [15]: np.set_printoptions(precision=11, linewidth=90, suppress=True)
In [16]: order = 3
In [17]: windowlen = 5
In [18]: g = np.array([savgol_coeffs(windowlen, order, deriv=d, use='dot') for d in range(order+1)]).T / factorial(np.arange(order+1))
In [19]: g
Out[19]:
array([[-0.08571428571, 0.08333333333, 0.14285714286, -0.08333333333],
[ 0.34285714286, -0.66666666667, -0.07142857143, 0.16666666667],
[ 0.48571428571, 0. , -0.14285714286, 0. ],
[ 0.34285714286, 0.66666666667, -0.07142857143, -0.16666666667],
[-0.08571428571, -0.08333333333, 0.14285714286, 0.08333333333]])
您不会说为什么要在Python中使用完整的windowlenxwindowlen数组。你不需要它来使用savgol_filter。在
matlab (k),MATLAB的sgolay(k,f)的Python等价物是什么?相关推荐
- 【MATLAB】Parzen窗与K近邻算法原理与代码详解
文章目录 1.非参数估计原理 2.Parzen窗 2.1.算法原理 2.2.Matlab实现与参数探究 3.K近邻 3.1.算法原理 3.2.Matlab实现与参数探究 1.非参数估计原理 \qqua ...
- matlab计算macd_[转载]4.K线图以及常用技术指标的Matlab实现-基于Matlab的量化投资...
本次主要讲解用Matlab来实现K线图以及常用的技术指标. 相关前导帖子浏览: 系列帖子目录 Matlab的Bar图中Bar颜色灵活设置的一点总结[by faruto] [原创]坐标轴刻度标签旋转升级 ...
- matlab的技术指标,[转载]4.K线图以及常用技术指标的Matlab实现-基于Matl
本次主要讲解用Matlab来实现K线图以及常用的技术指标. 相关前导帖子浏览: 系列帖子目录 Matlab的Bar图中Bar颜色灵活设置的一点总结[by faruto] [原创]坐标轴刻度标签旋转升级 ...
- 概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布
概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布 使用Java中的SecureRandom.nextDouble()生成一个0~1之间的随机浮点数,然后使用 ...
- matlab计算原点矩,关于用matlab求样本均值方差以及k阶原点矩的matlab程序
关于用matlab求样本均值方差以及k阶原点矩的matlab 程序 关于用matlab求样本均值和方差以及matlab程 序 1n1. 样本均值,公式xX,(其中X为样本).程序如下: ,i,1in ...
- matlab计算macd_matlab股市图k线 matlab画macd图
我们在进行均线操盘时常会用到k线走势图以及分时图来综合的判断未来股市的趋势走向.以便于能够及时的做出相应的调整.我们在k线形态图已经明白怎么去做止盈.那么对于分时图而言,投资如何在这里面利用均价线做止 ...
- 回归预测 | MATLAB实现SVR(支持向量机回归)K折交叉验证
回归预测 | MATLAB实现SVR(支持向量机回归)K折交叉验证 目录 回归预测 | MATLAB实现SVR(支持向量机回归)K折交叉验证 基本介绍 划分原理 留一划分 交叉验证 K折交叉 程序设计 ...
- matlab knn,MATLAB K近邻算法 — knnsearch() 函数 | 学步园
K近邻 IDX = knnsearch(X,Y) finds the nearest neighbor in X for each point in Y. X is an MX-by-N matrix ...
- matlab的sinxx,用MATLAB程序编程:分析方程f(x)=sinx-x/2=0正根的分布情况,并用二分法求正根近似值,使误差不超过0.01....
在来matlab里面输入edit fun.m:在弹出的窗口自输入bai以下内du容:function f=fun(x,y):f=x.^2+sin(x.*y)+2*y;:保存一下zhi.最后在matla ...
- 设非零得实系数多项式 $f(x)$ (即系数都是实数得多项式)满足 $f(f(x)) = f^k(x)$,其中 $k$ 是给定得正整数。求多项式 $f(x)$
设非零得实系数多项式 f(x)f(x)f(x) (即系数都是实数得多项式)满足 f(f(x))=fk(x)f(f(x)) = f^k(x)f(f(x))=fk(x),其中 kkk 是给定得正整数.求多 ...
最新文章
- 白盒测试各种“覆盖”间的拓扑关系及白盒用例常用要求
- 统计简单学_假说检定
- 变换域隐写术检测分析
- Matlab | Matlab从入门到放弃(5)——矩阵与format
- Fedora ssh服务,防火墙服务设置
- C#将DataTable海量数据导出到Excel
- 图像分类数据集类型--典型模型--相关论文
- Java基础之访问文件与目录——获取与文件存储有关的信息(GetFileStores)
- 仓库管理软件,仓库管理系统,希创条码,wms仓库管理软件
- Opencv图像二值化操作
- 不谋一时不足以谋一域_请问不谋万世者不足谋一时,不谋全局者,不足谋一域,接下来是什么?这段话太精辟了,能不能把全文发送过来?...
- 如何用仅用C语言判断编译器的大小端
- 微信红包 php算法,基于PHP微信红包的算法探讨
- 【win10蓝屏】记录一下,随机蓝屏,开机蓝屏,使用中蓝屏的经历
- 分数化成有限小数的方法_怎样把分数化成小数
- 《From Captions to Visual Concepts and Back》阅读笔记
- Springboot中EasyExcel导出及校验后导入前后台功能实现
- FS9017R.是一款单节4.2V锂电池充电管理IC
- 安装taro踩到小坑
- 总结二:底部导航栏的实现