尧图精选

傅里叶变换与FFT工程实战:从频域思维到频谱分析避坑指南

🕒 发布时间:2026/10/1 15:10:16 📁 来源:尧图网络
1. 信号处理的老问题为什么光看波形远远不够做信号处理这一行的人迟早都会撞上同一个困惑我手里明明有一整段完整的波形数据时间轴上每一个点的数值都清清楚楚为什么还要搞出来一个傅里叶变换把好好的信号拆得七零八落这个困惑我刚入行时也有。当年在实验室里调一块采集板采样率、触发电平、量程都设好了示波器上出来的波形也很漂亮正弦波就是正弦波方波就是方波看起来没什么秘密可言。直到有一天我被一段叠加了工频干扰的微弱传感器信号折腾得焦头烂额才发现时域波形有个致命的短板——它只能告诉你“每一时刻信号有多大”却完全无法告诉你“这个信号到底由哪些频率成分构成”。好比你站在一条繁华的马路上听到的是汽车引擎声、喇叭声、人声、风声混在一起的整体噪音。你的耳朵接收到的就是一个时间上连续变化的声压。如果只盯着这段波形看你只知道它一会儿大一会儿小却很难准确说出里面有没有某个特定频率的持续蜂鸣声。而现实中大量问题恰恰需要你回答这种“信号里包含哪些频率、强度如何”的问题。举几个非常典型的场景。第一个是降噪。你想滤掉信号里的噪声但噪声和有效信号在时域上完全重叠幅值上也差不多肉眼根本分不开。可一旦把信号搬进频域噪声和有效信号往往会落在不同的频率区间这时设计一个滤波器就变得很直观把不要的频率分量压掉保留要的分量再变回时域。没有频域视角这一步基本无从下手。第二个是特征识别。雷达信号处理里目标运动会产生多普勒频移这个频移体现在回波信号的频率变化上。你光看时域波形只能看到一串脉冲看不出目标速度但做一次傅里叶变换频率轴上出现的位置偏移就能直接告诉你有目标在动、速度大概多大。同样的思路也用在语音识别、振动故障诊断、心电分析里本质上都是把“频率成分”当作特征来用。第三个是系统分析。一个线性时不变系统的全部行为可以由它的频率响应来描述。这个系统对什么频率通过、对什么频率衰减直接决定了输出信号长什么样。你在时域里做卷积算得再熟练也很难一眼看出系统对不同频率的态度而频域里就是一条曲线的事。所以一句话总结时域描述的是“过程”频域描述的是“构成”。信号处理里大量核心操作比如滤波、压缩、特征提取、系统辨识本质都在和“频率构成”打交道。傅里叶变换就是连接这两个世界的桥。1.1 时域视角的局限性叠加在一起的分不开时域波形最大的问题就是当多个频率成分叠加在一起时它在视觉上会变得极其混乱并且很难被拆开。你想想一个50Hz的工频正弦波叠加一个3Hz的心跳波形再叠加一点白噪声时域上画出来基本就是一坨毫无规律、上下乱跳的曲线。如果不借助频谱分析你几乎不可能凭肉眼判断里面有哪几个主要频率。这就好比把一杯红酒、一杯白水、一杯糖浆倒进同一个杯子你看到的只是一种混合后的颜色只有用某种“分离手段”才能知道里面到底有哪些成分各自占了多少比例。傅里叶变换就是这种分离手段。我当时调那个微弱信号时感觉尤其明显。传感器出来的有效信号大概只有几毫伏但现场环境里有很强的50Hz工频干扰幅值比有效信号还大。示波器上看到的波形就是一个大肚子上趴着小毛刺的样子毛刺确实能看到但你想量化它、分析它完全没有抓手。后来我把数据拉去做FFT频谱图一出来50Hz那个尖峰高耸入云有效信号的频段在另一个位置清清楚楚。那一刻我就明白了时域不是没有信息而是信息以一种难解耦的方式纠缠在一起频域才是把它们解耦的场所。1.2 频率信息是很多决策的起点一旦你接受了“信号由不同频率成分构成”这个视角你会发现很多决策都变得异常清晰。举个例子设计低通滤波器。如果你在时域里做就要设计一个滤波器、做卷积你得考虑滤波器的阶数、截止频率、纹波还要选窗函数一套流程下来很繁琐。但如果你在频域里思考事情就简化成信号的高频部分我不要了把高频系数置零或者乘一个平滑衰减的权重剩下的保留。虽然工程实现上还是要回到时域滤波但你的设计思路、参数选择、效果验证全都是在频域里完成的直观且高效。再举一个我后来做振动分析的项目。设备上有轴承采集到振动信号后时域波形看起来都差不多就是一堆振荡。但每次做FFT频谱图里的特征峰位置会和轴承故障类型对应起来外圈故障的特征频率是一个值内圈故障是另一个值滚珠故障又不同。这时候傅里叶变换就不是“锦上添花”的理论工具而是整个诊断流程的核心引擎。这就是为什么信号处理课程里傅里叶变换总是被放在最前面讲。它不只是一堆公式和性质而是整个频域分析思维的基石。没有它后面所有的滤波器设计、谱分析、调制解调、特征提取全都无从谈起。2. 傅里叶变换的直观直觉把信号拆成“正弦波积木”聊完了“为什么要用频域视角”接下来要回答一个更根本的问题傅里叶变换到底做了什么它是怎么把一段信号拆开的很多人学傅里叶变换一上来就背公式F(ω) ∫ f(t) e^(-jωt) dt这个积分式子看着吓人但如果用直觉去理解它其实干了一件很朴素的事拿着不同频率的正弦波一个个去和原信号做“匹配”。匹配度高的说明这个频率的成分多匹配度低的说明这个频率的成分少。最终得到一条关于频率的曲线就是频谱。用搭积木来类比。你有一组积木每种积木对应一个频率的正弦波都有不同的幅值和相位。傅里叶变换要做的就是对着原信号看半天然后告诉你要凑出这段信号需要用哪几块积木、每块用多大劲、朝哪个方向放。这个过程在数学上叫分解在工程上叫谱分析。2.1 正弦波拆解为什么是万能的这里面藏着一个核心定理任意满足一定条件的周期信号都可以分解成一系列正弦波和余弦波的叠加。准确说是不同频率、不同幅度、不同相位的正弦波叠加。非周期信号也类似只是频率变成了连续取值。第一次听到这个说法的人都会觉得不可思议一个方波明明棱角分明怎么就能用一堆圆润平滑的正弦波拼出来我当年也这么怀疑过。但你把方波做傅里叶展开会发现它等于一个基频正弦波加上三分之一幅度的三次谐波、五分之一幅度的五次谐波……谐波次数越高贡献越小叠加后边缘越来越陡顶部越来越平。虽然理论上要无穷多项才能完全精确还原但实际取前面几项就已经非常接近了。这个“用正弦波作为基本积木”的选择不是拍脑袋决定的而是因为正弦波有两个绝佳性质。第一正弦波在线性时不变系统里是“特征函数”。一个正弦波通过任何一个线性系统输出仍然是同频率的正弦波只是幅度和相位可能改变。换句话说系统不会改变输入信号的频率只会改变它的幅值和相位。这就让“分解成正弦波”变得特别有价值你只要知道系统对每个频率正弦波的响应就能知道它对任意信号的响应。第二不同频率的正弦波之间是正交的。不同频率的正弦波在一个完整周期内相乘再积分结果是零。这个性质保证了分解是“干净”的不会互相干扰。你可以独立地处理每一个频率分量处理完再叠加回去不会产生串扰。这两条性质加在一起注定了在信号处理里正弦波就是最好的“语言”。三角函数这套语言搭配线性系统理论整个大厦就搭起来了。2.2 相位为什么重要频谱不只是幅度很多人做FFT之后只看幅度谱觉得那张图就是全部相位谱完全忽略。这对很多应用来说是致命的。相位决定了这个频率分量在时间轴上的“位置”。同样的幅度谱如果相位不同重新合成出来的信号形状可能完全不同。你可以做一个简单的实验取一组扬声器播放的乐音把它的傅里叶变换幅度保留换成另一段音乐的相位再反变换回去。出来的声音既不是原来的音乐也不是另一段音乐而是一段“四不像”。这说明什么说明相位里藏着大量关于信号时序结构的敏感信息。我举一个更直观的例子。在两个声道里播放一个音如果左右声道的相位差是0度听起来声源在正中间如果相位差逐渐变大声源位置就会偏移。人耳对相位差极其敏感。又比如图像处理里的傅里叶变换只保留幅度信息、丢掉相位得到的图像会完全失去结构变得一团模糊只保留相位、丢掉幅度反而还能看出物体的大致轮廓和边缘位置。可见相位信息的分量有多重。所以在看频谱、做分析的时候一定要养成同时看幅度谱和相位谱的习惯。哪怕你最终只关心幅度也要清楚相位没有丢只是暂时没看。后续任何对频域数据做修改再还原回时域的操作都要同时考虑对幅度和相位的影响。2.3 从傅里叶级数到傅里叶变换周期与非周期的统一不少初学者会在“级数”和“变换”两个概念之间犯迷糊。简单说傅里叶级数针对的是周期信号它把信号拆成离散频率的正弦波之和。既然是周期信号基频就确定了所有其他频率都是基频的整数倍所以频率是离散的画出来是一根根谱线。傅里叶变换则把视角推广到非周期信号。你可以把非周期信号想象成周期无限长的周期信号基频趋近于零频率间隔也趋近于零于是离散的谱线变成了一条连续的频谱曲线。这两个概念在工程上都要用。周期信号分析多用级数思想非周期信号普遍用变换。而到了计算机上信号被采样变成离散序列处理有限长度数据于是又有了离散傅里叶变换DFT以及它的快速算法FFT。这是后面要讲的工程核心这里先搭好概念框架。关于那个热词里提到的“三角脉冲的傅里叶变换记忆方法”我倒是想补充一个经验三角脉冲其实就是两个矩形脉冲的卷积而时域卷积对应频域相乘所以三角脉冲的频谱等于矩形脉冲频谱的平方。矩形脉冲的频谱是sinc函数那三角脉冲的频谱自然就是sinc函数的平方。这个记忆方法比死记公式强得多因为它是建立在“时域卷积对应频域相乘”这个核心性质上的理解了这一条很多类似变换都能推理出来不用每个都背。3. 频域视角带来的“降维打击”四大核心能力理解了傅里叶变换的基本原理接着就要看它到底给信号处理带来了哪些实操层面的提升。我建议你从四个能力维度来理解这样以后遇到具体问题就能自动联想到能用哪一招。3.1 卷积变成乘法滤波器设计瞬间简单时域滤波的本质是卷积。卷积运算长什么样你有一个输入信号 x(t)一个滤波器冲激响应 h(t)输出 y(t) x(t) * h(t)。这个星号就是卷积运算过程是“翻转、平移、相乘、求和”不仅概念上抽象计算量也很大尤其当滤波器阶数很高、信号很长时直接算卷积会非常慢。但傅里叶变换有一个堪称“神级”的性质时域卷积对应频域乘法。也就是说y(t) x(t) * h(t)做傅里叶变换后就是 Y(f) X(f) · H(f)。这意味着什么意味着你可以在频域里用一个乘法就完成时域里无比繁琐的卷积操作。低通滤波想压掉高频那就让 H(f) 在高频段趋近于0乘一下频域里过滤掉再反变换回来。高通、带通、带阻也都是同理。这个思路是现代滤波器设计的基石。别小看这个变换。在工程实现上当信号和滤波器都很长的时候直接在时域做卷积是O(N²)的计算量而用FFT先变到频域、相乘、再反变换回来计算量只有O(N log N)。数据越长差距越悬殊。这也是为什么很多高速实时系统里卷积滤波用的是FFT方法而不是教科书上那种直接滑动求和。3.2 数据压缩扔掉“不重要”的频率数字世界的压缩算法底层大量依赖频域变换。音频里的MP3、图片里的JPEG核心思想都是一样的既然信号可以分解成频率成分那有些频率成分对人类的听觉、视觉并不那么重要把这些成分舍弃或者粗量化就能大幅降低数据量而主观感受几乎不受影响。JPEG就是把图像分成8x8的小块每一块做离散余弦变换DCT傅里叶变换的变种然后在频域里保留中低频系数、丢弃高频细节。人眼对高频细节本来就不敏感丢掉后图像略微变糊但文件体积能缩小十几倍甚至几十倍。MP3用的心理声学模型就更精细它会根据人耳对不同频率的敏感度动态决定每个频段的量化精度。这就引出一个很有意思的观点频域不仅帮你看清信号还能帮你有选择地遗忘信号。它给出了一种“优先级排序”的能力这在时域里是很难做到的。时域里一段噪声和一段语音混在一起你没法说哪个采样点重要、哪个采样点不重要但在频域里你可以清楚地区分哪些频段是主体、哪些频段是细节、哪些频段是污染。3.3 系统响应分析Bode图与滤波器设计线性时不变系统的行为完全由频率响应H(f)描述。通过傅里叶变换你可以把一个系统的冲激响应h(t)变到频域得到它的幅度响应和相位响应也就是控制工程里大名鼎鼎的Bode图。拿到Bode图之后系统的特性一目了然哪些频率能通过、哪些会被衰减、相位滞后多少度、有没有谐振峰。设计滤波器时无论你用的是巴特沃斯、切比雪夫还是椭圆滤波器最终检验标准都是它的频率响应曲线。记得热词里有“在数字信号处理中hn指什么”这里顺便说一句h(n)就是数字滤波器的单位脉冲响应冲激响应。一个长度为N的FIR滤波器它的h(n)就是滤波器的那一串系数你和信号做卷积的也是它。而它的傅里叶变换H(e^jω)就是这个滤波器的频率响应。理解了这一层关联数字信号处理的很多概念就能串起来了。在实际项目里我拿到一个陌生系统第一件事永远是扫频或者用白噪声激励采集输出然后做频谱分析把系统的频率响应画出来。这套流程比任何理论推导都直接因为你看到的是这个系统在这个环境下的真实行为H(f)曲线长什么样系统的工作状态就是什么样。3.4 特征提取雷达、声学、振动与医学信号频域分析作为一种特征提取手段应用极其广泛。我前面提到的雷达信号处理里目标径向速度引起的多普勒频移就是通过与发射信号混频、再对差频信号做FFT来测量的。多普勒频率的大小直接对应目标速度这是雷达测速最经典的原理。你在MATLAB里做雷达信号处理仿真很大一部分工作就是产生回波信号、加噪声、做脉冲压缩、然后沿着慢时间维做FFT提取多普勒谱。声学上语音识别早期最流行的特征MFCC就是把语音分帧、加窗、做FFT、再对照Mel滤波器组把频域信息压缩成一串系数作为特征。这些系数很大程度上反映了语音的发音器官形状对说话人识别和语音内容识别都有很强的区分度。机械振动诊断也离不开FFT。不同转速下齿轮和轴承的故障特征频率不一样把振动信号频谱上的特征峰值与理论计算值做对比就能判断故障类型和严重程度。再往细了说分布式阵列信号处理、波达方向估计这类问题本质也是在多个传感器通道上做联合的频域分析。说白了傅里叶变换在这些场景里承担的角色就是把“杂乱无章的原始波形”变成“有明确物理含义的特征量”。这是它作为工具最大的价值。4. 从理论到工程FFT、采样率、频谱泄漏与那些坑理论讲完必须落到实操。计算机处理不了连续信号只能处理离散采样点。于是从傅里叶变换到离散傅里叶变换DFT再到快速傅里叶变换FFT是每个做信号处理的人绕不开的路。这段路里坑特别多我把自己踩过的、帮别人排查过的常见问题集中讲一遍。4.1 为什么有了离散傅里叶变换DFT还要FFTDFT的公式是X(k) Σ x(n) e^(-j2πkn/N)n从0到N-1按定义直接计算N个输出点每个都要做N次乘加总计算量是N²。如果N是1024就是大约一百万次复数运算还能接受但如果是65536点那就是四十多亿次单靠暴力计算会卡到怀疑人生。FFT的核心思路是充分利用旋转因子的周期性和对称性把一个大点数的DFT拆成多个小点数的DFT分而治之。最经典的基2-FFT要求点数N是2的整数次幂一次把序列分成偶数点和奇数点两组分别做DFT再合并。每一层分组计算量从N²降到(N/2)log₂N。N65536时FFT大概只需要五十万次运算比暴力计算快了近千倍。所以在工程上我几乎不会直接写DFT循环永远是调用现成的FFT库。Python里有numpy.fftMATLAB里有fft函数C/C可以选FFTW、KissFFT这些库实测下来成熟库的优化程度远比自己写的循环强。4.2 频率分辨率、采样率与FFT点数之间的关系这是最多人搞混的地方。三个概念和时间长度、点数的关系我直接列出来采样率fs每秒采多少个点决定了能分析的最高频率fs/2是奈奎斯特频率。FFT点数N一次参与FFT运算的样本个数。频率分辨率Δf fs / N。也就是说频率分辨率只由“采样率fs”和“FFT点数N”决定本质上就是信号的时间长度。信号取1秒钟频率分辨率就是1Hz取0.1秒频率分辨率就是10Hz。想分辨两个靠得很近的频率峰值只有一个办法增加信号时长。补零不能提高真实分辨率它只是把已有的频谱做了插值平滑看起来更细腻但两个本来就分不开的峰补再多零也分不开。我记得有个同学问过我为什么我采样率50kHzFFT点数4096频谱上两个频率相差0.5Hz的峰值怎么都分不开答案很简单Δf 50000/4096 ≈ 12.2Hz你连1Hz都分不清楚0.5Hz当然不可能分开。要分开就得让Δf小于0.5Hz也就是信号长度要超过2秒。时间长度是硬指标算法救不了。4.3 混叠问题采样定理不是建议是底线采样定理说采样率必须大于信号最高频率的两倍否则高频成分会“折叠”回低频区域产生混叠而这个混叠一旦发生就无法从采样数据中恢复原始信号了。一个我常用来解释混叠的例子是电影里车轮倒转的效应。车轮在高速转但摄像机的采样率不够高你看到轮子看起来在倒转。这就是时域采样率不足导致的频域混叠在视觉上的体现。工程上预防混叠一是在ADC之前加模拟低通滤波器抗混叠滤波器把超过fs/2的频率成分滤掉二是在软件层面如果发现信号可能有高频成分就提高采样率或者降采样前先做数字滤波。有些人以为采样率略高于信号最高频率的两倍就万事大吉实际中为了留余量通常会让采样率远高于理论值比如音频CD就是44.1kHz而人耳上限是20kHz留了超过两倍的裕量。这个裕量不是为了好听是为了留空间给抗混叠滤波器过渡带让设计更容易实现。4.4 频谱泄漏与窗函数为什么FFT之前要“加窗”你直接对一段有限长的信号做FFT相当于对无限长信号做了一次矩形截断。矩形截断在频域上等效于和sinc函数做卷积结果就是原本应该是一条细线的频率成分能量扩散到旁边很多频率格子上这叫频谱泄漏。频谱泄漏会让谱峰变宽、变矮还会在峰值旁边出现伪峰。信号频率正好落在FFT频率格点上时泄漏最小一旦不在整格上泄漏就很明显。解决思路是加窗函数比如汉宁窗、海明窗、布莱克曼窗。加窗的本质是让数据两端平滑衰减到零从而抑制截断造成的旁瓣泄漏。很多人不理解为什么要加窗觉得“加窗会改变数据”。没错加窗确实改变了数据但换来的是谱估计更稳定。工程上做频谱分析我几乎不会用矩形窗默认先试汉宁窗对比一下加窗和没加窗的频谱图你会立刻看到峰值周围的“裙边”被压下去的效果。这里有条经验分享给你如果你的目的是精确测量正弦信号的幅值要选择幅度恢复型窗函数并且信号频率尽量对准FFT格点如果你的目的是从宽带信号里检测出有没有某个频率成分汉宁窗就是性价比最高的选择。4.5 频率轴换算bin下标和真实频率怎么对应FFT输出是N个复数索引k对应的数字频率是2πk/N映射回模拟频率就是f k · fs / N其中k 0对应直流k N/2对应奈奎斯特频率fs/2。这也意味着FFT输出只有前N/2个点是有用的后半部分是镜像对称的冗余。以fs1000Hz、N1024为例频率分辨率Δf ≈ 0.977Hz。第10个bin对应的频率大约9.77Hz。如果你在频谱图上看到一个突出的峰在第64个bin附近那真实频率大约是64 × 1000/1024 ≈ 62.5Hz。每一根谱线中心和实际频率之间可能有最多半个bin的偏差这个偏差就是频率分辨率的极限。MATLAB里还有一个细节容易踩坑fft函数输出的是从0到fs整个频率轴排列不是从-fs/2到fs/2对称排列。想画以0为中心的频谱得用fftshift函数重新排列。Python的numpy.fft.fftfreq函数则会直接给你带符号的频率轴省去手动计算的麻烦。两种工具行为不同经常有人画出来的频谱图是“镜像”的原因就在这里。5. 常见误区与上手实操建议到了这个阶段傅里叶变换的原理和实操坑都讲得差不多了。最后我再整理几个我见过的高频误区再给出一条上手路径帮你把前面那些概念真正落进手里。5.1 别再死记公式把“频谱形状”和“物理现象”对应起来很多初学者最大的误区是花大量时间背傅里叶变换的性质表却不清楚这些性质在具体信号里长什么样。我的建议是反着来先大量看图建立直觉。把一段正弦波做FFT看频谱长什么样把方波做FFT看谐波怎么排把脉冲做FFT看为什么是平坦的把白噪声做FFT看为什么到处都差不多。每种信号和它的频谱之间建立起对应关系之后再回去看公式、看性质你会发现那些性质不是抽象符号而是你亲眼见过的事实在数学上的表达。当年我学三角脉冲的傅里叶变换时怎么都记不住那个sinc²的形状。后来我知道三角脉冲是两个矩形脉冲的卷积时域卷积对应频域相乘从那以后我再也没有记过这个公式需要时直接推理。所有性质应该这样用它们不是考试背诵清单而是推导新问题的工具。5.2 亲手做一遍FFT从时域到频域的完整流程不管你用什么语言我强烈建议你亲手跑一遍最简单的FFT流程。以Python为例核心代码很短import numpy as np import matplotlib.pyplot as plt fs 1000 # 采样率 1000 Hz t np.arange(0, 1, 1/fs) # 1秒时间轴 x 2 * np.sin(2*np.pi*50*t) 0.5 * np.sin(2*np.pi*200*t) X np.fft.fft(x) f np.fft.fftfreq(len(x), 1/fs) # 取正频率部分 half len(X)//2 plt.plot(f[:half], 2*np.abs(X[:half])/len(x)) plt.xlabel(频率 (Hz)) plt.ylabel(幅度) plt.show()这段代码做了什么生成了一个50Hz幅度2、200Hz幅度0.5的混合正弦波做FFT然后在频谱上画出正频率部分的幅度。你会在50Hz和200Hz各看到一根谱线高度分别接近2和0.5。注意我在这里做了2/N的归一化正是因为FFT输出的绝对值大小和点数N有关如果不归一化谱峰高度会是N倍的实际幅度。这就是很多人画频谱时“幅度对不上”的原因。跑完这一个例子之后你再把加窗、补零、变采样率这些操作逐个加上去观察它们对频谱的影响。一套下来比你闷头看两本书都有用。5.3 MATLAB和Python工具选型建议做雷达信号处理仿真MATLAB还是很能打的。内置的信号处理工具箱提供了滤波器设计、谱分析、窗函数等全套工具画图也方便适合快速验证算法。学校教学和很多工程团队都用它。Python的优势是免费、生态广。numpy负责FFT和矩阵运算scipy.signal负责滤波器设计和信号处理matplotlib负责画图。如果你是刚入门我建议直接用Python因为以后做机器学习、深度学习时前后衔接更顺手。两者的核心概念完全一样学会了任何一个迁移到另一个就是查函数名的事。我这里给一个通用的实操建议分析任何一段信号之前先画三张图——原始波形图、加窗后的频谱图、对数纵坐标的频谱图。波形图让你对信号整体有个感觉加窗频谱图让你看到主要频率成分对数纵坐标则能把微弱的大动态范围信号显示出来有时候小信号才是问题的关键。这三张图看完你基本就知道下一步该滤波、该压缩还是该提取特征了。6. 写在最后从会用FFT到建立频域思维我个人最深的体会是傅里叶变换的价值不在于那个积分公式也不在于FFT到底有多快而在于它逼着你换一种方式去“看见”信号。我在实际项目中得到的最大经验就是遇到任何信号处理问题先问自己一句这个问题在频域里看会不会更清楚比如之前遇到一个电源噪声问题不断电时波形毛刺很多时域里排查半天找不到源。后来把采集到的波形做FFT发现干扰集中在某个开关频率及其多次谐波上立即锁定了源头。又比如音频反馈啸叫问题直接在频谱上看到啸叫频点用陷波器精准压掉就好了。这些问题的共性在于答案本来就在信号里但只有频域视角才能让它显形。如果你刚开始学不要被那一堆积分式子吓住。先把“时域和频域是同一信号的两种看法”这个核心建立了然后动手做一两个FFT实验再带着问题去查性质表你会发现傅里叶变换学起来比想象中顺得多。最后分享一个小技巧每次分析完一段频谱养成记录“主峰频率、峰高、对应物理意义”的习惯用不了几组数据你的频域直觉就被训练出来了。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →