变换的基本概念和基本定理
基本概念
给定函数x(t),按照某种法则T,指定新的函数y(t),那么记成
y
(
t
)
=
T
[
x
(
t
)
]
y(t)=T[x(t)]
y(t)=T[x(t)]
类似地,给定随机过程X(t),按照法则T,得到
Y
(
t
)
=
T
[
X
(
t
)
]
Y(t)=T[X(t)]
Y(t)=T[X(t)]
每个时刻都进行变换,上式整体表示一簇变换。用信号与系统的观点,
变换有随机性变换和确定性变换两种。对于某个实验结果ei,对应一个特定的时间函数x(t,ei),用这个信号作为系统的输入,得到一个特定的输出函数y(t,ei),是Y(t)对应ei的一个样本。上述所谓的随机性是输入随机,而不是变换随机,这叫确定性变换。变换如果也是随机的,叫随机性变换,这里不考虑。
复习一点线性系统:
齐次性、可加性
举当初比较迷的例子:
类似于线性系统,这里引入线性变换的定义:
L
[
A
1
X
1
(
t
)
+
A
2
X
2
(
t
)
]
=
A
1
L
[
X
1
(
t
)
]
+
A
2
L
[
X
2
(
t
)
]
L[A_1X_1(t)+A_2X_2(t)]=A_1L[X_1(t)]+A_2L[X_2(t)]
L[A1X1(t)+A2X2(t)]=A1L[X1(t)]+A2L[X2(t)]
则称L是线性变换。而若
Y
(
t
+
ϵ
)
=
L
[
X
(
t
+
ϵ
)
]
Y(t+\epsilon)=L[X(t+\epsilon)]
Y(t+ϵ)=L[X(t+ϵ)]
则称L是线性时不变的。
基本定理
1
输出的数学期望等于输入的数学期望线性变换的结果。另一种理解,L和E两个算子可以互相交换顺序。
E
[
Y
(
t
)
]
=
L
{
E
[
X
(
t
)
]
}
E[Y(t)]=L\{E[X(t)]\}
E[Y(t)]=L{E[X(t)]}
严格证明用概率论中的大数定理,这里不写了。就是样本函数取到无穷多时,
Y
(
t
)
‾
=
L
{
X
(
t
)
‾
}
\overline {Y(t)}=L\{\overline {X(t)}\}
Y(t)=L{X(t)},而无穷的样本均值根据大数定理就是期望。
2
R
X
Y
(
t
1
,
t
2
)
=
L
t
2
[
R
X
(
t
1
,
t
2
)
]
R_{XY}(t_1,t_2)=L_{t_2}[R_X(t_1,t_2)]
RXY(t1,t2)=Lt2[RX(t1,t2)]
R
Y
(
t
1
,
t
2
)
=
L
t
1
[
R
X
Y
(
t
1
,
t
2
)
]
=
L
t
1
⋅
L
t
2
[
R
X
(
t
1
,
t
2
)
]
R_Y(t_1,t_2)=L_{t_1}[R_{XY}(t_1,t_2)]=L_{t_1}\cdot L_{t_2}[R_X(t_1,t_2)]
RY(t1,t2)=Lt1[RXY(t1,t2)]=Lt1⋅Lt2[RX(t1,t2)]
Lt1表示对t1做L变换,Lt2同理。这个没上个好理解。
因为
X
(
t
1
)
Y
(
t
)
=
X
(
t
1
)
L
[
X
(
t
)
]
=
L
[
X
(
t
1
)
X
(
t
)
]
X(t_1)Y(t)=X(t_1)L[X(t)]=L[X(t_1)X(t)]
X(t1)Y(t)=X(t1)L[X(t)]=L[X(t1)X(t)]就是不先直接把互相关的两个时间参数都换成随机的,先定一个t1,由于函数固定,又是线性系统,就可以直接将L算子放到外面。然后像下面一样引入期望、进行计算。
E
[
X
(
t
1
)
Y
(
t
)
]
=
E
{
L
[
X
(
t
1
)
X
(
t
)
]
}
=
L
{
E
[
X
(
t
1
)
X
(
t
)
]
}
E[X(t_1)Y(t)]=E\{L[X(t_1)X(t)]\}=L\{E[X(t_1)X(t)]\}
E[X(t1)Y(t)]=E{L[X(t1)X(t)]}=L{E[X(t1)X(t)]}
这时候令t=t_2,就有
R
X
Y
(
t
1
,
t
2
)
=
L
t
2
[
R
X
(
t
1
,
t
2
)
]
R_{XY}(t_1,t_2)=L_{t_2}[R_X(t_1,t_2)]
RXY(t1,t2)=Lt2[RX(t1,t2)]
同理,有
R
Y
(
t
1
,
t
2
)
=
L
t
1
[
R
X
Y
(
t
1
,
t
2
)
]
R_Y(t_1,t_2)=L_{t_1}[R_{XY}(t_1,t_2)]
RY(t1,t2)=Lt1[RXY(t1,t2)]上面一坨用到的本质就是分解成两步,先从两个中抽出来一个假想成已知的,得出结论;然后再这两步是一样的,把得到的结论再用在那个未知 的上,这么重复一遍就两个同时未知的时候也可以表示了。粗暴理解成求输出和输入的互相关时变得还不彻底,还留着前面t1的一份,所以结果一半是变换后的Y,一半还是原来的X, 就叫输入和输出的关系。而如果用同样的方法,已经拿到了RXY,再利用
E
[
Y
(
t
′
)
Y
(
t
)
]
=
L
{
E
{
L
[
X
(
t
′
)
X
(
t
)
}
}
E[Y(t')Y(t)]=L\{E\{L[X(t')X(t)\}\}
E[Y(t′)Y(t)]=L{E{L[X(t′)X(t)}}
=
L
{
L
{
E
[
X
(
t
′
)
X
(
t
)
]
}
}
=
L
t
1
[
R
X
Y
(
t
′
,
t
)
]
=L\{L\{E[X(t')X(t)]\}\}=L_{t_1}[R_{XY}(t',t)]
=L{L{E[X(t′)X(t)]}}=Lt1[RXY(t′,t)]这样变完就是Y的自协方差。
L
t
1
⋅
L
t
2
L_{t_1}\cdot L_{t_2}
Lt1⋅Lt2表示复合算子。那根据归纳法,输出的k阶矩可以用输入的相应阶矩确定。假定系统是线性时不变的,那线性变换维持原随机过程严平稳或广义平稳的特性。
上面那个例子已经得出简单的积分系统是线性的。这里看一看导数的情况,只不过把确定的输入函数换作随机过程计算。
例如,某一随机过程经过求导系统
L
=
d
d
t
L=\frac{d}{dt}
L=dtd
X
˙
(
t
)
=
d
X
(
t
)
d
t
\dot X(t)=\frac{dX(t)}{dt}
X˙(t)=dtdX(t)满足线性性质。
用定理1交换算子
E
[
X
˙
(
t
)
]
=
E
{
[
X
(
t
)
]
}
=
L
{
E
[
X
(
t
)
]
}
E[\dot X(t)]=E\{[X(t)]\}=L\{E[X(t)]\}
E[X˙(t)]=E{[X(t)]}=L{E[X(t)]}
m
X
˙
(
t
)
=
d
m
X
(
t
)
d
t
m_{\dot X}(t)=\frac{dm_X(t)}{dt}
mX˙(t)=dtdmX(t)
根据定理2,得到XY(这里就是X和
X
˙
\dot X
X˙了)互相关函数
R
X
X
˙
(
t
1
,
t
2
)
=
L
t
2
[
R
X
(
t
1
,
t
2
)
]
=
∂
R
X
(
t
1
,
t
2
)
∂
t
2
R_{X\dot X}(t_1,t_2)=L_{t_2}[R_X(t_1,t_2)]=\frac{\partial R_X(t_1,t_2)}{\partial t_2}
RXX˙(t1,t2)=Lt2[RX(t1,t2)]=∂t2∂RX(t1,t2)
自相关函数
R
X
˙
(
t
1
,
t
2
)
=
L
t
1
[
R
X
X
˙
(
t
1
,
t
2
)
]
=
∂
R
X
X
˙
(
t
1
,
t
2
)
∂
t
1
=
∂
2
R
X
(
t
1
,
t
2
)
∂
t
1
∂
t
2
R_{\dot X}(t_1,t_2)=L_{t_1}[R_{X\dot X}(t_1,t_2)]=\frac{\partial R_{X\dot X}(t_1,t_2)}{\partial t_1}=\frac{\partial ^2R_X(t_1,t_2)}{\partial t_1\partial t_2}
RX˙(t1,t2)=Lt1[RXX˙(t1,t2)]=∂t1∂RXX˙(t1,t2)=∂t1∂t2∂2RX(t1,t2)
如果X(t)是平稳的,
m
X
˙
(
t
)
=
0
m_{\dot X}(t)=0
mX˙(t)=0
R
X
X
˙
(
τ
)
=
−
d
R
X
(
τ
)
d
τ
R_{X\dot X}(\tau)=-\frac{dR_X(\tau)}{d\tau}
RXX˙(τ)=−dτdRX(τ)
R
X
˙
(
τ
)
=
d
R
X
X
˙
(
τ
)
d
τ
=
−
d
2
R
X
(
τ
)
d
τ
2
R_{\dot X}(\tau)=\frac{dR_{X\dot X}(\tau)}{d\tau}=-\frac{d^2R_X(\tau)}{d\tau ^2}
RX˙(τ)=dτdRXX˙(τ)=−dτ2d2RX(τ)互功率谱
G
X
X
˙
(
ω
)
=
−
j
ω
G
X
(
ω
)
G_{X\dot X}(\omega)=-j\omega G_X(\omega)
GXX˙(ω)=−jωGX(ω)功率谱
G
X
˙
(
ω
)
=
j
ω
G
X
X
˙
(
ω
)
=
ω
2
G
X
(
ω
)
G_{\dot X}(\omega)=j\omega G_{X\dot X}(\omega)=\omega ^2G_X(\omega)
GX˙(ω)=jωGXX˙(ω)=ω2GX(ω)其中
R
X
X
˙
(
τ
)
R_{X\dot X}(\tau)
RXX˙(τ)是奇函数。
R
X
X
˙
(
0
)
=
0
R_{X\dot X}(0)=0
RXX˙(0)=0。平稳随机过程X(t)和它的导数
X
˙
(
t
)
\dot X(t)
X˙(t)在同一时刻是正交的、不相关的,如果X(t)是正态分布,它们就也是独立的。
随机过程通过线性系统分析
冲激响应法
完全与《信号与系统》第二章的内容类似。把输入信号的函数表示改成大写表示它有随机性就完了。加深理解,复习为什么与系统冲激响应进行卷积就可以表示输出信号了:(先后利用LTI系统时不变、齐次、线性性好理解,最后一步类似从周期傅里叶级数推出傅里叶变换,又时间间隔的连续变化,将离散和写成连续积分的形式(常 用 技 巧)。)
再进一步,(上步相当于卷积的原理,这步相当于在上面每一步根据系统相应寒素再重复利用一遍LTI系统性质)将冲激函数改成系统冲激响应函数,就能求输出了。推导的方法和上面的一样(当时的重点)。
便于快速计算,从网络摘取一些算好的公式,包括卷积和的情况:
回忆信号通过线性系统的零状态相应,有两种求解方法。传统的就是直接求卷积;高级一点就是先把输入看成冲激信号经过某个系统的响应,然后计算时把卷积转化成乘法,最后再变回来,简单了一点。对于随机过程,输入不知道是什么东西,后面的有点困难,就用前一个写一写。
Y
(
t
)
=
∫
−
∞
∞
X
(
t
−
τ
)
h
(
τ
)
d
τ
=
∫
−
∞
∞
X
(
τ
)
h
(
t
−
τ
)
d
τ
=
h
(
t
)
∗
X
(
t
)
Y(t)=\int_{-\infty}^{\infty}X(t-\tau)h(\tau)d\tau=\int_{-\infty}^{\infty}X(\tau)h(t-\tau)d\tau=h(t)*X(t)
Y(t)=∫−∞∞X(t−τ)h(τ)dτ=∫−∞∞X(τ)h(t−τ)dτ=h(t)∗X(t)
输入不是确定的,但根据某一时刻的输入求出来输出均值还是星的。
m
Y
(
t
)
=
L
[
m
X
(
t
)
]
=
h
(
t
)
∗
m
X
(
t
)
=
∫
−
∞
∞
m
X
(
t
−
τ
)
h
(
τ
)
d
τ
m_Y(t)=L[m_X(t)]=h(t)*m_X(t)=\int_{-\infty}^{\infty}m_X(t-\tau)h(\tau)d\tau
mY(t)=L[mX(t)]=h(t)∗mX(t)=∫−∞∞mX(t−τ)h(τ)dτ
再者,如果X(t)是平稳的,
m
Y
=
∫
−
∞
∞
m
X
h
(
τ
)
d
τ
=
m
X
∫
−
∞
∞
h
(
τ
)
d
τ
=
m
X
H
(
0
)
m_Y=\int_{-\infty}^{\infty}m_Xh(\tau)d\tau=m_X\int_{-\infty}^{\infty}h(\tau)d\tau=m_XH(0)
mY=∫−∞∞mXh(τ)dτ=mX∫−∞∞h(τ)dτ=mXH(0)
H(0)是系统传递函数在
ω
=
0
\omega=0
ω=0处的值。
输入和输出的互相关函数
R
X
Y
(
t
1
,
t
2
)
=
L
t
2
[
R
X
(
t
1
,
t
2
)
]
=
h
(
t
2
)
∗
R
X
(
t
1
,
t
)
=
∫
−
∞
∞
R
X
(
t
1
,
t
2
−
u
)
h
(
u
)
h
(
u
)
d
u
R_{XY}(t_1,t_2)=L_{t_2}[R_X(t_1,t_2)]=h(t_2)*R_X(t_1,t_)=\int_{-\infty}^{\infty}R_X(t_1,t_2-u)h(u)h(u)du
RXY(t1,t2)=Lt2[RX(t1,t2)]=h(t2)∗RX(t1,t)=∫−∞∞RX(t1,t2−u)h(u)h(u)du
输出的自相关函数
R
Y
(
t
1
,
t
2
)
=
L
t
1
[
R
X
Y
(
t
1
,
t
2
)
]
=
h
(
t
2
)
∗
R
X
Y
(
t
1
,
t
2
)
=
∫
−
∞
∞
R
X
Y
(
t
1
−
u
,
t
2
)
h
(
u
)
d
u
R_Y(t_1,t_2)=L_{t_1}[R_{XY}(t_1,t_2)]=h(t_2)*R_{XY}(t_1,t_2)=\int_{-\infty}^{\infty}R_{XY}(t_1-u,t_2)h(u)du
RY(t1,t2)=Lt1[RXY(t1,t2)]=h(t2)∗RXY(t1,t2)=∫−∞∞RXY(t1−u,t2)h(u)du十分容易混淆卷积过程中到底谁减了u。还需注意,这里写成了u不是τ了,因为平稳过程中那个时间差用了τ,再用就容易混了。
综合上面的自相关函数和互相关函数,
R
Y
(
t
1
,
t
2
)
=
h
(
t
1
)
∗
R
X
Y
(
t
1
,
t
2
)
=
h
(
t
1
)
∗
h
(
t
2
)
∗
R
X
(
t
1
,
t
2
)
R_Y(t_1,t_2)=h(t_1)*R_{XY}(t_1,t_2)=h(t_1)*h(t_2)*R_X(t_1,t_2)
RY(t1,t2)=h(t1)∗RXY(t1,t2)=h(t1)∗h(t2)∗RX(t1,t2)
同理,有
R
Y
X
(
t
1
,
t
2
)
=
h
(
t
1
)
∗
R
X
(
t
1
,
t
2
)
R_{YX}(t_1,t_2)=h(t_1)*R_X(t_1,t_2)
RYX(t1,t2)=h(t1)∗RX(t1,t2)
R
Y
(
t
1
,
t
2
)
=
h
(
t
2
)
∗
R
Y
X
(
t
1
,
t
2
)
R_Y(t_1,t_2)=h(t_2)*R_{YX}(t_1,t_2)
RY(t1,t2)=h(t2)∗RYX(t1,t2)
如果X(t)是平稳随机过程 ,
R
X
Y
(
t
1
,
t
2
)
=
∫
−
∞
∞
R
X
(
t
1
,
t
2
−
u
)
h
(
u
)
d
u
=
∫
−
∞
∞
R
X
(
t
1
−
t
2
+
u
)
h
(
u
)
d
u
=
∫
−
∞
+
∞
R
X
(
τ
+
u
)
h
(
u
)
d
u
R_{XY}(t_1,t_2)=\int_{-\infty}^\infty R_X(t_1,t_2-u)h(u)du=\int_{-\infty}^{\infty}R_X(t_1-t_2+u)h(u)du=\int_{-\infty}^{+\infty}R_X(\tau+u)h(u)du
RXY(t1,t2)=∫−∞∞RX(t1,t2−u)h(u)du=∫−∞∞RX(t1−t2+u)h(u)du=∫−∞+∞RX(τ+u)h(u)du
那就是
R
X
Y
(
τ
)
=
h
(
−
τ
)
∗
R
X
(
τ
)
R_{XY}(\tau)=h(-\tau)*R_X(\tau)
RXY(τ)=h(−τ)∗RX(τ)
同理
R
Y
(
t
1
,
t
2
)
=
∫
−
∞
∞
R
X
Y
(
t
1
−
u
,
t
2
)
h
(
u
)
d
u
=
∫
−
∞
∞
R
X
Y
(
t
1
−
t
2
−
u
)
h
(
u
)
d
u
=
∫
−
∞
∞
R
X
Y
(
τ
−
u
)
h
(
u
)
d
u
R_Y(t_1,t_2)=\int_{-\infty}^{\infty}R_{XY}(t_1-u,t_2)h(u)du=\int_{-\infty}^{\infty}R_{XY}(t_1-t_2-u)h(u)du=\int_{-\infty}^{\infty}R_{XY}(\tau-u)h(u)du
RY(t1,t2)=∫−∞∞RXY(t1−u,t2)h(u)du=∫−∞∞RXY(t1−t2−u)h(u)du=∫−∞∞RXY(τ−u)h(u)du也就是
R
Y
(
τ
)
=
h
(
τ
)
∗
R
X
Y
(
τ
)
R_Y(\tau)=h(\tau)*R_{XY}(\tau)
RY(τ)=h(τ)∗RXY(τ)
R
Y
(
τ
)
=
h
(
−
τ
)
∗
h
(
τ
)
∗
R
X
(
τ
)
R_Y(\tau)=h(-\tau)*h(\tau)*R_X(\tau)
RY(τ)=h(−τ)∗h(τ)∗RX(τ)
R
Y
X
(
τ
)
=
h
(
τ
)
∗
R
X
(
τ
)
R_{YX}(\tau)=h(\tau)*R_X(\tau)
RYX(τ)=h(τ)∗RX(τ)
R
Y
(
τ
)
=
h
(
−
τ
)
∗
R
Y
X
(
τ
)
R_Y(\tau)=h(-\tau)*R_{YX}(\tau)
RY(τ)=h(−τ)∗RYX(τ)以上诸式看似写了一坨,实际上都是基于线性变换那个第二个定理做了一步推广得到的。所以关键在记住最初的那一坨性质。刚才推的记忆会比较迷,但只要抓住卷一个是不彻底的,两个中有个变化前的,是互协方差;而卷两个就全是变完的了,那就感觉还行。至于平稳随机过程,就还是把t1 t2换成了τ来写,需要看看系统传递函数中的t经过推导也成了τ,整挺好的。这波的关键就是利用平稳随机过程只与时间差有关的性质,把位于t1 t2的时间中的t2拉回了原点。就是那个
R
Y
(
t
1
,
t
2
)
=
∫
−
∞
∞
R
X
Y
(
t
1
−
u
,
t
2
)
h
(
u
)
d
u
=
∫
−
∞
∞
R
X
Y
(
t
1
−
t
2
−
u
)
h
(
u
)
d
u
=
∫
−
∞
∞
R
X
Y
(
τ
−
u
)
h
(
u
)
d
u
R_Y(t_1,t_2)=\int_{-\infty}^{\infty}R_{XY}(t_1-u,t_2)h(u)du=\int_{-\infty}^{\infty}R_{XY}(t_1-t_2-u)h(u)du=\int_{-\infty}^{\infty}R_{XY}(\tau-u)h(u)du
RY(t1,t2)=∫−∞∞RXY(t1−u,t2)h(u)du=∫−∞∞RXY(t1−t2−u)h(u)du=∫−∞∞RXY(τ−u)h(u)du。
例如
上图基本RC电路输入为零均值平稳随机过程,相关函数
R
X
(
τ
)
=
e
−
β
∣
τ
∣
R_X(\tau)=e^{-\beta|\tau|}
RX(τ)=e−β∣τ∣求稳态输出Y(t)的自相关函数。
根据电基知识,冲激响应
h
(
t
)
=
1
R
C
e
−
α
t
U
(
t
)
h(t)=\frac{1}{RC}e^{-\alpha t}U(t)
h(t)=RC1e−αtU(t)
输入与输出的自相关函数
R
X
Y
(
τ
)
=
h
(
−
τ
)
∗
R
X
(
τ
)
=
∫
0
+
∞
R
X
(
τ
+
u
)
h
(
u
)
d
u
=
∫
0
+
∞
e
−
β
∣
τ
+
u
∣
α
e
−
α
u
d
u
R_{XY}(\tau)=h(-\tau)*R_X(\tau)=\int_{0}^{+\infty}R_X(\tau+u)h(u)du=\int_{0}^{+\infty}e^{-\beta|\tau+u|}\alpha e^{-\alpha u}du
RXY(τ)=h(−τ)∗RX(τ)=∫0+∞RX(τ+u)h(u)du=∫0+∞e−β∣τ+u∣αe−αudu
当然,这里
α
=
1
R
C
\alpha=\frac{1}{RC}
α=RC1。看出来做题不需要上面一坨那么复杂,直接用就完了。当然,把这个积分号去掉也需要一定技巧。通过对τ大于、小于、等于0进行讨论,使用高数的知识化简就完了。
应用随机过程到声音信号(3)
判断是否存在固定音高
如果音高值几乎是恒定的,那么音高信息就能够找到。对于清音的片段,可以发现获得的音高因素很小,并且变化很大。那么可以说轻音片段的音高信息是缺失的。如果能找到重复的音高,这个片段就是浊音。
这个用python验证算了:
# Chroma Frequencies
# Loading the file
x, sr = librosa.load('D:\狗血.wav')
hop_length = 512
chromagram = librosa.feature.chroma_stft(x, sr=sr, hop_length=hop_length)
plt.figure(figsize=(15, 5))
librosa.display.specshow(chromagram, x_axis='time', y_axis='chroma', hop_length=hop_length, cmap='coolwarm')
可以看出,在两端没唱歌的地方(近似成白噪声),和发清音的地方(中间有两处),红的(表示按照频率倍数关系归一化的音符)分布很乱;而在唱的部分,它可以根据声音信号找到固定频率,是比较整齐的。这个程序的结果与上面不完全是一个意思,基本能说明问题。
附: WAV格式编码基础
刚才验证的时候反复出现文件读取失败、不能调到想要的形式的问题,例如没有跳过前面的音频格式信息,导致把那些二进制文件当成了声音文件读进去了;没意识到导入的信号是双声道,而WAV文件是并行设置的,由于两个声道的相位不一定就相等,顺序读取得到的声音信号得不出上述任何结论。
网络上的这个表格很能说明问题:
所以,用fopen fread读取二进制文件应该跳过前44个字节才行。