python用自己的信号数据进行fft变化
时间: 2024-05-03 21:21:45 浏览: 12
要使用Python进行FFT变换,需要使用NumPy和matplotlib库。以下是一个示例代码,用于将自己的信号数据进行FFT变换:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成信号数据
fs = 1000 # 采样频率
t = np.arange(0, 1, 1/fs) # 时间序列
f1 = 10 # 信号频率1
f2 = 50 # 信号频率2
A1 = 1 # 信号幅度1
A2 = 0.5 # 信号幅度2
x = A1 * np.sin(2*np.pi*f1*t) + A2 * np.sin(2*np.pi*f2*t) # 合成信号
# 进行FFT变换
N = len(x)
X = np.fft.fft(x) # 计算FFT
freq = np.fft.fftfreq(N, 1/fs) # 计算频率序列
# 绘制原始信号和频谱图
fig, ax = plt.subplots(2, 1, figsize=(8, 6))
ax[0].plot(t, x)
ax[0].set_xlabel('Time (s)')
ax[0].set_ylabel('Amplitude')
ax[1].plot(freq[:N//2], np.abs(X[:N//2])/N*2)
ax[1].set_xlabel('Frequency (Hz)')
ax[1].set_ylabel('Magnitude')
plt.show()
```
该代码首先生成了一个包含两个正弦波的合成信号,然后使用`numpy.fft.fft()`函数计算了该信号的FFT变换,最后将原始信号和频谱图绘制出来。可以根据需要修改代码中的信号参数和绘图样式。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)