前言:
而今同学们对“最小二乘曲线拟合基本步骤”都比较注意,姐妹们都需要分析一些“最小二乘曲线拟合基本步骤”的相关文章。那么小编在网上收集了一些关于“最小二乘曲线拟合基本步骤””的相关资讯,希望同学们能喜欢,小伙伴们一起来了解一下吧!文|畅谈古今a
编辑|畅谈古今a
前言
弦乐器是古老而优美的音乐演奏工具,如小提琴、大提琴和中提琴等,在现代音乐制作和音乐技术领域,开发出准确模拟弦乐器声音的相关建模解决方案具有重要意义。
弦乐器模型旨在通过模拟弦的振动行为,和共鸣特性来重现真实的弦乐器声音。
这种建模技术可以应用于虚拟乐器合成、音乐制作软件、电子游戏音效设计以及虚拟现实和增强现实应用中。
然而,开发一个准确可靠的弦乐器模型并不容易,弦乐器的声音受到多个因素的影响,包括弦的材料、长度、张力、弓的压力和速度,以及共鸣体的形状和特性等。
除此之外演奏技巧和表现力也会对声音产生重要影响,如弓弦的角度、滑奏、颤音和颤弓等。
为了解决这些挑战,研究人员和工程师们提出了各种弦乐器模型的建模方法,这些方法包括物理模型、采样模型和混合模型等。
弦乐器模型的研究和开发对于增强音乐创作和演奏体验具有重要意义,通过准确模拟和再现弦乐器的声音特性,我们可以为音乐家和音乐制作人提供更多灵活性和创造力的空间。
同时,这种技术也为虚拟现实和增强现实音乐应用提供了更加逼真和沉浸的体验。
一、共振弦振动
对于基于模型的合成的质量的重要性已经被讨论,在我们的吉他模型中,我们通过简单地将一小部分弦输出馈送到桥位的其他弦来实现共振耦合。
尽管这是一种过度简化,没有模拟真实乐器的复杂频率相关耦合,但结果仍然相当令人满意,并使吉他合成听起来更加逼真。
这种方案对于耦合系数有一定的要求,因为存在通过弦传递的反馈,过度的耦合可能导致系统不稳定。
二、弦乐器模型中更复杂行为和相关建模解决方案
1.弦独立振动
一种有效地模拟这一现象的新方法是在弦波导的拨弦位置使用一个分数延迟三端口。
这样的端口由延迟线中的分数延迟插值、反射和交互计算以及回到延迟线的反插值组成,这种方法已成功应用于木管乐器模型中指孔的实现。
上述描述的基于模型的方法可以应用于合成许多其他拨弦乐器,如琵琶、班卓琴或曼陀林。
但每种弦乐器都有其独特的特点,这里我们讨论在一种古老的芬兰乐器坎特莱尔中发现的两个特定效果,虽然在吉他中并不重要,但它们应该包含在任何弦乐器的详细模型中。
传统的坎特莱尔配备有五根弦和一个箱体或共鸣板,弦的终止方式是特殊的:
一端的弦绕在金属棒上,并通过结固定(见图6a)。
因此,弦的有效长度在两个主振动平面上是不同的(差异为0.1-0.2%),由于这个原因,当两个振动平面在箱体内叠加时会产生强烈的拍频效果。
在不同平面上的驱动点阻抗差异也可能在吉他中引起类似的效果,根据已知的情况中,振动衰减速率取决于振动平面。
对于这些效果的建模,一个简单的解决方案是使用两个数字波导,分别用于每个振动平面。
弦的张力会随着横向位移以非线性方式变化,因此如果这种纵向力可以传递到箱体中,可能会产生新的谐波。
在坎特莱尔中,由于没有桥梁而是直接由调音钉支撑弦,所以张力变化通过钉子的弯曲传递到共鸣板上,这个效应非常明显。
在[Karjalainen等,1993]中,推导出了以下关系式来描述时变的纵向力f,其中sy(x)和sz(x)是位置x处弦在两个主振动平面(y、z)上的斜率,l是弦的长度。
这种情况被用作一个例子,其中在保持弦波导理想时会出现相当大的困难,因为力与弦斜率平方的积分成正比。
分布式的非线性计算非常昂贵,因此需要一个简单的局部近似来进行实时合成。
以往拨弦乐器的物理模型在声音质量上存在问题,原因是激励信号、环路滤波器和箱体模型过于简单,在大多数波导合成模型中,根本没有考虑到箱体。
模型的输入要么是白噪声,要么是通过低阶滤波器滤波的冲激信号,并且环路滤波器的系数是手动调整的。
如果没有测量的帮助,设计更复杂的激励信号和环路滤波器是困难的,因此,试图通过真实乐器的声音估计弦乐器模型是有充分动机的。
由反滤波器产生的残差是一个短暂的爆发,对应于拨弦声音、箱体的冲激响应以及由于弦模型缺陷而产生的预测误差的组合。
通常情况下,残差会以约50毫秒的时间常数逐渐消失,在实践中,激励信号x(n)是通过从残差的起始部分截取约100毫秒,以包含吉他声音的瞬态部分。
根据振动弦的录音声音来校准环路滤波器Hl(z)的问题在1980年代初由Smith进行了仔细研究,他使用了系统辨识方法和修改后的线性预测方法来获得结果。
前一种方法得到的是IIR环路滤波器,而后一种方法得到的是FIR滤波器,这些方法在低频时表现良好,但在高频端估计值的方差非常大。
我们的实验表明,这些方法通常会导致不稳定的环路滤波器无法用于合成,除非将其改造为稳定的状态。
可以使用反卷积来计算环路滤波器的频率响应,在频域中,反卷积意味着对光谱进行除法运算,这等效于将另一个光谱的幅度值取倒数后进行乘法运算。
在此操作中,大值变小,小值变得极大,结果是噪声被放大,这种技术对于环路滤波器的幅度响应可能会产生极为嘈杂的估计值。
我们尝试了一种不同的方法来估计频率响应,而不是使用两个光谱的反卷积,我们对多个光谱进行平均处理,将环路滤波器的光谱估计表示为其中项Y(e jw ,tm )是在时刻tm计算得到的窗口化傅里叶光谱,M是这些光谱的数量,P是吉他声音的周期长度。
这种方法在低频下给出了方差相当小的估计结果,然而,在高频下的结果完全不可靠。
我们引入了一种更为稳健的新技术,用于估计环路滤波器的幅度响应。这个直观的算法包括以下步骤:
1)计算待合成吉他声音的短时傅里叶变换(STFT);
2)在STFT帧中测量每个可检测到的谐波的幅度,并为每个谐波形成一个采样的包络曲线;
3)在对数(dB)幅度刻度上对每个采样包络曲线进行直线拟合;
4)根据每个斜率计算相应的环路增益;
5)设计一个数字滤波器,以匹配由不同频率处的环路增益估计值组成的幅度谱。
在第一步中,我们使用Blackman窗口和50%或75%的重叠计算了STFT(使用FFT)。
在分析之前,应对原始信号进行预加重(例如,微分),以使其频谱变得平坦,在FFT中使用零填充可以增加幅度响应的分辨率,这是明智的做法。
通过找到靠近谐波假定频率的最大幅度值,并使用抛物线插值来找到峰值,可以测量泛音的幅度[Serra, 1989]。
分析应该在吉他声音的攻击过渡消失之后再开始,即在录制信号的包络显示指数衰减之后。
吉他声音的高次谐波很快衰减,在一段时间后由于背景噪声的影响无法检测到,因此,对谐波的测量可以在攻击之后约200-500毫秒停止。
在第4步中,环路滤波器的增益g(在所讨论的谐波频率上)可以计算为其中bk是第k个谐波的估计斜率,fk是其发生的频率,H是在STFT分析中使用的跳跃大小,K是要提取的谐波数量,L是弦模型延迟线的长度。
延迟线的长度L由分析声音的采样频率与基频之比确定,并假定为实值。
最后,可以使用得到的幅度响应作为原型来设计环路滤波器,在这里,我们假设吉他声音略微不谐和的特性在感知上并不像谐波的衰减率那样重要。
如果还尝试对弦的分散进行建模,每个谐波的频率应该被准确测量,并且在滤波器设计中应考虑相位。
从观察来看,在忽略攻击部分的情况下,古典木吉他(用手指拨弦)的声音在3或4 kHz以上的频率上能量非常微小。
基于这一观察,尝试在更高频率上估计环路滤波器的幅度响应并不重要,亮度将通过激励信号来提供给合成的吉他声音,该信号包括真实拨弦的攻击瞬态。
在高频上,环路滤波器的设计仅需要具有足够的阻尼,以使激励中包含的高频分量迅速衰减。
在图7中,显示了吉他音调的四个最低谐波的时域包络示例,直线以最小二乘意义拟合到这些曲线上,可以看到,在大多数谐波中,拟合效果相当不错。
在某些音调中,弦和琴体可能会以复杂的方式相互作用,导致一些包络出现起伏,图7中第三个谐波的奇异振荡包络就是这种行为的一个例子。
我们想指出,我们的目标是为实时合成模型设计一个低阶环路滤波器,正因为这样幅度谱最好相对平滑,即相邻的谐波应该具有相似的斜率,因为低阶滤波器的幅度响应无法完全适应相应的频谱。
因此,建议选择行为良好的音调来校准模型。
图8中的圆圈表示吉他音调(B弦,7品)的11个最低谐波频率处的环路增益值。
通常,这些增益显示了弦阻尼的低通特性,即随着频率增加,环路增益减小,如图8所示,实际情况与这个简单的假设略有偏差。
在这个例子中,较高谐波的包络非常嘈杂,因为这些谐波的相对水平非常低,所以无法估计相应的环路增益。
2.环路滤波器
在模型估计过程中的最后一步是设计一个环路滤波器,以匹配估计的幅度响应(参见图8),如果需要的话,设计一个FIR环路滤波器会比较容易。
然后,如果需要的话,该滤波器也可以具有线性相位响应,实践中发现,要准确建模弦的频率相关阻尼,需要一个相当高阶的FIR滤波器,所以我们决定使用递归滤波器来代替。
作为第一种方法,我们使用线性预测(LPC)将全极模型与环路增益的功率谱进行匹配。
在这个过程中的一个实际问题是,目标频谱只在频率带低端的一小组点上是已知的,如果在其余频带将幅度响应设置为零,LPC分析会受到严重干扰。
解决这个问题的方法是假设功率谱在高端呈指数衰减,指数应与要拟合的全极滤波器的阶数成比例。
否则,这种技巧会增加在重要频带上的逼近误差,可以得出结论,LPC方法非常关键,只有通过仔细的手动调整才能获得成功的结果。
图9:a)原始吉他音调,b)反滤波信号,c)重新合成的信号。
迭代IIR滤波器设计:显然,对于环路滤波器来说,最高效的结构是具有极点和零点的无限脉冲响应(IIR)滤波器。
作为示例,在图8的情况下,我们使用一种迭代算法设计了一个一阶IIR滤波器,该算法交替调整滤波器系数以达到逼近误差的最小值。
与给定点匹配的IIR环路滤波器的幅度响应显示在图8中,从这个例子中可以看出,这种低阶滤波器无法准确建模每个谐波的增益,只能与期望频谱具有相同的大致形状。
在设计这个滤波器时,我们使用了一个错误加权函数,对接近单位的点的误差进行惩罚,这确保了得到的幅度响应不会超过单位,并且匹配效果最好的是最低的谐波,它们的衰减率可以更容易地听到。
由于在高频上缺乏可靠的增益估计,我们在目标频谱中使用了零值,以实现低通特性。
图9显示了在图7中分析的吉他音调的波形,经过反滤波后的残差以及重新合成的版本,该示例使用了公式(8)中的环路滤波器。
重新合成中的激励信号是通过截取图9b的前100毫秒的残差形成的,可以看到,重新合成信号的攻击几乎与原始信号完全相同。
重新合成的音色听起来明显像吉他,但与原始音色相比,可以感觉到它衰减得更快一些,尽管如此,与之前使用人工激励的模型相比,这种方法产生了更加真实的合成音色,当然,通过更仔细地设计或使用更高阶的环路滤波器,重新合成仍然可以进一步改进。
尽管原则上每个音调应该使用不同的环路滤波器和激励信号,但我们尝试了使用相同的激励信号和环路滤波器,只是不同的延迟线长度进行合成,并获得了令人信服的结果。
这意味着只需要存储相对较少数量的激励信号,这是基于模型的吉他合成器相对于采样合成的一个优点,采样合成在广泛的演奏范围内需要存储大量采样数据才能实现良好的音质。
吉他的当前模型具有大量参数,其中许多参数在每次演奏音符时都必须更新,在大多数情况下,直接控制所有这些参数是不切实际的,而是只发送基本控制信息,并自动计算未提供的值。
在这个阶段,还可以考虑当前的音乐背景,除此之外为了实现逼真的结果,应该包括人类演奏者的物理模型(例如,手指运动的速度受限)。
接下来,我们将讨论一些实时合成模型的控制方法。这里使用的控制界面将控制输入(例如音符)转换为模型参数(见图10)。
在通常的现场表演情况下,控制界面必须立即响应传入的控制事件,这意味着它不能考虑未来的事件,导致音符转换的控制效果不佳。
如果不需要严格的实时性能,引入适当的处理延迟可以解决这个问题,除了这些,在吉他合成控制中,这种方法可以实现最佳的弦分配。
通过对输入进行离线预处理,可以详细分析音乐背景,并生成内部表示或新的MIDI序列。
如果输入是音乐描述语言,可以通过在乐谱中包含特殊信息来显式控制合成过程,然而,在这种情况下,大多数参数也可以自动调整。
笔者观点
通过讨论如何估计数字滤波器,以模拟波导弦模型延迟环路中频率依赖衰减的情况,我们对弦的更复杂行为建模进行了研究,例如双倍长度行为和非线性效应。
我们在一台使用QuickC30软件环境的TMS320C30信号处理器上实现了所描述的吉他模型,该信号处理器运行在一台苹果Macintosh计算机上。
这个DSP系统可以以22.05 kHz的采样率实时运行六弦吉他模型,合成模型可以通过MIDI或基于Lisp的特殊序列器进行控制。
参考文献
1.[Adrien and Rodet, 1985] Jean-Marie Adrien and Xavier
Rodet. Physical models of instruments: A modular ap
proach, application to strings. In Proc. ICMC’85, pp. 85-
89, Vancouver, 1985.
2.[Bresin et al., 1992] Roberto Bresin, Giovanni De Poli, and
Alvise Vidolin. Symbolic and sub-symbolic rules system
for real-time score performance. In Proc. ICMC'92, pp.
211-214, San Jose, 1992.
3.[Chung, 1992] Joseph T. Chung. Hyperlisp Reference
Manual, MIT Media Laboratory, 1992.
[Fletcher and Rossing, 1991] Neville H. Fletcher and
Thomas D. Rossing. The Physics of Musical Instruments,
Springer Verlag, New York, 1991.
标签: #最小二乘曲线拟合基本步骤