傅里叶变换和拉普拉斯变换
一、回顾欧拉公式1.1 欧拉公式欧拉公式为它表示单位圆上的一个点。随着 θ 变大这个复数就在平面上旋转。例如如果取实部如果取虚部二、傅里叶变换就是频率探针2.1 案例假设我们的源信号是其含义是x(t) 50Hz 正弦波 120Hz 正弦波其中成分为50Hz 分量幅值 1120Hz 分量幅值为 0.52.2 使用积分计算函数成分2.2.1 频率探针可以把傅里叶分析理解成拿不同频率的波一个个去和原信号对暗号。2.2.1 50Hz 积分探针首先用 50Hz 的波去测试让它与原信号相乘 (相当于重合的面积相乘)然后在一段时间内积分因为 x(t) 原本就有50Hz信号所以平方永远不小于零所以会不断累加结果比较大。2.2.2 120Hz 积分探针同样的我们对 120Hz 也求积分求他们重合的面积2.2.3 计算结果在下列案例中引入了实部和虚部的概念。这是因为我们的案例波形 t0 时刻开始周期所以实部统计不到为 0。为了避免复杂这里不举例 tx 时刻开始周期的 f(t) 函数了。#include stdio.h // 标准输入输出函数 #include math.h // sin、cos、sqrt 数学函数 #define PI 3.14159265358979323846 #define N 100000 // 数值积分分段数量 #define T 1.0 // 信号观察时间单位s // 生成包含 50 Hz 和 120 Hz 的测试信号 double signal(double t) { return sin(2.0 * PI * 50.0 * t) 0.5 * sin(2.0 * PI * 120.0 * t); } // 计算信号在指定频率 f 下的傅里叶积分 void calculate_fourier(double f) { double dt T / N; // 每个积分小区间的时间宽度 double real 0.0; // 傅里叶变换的实部 double imag 0.0; // 傅里叶变换的虚部 // 用矩形面积累加的方式近似计算连续积分 for (int n 0; n N; n) { double t n * dt; // 当前时刻 double x signal(t); // 当前时刻的信号值 double angle 2.0 * PI * f * t; // 检测频率对应的相位角 real x * cos(angle) * dt; // 计算实部积分 imag - x * sin(angle) * dt; // 计算虚部积分 } // 根据实部和虚部计算复数模长 double magnitude sqrt(real * real imag * imag); // 将傅里叶积分模长还原为单边正弦波幅值 double amplitude 2.0 * magnitude / T; // 输出当前检测频率的计算结果 printf(检测频率%6.1f Hz\n, f); printf(实部 Re % .6f\n, real); printf(虚部 Im % .6f\n, imag); printf(模长 %.6f\n, magnitude); printf(幅值 %.6f\n\n, amplitude); } int main(void) { // 分别检测 50 Hz、120 Hz 和 80 Hz calculate_fourier(50.0); calculate_fourier(120.0); calculate_fourier(80.0); return 0; }2.3 引入真正的傅里叶公式其含义是原信号乘反向旋转频率然后积分累加。其中就是用来检测频率 fx(t) 的反向旋转探针。将 公式展开后得到积分后也就是将实部分虚部分离可得2.4 离散化的 C 代码离散化代码如下#include stdio.h #include math.h #define N 1000 // 定义采样点数也就是信号长度为 1000 个点 #define FS 1000.0 // 定义采样频率单位为 Hz这里表示每秒采样 1000 次 #define PI 3.14159265358979323846 // 定义圆周率常量用于角度计算 int main(void) { // 主函数函数体开始 double x[N]; // 定义长度为 N 的数组用来保存测试信号的采样值 // 构造一个测试信号由 50Hz 正弦波和 120Hz 正弦波叠加而成 for (int n 0; n N; n) { double t n / FS; // 根据采样点序号计算当前时间单位为秒 // 给第 n 个采样点赋值生成 50Hz、幅值为 1 的正弦信号叠加 120Hz、幅值为 0.5 的正弦信号 x[n] sin(2.0 * PI * 50.0 * t) 0.5 * sin(2.0 * PI * 120.0 * t); } // 对信号 x 进行离散傅里叶变换 DFT计算频谱 for (int k 0; k N / 2; k) // 遍历频率下标只计算前半部分频谱 { // 外层 for 循环函数体开始 double real 0.0; // 保存 DFT 结果的实部初始值为 0 double imag 0.0; // 保存 DFT 结果的虚部初始值为 0 for (int n 0; n N; n) // 遍历所有采样点用于计算当前频率 k 的 DFT { // 内层 for 循环函数体开始 double angle 2.0 * PI * k * n / N; // 计算 DFT 公式中的旋转角度 real x[n] * cos(angle); // 累加当前频率分量的实部 imag - x[n] * sin(angle); // 累加当前频率分量的虚部负号来自 DFT 定义 } // 根据实部和虚部计算当前频率分量的幅值 double amplitude 2.0 / N * sqrt(real * real imag * imag); // 计算单边频谱幅值 // 根据频率下标 k 计算对应的实际频率 double freq k * FS / N; // 当前频率点对应的频率单位为 Hz // 只打印幅值比较明显的频率成分 if (amplitude 0.1) // 如果当前频率分量的幅值大于 0.1就认为它比较明显 { // if 语句函数体开始 printf(freq %7.2f Hz, amplitude %.3f\n, freq, amplitude); // 输出频率和幅值 } } return 0; }三、 漏水水桶案例3.1 漏水水桶案例引入假设我们有一个漏水的水桶水量是假设规律是x 剩余水量水量的导数是 -2x。意味着任意时刻水量的瞬时减少速率 (每分钟流量)等于当前水量的 2 倍。假设当前桶中有 1L 水在不考虑微分的情况1 分钟后会流出 2L 水。写成自然常数的形式就是x0 初始水量3.2 变量分离的微分形式计算我们假设桶里目前水量为 5L试求 1 分钟后的桶中水量。已知水量变化的微分方程为把 xxx 和 ttt 分到两边按照初始 t0x5 (5L 水) 计算 t 1 (1 分钟)两边做定积分所以3.3 自然指数 e 形式计算四、赫维塞斯算子4.1 得到算子首先定义微分算子 (赫维塞斯算子)那么 px 的意思是所以在水桶案例中可以将原来的导数形式写成提取可得最后得到4.2 使用算子我们知道指数函数满足把我们的赫维塞斯算子代入因此水量函数一定具有下面的形式将我们的初始水量 5L 带入公式得到4.3 总结这个例子中把微分直接转化成 p于是直接变成微分方程就像普通代数一样处理了。五、拉普拉斯变换5.1 拉普拉斯变换公式x(t) 时间有关的函数t 时间 瞬时变化速度 拉普拉斯变换符号s 拉普拉斯域的自变量 拉普拉斯域的函数 时间的初始值可以理解为导数的拉普拉斯变换 s乘原函数的变换结果 − 初始值5.2 使用拉普拉斯变换计算水桶案例5.2.1 两侧拉普拉斯变换水桶案例的原微分方程是两边同时进行拉普拉斯变换得到5.2.2 求 X(s)提取 X(s)两侧相除得到水量在 s 域的表达式5.2.3 拉普拉斯反变换查表现在我们需要把拉普拉斯域反变换目前已有公式我们直接将 X(s) 根据公式转换得到我们的初始水量是 5L 时间是 1 分钟代入得到5.3 拉普拉斯变换和傅里叶变换的关系5.3.1 两个公式傅里叶变换的公式是而拉普拉斯变换的公式多了一个 s5.3.2 s 的定义 频率旋转 指数增长/衰减5.3.3 两者关系总结拉普拉斯变换 傅里叶变换 指数衰减 / 增长因子在傅里叶分析中我们只能分析不衰减的波形拉普拉斯变换则可以分析增长信号和衰减信号这样就是衰减了拉普拉斯变换把探针升级了也就是说不仅可以分析波形的频率成分还可以分析衰减状态。

