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

python fft

作者:独夜无伴   发布日期:2025-09-14   浏览:111

import numpy as np
import matplotlib.pyplot as plt

# 生成一个示例信号
# 时间向量
t = np.linspace(0, 1, 400, endpoint=False)
# 信号频率为5 Hz和20 Hz的组合
signal = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 20 * t)

# 计算FFT
fft_result = np.fft.fft(signal)
# 频率轴
frequencies = np.fft.fftfreq(len(t), d=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(2, 1, 1)
plt.plot(t, signal)
plt.title('Original Signal')
plt.xlabel('Time [s]')
plt.ylabel('Amplitude')

# 绘制FFT结果
plt.subplot(2, 1, 2)
plt.plot(positive_frequencies, positive_fft_result)
plt.title('FFT Result')
plt.xlabel('Frequency [Hz]')
plt.ylabel('Magnitude')

plt.tight_layout()
plt.show()

解释说明:

  1. 生成示例信号

    • 使用 np.linspace 创建时间向量 t,表示0到1秒的时间范围。
    • 创建一个包含两个不同频率(5 Hz 和 20 Hz)的正弦波信号。
  2. 计算FFT

    • 使用 np.fft.fft 对信号进行快速傅里叶变换(FFT),得到频域表示。
    • 使用 np.fft.fftfreq 计算对应的频率轴。
  3. 处理频率轴

    • FFT 结果是对称的,因此只取正频率部分进行分析。
  4. 绘制结果

    • 使用 matplotlib 绘制原始信号和FFT结果。
    • 原始信号显示在上图,FFT结果显示在下图,展示了信号的频谱特性。

上一篇:python中str的用法

下一篇:python时间

大家都在看

python时间格式

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

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

Laravel 中文站