主要内容

sgolayfilt

Savitzky-Golay过滤

描述

例子

y= sgolayfilt (x,订单,framelen)应用Savitzky-Golay有限脉冲响应(杉木)多项式阶平滑滤波器订单和帧长度framelen在矢量数据x。如果x是一个矩阵,然后呢sgolayfilt对每一列进行操作。

例子

y= sgolayfilt (x,订单,framelen,权重)指定一个权重向量使用最小平方最小化。

y= sgolayfilt (x,订单,framelen,权重,昏暗的)指定的尺寸以及过滤操作。

例子

全部折叠

生成一个随机信号和光滑的使用sgolayfilt。指定一个多项式的顺序3和一个框架的长度11。绘制原始和平滑信号。

订单= 3;framelen = 11;lx = 34;x = randn (lx, 1);山东= sgolayfilt (x,秩序,framelen);情节(x,“:”)举行情节(山东,“。”)传说(“信号”,“sgolay”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表信号,sgolay。

sgolayfilt函数执行的大部分由卷积滤波信号的中心行B的输出sgolay。结果是稳态过滤信号的一部分。这部分生成和阴谋。

m = (framelen-1) / 2;B = sgolay(顺序,framelen);稳定= conv (x、B (m + 1,:)“相同”);情节(稳定)传说(“信号”,“sgolay”,“稳定”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。sgolay,这些对象表示信号稳定。

样品接近信号边缘不能放置的中心对称的窗口,必须区别对待。

确定启动瞬态,矩阵乘法(framelen-1) / 2B由第一个framelen样品的信号。

ybeg = B (1: m:) * x (1: framelen);

确定终端瞬态,矩阵乘法决赛(framelen-1) / 2B通过最后的framelen样品的信号。

yend = B (framelen-m + 1: framelen:) * x (lx-framelen + 1: lx);

连接的瞬态和稳态部分生成完整的信号。

cmplt =稳定;cmplt (1: m) = ybeg;cmplt (lx-m + 1: lx) = yend;情节(cmplt)传说(“信号”,“sgolay”,“稳定”,“完成”)举行

图包含一个坐标轴对象。坐标轴对象包含4线类型的对象。这些对象代表信号,sgolay,稳定、完整的。

增加的重量最小化的对称性B一个合适的解决方案,需要额外的步骤。

加载一个语音信号在采样 F 年代 = 7418年 赫兹 。文件包含一个记录一个女声说“MATLAB®。”这个词

负载mtlbt =(0:长度(mtlb) 1) / Fs;

光滑多项式秩序的信号通过应用Savitzky-Golay滤波器9数据帧的长度21。绘制原始和过滤信号。放大一个0.02秒的时间间隔。

rd = 9;fl = 21;smtlb = sgolayfilt (mtlb, rd, fl);次要情节(2,1,1)情节(t, mtlb)轴([0.2 - 0.22 3 2])标题(“原始”)网格次要情节(2,1,2)情节(t, smtlb)轴([0.2 - 0.22 3 2])标题(“过滤”网格)

图包含2轴对象。坐标轴对象1与原有标题包含一个类型的对象。坐标轴对象2标题过滤包含一个类型的对象。

重复计算,但现在使用一个Kaiser窗作为权重向量。指定一个形状系数 β = 38 。绘制新过滤信号。

kmtlb = sgolayfilt (mtlb, rd, fl, kaiser (fl, 38岁));次要情节(2,1,2)情节(t, kmtlb)轴([0.2 - 0.22 3 2])

图包含2轴对象。坐标轴对象1与原有标题包含一个类型的对象。坐标轴对象2 2标题过滤包含对象类型的线。

输入参数

全部折叠

输入信号,指定为一个向量或矩阵。

数据类型:|

多项式,指定为一个正整数。订单必须小于framelen。如果订单=framelen- 1,过滤器生产不平滑。

数据类型:|

帧长度指定为一个积极的奇数。

数据类型:|

权重数组,指定为一个真正积极的向量或矩阵的长度framelen

数据类型:|

维过滤,指定为一个正整数标量。默认情况下,sgolayfilt的第一个维度x的大小是大于1。

数据类型:|

输出参数

全部折叠

过滤信号,作为一个向量或矩阵返回。

提示

Savitzky-Golay平滑过滤器通常用于“平稳”噪声信号的频率跨度(没有声音)大。又被称为数字平滑多项式过滤器或最小二乘平滑滤波器。Savitzky-Golay过滤器执行比标准平均FIR滤波器,在某些应用程序中,往往随着噪声滤波器高频内容。Savitzky-Golay过滤器是更有效地保护高频信号组件但不成功的拒绝噪音。

Savitzky-Golay过滤器是最佳,他们减少最小二乘多项式拟合误差噪声数据的帧。看到sgolay更多信息关于Savitzky-Golay算法。

引用

[1]Orfanidis,索福克勒斯J。介绍了信号处理。恩格尔伍德悬崖,新泽西:Prentice Hall出版社,1996年。

[2]谢弗,罗纳德。“Savitzky-Golay过滤器是什么?(讲稿)。”IEEE信号处理杂志28日,没有。4(2011年7月):111 - 17所示。https://doi.org/10.1109/MSP.2011.941097。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

之前介绍过的R2006a