我是 DSP 的新手,我正在尝试获取一个 wav(人类语音)文件并应用 ARMA 过滤器并在 python 中绘制它的 PSD 图。
我看到有很多 AR 实现,但几乎没有 ARMA。我发现只有 statsmodel 实现了 ARMA,但它要求数据是静止的(但滞后 30 的声音几乎是静止的)
有没有人有我可以用来绘制的工作代码?如果没有,我将很高兴获得有关如何实施它的一些参考。
提前致谢!
我是 DSP 的新手,我正在尝试获取一个 wav(人类语音)文件并应用 ARMA 过滤器并在 python 中绘制它的 PSD 图。
我看到有很多 AR 实现,但几乎没有 ARMA。我发现只有 statsmodel 实现了 ARMA,但它要求数据是静止的(但滞后 30 的声音几乎是静止的)
有没有人有我可以用来绘制的工作代码?如果没有,我将很高兴获得有关如何实施它的一些参考。
提前致谢!
我不知道在 Python 中,但是这个简单的 matlab/octave 循环代码:
function y=arma(x,A,B)
na=length(A);
n=length(x);
y(1:na,1)=zeros(na,1);
for i=na:n
y(i,1)=1/A(1)*A(2:na)*y(i-1:-1:i-na+1)+1/A(1)*B*x(i:-1:i-na+1);
end
使用多项式实现 ARMA 过滤器,,例如按照这个 5 阶过滤器:
A=[1 0 0 0 0 0];
B=[0 0.2 0.2 0.2 0.2 0.2];
n=1000; dt=0.001;
t=dt*(0:n-1)';
x=randn(n,1);
y=arma(x,A,B);
plot(t,[x y]);