Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python 傅里叶变换

作者:洮娦ゞ   发布日期:2026-05-18   浏览:30

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()

解释说明:

  1. 创建示例信号:我们生成了一个包含两个不同频率(5 Hz 和 20 Hz)的正弦波信号。
  2. 执行傅里叶变换:使用 numpy.fft.fft 对信号进行傅里叶变换,得到频域表示。
  3. 计算频率轴:使用 numpy.fft.fftfreq 计算对应的频率值。
  4. 只取正频率部分:由于傅里叶变换结果是对称的,我们只保留正频率部分进行分析。
  5. 绘制图形:分别绘制了原始信号的时间域波形图和频域的频谱图。

这段代码展示了如何使用 Python 进行傅里叶变换,并可视化结果。

上一篇:python web 框架

下一篇:asyncio python

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python的assert基本用法

python开发windows应用程序

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站