news 2026/9/5 4:55:23

周期信号傅里叶变换详解:从傅里叶级数到冲激串的推导与仿真

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
周期信号傅里叶变换详解:从傅里叶级数到冲激串的推导与仿真

周期信号是否真的存在傅里叶变换,是很多初学信号与系统的读者最困惑的一点。教材里既说“周期信号不满足绝对可积条件,不能用傅里叶变换”,又会在频谱分析时直接画出周期信号的一根根离散谱线,还用傅里叶变换去推导采样定理。这种前后“矛盾”很容易让人思路走偏。本文把这套逻辑完整梳理一遍:先讲周期信号为什么能写成傅里叶级数,再推导周期信号傅里叶变换为什么是一串冲激,最后用 Python 做几个直观仿真,帮助你把连续傅里叶变换、傅里叶级数、DFT/FFT 之间的关系一次串起来。

阅读本文不需要很深的基础,但如果你已经学过傅里叶级数和傅里叶变换的基本定义,理解起来会更快。内容偏重原理讲解与工程对照,比较适合电子信息、通信、自动化相关专业的学生,也适合正在做频谱分析、采样系统设计、信号仿真开发的工程师。

1. 为什么周期信号也能做傅里叶变换

1.1 从傅里叶级数说起

周期信号最自然的数学描述是傅里叶级数。一个周期为 (T) 的信号 (x(t)),如果满足一定条件,可以分解成一系列频率为基波频率整数倍的正弦、余弦分量之和。

设基波角频率为:

[ \omega_0=\frac{2\pi}{T} ]

那么指数形式的傅里叶级数可以写成:

[ x(t)=\sum_{n=-\infty}^{\infty}C_n e^{jn\omega_0 t} ]

其中傅里叶级数系数为:

[ C_n=\frac{1}{T}\int_{T}x(t)e^{-jn\omega_0 t},dt ]

这里的 (C_n) 是复数,它的模反映了第 (n) 次谐波分量的幅度,辐角反映了该次谐波的初始相位。由于 (n) 只取整数,所以周期信号的频率分量天然就是离散的,相邻两根谱线之间的频率间隔固定为:

[ \Delta f=\frac{1}{T} ]

这一条是整个周期信号频谱分析的基础。周期越长,谱线越密;周期越短,谱线越疏。

1.2 傅里叶变换的适用范围

傅里叶变换通常定义为:

[ X(\omega)=\int_{-\infty}^{\infty}x(t)e^{-j\omega t},dt ]

这个式子对信号的时间范围没有限制,积分区间是整个实轴。为了保证积分收敛,一般要求信号满足绝对可积或平方可积条件。对于周期信号而言,它在整个时间轴上无限重复。只要信号不是恒等于零,它在无限区间上的能量就是无穷大,因此直接代入上式,积分往往不收敛。

所以严格地说,在普通函数意义下,周期信号没有经典傅里叶变换。但这并不影响工程中使用周期信号频谱,因为我们可以引入冲激函数,在广义函数意义下定义它的傅里叶变换。

这就解释了教材中看似矛盾的现象:一方面说周期信号不满足傅里叶变换条件,另一方面,正弦信号、周期方波、周期冲激串又都给出了对应的傅里叶变换表达式。这两种说法的本质区别在于:是不是允许使用冲激函数。

1.3 周期信号频谱的特殊形态

周期信号傅里叶级数中的谱线,表示的是“某次谐波的幅度”,单位是信号本身的物理单位,例如伏特;而傅里叶变换的物理含义是“频谱密度”,单位是信号单位除以赫兹或弧度每秒。当周期信号的傅里叶变换中出现冲激时,冲激的强度才有实际意义,直接画“高度”没有意义。

如果只看这个区别,初学者很容易把傅里叶级数系数 (C_n) 和傅里叶变换 (X(\omega)) 混淆。后面我们会证明,这两个概念之间有非常简单漂亮的换算关系:

