第 11 讲共 23 讲约 7 分钟含交互实验

一个数,怎样同时装下「有多强」和「从哪里起步」?

上一课留下一个悬念:一支试探波会被起点位置抹掉,得用两支。 于是每个频率问出来的不是一个数,而是两个——强度,和从哪里起步。可「强度」是个普通的数,一个普通的数装不下两样东西。这一课引入的复数,正是为解决这件事而来:一个复数就是平面上的一个点,而一个点天生带着两个信息——离原点多远,朝哪个方向。 前者对应强度,后者对应起点。这一课不讲抽象的数学,只把上一课量到的那两个读数,真的拼成一个复数。

导读: 上一课留下一个悬念:一支试探波会被起点位置抹掉,得用两支。 于是每个频率问出来的不是一个数,而是两个——强度,和从哪里起步。可「强度」是个普通的数,一个普通的数装不下两样东西。这一课引入的复数,正是为解决这件事而来:一个复数就是平面上的一个点,而一个点天生带着两个信息——离原点多远,朝哪个方向。 前者对应强度,后者对应起点。这一课不讲抽象的数学,只把上一课量到的那两个读数,真的拼成一个复数。

第 11 课属于第 3 组「从波形进入时间—频率表示」,本组共 5 课

为什么非要复数不可

先把上一课的结论摆出来:

  • 拿一支已知频率的波去和信号比,每个频率要问出两个数——强度(有多强),和第 02 课讲过的相位(从哪里起步)。
  • 强度是一个实数,一个数就装得下。
  • 可「强度 + 起点」是两个数。

一个普通的数装不下两个数。 那能不能找到一种数,一个就装下这两样?

能。它就叫复数。 名字听着吓人,其实要求非常朴素——我们需要的只是「平面上的一个点」,因为一个点天生就带着两个信息:离原点多远、朝哪个方向。

一个复数就是平面上的一个点

复数长这样:

  • 3 叫实部,记作 ;
  • 4 叫虚部,记作 ;
  • 是个记号,它的作用就是把这两个数分开摆,让它们不会加到一起。

把实部当横坐标、虚部当纵坐标, 就是平面上横 3、纵 4 那个点。

复数 3+4i 在复平面上的两种坐标:直角坐标与极坐标

图 1:同一个点,两种说法。左边用「往右 3、往上 4」定位,右边用「离原点 5、朝 53.13°」定位。两种说法装的信息一样多。

这种「往右多远、往上多远」的定位方式叫直角坐标。

换一种说法:模和角

同一个点,还可以这样描述:离原点有多远,朝哪个方向。

  • 模,记作 ,就是离原点的距离。按勾股定理:
  • 角,记作 ,就是从横轴正方向转过多少:

单位是弧度,换算成角度是 53.13°。

这叫极坐标。转回去也能对上:

5.0000·cos(0.9273)
  + 5.0000·sin(0.9273)i
= 3.0000 + 4.0000i
和原来的 z 一致:True

所以呢? 两种说法装的信息一样多,只是切入点不同。而极坐标那一种,正好对上我们要的东西:

极坐标对应声音里的
模 强度——这个频率有多强
角 相位——从一轮的哪个位置起步
交互程序加载中……

欧拉公式:把「模和角」写成一个乘法

极坐标写成 有点长。有一条公式能把括号里那一串压成一个符号:

这就是欧拉公式。它不是定义,是一条能验证的等式——脚本逐个角度对过:

γ        左边 e^(iγ)   右边 cos+isin
0.0000  +1.0000+0.0000i  同  True
0.7854  +0.7071+0.7071i  同  True
1.5708  +0.0000+1.0000i  同  True
3.1416  -1.0000+0.0000i  同  True

有了它,任何复数都能写成:

读法很直白:一个「多长」乘上一个「朝哪儿」。 这一块模永远是 1,它只管方向,不管长度。

顺带一提,把 代进去:

e^(iπ) + 1
 = 0.00e+00 + 1.22e-16i
 也就是 0

这就是有名的欧拉恒等式,把 、、、、 五个常数串在了一起。( 是浮点残渣,不是真的不等于零。)

角就是「指向哪儿」

模为 1 时,不同的角分别指向复平面的哪个方向

图 2:四个点的模都是 1,只有角不同。角是多少,就指向哪儿。

γ = π/4  ( +45°) -> +0.7071+0.7071i
γ = π/2  ( +90°) -> +0.0000+1.0000i
γ = π    (+180°) -> -1.0000+0.0000i
γ = −π/2 ( -90°) -> +0.0000-1.0000i

模都是 1,只有方向不同。 记住这一点:角变了,长度不变。 下一课的公式里那个 的指数项,做的就是「只转方向、不改长度」这件事。

回到上一课:那两个读数就是一个复数

现在把这套东西接回声音。上一课在 440 Hz 上量到两个数:

余弦那支 +0.0000   ← 当实部
正弦那支 +1.0000   ← 当虚部
拼成一个复数 z = +0.0000+1.0000i
第 10 课那两支试探波的读数,拼成一个复数后模等于强度、角等于相位

图 3:左边是第 10 课的两支试探波各自的读数;右边把它们当成一个点的横纵坐标。这个点离原点的距离就是强度,方向就是相位。

验证一下这个点的模和角,是不是就是上一课的强度和相位:

模 |z| = 1.0000
  第 10 课的强度 1.0000  一致 True
角 = +1.5708 弧度
  第 10 课的相位 +1.5708 一致 True

两个都对上了。 这不是巧合——上一课算强度用的就是 ,那正是求模;算相位用的是 ,那正是求角。我们其实早就在算复数了,只是没这么叫它。

关键的一步:挪动起点,模不变、角变

上一课最有说服力的实验是「把起点挪四分之一圈」。现在用复数再做一次:

原来的   z = +0.0000+1.0000i
         模 1.0000  角 +1.5708
挪过起点 z'= +1.0000-0.0000i
         模 1.0000  角 -0.0000

模几乎没变(差 ,浮点残渣),角差了 1.5708 弧度 = 90°——正好四分之一圈。

所以呢? 这两行数把整件事说完了:

  • 声音的强度没变,因为 440 Hz 那一份的幅度确实还是 1.0 → 模不变。
  • 变的只是起点,挪了四分之一圈 → 角正好变了四分之一圈。

模记「有多强」,角记「从哪里起步」,一个复数把两件事都装下了。 上一课那个「一支试探波会被起点抹掉」的问题,到这里彻底消失——因为模根本不受角的影响。

这一课得到了什么,下一课接着讲什么

复数不是为了「更高深」才引进来的。它就是平面上的一个点,而我们需要的恰好是一个能同时记住「多远」和「朝哪」的东西。

复数的说法声音里的意思
实部 余弦那支试探波的读数
虚部 正弦那支试探波的读数
模 这个频率有多强
角 从一轮的哪个位置起步
一个只管方向、模恒为 1 的因子

三个实测结论:

  • 的模是 5、角是 0.9273 弧度,两种坐标互相转得回去。
  • 欧拉公式在四个角度上逐个对上; 算出来是 量级的零。
  • 把信号起点挪四分之一圈,模差 、角差正好 90°。

下一课把这个复数正式塞进傅里叶变换的公式里:每个频率算出一个复数系数,它的模是幅度谱、它的角是相位谱。 然后走一次完整的往返——变换过去,再变换回来,看能不能一个数不差地拼回原信号。