Skip to content

信号的合成与分解

傅里叶级数的三角形式、指数形式、相位、频谱

傅里叶的三角函数:

正交基:\(\cos1\omega x,\sin1\omega x,\cos2\omega x,\sin2\omega x,\cos3\omega x,\sin3\omega x,...,\)

傅里叶的指数函数形式:

正交基:\(\{e^{-jn\omega t},...,e^{-j2\omega t},e^{-j\omega t},e^{j0\omega t},e^{j\omega t},e^{j2\omega t},...e^{jn\omega t}\}\)

数字信号处理_信号的合成与分解

复数形式:\(a+bi\)

复指数形式:\(\sqrt{a^2+b^2}(cos\theta+i sin\theta)\)

其中,

\(cos\theta = \frac{a}{\sqrt{a^2+b^2}}\)

$sin\theta = \frac{ b }{ \sqrt{a^2 + b^2} } $

image-20250325233155639

  • 尤其注意这里内积的 负号

image-20250326134244641

向量的合成与分解

image-20250326134459682

红色是想要表示的向量。

image-20250326095511196

信号的合成与分解

image-20250326134823216

傅里叶变换的思想,将复杂的周期信号变成一系列简单三角函数的线性表示。

这个思想怎么这么像 泰勒展开,将任意一个函数展开成一系列幂函数求和。泰勒展开从导数角度逐点模仿。那,傅里叶变换呢?怎么用更通俗的语言描述?

函数内积:加法变积分运算

image-20250326095608113

三角函数正交基

三角函数集的正交性

image-20250326095722638

结论:

  • 任意两个不同函数内积=0
  • 相同函数内积 \(\neq 0\)

image-20250326095752336

周期信号 傅里叶级数

image-20250326095853200

  • 正交基是:

\(\{1,\cos x,\sin x,\cos 2x,\sin 2x,...,\cos nx,\sin nx\}\)

最大周期是 \(2\pi\), 最大周期内 、正交基中的其余函数、重复整数次,如\(1,2,3,4,....n\)。就是正交基函数前面的系数。

理解(为了怕自己以后想不起来,重复无数次,不厌其烦🥲):

  • \(\cos x,\sin x\) 最大周期 \(2\pi\)
  • \(\cos 2x,\sin 2x\) 周期\(=\pi\) ,最大周期 \(2\pi\) 内重复 2 次
  • \(\cos 3x,\sin 3x\) 周期\(=\frac{2\pi}{3}\) ,最大周期 \(2\pi\) 内重复 3 次
  • ...
  • \(\cos nx,\sin nx\) 周期\(=\frac{2\pi}{n}\) ,最大周期 \(2\pi\) 内重复 \(n\)
  • 傅里叶级数用的是:

\(\cos1\omega x,\sin1\omega x,\cos2\omega x,\sin2\omega x,\cos3\omega x,\sin3\omega x,...,\)

最大周期,就是要展开的周期信号的周期 \(T\) ,前面已经记 \(\omega = \frac{2\pi}{T}\)

  • \(\cos1\omega x,\sin1\omega x\) 最大周期 \(T\)

  • \(\cos2\omega x,\sin2\omega x\) 周期\(=\frac{T}{2}\) ,最大周期 \(T\) 内重复 \(2\)

  • \(\cos3\omega x,\sin3\omega x\) 周期\(=\frac{T}{3}\) ,最大周期 \(T\) 内重复 \(3\)

目前,就是感觉,傅里叶级数就是说把给定一组时间序列数据

这组时间序列数据是1个周期的可能性?是这么描述吗?

这组时间序列数据是2个周期的可能性,这组时间序列数据是3个周期的可能性,这组时间序列数据是4个周期的可能性,.......

或者说:

这组时间序列数据是2个周期的话,相关性,每个时间点与对应周期的三角函数的响应值的相关性?