[ X(\omega)=2\pi\sum_{n=-\infty}^{\infty}C_n\delta(\omega-n\omega_0) ]

也就是说,周期信号的傅里叶变换,是一组位于离散频率点 (n\omega_0) 处的冲激,每个冲激的强度由傅里叶级数系数乘以 (2\pi) 得到。这个结论是贯穿全文的核心。

2. 数学基础:傅里叶级数与几个重要条件

2.1 三角函数形式与指数形式

很多教材先从三角函数形式的傅里叶级数讲起:

[ x(t)=a_0+\sum_{n=1}^{\infty}\left(a_n\cos(n\omega_0 t)+b_n\sin(n\omega_0 t)\right) ]

其中:

[ a_0=\frac{1}{T}\int_{T}x(t),dt ]

[ a_n=\frac{2}{T}\int_{T}x(t)\cos(n\omega_0 t),dt ]

[ b_n=\frac{2}{T}\int_{T}x(t)\sin(n\omega_0 t),dt ]

三角函数形式直观,便于理解奇偶性带来的化简。指数形式则更简洁,也更适合与傅里叶变换、卷积运算衔接。两种形式通过欧拉公式转换:

[ e^{j\theta}=\cos\theta+j\sin\theta ]

在推导周期信号的傅里叶变换时,使用指数形式最方便,因为每个复指数分量的傅里叶变换形式非常清晰。

2.2 狄利克雷条件与吉布斯现象

并不是所有周期信号都能展开成傅里叶级数。傅里叶级数存在的充分条件通常称为狄利克雷条件,主要包括三条:

条件说明
在一个周期内绝对可积信号在一个周期内积分的绝对值有限
在一个周期内只有有限个极值点不能在一个周期内无限次上下震荡
在一个周期内只有有限个间断点间断点处的跳变值也必须有限

工程中遇到的周期信号,绝大多数都能满足这些条件。即使是理想方波,在一个周期内也只有两个跳变点,完全可以展开成傅里叶级数。

吉布斯现象是傅里叶级数截断时的典型现象:用有限次谐波去逼近一个带有跳变的周期信号时,在跳变点附近会出现固定大小的过冲,约为跳变值的 9%。随着谐波次数增加,过冲会越来越窄,但峰值不会消失。这不是算法实现错误,而是傅里叶级数逼近本身的性质,在实际滤波器设计和波形合成中需要留意。

2.3 为什么一定要引入冲激函数

如果只在“常规函数”范围内讨论,周期信号没有傅里叶变换。但实际频谱分析、调制解调、采样理论都要用到周期信号的傅里叶变换。

引入单位冲激函数 (\delta(t)) 后,傅里叶变换可以推广到广义函数。例如常数信号的傅里叶变换为一个冲激:

[ 1 \longleftrightarrow 2\pi\delta(\omega) ]

直流信号只在零频率处有能量,所以它的频谱是位于 (\omega=0) 处的冲激。这个结论是后面推导周期信号傅里叶变换的基础。

3. 核心推导:周期信号的傅里叶变换

3.1 先求复指数信号的傅里叶变换

考虑最简单的周期复指数信号:

[ x(t)=e^{j\omega_0 t} ]

由常数信号傅里叶变换对和傅里叶变换的频移性质,可以得到:

[ e^{j\omega_0 t}\longleftrightarrow 2\pi\delta(\omega-\omega_0) ]

频移性质的本质是:时域乘以一个复指数,相当于频谱在频域搬移。所以单频复指数信号的频谱,是一个位于 (\omega=\omega_0) 处的冲激。

同理:

[ e^{-j\omega_0 t}\longleftrightarrow 2\pi\delta(\omega+\omega_0) ]

这个结果虽然简单,却是整个周期信号傅里叶变换推导的基石。

3.2 对傅里叶级数逐项做变换

设 (x(t)) 是周期为 (T) 的信号,其指数形式傅里叶级数为:

[ x(t)=\sum_{n=-\infty}^{\infty}C_n e^{jn\omega_0 t} ]

