如何输出原始数据和fir低通滤波后的数据对比图
时间: 2024-01-21 18:19:54 浏览: 73
matlab数据做图.rar_hw5_matlab_数据滤波绘图
要输出原始数据和FIR低通滤波后的数据对比图,您可以按照以下步骤进行操作:
1. 读取原始数据并将其存储在一个数组中。
2. 设计FIR低通滤波器并将其应用于原始数据。
3. 将原始数据和过滤后的数据分别绘制成图表,并将它们放在同一张图表上进行比较。
下面是一个简单的Python示例代码,它演示了如何实现这个过程:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 读取原始数据
data = np.loadtxt('data.txt')
# 设计FIR低通滤波器
nyquist_rate = 0.5
cutoff_hz = 10
numtaps = 101
b = signal.firwin(numtaps, cutoff_hz/nyquist_rate)
# 应用滤波器
filtered_data = signal.lfilter(b, 1, data)
# 绘制原始数据和过滤后的数据对比图
fig, ax = plt.subplots()
ax.plot(data, label='Raw Data')
ax.plot(filtered_data, label='Filtered Data')
ax.legend()
ax.set_xlabel('Sample Index')
ax.set_ylabel('Amplitude')
ax.set_title('Raw vs Filtered Data Comparison')
plt.show()
```
在这个示例代码中,我们首先使用`numpy`库中的`loadtxt()`函数从一个名为"data.txt"的文件中读取原始数据。然后,我们使用`scipy`库中的`firwin()`函数来设计一个101个系数的FIR低通滤波器,其截止频率为10 Hz,并将其应用于原始数据。最后,我们使用`matplotlib`库中的`plot()`函数将原始数据和过滤后的数据分别绘制到同一张图表上,并将它们进行比较。
您可以将代码中的"data.txt"替换为您自己的数据文件名,并根据需要调整截止频率、滤波器系数等参数。执行代码后,您将会看到一个包含原始数据和过滤后数据对比图的窗口弹出。
阅读全文