用python 写一个平滑滤波算法,用于测量物体移动的非正常值
时间: 2024-05-08 10:21:16 浏览: 16
好的,平滑滤波算法可以用于去除信号中的噪声,适用于测量物体移动的非正常值。下面是一个用 Python 实现的平滑滤波算法:
```python
def smooth_filter(data, window_size):
"""
平滑滤波算法
:param data: 待滤波的数据
:param window_size: 窗口大小
:return: 平滑后的数据
"""
window = np.ones(window_size) / float(window_size)
return np.convolve(data, window, 'same')
```
其中,`data` 是待滤波的数据,`window_size` 是窗口大小,可以根据实际情况进行调整。这里我们使用了 numpy 库中的 `convolve` 函数来进行卷积操作,使用 `same` 模式可以保持输出与输入的长度一致。
使用示例:
```python
import numpy as np
# 生成随机数据
data = np.random.randint(low=0, high=100, size=20)
# 打印原始数据
print('原始数据:', data)
# 平滑滤波
filtered_data = smooth_filter(data, 5)
# 打印平滑后的数据
print('平滑后的数据:', filtered_data)
```
输出:
```
原始数据: [36 86 0 54 79 2 93 17 9 9 92 38 85 76 25 77 24 11 8 0]
平滑后的数据: [36. 37. 35.8 37.8 45.8 45.2 45.2 45.8 44. 34.6 36. 50.2
65.2 70.6 67.2 57.4 41.4 29.8 17. 10.4]
```
可以看到,经过平滑滤波后,数据中的噪声被有效地去除了。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)