对等号两边同时做傅里叶变换。由于傅里叶变换具有线性性质,可以将变换运算交换到求和号内部:

[ X(\omega)=\sum_{n=-\infty}^{\infty}C_n\cdot \mathcal{F}\left{e^{jn\omega_0 t}\right} ]

根据上一小节的结论:

[ \mathcal{F}\left{e^{jn\omega_0 t}\right} =2\pi\delta(\omega-n\omega_0) ]

所以最终得到:

[ X(\omega)=2\pi\sum_{n=-\infty}^{\infty}C_n\delta(\omega-n\omega_0) ]

这就是周期信号傅里叶变换的通用公式。它说明周期信号的频谱不是连续曲线,而是一串冲激,每个冲激出现在谐波频率 (n\omega_0) 上,强度与该次谐波的傅里叶级数系数成正比。

3.3 离散谱与频谱密度之间的关系

有时候读者会问:为什么书上写周期矩形脉冲的频谱是一根根“线谱”,但又说傅里叶变换结果是冲激?这两种说法是否矛盾?

不矛盾。傅里叶级数分析给出的是离散的幅度谱,纵轴是各次谐波的幅度 (C_n)。傅里叶变换给出的则是一个“密度”概念,在谐波频率处密度为无穷大,因此用冲激表示。平时画频谱图时,习惯直接画 (C_n) 的离散谱线,但严格写成傅里叶变换表达式时,必须保留 (2\pi\delta(\omega-n\omega_0))。

如果把周期信号的周期 (T) 不断增大,基波频率 (\omega_0) 会不断减小,谱线会不断变密。当周期趋于无穷大,即信号退化为非周期信号时,离散谱就过渡成了连续谱。这就是从傅里叶级数到傅里叶变换的极限视角。

4. 常见周期信号的傅里叶变换

4.1 余弦信号与正弦信号

对于余弦信号:

[ \cos(\omega_0 t)=\frac{e^{j\omega_0 t}+e^{-j\omega_0 t}}{2} ]

利用前文复指数的傅里叶变换结果,可得:

[ \cos(\omega_0 t) \longleftrightarrow \pi\left[\delta(\omega-\omega_0)+\delta(\omega+\omega_0)\right] ]

也就是说,余弦信号的频谱是左右对称的两根冲激,一根在正频率 (\omega_0) 处,一根在负频率 (-\omega_0) 处。

对于正弦信号:

[ \sin(\omega_0 t) =\frac{e^{j\omega_0 t}-e^{-j\omega_0 t}}{2j} ]

其傅里叶变换为:

[ \sin(\omega_0 t) \longleftrightarrow j\pi\left[\delta(\omega+\omega_0)-\delta(\omega-\omega_0)\right] ]

两个冲激的方向相反,体现了正弦函数的奇对称性。

4.2 周期矩形脉冲串

周期矩形脉冲串是工程中非常典型的周期信号。设脉冲幅度为 (A),脉冲宽度为 (\tau),周期为 (T),且在一个周期内:

[ x(t)= \begin{cases} A, & |t|\le \frac{\tau}{2}\ 0, & \frac{\tau}{2}<|t|<\frac{T}{2} \end{cases} ]

先计算傅里叶级数系数。直流分量为:

[ C_0=\frac{A\tau}{T} ]

第 (n) 次谐波系数为:

[ C_n=\frac{A\tau}{T}\cdot\frac{\sin(n\omega_0\tau/2)}{n\omega_0\tau/2} ]

其中 (\omega_0=2\pi/T)。于是周期矩形脉冲串的傅里叶变换为:

[ X(\omega) =2\pi\sum_{n=-\infty}^{\infty} \frac{A\tau}{T} \frac{\sin(n\omega_0\tau/2)}{n\omega_0\tau/2} \delta(\omega-n\omega_0) ]

