import numpy as np
import matplotlib.pyplot as plt
# 生成一个信号:包含两个不同频率的正弦波
fs = 1000 # 采样频率
t = np.arange(0, 1, 1/fs) # 时间序列
f1, f2 = 50, 120 # 信号频率
x = 0.6 * np.sin(2 * np.pi * f1 * t) + 0.4 * np.sin(2 * np.pi * f2 * t)
# 计算FFT
X = np.fft.fft(x)
freqs = np.fft.fftfreq(len(X), 1/fs)
# 绘制频谱
plt.figure()
plt.plot(freqs[:len(freqs)//2], np.abs(X)[:len(X)//2])
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.title('Frequency Spectrum')
plt.show()