这么描述:\(f(t)\)是想要分解的时间序列数据,要分解到这组时间序列数据构成 1 个周期,2 个周期,3个周期的标准正余弦函数上,也就是说三角函数正交基说的是 这组时间序列数据分解到哪个频率的 3 个函数上,遍历所有的可能性(\(1 \sim \infty\) DFT是 \(n=1 \sim N-1\))。确定一个三角函数不仅需要频率,还有振幅和初始相位,三角函数的标准形式 \(A\sin(\omega x+\phi)\)

有了 \(\omega\)以后,还要找振幅 \(A\) 和初始相位 \(\phi\) 具体的就是正交基求 \(a_n\)\(b_n\)

串起来了,都串起来了,系数的含义。

后面还应该注意,为什么复指数形式更好,因为频率、相位、振幅都直观地显示了。

  • 将原始周期信号表示成:直流分量、正弦信号、余弦信号线性组合的方式

image-20250326143539564

  • 正余弦信号分别记为,1 次谐波、2 次谐波、3 次 谐波,意思就是频率分别是,\(1\omega\)\(2\omega\)\(3\omega\) ,这里的频率说的是角频率 \(\rightarrow\) 这个复杂的周期信号与简单的1次谐波、2次谐波的相关性🔴
  • 这里的角频率可以一直取到无穷大

傅里叶计数的几何意义

image-20250326143852006

  • \(系数\)表示信号在对应频率上的\(坐标\)

实例:方波信号的分解

image-20250326144033618

各种奇奇怪怪的周期信号分解成正弦信号和余弦信号的线性组合

例子中 \(T_0 = 4\) 的周期信号,其中 \(T_1 = 1\)

可以分解为直流分量,1 次谐波的余弦分量,3 次谐波的余弦分量还有 5 次谐波,7 次谐波

image-20250326144425666

  • 观察这个方波信号的分解:没有正弦分量 表示 这个方波信号在正弦奇函数上的投影=0,
  • 同时,这个函数,并不是所有的余弦谐波分量都有,只有奇数项

可视化分解出的直流分量和谐波分量

image-20250326144651484

同时,随着谐波分量的增加,合成信号越来越逼近原信号。

  • 下图中,阶跃处有尖点表示吉布斯现象,与狄利克雷条件有关,暂时不管

image-20250326144730621

  • 同时应当注意的是,周期信号使用傅里叶级数进行信号的合成与分解
  • 对于非周期信号使用傅里叶变换进行 信号的合成与分解
  • 这里我有一个问题

谐波分量?

最大周期,就是要展开的周期信号的周期 \(T\) ,前面已经记 \(\omega = \frac{2\pi}{T}\)

  • \(\cos1\omega x,\sin1\omega x\) 最大周期 \(T\)

  • \(\cos2\omega x,\sin2\omega x\) 周期\(=\frac{T}{2}\) ,最大周期 \(T\) 内重复 \(2\)

  • \(\cos3\omega x,\sin3\omega x\) 周期\(=\frac{T}{3}\) ,最大周期 \(T\) 内重复 \(3\)

感觉 这里的理解,还是得再加深一下。

幅度谱和相位谱

image-20250326145207506

  • 首先,给出时域上的波形,看不到具体的内容,只能大致上看出是一个周期信号,周期大致看出=4,通过周期信号的自相关,可以准确的判读出周期信号的周期
  • 周期信号周期=4,此时根据计算 \(\omega_0 = \frac{2\pi}{T}=\frac{\pi}{2}\) 表示==基波==频率 = \(\frac{\pi}{2}\)
  • 通过傅里叶级数得到具体的余弦谱和正弦谱,但实际上并没有余弦谱和正弦谱的说法
  • 通过上图右图,可以看出信号含有的正弦信息和余弦信息:
  • 还有直流分量 \(0.5\)、1 次谐波的余弦分量,1 次谐波的正弦分量,还有一个 5 次谐波的余弦分量,同时它的振幅是0.127,同时在这里的正弦谱和余弦谱的表示上也十分清晰的
  • 但是,在实际应用中,并没有余弦谱和正弦谱的概念,问题就在为什么傅里叶级数给出的也是正余弦函数的分解,相位谱怎么来?双边谱,幅度谱?

