耦合两个谐振带通滤波器?(模拟吉他/钢琴弦乐效果)

信息处理 过滤器 带通 减震 谐振
2022-02-03 02:24:50

吉他或钢琴弦的声音的主要部分来自水平和垂直弦振动的耦合。这个概念在这里用传递函数描述。

本文介绍了如何将水平振动和垂直振动之间的相互作用建模为通过理想变压器耦合的两根弦:

在此处输入图像描述

垂直 > 水平传输的转换比估计为 5:1:

决定耦合程度的琴桥处垂直与水平琴弦速度的转换比 n:1 假定为 n=5,这是 Mori 等人测量的三角钢琴的值 [9]。

森等人。这里

水平反射波的幅度约为垂直输入幅度的 1/10。从这个结果可以认为反射的变换比是5:1,因为观测波由直接分量和被桥反射的分量组成;输入脉冲、垂直反射和水平反射之比为5:4:1。

我正在使用谐振带通滤波器阵列对字符串进行建模。我打算以这种方式让一个阵列用于水平振动,一个阵列用于垂直振动,并按照描述将它们耦合。

我在一个非常基本的意义上想知道 - 你如何像这样耦合带通?在最简单的情况下,让我们想象一个带通用于水平,一个带通用于垂直。我让他们俩都兴奋。然后我是否只需将一个输出的一小部分(延迟一个样本)输入另一个输入,反之亦然?我会稍微衰减每个带通以补偿耦合造成的能量损失,这样它们就不会变得无限持续吗?

例如。这是我在 C++ 中的想法:

bandpass1.setQ(1/((1/bandpass1Q) + (1/couplingQ)));
bandpass2.setQ(1/((1/bandpass2Q) + (1/couplingQ)));

double bandpass1Output = bandpass1.nextSample(exciter + bandpass2Output_z1);
double bandpass2Output = bandpass2.nextSample(exciter + bandpass1Output_z1);

double bandpass1Output_z1 = bandpass1Output * 0.1;
double bandpass2Output_z1 = bandpass2Output * 0.1;

那有意义吗?原则上,我添加了一点阻尼(couplingQ)来补偿耦合造成的能量损失。然后,我从每个带通中提取先前样本输出的一部分,并将其馈送到另一个带通中。

这是正确的原则吗?如果是这样,我将在每个样品中从一个到另一个进料以模拟所描述的 5:1 转换比的百分比是多少?我将如何计算耦合Q?

任何指导将不胜感激。谢谢。

0个回答
没有发现任何回复~