相关新闻

5分钟自动化部署:Brigadier如何让Mac Boot Camp驱动安装变得简单快速

5分钟自动化部署:Brigadier如何让Mac Boot Camp驱动安装变得简单快速

5分钟自动化部署:Brigadier如何让Mac Boot Camp驱动安装变得简单快速 【免费下载链接】brigadier Fetch and install Boot Camp ESDs with ease. 项目地址: https://gitcode.com/gh_mirrors/bri/brigadier 还在为Mac安装Windows系统后繁琐的驱动安装而烦恼吗…

2026/8/12 0:59:12 阅读更多 →
Unity Sprite批量处理工具:基于Excel配置的轴心点与名称自动化修改

Unity Sprite批量处理工具:基于Excel配置的轴心点与名称自动化修改

1. 项目概述:为什么我们需要一个批量处理工具 在Unity的2D游戏开发流程里,Sprite图集(Sprite Atlas)和它的切片(Slicing)操作是家常便饭。美术同学给过来一张大图,我们拖进Unity,设置…

2026/8/11 21:53:27 阅读更多 →
总结xin ri公司(第三家)

总结xin ri公司(第三家)

总结xinri-CSDN博客

2026/8/12 1:00:48 阅读更多 →

最新新闻

基于Hologres与SQL的多模态数据分析实战:解锁图像、语音与视频的智能洞察

