把两段声音对齐,在每个时刻将振幅相加。比如,人声加旋律得到混音。
LINEAR ALGEBRA · SOUND LAB
混在一起,还能分开吗?
调整两条音轨的混音比例,听一听,再用消元找回原声。
01原始音轨
02混音工作台
负系数会把波形上下翻转;0 表示不加入这条音轨。
03用消元找回原声
对两条混音做同样的行变换,看看最后会留下什么。
从你设置的混音比例出发
右侧的单位矩阵记录我们对混音做了哪些操作。
相同的混音,可以来自不同的原声
04用线性组合,调出不同音色
同一个音高,也能听起来柔和、空灵或明亮。先播放,再拖动谐波系数试试。
正弦波相加,波形也变了
显示两个基音周期点击播放后,可以边拖动边听。
试听时如何处理音量?
开启后,会对合成声音整体缩放,使长音的均方根振幅一致;各谐波之间的比例不变,主观响度仍可能不同。关闭后使用固定播放增益,更直接地听到振幅随系数变化。公式和图始终显示缩放前的线性组合。
这里的“声音向量”是什么?
长音实验取 hₖ(t) = sin(2π · k · 220t)。每个 hₖ 都是一条完整的正弦波;它的频率是基音的 k 倍,称为第 k 次谐波。改变它们的组合比例,就能改变音色。
从调音色,回到线性空间
六条波形的线性组合构成 span{h₁, …, h₆}。本环节固定 h₁ 的系数为 1,调节其余系数来比较音色;允许全部系数取任意实数,才得到完整的线性空间。
听短旋律时,每个音符沿用同一组谐波比例;图与频率标签展示的是 220 Hz 长音。预设用于比较合成音色,并非真实乐器的仿真。
05 · 从声音实验,走进线性空间
为什么整段声音,也可以是向量?
刚才的消元里,等号两边有时是人声,有时是旋律。调音色时,我们又把几条正弦波组合起来。它们并不是一个数,却仍然能相加、数乘、抵消。线性空间研究的,就是这些运算共同遵守的规律。
先把声音看成一条完整波形
固定同一段时间 0 ≤ t ≤ T,用 f(t) 表示时刻 t 的振幅。
把每个时刻的振幅都乘同一个实数。0.5f 把振幅减半;−f 把波形上下翻转。
负数倍是波形反相,并非倒放;乘以 2 指振幅变成两倍,并不表示主观听感的响度恰好变成两倍。
实线性空间:一个集合,两种运算,八条规律
其中的元素叫作“向量”。向量可以是数列、函数、矩阵,也可以是我们正在研究的声音波形。
给定一个非空集合 V,在其中定义加法和实数数乘。首先要求运算封闭:对任意 x, y ∈ V 和 α ∈ ℝ,
也就是说,运算结果仍在这个集合里。若再满足下面八条规律,就称 V 为实线性空间,也叫实向量空间。
下面 x、y、z 是 V 中任意元素,α、β 是任意实数。右侧的声音解释都指对齐后的理想波形。
加法交换律
x + y = y + x两段对齐的波形相加时,交换相加顺序,结果不变。
加法结合律
(x + y) + z = x + (y + z)三条音轨分组叠加,最终得到同一条波形。
存在零向量
存在 0 ∈ V,使 x + 0 = x全程振幅为 0 的静音就是零向量;加入静音不改变原声。
每个向量都有相反向量
每个 x 都有 −x ∈ V,使 x + (−x) = 0原波形与它的反相波形逐点相加,恰好抵消成静音。
数乘单位律
1x = x振幅乘以 1,仍是原来的声音。
数乘结合律
α(βx) = (αβ)x先缩小到一半,再放大两倍,振幅回到原样。
数乘对向量加法的分配律
α(x + y) = αx + αy先混音再缩放,等于把各条音轨同样缩放后再混音。
数乘对实数加法的分配律
(α + β)x = αx + βx0.3 倍人声加 0.7 倍同一人声,正好得到原人声。
声音为什么满足这些要求?
取 V = C([0, T], ℝ),即这段时间内所有实值连续波形的集合。两条连续波形相加、乘实数后仍连续,所以运算封闭;静音和反相波形也都在其中。其余等式在每个时刻都化为实数的运算规律,因此对整条波形成立。
这里使用不限制振幅大小的理想模型。若强行要求振幅始终在 −1 到 1 之间,放大后就可能超出范围,这样的集合对数乘不封闭。
两条音轨,能组成一个怎样的空间?
只用固定的人声 v 和旋律 m,把所有可能的混音收集起来。
= {av + bm : a, b ∈ ℝ}
它是声音空间的一个子空间:其中的元素是声音,并且相加、数乘后仍留在 W 中。
为什么仍留在里面?
若 u = av + bm,w = cv + dm,那么
ku = (ka)v + (kb)m。
结果仍是 v、m 的线性组合。取 a = b = 0,还能得到静音。
右图画的是它们的混合系数 (a, b),不是声音的时间—振幅波形。一个点对应一整段混音。
如果 v、m 线性无关,也就是 αv + βm = 0 只能在 α = β = 0 时成立,那么每段混音的系数唯一。此时 {v, m} 是 W 的一组基,W 的维数为 2,(a, b) 就是声音 av + bm 在这组基下的坐标。
“二维”表示只需两个独立的系数来描述 W 中的声音,不是每段声音只有两个采样值。滑杆的 −3 到 3 只是展示范围;完整的 W 允许任意实系数。
既然能写成坐标,为什么还要讲线性空间?
坐标帮助我们计算,线性空间帮助我们识别不同对象背后的同一套结构。
N 个采样值:ℝᴺ
固定采样时刻后,把振幅排成一列。本网页的数字音频确实在 ℝᴺ 中做运算;混音就是对应位置相加、数乘。
两个混音系数:ℝ²
当 v、m 线性无关时,只需两个数描述它们张成的空间。换一组基,同一段声音的坐标可能改变,声音本身不变。
一个函数:C([0, T], ℝ)
这里保留每个时刻的振幅。有限个采样值无法唯一确定任意连续波形;整个连续函数空间也无法由固定有限个基波形张成。
把共同规律提炼出来,才可以把同一个方法用于不同对象。
有限维实线性空间选好基后,都可以用 ℝⁿ 的坐标来计算。但在选坐标之前,我们就能研究声音、矩阵、多项式的相加与数乘;对于整个连续函数空间,还需要容纳无限维情形。线性空间让我们把这些情况放在同一套理论中讨论。
回看消元:我们一直在使用这些规律
以“可逆混音”预设 u = v + m、w = v + 2m 为例:
这里用到分配律、结合律和相反向量的抵消。它们对整段声音成立,所以消元能直接找回音轨。线性代数的方法能处理声音,正是因为声音的这些运算具有线性空间的结构。
回到混音工作台再试一次