用Python写一段低频线谱检测的代码
时间: 2023-12-03 15:46:29 浏览: 151
以下是一个简单的低频线谱检测的Python代码。该代码使用SciPy库中的signal子库进行滤波和频谱分析。
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 生成一个包含低频信号的示例信号
t = np.linspace(0, 1, 1000, endpoint=False)
x = np.sin(2 * np.pi * 5 * t) + 0.5 * np.sin(2 * np.pi * 50 * t)
# 设置滤波器参数
fs = 1000 # 采样率
fc = 30 # 截止频率
order = 4 # 滤波器阶数
b, a = signal.butter(order, fc / (fs / 2), 'low')
# 使用滤波器滤波信号
y = signal.filtfilt(b, a, x)
# 计算信号的频谱
f, Pxx = signal.periodogram(y, fs)
# 绘制频谱图
plt.plot(f, Pxx)
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power spectral density (V^2 / Hz)')
plt.show()
```
该代码首先生成了一个包含低频信号的示例信号。然后,它使用Butterworth滤波器将信号中的高频成分滤除。最后,代码计算滤波后信号的功率谱密度,并绘制出频谱图。通过观察频谱图,我们可以确定信号中的低频成分是否被有效地保留下来。
阅读全文