这个结果有很多工程结论。谱线包络的第一个零点在频率 (1/\tau) 附近;脉宽越窄,包络的主瓣越宽,高频分量越丰富。所以窄脉冲的带宽往往比宽脉冲更大,这在雷达和通信系统中直接影响距离分辨率和带宽设计。

4.3 周期冲激串

周期冲激串可以写成:

[ p(t)=\sum_{m=-\infty}^{\infty}\delta(t-mT) ]

它在每个整数倍周期处都有一个单位冲激。对它求傅里叶级数时,只需要在一个周期内积分:

[ C_n=\frac{1}{T}\int_{-T/2}^{T/2}\delta(t)e^{-jn\omega_0 t},dt =\frac{1}{T} ]

也就是说,周期冲激串的所有谐波分量的幅度相同,都等于 (1/T)。因此其傅里叶变换为:

[ P(\omega)=\frac{2\pi}{T}\sum_{n=-\infty}^{\infty}\delta(\omega-n\omega_0) ]

这是一个非常有对称美的结论:时域中的周期冲激串,其傅里叶变换仍然是频域中的周期冲激串。冲激串在采样理论中非常关键,现实中的理想采样就可以抽象成信号乘以周期冲激串。

4.4 常用变换对速查

时域信号傅里叶变换
(1)(2\pi\delta(\omega))
(e^{j\omega_0 t})(2\pi\delta(\omega-\omega_0))
(\cos(\omega_0 t))(\pi[\delta(\omega-\omega_0)+\delta(\omega+\omega_0)])
(\sin(\omega_0 t))(j\pi[\delta(\omega+\omega_0)-\delta(\omega-\omega_0)])
周期冲激串 (\sum\delta(t-mT))(\frac{2\pi}{T}\sum\delta(\omega-n\omega_0))
周期信号 (\sum C_n e^{jn\omega_0 t})(2\pi\sum C_n\delta(\omega-n\omega_0))

这张表不需要死记,关键在于理解两个变换规则:复指数函数的傅里叶变换是一个冲激;傅里叶级数与傅里叶变换之间存在 (2\pi C_n) 的缩放关系。

5. 从连续到离散:与 DFT/FFT 的关系

5.1 为什么要单独讨论离散频率

连续周期信号理论上用傅里叶级数就可以分析,但实际工程中,信号进入计算机前必须采样,计算机只能处理有限长度的离散序列。真正在代码里跑的是 FFT,它在数学上对应的是离散傅里叶变换。

很多同学把 FFT 的结果直接理解成“周期信号的傅里叶变换”,实际上这中间还需要经过采样和截断两个步骤。周期信号先被采样成离散序列,再被截断成有限长度,然后做 FFT。每一步都会影响最终看到的频谱形态。

如果采样频率为 (f_s),采样点数为 (N),那么 FFT 的频率分辨率是:

[ \Delta f=\frac{f_s}{N}=\frac{1}{T_{window}} ]

其中:

[ T_{window}=N\cdot T_s ]

是时域截断窗口的总时长。窗口长度越长,频率分辨率越高,谱线之间的间距越小。

5.2 栅栏效应与整数周期截断

假设一个连续周期信号的基频是 (f_0=5\text{Hz}),采样率 (f_s=1000\text{Hz}),窗口长度 (T_{window}=1\text{s}),那么 FFT 频率分辨率为 (1\text{Hz}),5Hz 正好落在某个离散频点上。这种情况下,FFT 结果中可以看到非常清晰的谱线,因为窗口里包含了完整的 5 个信号周期。

如果窗口长度改为 (0.9\text{s}),FFT 分辨率变为 (1/0.9\approx1.11\text{Hz}),5Hz 就不再是离散频点的整数倍。此时信号能量会“泄漏”到所有相邻频点,原本单根的谱线变成一片旁瓣。这就是栅栏效应和频谱泄漏带来的影响。

从数学上说,对无限长序列做矩形窗截断,相当于原信号频谱与一个 (\text{sinc}) 函数的卷积。(\text{sinc}) 函数的旁瓣就是我们看到的泄漏分量。因此,做频谱分析时,让窗口长度尽量覆盖信号周期的整数倍,是降低泄漏最简单有效的手段之一。

