1 Example
1.1 因果性
上一篇简单介绍了系统的因果稳定性,讲的来好像就是那么回事的,那实际应用会是个什么样子的呢,这里举个简单例子说明一下
ATF(acoustic transfer function)常用来描述声音从声源到麦克风间的传输情况,用RIR-Generator的方法可以很方便产生ATF
example_3
[s,fs] = audioread('an103-mtms-senn4.wav');
x = conv(s,h);
产生的
h
h
h如下
上面代码中得到的
x
x
x即可模拟真实环境中带混响的录音信号
现在我们需要从估计从
s
s
s到
x
x
x的传输函数,
x
x
x是
s
s
s经过实际物理过程(与h卷积)得到的,因此这个系统肯定是个因果系统,先不去深究系统辨识(system identification)的问题了,直接调用matla函数测试
txy =tfestimate(s,x(1:length(s)),[],[],[],[],'twoside');
itxy = ifft(txy);
NFFT = length(itxy);
figure,plot(-(NFFT/2-1):NFFT/2,fftshift(itxy)),title('estimate ATF');
得到估计ATF如下
从图中可以看到,估计得到的h是个因果系统(负半轴为0)。
那么接下来,我们估计从x1到s的系统,因为x1是滞后于s的,系统输入x1输出s,输出超前于输入,从这个分析看,这个系统肯定是个非因果系统,用代码验证一下
txy =tfestimate(x(1:length(s)),s,[],[],[],[],'twoside');
itxy = ifft(txy);
NFFT = length(itxy);
figure,plot(-(NFFT/2-1):NFFT/2,fftshift(itxy)),title('estimate ATF');
从图中可以看到,估计得到的h负半轴有值,因此这是一个非因果系统
1.2 稳定性
还是上面的例子,首先,我们从s与h卷积得到x,相应z变换如下
X
(
Z
)
=
H
(
Z
)
S
(
Z
)
X(Z)=H(Z)S(Z)
X(Z)=H(Z)S(Z)
上面已经知道这里的
H
(
Z
)
H(Z)
H(Z)是一个因果稳定的系统,得到的
X
(
Z
)
X(Z)
X(Z)是一个带混响的信号,现在,我们来估计从x到s的系统,也就是下式
S
(
Z
)
=
G
(
Z
)
X
(
Z
)
S(Z)=G(Z)X(Z)
S(Z)=G(Z)X(Z)
咋一看,这还不简单,求逆呗,如下式
G
(
Z
)
=
1
H
(
Z
)
G(Z)=\frac{1}{H(Z)}
G(Z)=H(Z)1
那么来分析一下
G
(
Z
)
G(Z)
G(Z)的稳定性
H
(
Z
)
H(Z)
H(Z)是一个FIR系统,只有零点,是稳定的,用matlab画出零极点图
figure,zplane(h,1)
点数有点多看不太清楚,不过还是可以看到FIR滤波器在
z
=
0
z=0
z=0处有
N
N
N阶极点1,其余全部是零点,上图中可以看出,
H
(
Z
)
H(Z)
H(Z)的有零点分布在单位圆外,而
H
(
Z
)
H(Z)
H(Z)的零点是
G
(
Z
)
G(Z)
G(Z)极点,因此,直接翻转
H
(
Z
)
H(Z)
H(Z)得到的
G
(
Z
)
G(Z)
G(Z)会有极点在单位圆外,因此是不稳定的。这也可以得到一个结论:
一个因果稳定的系统只有当它零极点全部在z平面的单位圆内时,它的翻转系统才可能是因果稳定的,这样的系统也被叫做最小相位系统(minimum-phase system)
a stable, causal system has a stable and causal inverse only if both its poles and zeros are inside the unit circle. Such a system is commonly referred to as a minimum-phase system