声音信号与三角函数

作者: dluopunk

简介: 声音信号与三角函数

最后修改: 2025-04-08 09:20:58.933241

文章状态: 已发布

标签:

Py t h o n 与声音制造 第一部分 : 声音与数学 Topic1 : 声音 信号 与三角函数 数学最有用的地方就在于它可以量化地描述真实世界中发生的事情 ( 尽管只能描述很小一 部分 ) ,如果 能 掌握这些表述 方法,那么我们就具有了某种改造世界的能力,甚至 合成出 新的事物。声音就是这样一个例子,它 源于物体的振 动, 由振动源产生的能量通过空气 传 播至 人耳 , 最后通过人 的神经系统转化成我们感受到的所谓声音。 如果 一个声音信号 波动 具有明显的周期性,那么 我们就感觉到它有一个明显 的音高 ( p i tc h ) ,例如一个具有固定频率的 正弦波 。弦乐乐器发出的声音都是周期信号,如果不是 这样,那我们听到将会是噪音,当然这里的前提是演奏乐器的人具有基本的演奏能力 。 但 是打击乐器,例如鼓或者镲,就不能演奏出 明显的音符,这主要是因为它们的物理形状是 平面 的,所以很难形成 占绝对优势的振动 频率 。 频率,或者周期是描述声音信号 最基本的 基本参数。频率 (Fr e que ncy ) 描述 振动的快慢,以 振动次数除以时间为单位 ( 赫兹 ) ,周期 (P e r iod) 则是频率的倒数 , 人类的听觉范围是 2 0 Hz - 2 0 0 0 0 Hz , 频率高的声音往往给人以尖锐 紧张的感觉。 振幅 (A mp l i tu d e ) 描述了一个波动 相 对 中间位置 可 偏移 的 最远 距离 ,体现在声音上就是音量。 最后就是振动在时间维度上的图 像, 大量声学研究表明我们人类对于声音的感受与声音信号的波形有关 。 在正式开始有 关数学 描述之前,请思考这么几个问题 : 1.   如果钢琴和小提琴演奏同一份乐谱,你是否可以分辨出它们的不同? 2.   如果你爸爸和你妈妈先后喊你的名 字 ,你是否可以分 清他 们的声音 ? 一个 著 名的数学定理 阐 述了这样一个现 象 , 任何 周期函数都可以由有 限 或 无限多 个正弦函 数经过 线 性 叠加而 成 . 回忆 正弦 型 函数具有以 下 基本形式 : y = As i n ( ω t + φ ) 其 中的 A , ω , φ 为 常 数,它们 决 定这个正弦波的 全 部性 质 , 即 振幅 ( A m p l i tu d e ) , 频率 (Fr e que ncy ) 和 初 相位 ( P h as e ) 。 所以 若 一个 波 满足 以 下条件 : f t = f ( t + T ) T 为这个波的最大周期,则有 f t = sin (  + ) 其 中 k 为 非负整 数,这 也 就是 说任何 周期函数都是由一个最 低 频率的正弦波和 其他 频率为 其整 数 倍 的正弦波 叠加而 成 的 。 每 一个正弦波都有 各自 的振幅,频率和 初 相位 而 不受 其他 正弦波的 影响 。我们可以 把 这个系统 想象 成一个维度为有 限 (k 取 有 限 个 ) 或者 无限 的空 间, 每 一个正弦波都 代 表了这个空间的基 向 量,就像平面 直 角 坐标 系中的 x, y 轴 。这样我 们就可以 把任何 周 期波动 看 成是在这个由 正弦波 构 成的 空间中的一个 向 量。 这样就可以 利 用 向 量的数量 积 对 波形 进行 分 解 , 得 到 每 一个基波的振幅,频率和 初 相 等 信 息 。 这样 做 有 什 么 意义呢 ? 这就 意味着 ,我们 得 到这些信 息 之后就可以 重构原 始波形。事实上所有 软 件 音源都是基于这一 工作原 理。 下 面我们 使 用 一个 简 单的 P y th o n 程序 来 呈 现这个 结 果 : 首 先生成一个正弦波的图像
由 多 个频率不同的正弦函数 按照 一定的 规 则 进行叠加 可以产生一些有 趣 的基本波形 。
对于上面的 公 式,我们 还 可以 利 用三角函数和角 公 式对 其展 开 : f t = cos  + sin (  ) 这是因为 : A sin k ω t + φ = A sin k ω t cos φ + cos k ω t sin φ = As i n φ cos k ω t + cos φ sin k ω t = a cos k ω t + sin k ω t 其 中 : a = As i n φ , = cos φ 这样就有以 下 关系式 : A = + tan φ = a b = As i n φ cos φ , = tan 接下来 将要 介绍被誉 为最 美 数学 公 式的 欧拉恒等 式, 首 先 存 在这样的关系 e  = cos +  ( ) 其 中 i 为单位 虚 数, i = − 1 。 这是 根据泰勒展 开式 : sin x = x − x 3 ! + 5 ! − 7 ! + ⋯ − 1 2 − 1 ! + cos x = 1 − x 2 ! + 4 ! + ⋯ − 1 2 ! + e = 1 + + 2 ! + 3 ! + ⋯ ! + ( ) 可以 把 以上 公 式中的最后一 项认 为 是 跟 前 n 项比 可以 忽略 不 计 的量。 这个 公 式将三角函数和 指 数函数 联 系 起来 , 下 面 来看 一 下 它的 威 力 : e  = cos 2 +  2 = cos +  = cos − sin + 2  cos ( ) 一个由 实部和 虚 部 构 成的数 叫做复 数 , 基本形式是 a + bi 。 两 个 复 数相 等 的 充 要 条件 是它们 的实部和 虚 部分 别 相 等 , 即得 到 倍 角 公 式 : cos 2x = cos − sin sin 2x = 2 sin x cos ( x ) 由 此得 到一 般 性 结 果 cos nx + isin nx = cos x + isin x 下 面我们将 π 带入欧拉等 式 , e = cos +  = − 1 + 0 即 得 到 被称 为最 美 数学 公 式的,它将数学中最 常见 的 常 数 和 运算 都 浓缩进 一个 公 式里 。 e + 1 = 0 有了这一 层 关系,我们就可以将前面的周期信号以 复指 数的形式表现出 来 ,这里我们将波 动位移 看作 关于时间的函数 : x t = a ∗ cos ω t + b ∗ sin ω t x t = + + cos  + + sin 
x t = A ∗ cos ( ω t + φ ) 其 中 : A = + , = − tan 设 I = Ae =  +  ( ) , 那么 原 始信号就可表 示 成 x t = Re ( Ie ) = Re ( Ae ∗  ) =  ( (  ) ) 即 这个信号为 复指 数函数 (  ) ) 的实数部分。 那么 啰嗦 了这么 多 到 底 有 什 么用?第一,大 家 可以 看 到在高中学到的有关数学 知识 经过 整 合可以用 来 表现和分 析 一个具体的事物,所以 证 明学 好 数学是有用的 ! 其 次,以上的数学 语言 是我们 接下来利 用 计算机 制造声音 的 基本理 论工 具 ,所以如果你 希望 将你的 电脑变 成 一个声音制造 工厂 ,那么你最 好 牢牢记住 以上 概念 。 在 下 次的 推送 中我们将 介绍 有关 傅 里 叶级 数的 内容 , 从而 掌握如 何 将一个 比较 复杂 的波形 进行解构 和 重塑 。 本 文 的 内容 编排 主要参考 以 下资 源 : F . R. M oore ,  A n Int roduc t i on t o t he  M a t he m a t i c s  of D i gi t a l  S i gna l  P roc e s s i ng:  P a rt  I:  A l ge bra ,  T ri gonom e t ry, a nd t he  M os t  Be a ut i ful  F orm ul a  i n M a t he m a t i c s  A ut hor(s ):  F . R. M oore ,  Com put e r  M us i c  J ourna l , V ol . 2, N o. 1 (J ul ., 1978), pp. 38 - 47   
创建一个文章