0

我正在尝试通过AR 模型LPC 合成IIR 全极点滤波器模型来完成语音合成的过程,无论你怎么称呼它。

主要思想是得到自相关(AR)系数估计误差,然后使用AR系数对估计误差进行滤波,我们可以得到重构信号。

**MATLAB CODE**

data = [1 2 1 3 5 1 2 5];
% auto correlation coefficients
a = lpc(data, 4);

% estimated signal
est = filter([0 -a(2:end)],1,data);
% estimated error
e = data - est;
% reconstructed signal
rec = filter(1,a,e);

您将准确地看到 rec == 数据。

现在是我的问题。

我正在尝试将模型转换为 Latices 实现。查找 Matlab 参考后,原来我应该使用

tf2latc

将传递函数转换为格实现和

latcfilt

使用晶格过滤数据。

简单地重复上面的过程是行不通的。

所以我在以下几个方面寻求帮助:

1) 使用 tr2latc 和 latcfilt 函数执行构建过滤器的完整过程的示例。2) 使用 lattice 实现进行语音重建的示例。

谢谢

4

1 回答 1

1

好吧,我终于得到了答案。

从传递函数,我们可以得到晶格实现系数。然后用 latcfilt 过滤。

a = [1 3 1 4 4];
[k v] = tf2latc(1,a)
x = [1 2 1 3 4 1 5];
filter(1,a,x)
latcfilt(k,v,x)

然后你可以看到两个过滤器给出了相同的结果。

于 2013-05-20T02:06:08.817 回答