教材:
- 数字信号处理:基于计算机的方法(第四版)(较简单)
- 数字信号处理:原理、算法与应用(第四版)(有点难)
以下章节标题顺序来自第一本教材,记录一些重点的思想,这些思想对于理解数字信号的世界非常的有益处,适合上过课但是听完了总觉得哪里不对劲的小伙伴食用。
注,本文的 inf \inf inf为无穷,我不知道为啥csdn打不出那个躺下的8…
时域中的离散时间信号
时移运算
定义:对于信号 w [ n ] = x [ n − N ] w[n]=x[n-N] w[n]=x[n−N], 如果N>0,则为延迟运算,反之为超前。
可以这么理解,假设接收机不断接收到传来的x信号,如果想知道x[n-1]是什么,那么很简单,只要把每一个时刻收到的x信号存储起来,取当前时间点以前1个时刻的那个信号即可。这意味着,当前时间收到的信号在短时间内排不上用场,要延时1个时刻,才能被更加新的信号所引用,所以是延迟;但是如果想知道x[n+4]是什么,那么很明显,现在暂时不知道,必须得等到未来4个时刻,才能接收到,所以是超前。
正弦信号周期性
对于连续信号 x ( t ) = A c o s ( Ω t + Φ ) x(t)=A cos(\Omega t + \Phi) x(t)=Acos(Ωt+Φ),周期是 2 π / ∣ Ω ∣ 2 \pi / |\Omega | 2π/∣Ω∣,这个周期可能是0(即频率无穷,这是个啥不知道)、无穷(即频率为0,非周期信号)、或者一个有限值(周期信号);但是对于离散信号 x [ n ] = A c o s ( ω n + ϕ ) x[n]=Acos(\omega n + \phi) x[n]=Acos(ωn+ϕ),周期是 2 π / ∣ ω ∣ 2 \pi / |\omega | 2π/∣ω∣,这个结果可能是0(仍然不知道是啥),无穷(非周期信号),有理数(周期信号),无理数(非周期信号)。
解释见下图:
正弦信号频率周期性
频率怎么会有周期性呢?这要从一次实验说起。有一天,有一个人准备画 x [ n ] = c o s ( k π / 8 ∗ n ) x[n]=cos(k\pi / 8 * n) x[n]=cos(kπ/8∗n),怎么画呢?于是他想出来一个办法:先画出来 x ( t ) = c o s ( k π / 8 ∗ t ) x(t)=cos(k \pi / 8 * t) x(t)=cos(kπ/8∗t),然后在连续的信号时间轴上等间距的取点不就好了。
说干就干,取k=1的时候,得到了图b,逐渐增大k,得到了图cde,发现此时的x[n]已经是在0附近“上下横跳”了,那如果再次增大会怎样?
取
k
=
12
k = 12
k=12,得到了图f,再逐渐增大,渐渐得到了图gh,他仔细一看,“这不是和我最开始的信号一样了么?那不就是说,频率有周期性?”,这个小朋友和我一样有着大大的问号,看了一眼公式,“原来是这样啊”,见下图(其实应该是由第4行推出的第二行的周期性,但是这里采用一个逆向的思维方便理解,不会显得突兀):
当然这也能从另一个角度理解:将连续时间信号数字化,伴随着采样。当连续时间信号的频率较低时,按照一定时间间隔抽样得到的数字信号可以将原信号完美还原;但是当连续时间信号的频率逐渐增加时,但是采样率并未随之提高,那么就会小于2倍的奈奎斯特准则,进而发生混叠。
采样
既然已经说到了采样,那么就得拿出来仔细讨论一下。
时频域关系
首先讨论一下时域和频域的性质。
对于一个能量有限的非周期信号,可能是一个突然出现,然后持续了一会,最后消失的一个信号,在时域中只持续了一小段时间,那么对这个信号进行傅里叶变换,得到了
X
a
(
F
)
=
∫
−
inf
inf
x
a
(
t
)
e
−
j
2
π
F
t
d
t
X_a(F)=\int^{\inf}_{-\inf} x_a(t)e^{-j2\pi Ft}dt
Xa(F)=∫−infinfxa(t)e−j2πFtdt,
反之,傅里叶逆变换进行恢复时:
x
a
(
t
)
=
∫
−
inf
inf
X
a
(
F
)
e
−
j
2
π
F
t
d
F
x_a(t)=\int^{\inf}_{-\inf}X_a(F)e^{-j2\pi Ft}dF
xa(t)=∫−infinfXa(F)e−j2πFtdF
如果
x
a
(
t
)
x_a(t)
xa(t)不是带限信号,那么恢复
x
a
(
t
)
x_a(t)
xa(t)时就得用到所有带宽区间的频率成分,这对于计算机来说,“无穷”显然是无法操作的,所以只能进行一定的截断。
频域中的离散时间信号
傅里叶变换
具体见傅里叶变换理解笔记
Z变换
Z变换中最重要就是收敛域和零极点。
Z变换定义: X ( z ) = ∑ n = − inf i n f x [ n ] z − n X(z)=\sum^{inf}_{n=-\inf} x[n]z^{-n} X(z)=∑n=−infinfx[n]z−n,其中 x [ n ] x[n] x[n]为离散信号。可见,这个 n n n的取值是所有实数,那么当 n = inf n=\inf n=inf时,z变换的结果中有一项 z inf z^{\inf} zinf是无穷导致不收敛,而为了让其收敛,就定义了收敛域:即n无论取其定义域中的什么值,z变换结果都收敛。
其他关于收敛域的理解见下图:
由以上图我们就知道了如何分析一个序列:
- 如果该序列为有限长序列,那么无所谓收敛域怎么取,最后z变换肯定是有限值
- 如果该序列为右边无限长序列,比如 u [ t + 3 ] u[t+3] u[t+3],那么该序列可以视为-3到0的有限长序列加上一个0到无穷的无限右边序列的和。很明显,有限长子序列不需要考虑,只需要考虑无限长子序列即可,即最后的收敛域肯定是 r > 1 r>1 r>1。由于 r r r代表的是复数的半径, r > 1 r>1 r>1就意味着在复平面上半径大于1的所有面积。换句话说,就是单位圆以外
- 左边无限长序列分析同上
- 双边无限长序列,那就没办法了