回答,首先,图中显示的直流分量 0.5放在了余弦谱上,那为什么不放在正弦谱上上?或者将直流分量平均分配在正弦函数 和 余弦函数上?也就是说这里直流分量就出现了歧义,不符合严谨的特性。所以,频谱分析为了严谨,不用余弦谱和正弦谱,用的是幅度谱和相位谱,有了 sinx 和 cosx 用辅助角公式即可得到幅度和相位

幅度谱和相位谱

image-20250326151132280

  • 通过辅助角变换,周期信号的分解可以统一变成余弦函数的表现形式

image-20250326151246469

  • 看这个实例,将相同频率的谐波利用辅助角公式统一用余弦函数表示,得到幅度谱和相位谱
  • 看图,或者看傅里叶级数的辅助角形式:直流分量=0.5,1 次谐波的分量\(=\sqrt{2}\) ,5 次谐波分量对应的 幅值 =0.127,同时在 1 次谐波分量上有一个 \(-\frac{\pi}{4}\)的滞后相位

以上详细说明了幅度谱和相位谱。

双边谱

  • 双边谱就是借助欧拉公式,将傅里叶级数余弦函数表示的辅助角形式转换为 \(e\) 的复指数形式

image-20250326152113689

image-20250326152235745

  • 将余弦信号表示单边谱变成复指数形式表示双边谱
  • 区别&联系
  • 双边谱的 幅值,由 单边谱的幅值 减半,对称到负频率上
  • 相位大小不变,频率进行奇对称

举例子:

image-20250326152757509

  • 单边谱和双边谱 本质是一样的,但是表达形式是不同的

单边谱:

image-20250326152833586

  • 这里的单边谱是余弦函数的分解形式,在一次谐波上有幅值,5 次谐波上有幅值
  • 相位谱:在 1 次谐波上有滞后

对应的表达式:

image-20250326152925066

  • 接下来将两个余弦变成复指数相加 除以 2 的形式,得到幅度谱,同时幅度谱产生了正负两种频率,对应的幅度减半,并且是偶对称的

image-20250326153222889

表达式:

image-20250326153340263

相位在正频率上有一个滞后的 45°,负频率上也有一个==滞后的== 45°,并且是奇对称的,所以有一个==超前== 45 度的相位。

🔵 如何理解 双边谱的负频率

简单说就是旋转方向不同,正方向是逆时针旋转,对应的,反方向是顺时针旋转。

从下面的图也可以看出来

image-20250326153544961

  • 这个 谐波 \(k \omega t\) ,就有点意思

image-20250326153800730

复指数表示形式:

image-20250326153817715

复指数函数正交基

统一了直流分量 \(k=0\)

image-20250326153847386

  • 这里,这个负号?

傅里叶级数的复指数形式

级数讨论的是周期函数,变换是非周期函数

image-20250326154022043

  • 在每个正交基上的投影就是系数,同样用内积之比进行计算

为什么在计算内积的时候用负号?

与复数相关:

image-20250326154204192

  • 复数模长的计算= 复数 × 它的共轭复数,也就是是说,复数内积的计算是复数与其共轭复数相乘。

  • 实部不变,虚部部分相反。

更详细的说明,为什么是负号:

image-20250326194456653

从几何的角度理解 \(i^2 = -1\)

image-20250326194655336

\(\sin(\omega t)\)的双边谱

image-20250326195004524

一定要牢记,可以从几何旋转的角度理解虚数单位 j

具体的 \(j\) 写成幅角-模长形式:\(j = 1 \cdot e^{j \frac{\pi}{2}}\)

  • \(1\) 表示模长
  • \(j\) 表示逆时针、正方向旋转
  • \(\frac{\pi}{2}\) 表示旋转角度
  • 几何解释:旋转 90°的单位矢量

同理