5.3 频谱泄漏的工程本质

频谱泄漏不是 FFT 算法本身的问题,而是把无限长周期信号硬生生截断产生的。截断相当于给信号乘上了一个矩形窗,而矩形窗在频域有旁瓣。这些旁瓣和原信号的谱线卷积后,就形成了泄漏。

如果截断长度刚好是整数个周期,矩形窗的频域零点正好落在其他谐波谱线上,泄漏在离散采样点上就不会被看到。一旦截断长度不是整数周期,任何谐波谱线都会受到相邻旁瓣的干扰,频谱就变得不再干净。

同理,当信号本身不是严格周期时,“整数周期截断”无从谈起,就需要使用汉宁窗、海明窗等窗函数来压低旁瓣,代价是主瓣会变宽。这是频谱分析中一个典型的权衡。

6. Python 仿真验证

6.1 环境准备

本文示例使用 Python 3 编写,依赖 NumPy 和 Matplotlib。如果还没有安装,可以执行:

pip install numpy matplotlib

代码中会用到以下模块:

import numpy as np import matplotlib.pyplot as plt

下文所有代码都是完整可运行的。建议在 Jupyter Notebook 或 VS Code 中逐段运行,观察输出。

6.2 用傅里叶级数合成方波

先看最直观的例子:方波可以由无限多次奇次谐波叠加而成。取一个周期为 (T=1\text{s})、幅度 (A=1) 的奇对称方波,在一个周期内:

[ x(t)= \begin{cases} 1, & 0<t<\frac{T}{2}\ -1, & \frac{T}{2}<t<T \end{cases} ]

它的三角形式傅里叶级数为:

[ x(t)=\frac{4}{\pi}\sum_{k=1,3,5,\dots}\frac{1}{k}\sin(2\pi k f_0 t) ]

下面的代码用前 21 次谐波合成方波,并与理想方波对比:

import numpy as np import matplotlib.pyplot as plt f0 = 1.0 # 基频 1Hz T = 1.0 / f0 # 周期 fs = 10000 # 绘图时的高采样率 t = np.linspace(0, 2 * T, int(fs * 2 * T), endpoint=False) # 理想方波:前半周期为 1,后半周期为 -1 x_ideal = np.where(np.mod(t, T) < T / 2, 1.0, -1.0) def fs_square(t, A=1.0, f0=1.0, n_terms=21): """用前 n_terms 次奇次谐波合成方波""" x = np.zeros_like(t) for k in range(1, n_terms + 1, 2): x += (1.0 / k) * np.sin(2 * np.pi * f0 * k * t) return 4 * A / np.pi * x x_21 = fs_square(t, A=1.0, f0=f0, n_terms=21) plt.figure(figsize=(10, 4)) plt.plot(t, x_ideal, 'k--', linewidth=1.5, label='ideal square wave') plt.plot(t, x_21, linewidth=1.0, label='Fourier series, N=21') plt.xlabel('t/s') plt.ylabel('x(t)') plt.legend() plt.grid(True) plt.tight_layout() plt.show()

运行这段代码,可以明显看到:在方波跳变处,合成波形出现了振荡,这就是吉布斯现象。谐波次数越高,振荡范围越靠近跳变点,过冲幅度仍然保持在跳变值的 9% 左右。

6.3 计算周期矩形脉冲的傅里叶级数系数

矩形脉冲串的傅里叶级数系数适合用 NumPy 批量计算。设幅度 (A=1),周期 (T=1\text{s}),脉冲宽度 (\tau=0.2\text{s})。

import numpy as np A = 1.0 T = 1.0 tau = 0.2 w0 = 2 * np.pi / T # 计算 n 从 -10 到 10 的傅里叶级数系数 n_arr = np.arange(-10, 11) C = np.zeros_like(n_arr, dtype=float) for i, n in enumerate(n_arr): if n == 0: C[i] = A * tau / T else: C[i] = (A * tau / T) * np.sin(n * w0 * tau / 2) / (n * w0 * tau / 2) for n, c in zip(n_arr, C): print(f"n={n:3d}, C_n={c:.6f}")

