主要内容

Sgolayfilt.

Savitzky-golay过滤

描述

例子

y= sgolayfilt(X命令Framelen.适用于多项式顺序的Savitzky-Golay有限脉冲响应(FIR)平滑过滤器命令和框架长度Framelen.到矢量中的数据X。如果X是一个矩阵,然后Sgolayfilt.在每列上运行。

例子

y= sgolayfilt(X命令Framelen.重量指定在最小平方期间使用的加权矢量最小化。

y= sgolayfilt(X命令Framelen.重量暗淡指定过滤器操作的尺寸。

例子

全部收缩

生成随机信号并使用它使用Sgolayfilt.。指定3的多项式顺序,帧长为11.绘制原始和平滑的信号。

订单= 3;Framelen = 11;lx = 34;x = randn(lx,1);sgf = sgolayfilt(x,订单,framelen);plot(x,':') 抓住情节(SGF,'.-') 传奇('信号''sgolay'

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

Sgolayfilt.函数通过将信号与中心行卷积来执行大多数过滤B.,输出斯戈拉。结果是滤波信号的稳态部分。生成并绘制这部分。

m =(Framelen-1)/ 2;b = sgolay(顺序,ramelen);稳定= 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;plot(cmplt)传奇('信号''sgolay''稳定的''完全的') 抓住离开

图包含轴。轴包含4个类型的4个物体。这些对象代表信号,Sgolay,稳定,完整。

将权重添加到最小化中断对称性B.并需要适当的解决方案需要额外的步骤。

加载语音信号采样 F S. = 7418. 赫兹 。该文件包含一个录制的女性语音,说明“matlab®”这个词。

加载MTLB.t =(0:长度(mtlb)-1)/ fs;

通过将多项式订单9的Savitzky-Golay滤波器应用于长度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滤波器在意义上是最佳的,因为它们最小化了将多项式的最小二乘误差最小化到嘈杂数据帧中。看斯戈拉有关Savitzky-Golay算法的更多信息。

参考

[1] Orfanidis,Sophocles J.信号处理简介。Englewood Cliffs,NJ:Prentice Hall,1996。

[2] Schafer,罗纳德。“什么是savitzky-golay过滤器?[演讲笔记]。”IEEE信号处理杂志28,不。4(2011年7月):111-17。https://doi.org/10.1109/msp.2011.941097。

扩展能力

C / C ++代码生成
使用MATLAB®Coder™生成C和C ++代码。

也可以看看

|||

在R2006A之前介绍