python正弦信号插值恢复原来信号
时间: 2023-07-11 22:58:09 浏览: 136
在Python中,可以使用SciPy库中的`interp1d`函数进行插值。该函数可以进行线性插值、二次样条插值、三次样条插值等多种插值方法。以线性插值为例,代码如下:
```python
import numpy as np
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
# 原始信号
x = np.linspace(0, 10, num=11, endpoint=True)
y = np.sin(x)
# 采样
x_sample = np.linspace(0, 10, num=21, endpoint=True)
y_sample = np.sin(x_sample)
# 线性插值
f = interp1d(x_sample, y_sample, kind='linear')
x_new = np.linspace(0, 10, num=101, endpoint=True)
y_new = f(x_new)
# 绘图
plt.plot(x, y, 'r-', label='Original Signal')
plt.plot(x_sample, y_sample, 'bo', label='Sampled Signal')
plt.plot(x_new, y_new, 'g-', label='Interpolated Signal')
plt.legend()
plt.show()
```
运行结果如下所示:
![interp1d](https://img-blog.csdnimg.cn/20220115152329451.png)
在代码中,首先生成了一个正弦信号,然后在该信号上进行采样。采样后的信号进行线性插值,得到更加平滑的信号。最后,将原始信号、采样信号和插值信号绘制在同一张图上,以便比较。
阅读全文