python写一段正弦信号的傅里叶变换代码
时间: 2023-05-30 16:04:40 浏览: 78
这是一个计算正弦信号傅里叶变换的Python代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义正弦信号的频率和采样频率
freq = 20
sampling_freq = 1000
# 生成正弦波信号
time = np.arange(0, 1, 1/sampling_freq)
signal = np.sin(2 * np.pi * freq * time)
# 计算傅里叶变换
fft = np.fft.fft(signal)
# 计算频谱
freqs = np.fft.fftfreq(len(signal)) * sampling_freq
amplitudes = np.abs(fft)
# 绘制原始信号和频谱
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(8, 6))
ax1.plot(time, signal)
ax1.set_xlabel('Time (s)')
ax1.set_ylabel('Amplitude')
ax1.set_title('Original Signal')
ax2.plot(freqs, amplitudes)
ax2.set_xlabel('Frequency (Hz)')
ax2.set_ylabel('Amplitude')
ax2.set_title('Frequency Spectrum')
plt.tight_layout()
plt.show()
```
该代码生成一个20Hz的正弦信号,采样频率为1000Hz,计算其傅里叶变换并绘制原始信号和频谱。可以通过修改`freq`和`sampling_freq`来生成不同的正弦信号,并观察其频谱特征。