我正在学习信号处理,目前我必须在 Matlab 中做一个语音合成器。为了模拟嘴的谐振器系统,我有这个传递函数:
R(z) = 1 - z ^(-1)
我可以在 Matlab 中实现这个带有过滤功能的系统吗?我不知道如何提取系数“a”和“b”......
注意:y = filter(b, a, x),其中 x 是我们必须过滤的输入信号。
谢谢你们!
我正在学习信号处理,目前我必须在 Matlab 中做一个语音合成器。为了模拟嘴的谐振器系统,我有这个传递函数:
R(z) = 1 - z ^(-1)
我可以在 Matlab 中实现这个带有过滤功能的系统吗?我不知道如何提取系数“a”和“b”......
注意:y = filter(b, a, x),其中 x 是我们必须过滤的输入信号。
谢谢你们!
查阅 的文档filter
,您可以将传递函数表示为系数的有理函数,使得:
您想要的所需传递函数Y(z) / X(z) = R(z)
等于:
R(z) = 1 - z^{-1}
这里a(1)
隐式等于 1。因此,b(1) = 1
并b(2) = -1
参考上述等式。a(1)
除等于 1外,分母中的所有系数均为 0 。
因此,a = 1; b = [1 -1];
过滤您的信号很简单:
a = 1; b = [1 -1];
y = filter(b, a, x);
x
是您要过滤的感兴趣的信号。