import numpy as np
import matplotlib.pyplot as plt
# 创建一个示例信号
t = np.linspace(0, 1, 400, endpoint=False)
signal = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 20 * t)
# 执行傅里叶变换
fft_result = np.fft.fft(signal)
frequencies = np.fft.fftfreq(len(t), t[1] - t[0])
# 只取正频率部分
positive_frequencies = frequencies[:len(frequencies)//2]
positive_fft_result = np.abs(fft_result[:len(fft_result)//2])
# 绘制原始信号和频谱图
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(t, signal)
plt.title('Original Signal')
plt.xlabel('Time [s]')
plt.ylabel('Amplitude')
plt.subplot(1, 2, 2)
plt.plot(positive_frequencies, positive_fft_result)
plt.title('Frequency Spectrum')
plt.xlabel('Frequency [Hz]')
plt.ylabel('Magnitude')
plt.tight_layout()
plt.show()
numpy.fft.fft 对信号进行傅里叶变换,得到频域表示。numpy.fft.fftfreq 计算对应的频率值。这段代码展示了如何使用 Python 进行傅里叶变换,并可视化结果。
上一篇:python web 框架
下一篇:asyncio python
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站