\(-j\) 写成幅角-模长形式:\(j = 1 \cdot e^{-j \frac{\pi}{2}}\)

  • \(1\) 表示模长
  • \(-j\) 表示顺时针、反方向旋转,DFT 用的方向
  • \(\frac{\pi}{2}\) 表示旋转角度
  • 几何解释:旋转 -90°的单位矢量

🔵 代入虚数单位的复指数形式:

image-20250326195316514

结果解读:

  • 幅度值都等于 \(\frac{1}{2}\) → 在一次谐波上的分量都是 \(\frac{1}{2}\)
  • 同时在 $k\Omega t = 1\Omega t $ 的频率上 有 \(-\frac{\pi}{2}\) 的相位滞后
  • 在 $-k\Omega t = -1\Omega t $ 的频率上 有 \(\frac{\pi}{2}\) 的相位超前

由此绘制出幅度谱和相位谱:

image-20250326195820091

  • (幅度谱)在 \(1 \Omega t\)\(- 1 \Omega t\) 分别有 \(\frac{1}{2}\) 的幅度值
  • (相位谱)在 \(- 1 \Omega t\) 上有一个 \(\frac{\pi}{2}\) 的超前
  • (相位谱)在 \(1 \Omega t\) 上有一个 \(- \frac{\pi}{2}\) 的滞后

方波信号的合成与分解实例

image-20250326200427858

首先数学上的推导:

image-20250326200505023

  • 采用复指数分解
  • 将周期信号 \(x_t\) 分解到正交基函数上,表示为正交基函数的线性组合
  • 原始周期信号在正交基函数上的投影用,内积计算
  • 标红色的:表示复数的内积,涉及到共轭复数。
  • 其中,相同正交基的内积=T,\(\int_{-\frac{T}{2}}^{\frac{T}{2}} dt = T\) 是必然的。对常数积分,结果=区间长度

接下来,求直流分量:

image-20250326200907610

接下来,\(k \neq 0\)

image-20250326200941507

积分出来的结果,代入欧拉公式,变成只有正弦函数的。但是画图的时候用的是余弦函数画图,所以还是要转化成余弦函数,变成单边谱。具体的就是 \(系数×2\) 变成单边谱

image-20250326201055910

这句

image-20250326201355661

得注意一下。原始信号的周期有了,那么基波频率 \(\Omega\) 就有了 → \(k\Omega n\) 投影的谐波频率也有了

这里是傅里叶级数的具体步骤:(其中拟合的谐波分量个数可以自己设定)

image-20250326202020705

因为公式中拟合的谐波理论上来说是无穷多个。这里需要与后面的DFT 的变换拟合谐波数量需要作区分。

目前的理解:

  • 周期信号,用的是级数,可以分解出无穷多个谐波
  • 非周期信号,用的是变换,分解出的谐波是 \(\frac{采样频率}{2}\)

image-20250326201922754

得到系数以后,可以绘制单边谱了

image-20250326202321807

这里需要注意,双边谱转换为单边谱

双边谱的 谐波模长需要 × 2,直流分量不需要 ×2

\(ak\_cos\) : 也只是 单边谱 \(\cos\) 对应的 幅值

image-20250326202722553

图中得到了单边谱的幅度值,解读幅度谱:

  • 直流分量 = 0.5

image-20250326202926974

  • \(ak\_cos\) 的值与单边谱一一对应
  • \(k\Omega n\) 第 0 个原始是直流分量
  • \(1\Omega n\) 1 次谐波分量是 0.6366
  • \(2\Omega n\) 偶次谐波是没有的
  • \(3\Omega n\)
  • \(4\Omega n\)
  • \(5\Omega n\)
  • \(6\Omega n\)
  • \(7\Omega n\) 7 次谐波分量是 \(-0.0909\)

演示分解出来的信号

首先 直流分量的绘制,\(c_0\) × 序列长度:

image-20250326203413919

然后就是绘制谐波分量:

image-20250326204139427

  • 1 次谐波分量
  • 2 次谐波分量
  • ...
  • 这是分解谐波个数=7,所以一共 7 次谐波分量

  • (why?)这里我的问题是,为什么啊?为什么想分解几条谐波分量就能分解几条谐波分量

