音频合成

Wolfram 语言对音频数据的创建、分析和操纵提供广泛的支持,并完全与 Wolfram 语言强大的数学和算法能力相集成.
音频合成的起点是 AudioGenerator 函数.
AudioGenerator[model]
产生给定 model 的 1 秒音频
AudioGenerator[model,t]
产生 t 秒音频
音频生成.
振荡器
产生信号的最简单方法是使用由 AudioGenerator 支持的本机振荡器模型.
产生正弦信号:
产生指定频率的正弦信号:
不同振荡器模型有不同的谐波分量:
所有振荡器模型接受频率和相位的时变参数:输入可以是 TimeSeries、其他 Audio 对象或甚至是纯函数.
使用音频信号控制频率:
使用纯函数控制频率:
使用时间序列控制频率:
噪声产生器
除了振荡器,AudioGenerator 允许产生不同类型的噪声信号.
产生 1 秒粉色噪声:
不同类型的噪声有不同的频谱分量:
白噪声通过平坦光谱被特征化. 默认情况下,从均匀分布中提取样本值,但是可以在不影响频谱的情况下改变.
带有幅度的白噪声从正太分布中采样:
绘制信号的直方图和功率谱图:
使用 {"Color",α} 会产生彩色噪声信号,其频谱遵循 f-α 分布. "Pink""Brown""Blue" 是彩色噪声的实例,其中 α 值为 1、2 和 .
改变噪声的颜色
处理和时间序列
通过采样随机进程,AudioGenerator 可被用于产生信号.
从离散时间或连续时间过程中产生音频信号:
AudioGenerator 可用于从 TimeSeries 中创建一个 Audio 对象.
TimeSeries 开始创建一个音频信号:
高级合成

减法合成

通过用一个或多个频率选择滤波器处理音频对象,是可能操纵它的谐波分量并因此改变其音色. 如果起始的音频对象具有丰富的谐波分量,该技术是有效的.
过滤锯齿波:
对方波使用不同的滤波器:

加法合成

与用滤波器衰减谐波的减法合成相反,加法合成是基于谐波相加. 线性组合不同频率的正弦波获取此效果,其中用户控制线性组合的系数.
控制 200 Hz 基波的前8个谐波的幅度:

调幅

调幅 (AM) 是创建带有复杂谐波成分信号的常用技术.
在 AM 中使用的两种信号称为 carriermodulator. 用 carrier(1+μmodulator) 计算结果,其中,缩放常数 μ 被称为调制指数.
如果调制器是正弦波,对于频率为 f 的载波的每一个分量,在频率 f±m 处创建一对边带,其幅度由调制指数控制.
三角波的调幅:
绘制信号的功率谱图:

调频

在 19 世纪 70 年代初,另一种流行技术是使用调频 (FM).
在 FM 中,载波信号的频率是由调制器和调制指数控制的. 随着调制指数的增加,边带出现在调制频率区间内载波频率之左右.
基本频率调制:
绘制信号的功率谱图:
这些附加边带数和强度与调制指数相关.
使用更高的调制数增加边带幅度:
边带的位置是由载波和调制频率间的比率所决定. 改变比率,可能获取谐波(定音 (pitched) 打击乐器比较典型)和非谐波(打击乐器比较典型)频谱.
创建谐波和非谐波信号:
如果调制指数变成时变参数,很容易产生包括时间的谐波成分.
通过增加调制指数增加信号带宽:
绘制所得结果的频谱:
调制频率也可以是时变参数.
通过变化调制频率改变边带的位置:
绘制频谱: