返回

如何用 Python 进行傅里叶变换:深度指南

前端

傅里叶变换是信号处理领域的关键技术,用于分析信号的频率组成。在 Python 中进行傅里叶变换是相对简单的,本指南将逐步指导您完成此过程,并提供几个实际示例。

导入必要的库

import numpy as np
import matplotlib.pyplot as plt
from scipy.fftpack import fft, ifft

傅里叶变换

def fft_transform(signal):
  """计算信号的傅里叶变换。

  参数:
    signal: 一维信号。

  返回:
    复数傅里叶变换。
  """

  return fft(signal)

逆傅里叶变换

def ifft_transform(fft_result):
  """计算傅里叶变换的逆变换。

  参数:
    fft_result: 傅里叶变换的结果。

  返回:
    复数信号。
  """

  return ifft(fft_result)

示例:正弦波

# 创建一个正弦波信号
signal = np.sin(2 * np.pi * 100 * np.linspace(0, 1, 1000))

# 计算傅里叶变换
fft_result = fft_transform(signal)

# 绘制幅度谱
plt.plot(np.abs(fft_result))
plt.show()

输出显示了正弦波的频率成分,以峰值为中心。

示例:方形波

# 创建一个方形波信号
signal = np.array([1, 1, -1, -1, 1, 1, -1, -1])

# 计算傅里叶变换
fft_result = fft_transform(signal)

# 绘制幅度谱
plt.plot(np.abs(fft_result))
plt.show()

输出显示了方形波的频率成分,包括基频及其奇次谐波。

示例:噪声信号

# 创建一个噪声信号
signal = np.random.rand(1000)

# 计算傅里叶变换
fft_result = fft_transform(signal)

# 绘制幅度谱
plt.plot(np.abs(fft_result))
plt.show()

输出显示了噪声信号中包含的所有频率成分的平滑分布。

总结

通过本指南,您已经了解了如何使用 Python 进行傅里叶变换。通过提供实际示例,您已经理解了这项技术在信号处理中的强大功能。掌握傅里叶变换将使您能够对信号进行深入分析,并解锁各种应用。