基于Hologres与SQL的多模态数据分析实战:解锁图像、语音与视频的智能洞察

1. 项目概述:当SQL遇见多模态数据作为一名和数据打了十几年交道的从业者,我经历过从单纯处理数字和文本,到如今面对图片、语音、视频这些“非结构化数据”的阵痛期。传统的数据分析,我们写SQL,跑报表,一切都…

2026/8/12 23:53:06 阅读更多 →
Magisk完整指南:Android Root的终极解决方案

Magisk完整指南:Android Root的终极解决方案

Magisk完整指南:Android Root的终极解决方案 【免费下载链接】Magisk The Magic Mask for Android 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk 你是否想要完全掌控你的Android设备?Magisk为你提供了在不破坏系统完整性的前提下获得…

2026/8/12 23:53:06 阅读更多 →
用万方自查过了但维普还是红该怎么处理

用万方自查过了但维普还是红该怎么处理

用万方自查过了但维普还是红该怎么处理 有的同学用万方自查,分数挺低,觉得过了,结果学校用维普一查,还是红,心里直打鼓,不知道该信谁。今天把这个问题讲清楚,顺便说说该怎么处理。 先说原因&a…

2026/8/12 23:53:06 阅读更多 →
告别枯燥背单词:用DashPlayer通过真实视频场景实现英语水平突破

告别枯燥背单词:用DashPlayer通过真实视频场景实现英语水平突破

告别枯燥背单词:用DashPlayer通过真实视频场景实现英语水平突破 【免费下载链接】DashPlayer 为英语学习者量身打造的视频播放器,助你通过观看视频、沉浸真实语境,轻松提升英语水平。#美剧 #播放器 #听力 项目地址: https://gitcode.com/Gi…

2026/8/12 23:53:06 阅读更多 →
用AI辅助写论文怎么把握边界不越线

用AI辅助写论文怎么把握边界不越线

用AI辅助写论文怎么把握边界不越线 现在用 AI 辅助写论文很普遍,但很多人拿不准,到底怎么用不算越线、怎么用会出事。这篇讲讲,用 AI 辅助写论文,怎么把握边界,既帮得上忙、又不踩学术诚信的红线。 先想清楚一个前提…

2026/8/12 23:53:06 阅读更多 →
AI生成AE工程文件:DeepSeek V4 Pro驱动After Effects脚本编程实践

AI生成AE工程文件:DeepSeek V4 Pro驱动After Effects脚本编程实践

如果你是一名视频创作者或设计师,当客户要求“做一个科技感开场动画”时,你的第一反应是什么?是打开After Effects(AE),然后开始在各种预设、插件和教程网站之间反复横跳,还是对着时间线思考如何…

2026/8/12 23:52:06 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →