设序列
x
[
n
]
x[n]
x[n]和
y
[
n
]
y[n]
y[n]的长度分别为
N
N
N和
M
M
M,则两者的相关及卷积运算可以分别表示为:
{
R
x
y
[
m
]
=
∑
n
=
−
∞
∞
x
[
n
]
y
[
n
+
m
]
R
y
x
[
m
]
=
∑
n
=
−
∞
∞
y
[
n
]
x
[
n
+
m
]
(1)
\begin{cases} R_{xy}[m]=\sum_{n=-\infty}^{\infty}{x[n]y[n+m]}\\ R_{yx}[m]=\sum_{n=-\infty}^{\infty}{y[n]x[n+m]} \tag{1} \end{cases}
{Rxy[m]=∑n=−∞∞x[n]y[n+m]Ryx[m]=∑n=−∞∞y[n]x[n+m](1)
{
C
x
y
[
m
]
=
∑
n
=
−
∞
∞
x
[
n
]
y
[
m
−
n
]
C
y
x
[
m
]
=
∑
n
=
−
∞
∞
y
[
n
]
x
[
m
−
n
]
(2)
\begin{cases} C_{xy}[m]=\sum_{n=-\infty}^{\infty}{x[n]y[m-n]}\\ C_{yx}[m]=\sum_{n=-\infty}^{\infty}{y[n]x[m-n]} \tag{2} \end{cases}
{Cxy[m]=∑n=−∞∞x[n]y[m−n]Cyx[m]=∑n=−∞∞y[n]x[m−n](2)
其中
R
x
y
≠
R
y
x
R_{xy} \neq R_{yx}
Rxy=Ryx,
C
x
y
=
C
y
x
C_{xy}=C_{yx}
Cxy=Cyx,且
R
x
y
[
m
]
=
∑
n
=
−
∞
∞
x
[
n
]
y
[
n
+
m
]
=
∑
n
=
−
∞
∞
x
[
n
]
y
[
m
−
(
−
n
)
]
=
x
[
n
]
∗
y
[
−
n
]
R_{xy}[m]=\sum_{n=-\infty}^{\infty}{x[n]y[n+m]}=\sum_{n=-\infty}^{\infty}{x[n]y[m-(-n)]}=x[n]*y[-n]
Rxy[m]=∑n=−∞∞x[n]y[n+m]=∑n=−∞∞x[n]y[m−(−n)]=x[n]∗y[−n]。以下通过简单的例子说明(1)(2)的计算方法:设
x
[
n
]
=
[
1
,
2
]
x[n]=[1,2]
x[n]=[1,2],
y
[
n
]
=
[
4
,
5
,
6
]
y[n]=[4,5,6]
y[n]=[4,5,6],则
R
x
y
[
m
]
R_{xy}[m]
Rxy[m]的计算步骤如下:
(1)将
x
[
n
]
x[n]
x[n]和
y
[
n
+
m
]
y[n+m]
y[n+m]表示出来,其中
x
[
n
]
x[n]
x[n]恒为原始序列,
y
[
n
+
m
]
y[n+m]
y[n+m]表示对
y
[
n
]
y[n]
y[n]序列线性左移(
m
>
0
m>0
m>0)或右移(
m
<
0
m < 0
m<0)
m
m
m位;
(2)将
x
[
n
]
x[n]
x[n]和
y
[
n
+
m
]
y[n+m]
y[n+m]各个位数对齐(因长度不一致导致的两个序列不对齐的情况,对应数位等效于与0对齐),形成竖式;
(3)对应位置处的数相乘,并把所有相乘结果进行累加。
对于本文例子,具体操作示意如下:
KaTeX parse error: Expected 'EOF', got '&' at position 20: …gin{array} &̲ 6 & 0\\ 1 &…
上面每个竖式分别对应
m
=
2
,
1
,
0
,
−
1
m=2,1,0,-1
m=2,1,0,−1的情况,所以本例中
R
x
y
=
[
6
,
17
,
14
,
8
]
R_{xy}=[6,17,14,8]
Rxy=[6,17,14,8],由此可见长度为
N
N
N,
M
M
M的两个序列的自相关结果长度为
N
+
M
−
1
N+M-1
N+M−1。
C
x
y
[
m
]
C_{xy}[m]
Cxy[m]的计算步骤与上述步骤相似,只是在所有运算之前需要对其中一个序列进行反转,所以其具体实现步骤可以简单描述为:
(1)将
x
[
n
]
x[n]
x[n]和
y
[
m
−
n
]
y[m-n]
y[m−n]表示出来,其中
x
[
n
]
x[n]
x[n]恒为原始序列,
y
[
m
−
n
]
y[m-n]
y[m−n]表示先对原始序列进行反转得到
y
[
−
n
]
y[-n]
y[−n],然后再将
y
[
−
n
]
y[-n]
y[−n]序列线性左移(
m
>
0
m>0
m>0)或右移(
m
<
0
m < 0
m<0)
m
m
m位,在本例中反转后的
y
[
−
n
]
=
[
6
,
5
,
4
]
y[-n]=[6,5,4]
y[−n]=[6,5,4];
(2)将
x
[
n
]
x[n]
x[n]和
y
[
m
−
n
]
y[m-n]
y[m−n]各个位数对齐,(因长度不一致导致的两个序列不对齐的情况,对应数位等效于与0对齐)形成竖式;
(3)对应位置处的数相乘,并把所有相乘结果进行累加。
对于本文例子,具体操作示意如下:
KaTeX parse error: Expected 'EOF', got '&' at position 20: …gin{array} &̲ 4 & 0 \\ 1 …
上面每个竖式分别对应
m
=
−
1
,
0
,
1
,
2
m=-1,0,1,2
m=−1,0,1,2的情况,所以本例中
C
x
y
=
[
12
,
16
,
13
,
4
]
C_{xy}=[12,16,13,4]
Cxy=[12,16,13,4],由此可见长度为
N
N
N,
M
M
M的两个序列的线性卷积长度为
N
+
M
−
1
N+M-1
N+M−1。
上面的(3)(4)两个式子可以分别表示为矩阵形式:
$$
\vec{R}_{xy}=
\begin{bmatrix}
6 \
17\
14\
8\
\end{bmatrix}
=
\begin{bmatrix}
6 & 0 \
5 & 6 \
4 & 5 \
0 & 4 \
\end{bmatrix}
\begin{bmatrix}
1\
2\
\end{bmatrix}
=\boldsymbol{T} \vec{x}
$$
$$
\vec{C}_{xy}=
\begin{bmatrix}
4 \
13\
16\
12\
\end{bmatrix}
=
\begin{bmatrix}
4 & 0 \
5 & 4 \
6 & 5 \
0 & 6 \
\end{bmatrix}
\begin{bmatrix}
1\
2\
\end{bmatrix}
=\boldsymbol{T} \vec{x}
KaTeX parse error: Can't use function '$' in math mode at position 15: 从上面的式子可以看出,矩阵$̲\boldsymbol{T}$…
\vec{R}{xy}=
\begin{bmatrix}
y_M & 0 & 0 & \cdots & 0 \
y{M-1} & y_M & 0 & \cdots & 0 \
y_{M-2} & y_{M-1} & y_{M} & \ddots & \vdots \
\vdots & \ddots & \ddots & \cdots & \vdots \
y_1 & y_2 & \ddots & y_{M-1} & y_M \
0 & y_1 & \cdots & y_{M-2} & y_{M-1} \
\vdots & \ddots & \cdots & \ddots & \vdots \
0 & 0 & \cdots & 0 & y_1
\end{bmatrix}
\begin{bmatrix}
x_1\
\vdots\
x_N\
\end{bmatrix}
\tag{5}
$$
C ⃗ x y = [ y 1 0 0 ⋯ 0 y 2 y 1 0 ⋯ 0 y 3 y 2 y 1 ⋱ ⋮ ⋮ ⋱ ⋱ ⋯ ⋮ y M y M − 1 ⋱ y 2 y 1 0 y M ⋯ y 3 y 2 ⋮ ⋱ ⋯ ⋱ ⋮ 0 0 ⋯ 0 y M ] [ x 1 ⋮ x N ] (6) \vec{C}_{xy}= \begin{bmatrix} y_1 & 0 & 0 & \cdots & 0 \\ y_2 & y_1 & 0 & \cdots & 0 \\ y_3 & y_2 & y_1 & \ddots & \vdots \\ \vdots & \ddots & \ddots & \cdots & \vdots \\ y_M & y_{M-1} & \ddots & y_2 & y_1 \\ 0 & y_M & \cdots & y_3 & y_2 \\ \vdots & \ddots & \cdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 & y_M \end{bmatrix} \begin{bmatrix} x_1\\ \vdots\\ x_N\\ \end{bmatrix} \tag{6} Cxy= y1y2y3⋮yM0⋮00y1y2⋱yM−1yM⋱000y1⋱⋱⋯⋯⋯⋯⋯⋱⋯y2y3⋱000⋮⋮y1y2⋮yM x1⋮xN (6)
从上面的表达式可以看出,两个序列的相关运算和线性卷积运算对应的Toeplitz矩阵的形式一样,但是序列元素在矩阵中的位置不一样,且此时Toeplitz矩阵是一个 ( N + M − 1 ) × N (N+M-1) \times N (N+M−1)×N的矩阵。采用矩阵形式表示容易进行后续分析与计算,因此在相关运算和线性卷积运算中,Toeplitz矩阵很常见,它的相关性质可以参考《托普利兹矩阵》。