分解为 13 条谐波分量

image-20250326204330173

分解完谐波分量以后,再合成:

image-20250326204430751

100 次谐波分量及合成:

image-20250326204502719

中间发白的是因为没有偶数次谐波分量 \(\cos k \Omega n\)\(k\)等于偶数时,全部等于\(0\),这个从单边幅度谱中也可以看出来。

欧拉公式的图像化解释

image-20250326210229683

其实我不懂,为什么这里的 \(T=6\)

复指数信号的周期,在几何图形中对应这什么?

n=2,表示绘制 2 个周期

但确实,有了时间序列周期,就有了基波频率,基波频率对应到几何图形上又是什么?

\(t = 0:0.1:(n*T)\) 确实就是总的时间序列长度

这里的三维坐标,分别表示:\(f = e^{i\Omega k t} = e^{i\Omega t}\) 也就是说画的是基波频率的欧拉公式(k=1)

猜想,如果绘制的是 k=2,2 次谐波的欧拉公式,其余都不变,会发生什么?

那其实,基频,也可以叫 1 次谐波

  • x 轴 绘制的是 时间 \(t\)
  • y 轴绘制的是 \(img(f)\) 虚部部分
  • z 轴绘制的是 \(real(f)\) 实部部分

  • 应该自己用 python 实现一下。

画的一个买家秀:

image-20250326214855449

image-20250326214914949

image-20250326214620315

image-20250326214931984

  • 是把,看出来了吧,
Python
# 参数设置
<div markdown="1" style="margin-top: -30px; font-size: 0.75em; opacity: 0.7;">
:material-circle-edit-outline:  4846 个字 :fontawesome-solid-code: 12 行代码 :material-image-multiple-outline: 69 张图片 :material-clock-time-two-outline: 预计阅读时间 24 分钟
</div>
T = 6  # 周期
omega = (2 * np.pi) / T  # 角频率
n = 2  # 周期个数
t = np.arange(0, n * T + 0.1, 0.1)  # 时间序列,从0到n*T,步长为0.1

# 计算复指数信号
f = np.exp(2j * omega * t)  # 注意这里使用2j
real_part = np.real(f)  # 实部
imag_part = np.imag(f)  # 虚部
  • 这里的基础参数不变,只改这里,f = np.exp(2j * omega * t) # 注意这里使用2j 一个用 1j * omega * t 一个用 2j * omega * t
  • 上面的特殊点 \(\frac{T}{4}\)\(\frac{T}{2}\)\(\frac{3T}{4}\)\(T\) 也很好看。都反映了 原始周期与 1 次谐波、2 次谐波完成周期的关系

  • 区别就在于,本来是 一个周期 T=6 内完成一个周期,改成 2 次谐波 2j * omega * t ,就是 原始周期 T=6 内完成2个周期,那如果这样的话,也是可以理解,为什么周期的傅里叶 级数,可以分解 \(\infty\) 次的谐波。下面这里画 50 次谐波分量,意思就是 50j * omega * t ,也就是原始 T=6 内,完成 50 个周期。

Python
# 计算复指数信号
f = np.exp(50j * omega * t)  # 注意这里使用的谐波频率

还有一点 j 前面加 1

  • 既可以表示为 1 次谐波也可以叫基波频率(理解错了再改,先这么理解)
  • 必须要加 1,1 不可以省略,要不然 python 不认识 j 是虚数单位。

image-20250326215518347

单位圆上的复指数信号

课件:数字信号处理:典型信号

重点强调几处:

单位圆上的复指数信号

连续时间形式

一般形式:

\[e^{j(\omega t+\phi)}\]

复指数形式 其实应该是模长-幅角形式,这里讨论的是单位圆上的复指数,∴ 模长为 1

image-20250327142403835

这里比较容易混淆的是:$\omega $ 的理解,单位是 rad/s,描述每秒转几度。(跟后面离散的进行对比)

  • 连续时间单位圆上的复指数信号一定是周期的模长一定是 1

