首页/文章/ 详情

经典漫画傅里叶解析

15小时前浏览20
傅里叶变换(Fourier Transform)是一种重要的数学工具,用于将信号从时域(时间域)转换到频域。它在信号处理、图像处理、物理学、工程学等领域有广泛应用。

基本概念

傅里叶变换的核心思想是将一个信号分解为不同频率的正弦和余弦波的叠加。通过这种分解,可以分析信号中包含的频率成分及其强度。

数学定义

逆傅里叶变换

逆傅里叶变换用于将频域信号转换回时域信号:

离散傅里叶变换(DFT)

在实际应用中,信号通常是离散的。离散傅里叶变换(DFT)用于处理离散信号。对于一个长度为    N 的离

快速傅里叶变换(FFT)

应用

  1. 信号处理:滤波、噪声消除、频谱分析等。

  2. 图像处理:图像压缩(如 JPEG)、边缘检测等。

  3. 通信系统:调制解调、信道估计等。

  4. 物理学:量子力学、光学等领域的波动分析。

总结

傅里叶变换是信号分析和处理的基础工具,能够将信号从时域转换到频域,便于分析和处理。其离散形式(DFT)和快速算法(FFT)在实际应用中尤为重要。


在 Python 中,可以使用 NumPy 和 SciPy 库来实现傅里叶变换。以下是一个简单的示例,展示如何使用 Python 进行傅里叶变换和逆傅里叶变换。

安装依赖库

首先,确保安装了 NumPy 和 SciPy 库。如果没有安装,可以使用以下命令安装:

pip install numpy scipy

示例代码:

import numpy as np

import matplotlib.pyplot as plt

from scipy.fft import fft, ifft

# 生成一个示例信号:两个正弦波的叠加

# 信号参数

sampling_rate = 1000  # 采样率 (Hz)

T = 1.0 / sampling_rate  # 采样间隔

t = np.arange(0.0, 1.0, T)  # 时间向量 (1秒)

# 信号频率成分

freq1 = 50  # 第一个正弦波的频率 (Hz)

freq2 = 120  # 第二个正弦波的频率 (Hz)

# 生成信号

signal = 0.7 * np.sin(2.0 * np.pi * freq1 * t) + 1.0 * np.sin(2.0 * np.pi * freq2 * t)

# 添加一些随机噪声

noise = 0.05 * np.random.randn(len(t))

signal += noise

# 绘制原始信号

plt.figure(figsize=(12, 6))

plt.subplot(2, 1, 1)

plt.plot(t, signal)

plt.title("Original Signal with Noise")

plt.xlabel("Time [s]")

plt.ylabel("Amplitude")

# 计算傅里叶变换

fft_result = fft(signal)

n = len(signal)

frequencies = np.fft.fftfreq(n, T)  # 获取频率轴

# 绘制频域信号

plt.subplot(2, 1, 2)

plt.plot(frequencies[:n // 2], np.abs(fft_result[:n // 2]))  # 只绘制正频率部分

plt.title("Frequency Domain")

plt.xlabel("Frequency [Hz]")

plt.ylabel("Magnitude")

plt.tight_layout()

plt.show()

# 计算逆傅里叶变换

reconstructed_signal = ifft(fft_result)

# 绘制重建的信号

plt.figure(figsize=(12, 6))

plt.plot(t, np.real(reconstructed_signal), label="Reconstructed Signal")

plt.title("Reconstructed Signal from Inverse FFT")

plt.xlabel("Time [s]")

plt.ylabel("Amplitude")

plt.legend()

plt.show()

代码说明

  1. 生成信号

    • 使用两个不同频率的正弦波叠加生成一个信号,并添加一些随机噪声。

    • 采样率为 1000 Hz,信号时长为 1 秒。

  2. 傅里叶变换

    • 使用 scipy.fft.fft 计算信号的傅里叶变换。

    • 使用 np.fft.fftfreq 获取频率轴。

  3. 绘制频域信号

    • 只绘制正频率部分,因为傅里叶变换的结果是对称的。

  4. 逆傅里叶变换

    • 使用 scipy.fft.ifft 计算逆傅里叶变换,重建原始信号。

  5. 可视化

    • 使用 matplotlib 绘制原始信号、频域信号和重建的信号。

运行结果

  • 第一张图显示原始信号(时域)。

  • 第二张图显示信号的频域表示(傅里叶变换结果)。

  • 第三张图显示通过逆傅里叶变换重建的信号。

总结

通过 Python 的 NumPy 和 SciPy 库,可以轻松实现傅里叶变换和逆傅里叶变换,并用于信号分析和处理。



图片
【免责声明】本文来自整理,版权归原作者所有,仅用于学习等,对文中观点判断均保持中立,若您认为文中来源标注与事实不符,若有涉及版权等请告知,将及时修订删除,谢谢大家的关注!



来源:CAE之家
光学python通信UMFourier TransformOrigin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-03-09
最近编辑:15小时前
CAE之家
硕士 | CAE仿真负责人 个人著作《汽车NVH一本通》
获赞 1159粉丝 6451文章 1001课程 20
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