Mathematica 9 is now available

1.9.13 声音

在大多数计算机系统上,Mathematica 不仅能产生图形,也能产生声音. Mathematica 处理图形和声音的方法是非常相似的. 例如,正如能使用 Plot[f,  x, xmin, xmax ] 画函数的图形一样,也能使用 Play[f,  t, 0, tmax ] 来 "演奏"一个函数. Play 采用函数来定义 声音的波形.函数值给出作为时间函数的声音的振幅.

演奏函数的声音

在适当的计算机系统上,其频率为 440Hz

Play 生成的声音可以有任何波形.例如,它们不必由谐波的集合组成. 一般,用户要演奏的振幅函数指定了相应于声音的瞬时信号.这个信号被转换 成电压,最后转换成位移. 注意振幅有时被定义成声音的峰值信号. 在 Mathematica 中,它总是作为时间函数的瞬时信号.

这里演奏一个更复杂的声音

Play 被设置成使得其中的时间变量总是用绝对时间秒来度量. 当声音被演奏时,振幅按每秒钟确定的次数被采样. 用户可以通过 设置选项 SampleRate 指定采样率.

指定声音的采样率

一般采样率越高,声音中的高频成份被演奏的越好.采样率  .人的声音系统一般能分辨的音频范围是 20~22 000Hz (这依赖于年龄和性别). 钢琴上 88 个音符的基本频率的范围是 27.5~4096Hz.
压缩音碟播放器的标准采样率是 44 100. 在一般电话系统中的有效采样率 在 8 000 左右.大部分计算机系统中,Mathematica 所用的采样率也在 8 000 左右.
可以用 Play[  ,   , ... ] 产生立体声. Mathematica 一般支持任意多的声道.

演奏采样的声音

函数 ListPlay 可以简单地给出一个值列表, 它可以作为按一定速率采样的声音大小.
Mathematica 实际演奏声音时,仅允许一定振幅范围的声音.在 PlayListPlay 中的选项 PlayRange 指定怎样对所给振幅进行处理以适应 给定的范围.该选项的设置与前面所讨论的图形选项 PlayRange 的设置类似.

指定声音振幅的调整

用缺省设置 PlayRange->Automatic 通常是方便的,应该看到明确指定了 PlayRangePlay 运行得会相当快,因为它不需要推导PlayRange.

重播声音

PlayListPlay 都返回 Sound 对象,它包含合成声音的过程.可以用函数 Show 去重新演奏一个 Sound 对象 ( Show 也用来重新显示图形).
Sound 对象的内部结构在 2.9.18 节中讨论.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.