从输出中可以观察到两个结论:第一,直流系数为 (0.2),等于脉冲占空比;第二,系数在 (n=5) 附近接近 0,因为频谱包络的第一个零点出现在:

[ \frac{n\omega_0\tau}{2}=\pi ]

即:

[ n=\frac{T}{\tau}=5 ]

这说明脉冲越窄,包络零点的 (n) 越大,高频分量衰减越慢。

6.4 FFT 谱线与截断泄漏对比

下面用 FFT 观察方波的谱线,并对比“整周期截断”和“非整周期截断”的区别。这里用方波代替矩形脉冲串,重点看谱线位置和泄漏形态。

import numpy as np import matplotlib.pyplot as plt fs = 1000.0 f0 = 5.0 def make_square(T_total): """生成 T_total 秒的 5Hz 方波""" N = int(fs * T_total) t = np.arange(N) / fs # 使用余弦型方波,避免采样点正好落在跳变点附近 x = np.sign(np.cos(2 * np.pi * f0 * t)) return x def single_side_spectrum(x): """计算单边幅度谱""" N = len(x) X = np.fft.fft(x) freq = np.fft.fftfreq(N, 1 / fs) half = N // 2 mag = np.abs(X[:half]) * 2 / N return freq[:half], mag # 第一种情况:窗口长度 1s,正好包含 5 个完整周期 plt.figure(figsize=(12, 8)) x1 = make_square(1.0) freq1, mag1 = single_side_spectrum(x1) plt.subplot(2, 1, 1) plt.stem(freq1, mag1, basefmt=" ") plt.xlim(0, 60) plt.title("Integer period truncation: 1.0s window") plt.xlabel("Frequency (Hz)") plt.ylabel("Magnitude") plt.grid(True) # 第二种情况:窗口长度 0.9s,包含 4.5 个周期,不是完整周期 x2 = make_square(0.9) freq2, mag2 = single_side_spectrum(x2) plt.subplot(2, 1, 2) plt.stem(freq2, mag2, basefmt=" ") plt.xlim(0, 60) plt.title("Non-integer period truncation: 0.9s window") plt.xlabel("Frequency (Hz)") plt.ylabel("Magnitude") plt.grid(True) plt.tight_layout() plt.show()

运行后可以看到上图中理想位置 (5\text{Hz},15\text{Hz},25\text{Hz}\dots) 处出现清晰谱峰,且偶次谐波接近 0。下图由于截断窗口不是整数周期,频谱上出现了大量旁瓣,谱峰也不再集中在少数几个频点上。这就是频谱泄漏的直观体现。

需要注意,这里绘制的是幅度谱的显示值,FFT 数值做过 (2/N) 的单边谱显示处理,并没有对窗函数效应做精细补偿。工程上如果要与理论傅里叶级数系数精确对比,还需要考虑窗函数、采样点数、信号幅度等因素。

7. 常见问题与误区排查

问题现象常见原因解决思路
周期信号直接代入傅里叶变换公式不收敛信号不满足绝对可积条件,常规傅里叶变换不存在引入冲激函数,使用广义傅里叶变换定义
把 (C_n) 和 (X(\omega)) 当成同一个量傅里叶级数是离散幅度谱,傅里叶变换是频谱密度记住关系 (X(\omega)=2\pi\sum C_n\delta(\omega-n\omega_0))
FFT 得到的谱线和理论谱线不完全一致截断窗口没有包含整数倍周期,或归一化方式不同尽量整周期截断,并确认 DFT 归一化方式
矩形脉冲频谱零点位置找不到零点位置与脉宽和周期有关,不是固定值计算 (n=T/\tau),或绘制包络函数观察
有限谐波合成方波有振荡吉布斯现象,不是程序错误增加谐波次数,振荡会变窄但过冲不会完全消失
频谱图出现非谐波频率分量频谱泄漏、采样率不足或信号本身不稳定检查时域截断长度,必要时加窗函数

