gpt4 book ai didi

audio - 解释这个 DSP 符号

转载 作者:行者123 更新时间:2023-12-01 10:14:55 27 4
gpt4 key购买 nike

我正在尝试实现 this extenstion的 Karplus-Strong 弹拨弦算法,但我不明白那里使用的符号。也许需要多年的学习,但也许不会——也许你可以告诉我。

我认为下面的方程是在频域之类的。从第一个方程 Hp(z) 开始,选择方向低通滤波器。对于一个方向,您使用 p = 0,对于另一个方向,可能是 0.9。在第一种情况下归结为 1,在第二种情况下归结为 0.1/(1 - 0.9 z-1)。

alt text http://www.dsprelated.com/josimages/pasp/img902.png

现在,我觉得这在编码方面可能意味着:

H_p(float* input, int time) {
if (downpick) {
return input[time];
} else {
return some_function_of(input[t], input[t-1]);
}
}

有人可以给我提示吗?或者这是徒劳的,我真的需要所有的 DSP 背景来实现它吗?我曾经是一名数学家...但这不是我的领域。

最佳答案

所以 z-1 只是意味着一个单位的延迟。

让我们取 Hp = (1-p)/(1-pz-1)。

如果我们遵循输入为“x”,输出为“y”的约定,传递函数 H = y/x (=output/input)

所以我们得到 y/x = (1-p)/(1-pz-1)

或 (1-p)x = (1-pz-1)y

(1-p)x[n] = y[n] - py[n-1]

或:y[n] = py[n-1] + (1-p)x[n]

在C代码中这可以实现

y += (1-p)*(x-y);

除了将输出“y”用作状态变量本身之外,没有任何其他状态。或者您可以采用更直接的方法:

y_delayed_1 = y;
y = p*y_delayed_1 + (1-p)*x;

就其他方程而言,它们都是典型的方程,除了第二个方程,它看起来可能是选择 HBT = 1-z-1 的一种方式 或 1-z-2。 (N 是什么?)

过滤器有点模糊,除非您能找到一些预先打包的过滤器,否则您会更难处理它们。一般来说,它们的形式是

H = H0*(1+az-1+bz-2+cz-3...)/(1+ rz-1+sz-2+tz-3...)

你所做的就是写下 H = y/x,交叉相乘得到

H0 * (1+az-1+bz-2+cz-3...) * x = (1+ rz-1+sz-2+tz-3...) * y

然后单独隔离“y”,使输出“y”成为其自身和输入的各种延迟的线性函数。

但在大多数情况下,设计过滤器(选择 a、b、c 等)比实现它们更难。

关于audio - 解释这个 DSP 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1918772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com