性质 1:周期性

  • 描述一个三角函数:幅值、初相位、频率(or 周期)

image-20250327142558848

性质 2:\(\omega\) 、T 与振荡的关系

image-20250327142824858

离散时间与单位圆上的复指数

image-20250327145425866

  • 这里的 \(\Omega\) 数字角频率可以理解为 采样 \(nT_s\) 个时间点,平均分单位圆,每份的弧度(我先这么理解,错了再改)

  • $\omega $ 模拟角频率,rad/s,每 s 走过的弧度

  • $\omega_s $ 采样角频率,每秒采样多少弧度?

性质 1:周期性

image-20250327150253672

  • 节拍是什么意思?

性质 2:\(\Omega , T\) 与振荡

image-20250327150347724

  • 采样定理:为了捕捉系统中最高频分量,采样频率=最高频率×2,才能保证最高频率分量不会被过滤掉
  • 系统可以分解出的最高分量 = \(\frac{1}{2}\) 采样频率
  • \(\Omega = \pi\) 时,对应系统可分解出最高频分量
  • 上面三张图:画的是 \(e^{i\Omega n}\) 的实部部分 \(\cos \Omega\)\(e^{i\Omega n} = \cos \Omega + i \sin \Omega\)
  • 归一化后的节拍 \(n=0,1,2,......N_0-1\) 节拍也许就可以理解为时间点,每个节拍采样一个点
  • \(n=0\),对应 \(\Omega = 0\) (这种理解是错误的,是在 $fixed \quad \Omega $ 讨论每个时间点 或者 节拍的到 \(k \Omega\) 上的投影 )
  • \(\Omega = \pi\) 实部波形反复横跳

疑问(含义是什么?\(\Omega ?= \frac{2\pi}{N}\)),也许这里只是数学意义上的讨论。

一般的复指数信号

连续的情况

image-20250327151853598

所以,单位圆上的复指数信号,特殊在哪里?

最一般的复指数信号? \(x(t)=(c(t)+{d(t)}i) e^{ib(t)+a(t)}\)

  • 按照 ppt 来说,是常数。 \(x(t)=(c+{d}i) e^{a(t)+b(t)i}\)

由复数、复指数、三角函数对应关系

\(a+bi\)

= \(\sqrt{a^2 + b^2} e^{i {arctan\frac{b}{a}}} = |模长|e^{i 幅角}\)

= \(\sqrt{a^2 + b^2}(\cos {(\arctan\frac{b}{a})}+ i \sin {(\arctan\frac{b}{a})} )\)

\(=|模长|(\cos幅角+ \sin幅角)\)

$\cos {(\arctan\frac{b}{a})} = \frac{a}{\sqrt{a^2 + b^2}} $

\(余弦值 = \frac{实部}{|模长|}\)

\(\sin {(\arctan\frac{b}{a})} = \frac{b}{\sqrt{a^2 + b^2}}\)

\(正弦值 = \frac{虚部}{|模长|}\)

\(幅角 = \arctan \frac{虚部}{实部}\)

  • 并且,
\[x(t)=(c+{d}i) e^{a(t)+b(t)i} \]
\[\stackrel{注意看指数变化}{\rightarrow} x(t)=(c+{d}i) e^{(a+bi)t}\]
\[\stackrel{复数→复指数}{\rightarrow}x(t)=|模长|e^{i幅角} e^{(a+bi)t} \]

再看这一堆东西,工整多了:

image-20250327160632650

分解:\(|模长|e^{i幅角}\) 是 包络线部分;\(e^{(a+bi)t}\) 是振荡部分。

image-20250327161512816

这里是一般的离散时间的复指数信号:

image-20250327173246084

这里主要是单位圆上的复指数信号,区分 \(\omega\) & \(\Omega\)

这里注意信号变换都是针对t 的,而不是括号中的所有东西:

image-20250327173419261

add_circle2025-03-27 00:00:00update2025-03-27 21:51:49