python 三角波FFT演示程序
时间: 2023-06-23 22:46:46 浏览: 146
好的,以下是一个简单的Python程序,用于生成和绘制三角波,并对其进行FFT变换:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成三角波信号
t = np.linspace(0, 1, 400, endpoint=False)
x = np.concatenate((t, np.flip(t)))
x -= np.mean(x)
# 绘制时域波形
plt.subplot(211)
plt.plot(t, x[:len(t)])
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
# 进行FFT变换
X = np.fft.fft(x)
# 计算频率轴
freqs = np.fft.fftfreq(len(x)) * 400
# 绘制频域幅值谱
plt.subplot(212)
plt.plot(freqs, np.abs(X))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Magnitude')
plt.show()
```
运行程序后,将会弹出一个窗口,其中第一个图是三角波的时域波形,第二个图是其对应的频域幅值谱。可以看到,三角波信号的频谱包含了多个谐波分量,其频率比基本频率高的谐波分量的幅值越来越小。
阅读全文