8. 工程建议与最佳实践

8.1 频谱分析前先预估基频

做周期信号频谱分析时,不要一上来就写 FFT。先明确信号的周期 (T) 或基频 (f_0),然后设计采样参数,尽量让窗口长度等于信号周期的整数倍。这样能显著减少频谱泄漏,得到的谱线也更接近理论分析结果。

如果事先不知道信号周期,可以先做一次粗略 FFT,从频谱中找到峰值位置,再反向调整窗口长度,做第二次精细分析。这种“先粗后细”的流程在实际数据处理中很实用。

8.2 注意理论谱与 FFT 幅度谱的归一化

理论分析中,周期矩形脉冲的傅里叶级数系数 (C_n) 是一个与采样无关的连续数学量。而 FFT 输出的幅度与采样点数 (N)、窗函数、信号幅度都有关系。不要直接把 FFT 纵轴和理论 (C_n) 画在同一张图里比较,必须先明确归一化方式。

对于包含直流分量的实信号,单边谱的直流分量通常除以 (N),其他频率分量乘以 (2/N)。这只是一种常用显示方式,不同教材和软件实现可能有差异,阅读文档时要留意。

8.3 谨慎处理冲激函数

冲激函数是广义函数,不能把它当作普通函数去计算函数值。在论文或报告中,写周期信号的傅里叶变换时,要明确写出“在广义函数意义下”或“引入冲激函数后”这个前提。否则容易在数学严谨性上出问题。

在代码中,不要试图直接生成一个真正的 (\delta(t)) 序列来模拟冲激,DFT 中不会出现冲激函数。要观察周期信号频谱,直接分析 FFT 谱峰即可,不要把“理论冲激串”和“FFT 谱线”混为一谈。

8.4 条件允许时使用解析公式交叉验证

FFT 能给出数值结果,但数值结果容易掩盖理解层面的错误。建议对矩形脉冲、方波、正弦信号这类可以被解析求解的周期信号,先用傅里叶级数公式算出理论系数,再和 FFT 结果对比。如果两者谱峰位置和相对幅度不一致,通常说明采样参数或截断方式有问题。

这种“理论解析 + 数值验证”的方法,比单纯运行代码更可靠,也能帮助你在调试复杂信号时快速定位问题。

9. 总结与后续学习路线

这篇内容可以提炼成三个核心结论:

第一,周期信号在常规函数意义下没有傅里叶变换

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 4:54:05

java项目-第176期ssm个人交友网站系统-java毕业设计

java项目-第176期ssm个人交友网站系统-java毕业设计 《个人交友网站》 该项目分为2个角色&#xff0c;管理员、用户角色。 用户可以浏览前台,包含功能有&#xff1a; 首页、交友信息、线下活动、系统公告、论坛信息 管理员进行后台登录&#xff0c;包含功能有&#xff1a; 个人…

作者头像 李华
网站建设 2026/9/5 4:52:03

策略模式进阶:隐藏在大象背后的设计模式实现详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 4:47:12

ERP销售退货单全流程解析:从业务逻辑到系统实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 4:47:06

数据中心建设与运维全攻略:从核心概念到实践部署

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 4:39:01

ADC省IO读取多档旋钮与Modbus RTU浮点字节序调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 4:38:56

矿用安全帽灯设计制造全解析:从本质安全到皮实耐用

1. 矿用安全帽灯的设计定位&#xff1a;先搞清楚"皮实耐用"到底意味着什么做矿用照明这个行当久了&#xff0c;我越来越觉得"皮实耐用"这四个字&#xff0c;远不是随便选个厚壳子、装个亮灯珠那么简单。它背后是一整套针对极端工况的系统性设计逻辑。矿用安…

作者头像 李华