9.7示例235
些权重,接下来的b个块中的每个块的功率都被平均到由前一个块所得到的遮蔽表中。在这b个块的末端,该表将保存全部b次功率测量的等权重平均值。此后,对新的功率测量进行平均所用的权重为0,因此测得的平均值将停止变化。
为了在经典的噪声抑制中使用这个音色,需要至少几秒录制好的没有"信号"出现的纯噪声。这个噪声被播放到该音色中,它的持续时间被发送给"make-mask",因此表"50-mask"
保存的是每个频道测得噪声功率的平均值。随后,假设信号中的噪声部分很少会超过其平均功率的10倍(比如),那么把"mask-level"设置为10,并把需要进行噪声抑制的信号发送给图9.16a所示的音色。噪声将几乎全被移除,但信号超过噪声功率20倍的那些频道将仅被衰减3dB,而且功率更高的频道被衰减得更少。(当然,真实的噪声抑制可能并不是该音色最有趣的应用,可以试着用任何一个信号去遮蔽另外一个信号。)FEt1实傅里叶变换
计算功率
(称其为"e")
r make-magk
根据侦的数量循环lIFwlndow-mge】
pd calculate-maak】
bang
在图b中示出的子音色
lapigoth
maaktable遮蔽表
a以毫秒表示
Eabreceive-$0-mask fioa
0】帧的数量
*-|r mask-level te日
一1功率(gW)减去遮蔽("m")
se10l
force>=0强迫其
expr 1/($f1+1)|o(
|max-0|大于等于0
/Ze-20防止其被0除
把新功率平均到
遮蔽时使用的权重
当前功率
|inlet-l
【ae aqrt-|求(8-m)/a的平方根,
//tabreceive-$0-mask把当前功率平均到最近
7s3日(若
--使用2/(3N)进行归一化
F~-门在第n次迭代中令新值的权重为1/n FLEt-实傅里叶反变换
【tabsend-$0-mask
(a)
(b)
【图9.16 窄带压扩的一个例子--噪声抑制:(a)对信号的分析和重建;(b)对"遮蔽"的计算9.7.3音色冲压("声码器")
示例105.compressor.pd(图9.17)是另外一个频道压扩器,它是为随后将要分析的示例106.timbre.stamp.pd而准备的。示例105是图9.9所示音色冲压的一种略经改动的实现。