Savitzky-Golay是一种平滑滤波方法,经常用于数据去噪。Matlab中用于实现Savitzky-Golay滤波的函数是`sgolayfilt`。
基本语法如下:
```matlab
y = sgolayfilt(x, order, framelen)
```
参数的含义如下:
- `x`:输入信号,是一个向量。
- `order`:滤波器的阶数,它定义了拟合窗口内的多项式的阶数。
- `framelen`:滤波器的帧长度,它必须是一个奇数。
返回值 `y` 是经过Savitzky-Golay滤波后的信号。
例如,对一个随机产生的信号进行Savitzky-Golay滤波:
```matlab
x = randn(1,100); % 产生一个随机信号
y = sgolayfilt(x, 3, 11); % 进行Savitzky-Golay滤波
```
以上代码会对信号x进行3阶,窗口长度为11的Savitzky-Golay滤波。
参考: