离散时间系统

\(\begin{align*} \newcommand{\dif}{\mathop{}\!\mathrm{d}} \newcommand{\belowarrow}[1]{\mathop{#1}\limits_{\uparrow}} \newcommand{\bd}{\boldsymbol} \newcommand{\L}{\mathscr{L}} \newcommand{\xleftrightarrow}[1]{\stackrel{#1}{\longleftrightarrow}} \end{align*}\)

简单的离散时间系统

这里给出一些常用的离散时间系统的时域表达式与频域表达式

累加器

\[\begin{align} y[n] &= \sum_{\ell = -\infty}^{+\infty} x[\ell]\\ &=y[n-1]+x[n]\\ &=y[-1]+\sum_{\ell = 0}^{+\infty} x[\ell] \end{align}\]

滑动平均滤波器

\[\begin{align} y[n] &= \frac{1}{M} \sum_{\ell = 0}^{M-1} x[n-\ell]\\ &= y[n-1]+\frac{1}{M}(x[n]-x[n-M]) \end{align}\]

指数加权移动平均滤波器

\[\begin{align} y[n]=\alpha y[n-1]+x[n] \end{align}\]

中值滤波器

\[y[n] = \text{med}\{ x[n-K],\cdots,x[n],\cdots,x[n+K]\}\]

离散时间系统的性质与分类

线性系统

  线性系统 的定义如下:若 $y_1[n]$ 和 $y_2[n]$ 分别是 $x_1[n]$ 和 $x_2[n]$ 的响应,则当输入为:

\[x[n]=\alpha x_1[n] + \beta x_2[n]\]

  时,其响应为:

\[y[n]=\alpha y_1[n] + \beta y_2[n]\]

例:证明:中值滤波器是非线性系统

证:通过特例证明是最快的方法,我们不妨设 $x_{k}[n]=\delta[n-k]$,显然:
$$ y_k[n] = \text{med}\{ x_{k}[n-K],\cdots,x_{k}[n],\cdots,x_{k}[n+K]\}=0\\ K>2 $$
  若是线性系统,则令 $x[n]=x_{-k}[n]+\cdots+x_{0}[n]+\cdots+x_{k}[n]$,显然:
$$ y[0]=\text{med}\{ x[0-K],\cdots,x[0],\cdots,x[0+K]\}=1\neq 0 $$

时不变系统

  对于 时不变(移不变)离散时间系统,若 $x_1[n]$ 的响应是 $y_1[n]$,则 $x[n]=x_1[n-n_0]$ 的响应是 $y[n]=y_1[n-n_0]$

  一种傻瓜判断方法就是将 $y_1[n]$ 中的 所有的 $n$ 替换成 $n-n_0$ 得到 $y_1[n-n_0]$,然后再将 $y_1[n]$ 中的 所有的 $x_1[n]$ 里面直接加上个 $-n_0$ 得到 $y[n]$,比较 $y_1[n-n_0]$ 和 $y[n]$,若相同就是时不变系统。

例:证明:中值滤波器是时不变系统

证:设 $y_1[n] = \text{med}\\{ x_1[n-K],\cdots,x_1[n],\cdots,x_1[n+K]\\}$,令 $x[n]=x_1[n-n_0]$,则:
$$ \begin{align} y[n] &= \text{med}\{ x[(n-n_0)-K],\cdots,x[(n-n_0)],\cdots,x[(n-n_0)+K]\}\\ &=\text{med}\{ x[n-K-n_0],\cdots,x[n-n_0],\cdots,x[n+K-n_0]\}\\ &=y_1[n-n_0] \end{align} $$
所以中值滤波器是时不变系统。¶

因果系统

  因果系统 是指:$y[n_0]$ 仅取决于 $x[n],n\leq n_0$,而与 $n\lt n_0$ 的样本无关。

稳定系统

  稳定系统 指的是若 $\vert x[n] \vert < B_x$,则 $\vert y[n] \vert < B_y$

  稳定性的证明与级数的有界性证明很类似,你可以尝试证明一下前面滤波器是稳定系统。

无源与无损

  无源系统 指的是对于每一个输入序列,有:

\[\sum_{n=-\infty}^{+\infty} |y[n]|^2 \leq \sum_{n=-\infty}^{+\infty} |x[n]|^2 < \infty\]

  当等号成立时,称为 无损系统

冲激响应与阶跃响应

  冲激响应 $h[n]$ 即输入为 $\delta[n]$ 的系统响应。阶跃响应 $s[n]$ 即输入为 $u[n]$ 的系统响应。在信号课程中多用冲激响应,而在其他课程中则多用阶跃响应。

利用冲激判断LTI系统特性

稳定性

  若 $x[n]$ 有界,即 $\vert x[n]\vert \lt B_x<\infty$,如果系统是稳定系统,则 $h[n]$ 也有界,因为:

\[\begin{align} |y[n]| &= |\sum_{k=-\infty}^{+\infty} h[k] x[n-k]|\\ &\leq \sum_{k=-\infty}^{+\infty} |h[k]| \, |x[n-k||\\ &= B_x \sum_{k=-\infty}^{+\infty} |h[k]|< B_x B_h <\infty \end{align}\]

因果性

  如果系统是因果系统,则 $n<0$ 时,$h[n]=0$,因为:

\[\begin{align} y[n] &= \sum_{k=-\infty}^{+\infty} h[k] x[n-k]\\ &= \sum_{k=-\infty}^{-1} h[k] x[n-k]+\sum_{k=0}^{+\infty} h[k] x[n-k] \end{align}\]

  注意到 $x[n-k],\;(k<0)$ 对应的是未来的值,这部分不应该对输出有作用,所以 $\sum_{k=-\infty}^{-1} h[k] x[n-k]=0$,即 $h[n]<0,\;(n<0)$

LTI系统的差分方程

  LTI 系统的输入输出常用差分方程解出:

\[\sum_{k=0}^N d_k y[n-k] = \sum_{k=0}^M p_k x[n-k]\]

  方程中,$y[n]$ 的阶数为 $N$,$x[n]$ 的阶数为 $M$,$\max{M,N}$ 称为差分方程的阶数。线性系统的差分方程只有一次幂,且不存在相乘项。

  在求解差分方程前,让我们先对其作个变换,介绍几个概念。

\[\begin{align} y[n] &= \sum_{k=0}^M \frac{p_k}{d_0} x[n-k]+\sum_{k=1}^N \frac{d_k}{d_0} y[n-k] \\ &= 激励+反馈 \end{align}\]

  如果输出仅仅只用到激励,而与反馈无关,则称为 Fenite Impulse Response(非递归数字系统),简称:FIR系统

  如果输出同时用到了激励与反馈,那么称为 Infinite Impulse Response(递归数字系统),简称:IIR系统

  如果只用到了反馈,没有输入,则称为 自反馈系统,在此我们不讨论这个。

求解差分方程

  通过解差分方程求响应不是什么容易的事,主要的方法有:

  • 离散时域求解法
    • 迭代法
  • 变换域求解法
    • Z变换法

迭代法

  给出初始条件与输入,我们可以不断地迭代出响应。比如下面这个例子:

例题:已知系统差分方程为$y[n]-ay[n-1]=x[n]$ 试求其冲激响应(初始状态为 $y[-1]=0$)

解:$x[n]=\delta[n]$ 且 $y[-1]=0$,从而我们可以先求出 $h[0]$:
$$ h[0]=ah[-1]+x[0]=1 $$
  然后可以不断迭代迭代: $$ h[1]=ah[1]+0=a\\ h[2]=ah[1]+0=a^2\\ \vdots\\ h[n]=ah[n-1]+0=a^n $$
  从而可以解出:
$$ h[n]=a^n u[n] $$

  一个系统能通过递推求出,则必须有初始松弛条件(若 $x[n]=0,\,n<n_0$,则 $y[n]=0,\,n<n_0$)。

  对于 FIR系统,我们可以通过递归求出任意输出,比如:

\[\begin{align} y[n] &= \sum_{k=0}^M \frac{p_k}{d_0} \delta[n-k]\\ &= \begin{cases} \dfrac{p_n}{d_0}, &0\leq n \leq M\\ 0, &其它 \end{cases} \end{align}\]

解析法

  我们先讨论一下解的结构。模仿数学分析中的分析过程,我们可以定义映射 $L[y]=\sum_{k=0}^N d_k y[n-k]$,容易证明,$L[y]$ 满足:

  • $L[\alpha y]=\alpha L[y]$
  • $L[y_1+y_2]=L[y_1]+L[y_2]$

  可见,$L[y]$ 是线性映射。我们考虑齐次方程:$L[y]=0$,若 $y_1,y_2,\cdots,y_N$ 是相互独立的解,则 $y=C_1 y_1+C_2 y_2+\cdot+C_N y_N$ 同样是一个解,如果 $C_1,C_2,\cdots,C_N$ 相互独立,那么 $y$ 称为 通解,$y_1,y_2,\cdots,y_N$ 称为 基础解系

  对于 $L[y]=f(x)$,若 $y[x]$ 是 $L[y]=0$ 的解,$\tilde{y}[x]$ 是 $L[y]=f(x)$ 的解,则 $\alpha y[x]+\tilde{y}[x]$ 也是 $L[y]=f(x)$ 的解。我们称 $\tilde{y}[x]$ 是一个 特解

  综上,求解差分方程实际上就是求解特解与通解,然后利用初始条件得到唯一解。下面我们先求通解,然后求特解,最后通过一道例题来讲讲如何使用初始条件。

求通解

  先考虑一阶齐次差分方程:

\[\begin{align} d_0 y[n]+d_1 y[n-1]&=0\\ y[n] &= -\frac{d_1}{d_0} y[n-1]\\ y[n] &= \left(-\frac{d_1}{d_0}\right)^n y[0] \end{align}\]

  根据前面的线性性可知,$y[0]$ 可以取任意值。因此,我们推测通解的形式可能为 $y_c[n]=\lambda^n$,于是再代入二阶方程:

\[\begin{align} d_0 y[n]+d_1 y[n-1] + d_2 y[n-2]&=0\\ d_0 \lambda^n+d_1 \lambda^{n-1} + d_2 \lambda^{n-2} &=0\\ \lambda^{n-2} \left( d_0 \lambda^2+d_1 \lambda + d_2 \right) &=0\\ \Rightarrow \lambda^{n-2} \left( \lambda^2+p\lambda + q \right) &=0 \end{align}\]

  解得:$\lambda_0=0$,$\lambda_{1,2}=\dfrac{-p\pm\sqrt{p^2-4q}}{2}$。根据 $\Delta=p^2-4q$ 的值,可分为三种情况:

① $\Delta>0$,解为:$y_1=\lambda_1^n$,$y_2=\lambda_2^n$

不解释

② $\Delta=0$,解为:$y_1=\lambda_1^n$,$y_2=n \lambda_1^n$

我们可以先求出一个解:$y_1=\lambda_1^n=(\frac{-p}{2})^n$,然后令 $y_2=f(n) \lambda_1^n$,代入方程中:

\[f(n) \left(\frac{-p}{2}\right)^n + p f(n-1) \left(\frac{-p}{2}\right)^{n-1} + q f(n-2) \left(\frac{-p}{2}\right)^{n-2} =0\\ f(n) \left(\frac{-p}{2}\right)^2 + p f(n-1) \left(\frac{-p}{2}\right) + \left(\frac{-p}{2}\right)^2 f(n-2) =0\\ f(n) -2 f(n-1) + f(n-2) =0\\ f(n) -f(n-1) = f(n-1) - f(n-2)\\ \therefore f(n)=kn,根据线性性,取 k=1\]

③ $\Delta<0$,解为复根 $y_1=\lambda_1^n$,$y_2=\lambda_2^n$

同①

  可见,如果包含重根,则需要乘一个 $n$。


  我们将 $y_c[n]=\lambda^n$ 代入回一般的齐次差分方程,有:

\[\sum_{k=0}^N d_k \lambda^{n-k} = \lambda^{n-N} (d_0 \lambda^N +d_1 \lambda^{N-1}+\cdots+d_N)=0\]

  除了 $\lambda=0$ 外,解括号中的 $N$ 阶多项式可以得到 $N$ 个解:$\lambda_1,\lambda_2,\cdots,\lambda_N$。从这 $N$ 个根,如果这 $N$ 个根彼此不同,则通解为:

\[y_c[n]=C_1 \lambda_1^n+C_2 \lambda_2^n+\cdots+C_N \lambda_N^n\]

  如果有多重根,不妨设 $\lambda_1$ 是 $m$ 重根,则:

\[y_c[n]=C_1 \lambda_1^n+ C_2 n \lambda_1^n+\cdots+C_m n^{m-1} \lambda_1^n\\ +C_{m+1} \lambda_{m+1}^n + \cdots + C_N \lambda_N^n\]

求特解

  我们作如下假设:特解 $y_p[n]$ 与输入 $x[n]$ 具有相同形式。比如:

输入 特解$y_p[n]$
$A$(常数) $C$
$AM^n$ $CM^n$
$An^M$ $C_0 n^M +C_1 n^{M-1}+\cdots+C_M$
$A^n n^M$ $A^n (C_0 n^M +C_1 n^{M-1}+\cdots+C_M)$
$A\cos \omega_0 n$
$A\sin \omega_0 n$
$C_1 A\cos \omega_0 n +C_2 A\sin \omega_0 n$

例题

计算差分方程:
$$ y[n]+a_1 y[n-1]=x[n] $$
的全解 $y[n]$,$n>0$,其中,$x[n]=u[n]$,$y[-1]$ 为初始条件。

解:(解法一)令 $x[n]=0$,则特征根为:
$$ \lambda^n + a_1 \lambda^{n-1}=0\\ \Rightarrow \lambda = -a_1 $$
故齐次方程的通解为:$y_c[n]=C(-a)^n$.
当 $n>0$ 时,$x[n]$ 为常数,故设特解也是常数,即:
$$ y_p[n] = K u[n] $$
代入原方程,有:
$$ K u[n] + a_1 K u[n-1]=u[n]\\ \Rightarrow n\geq 1时,\; K=1/(1+a_1) $$
故差分方程的特解为:$y_p[n]=\dfrac{1}{1+a_1}u[n]$
因此全解为:
$$ y[n]=C(-a_1)^n + \frac{1}{1+a_1},\; n\geq 0 $$
为求解 $C$,计算差分方程在 $n=0$ 处的值:
$$ y[0]+a_1 y[-1]=1\\ \Rightarrow y[0]=1-a_1 y[-1] $$
在计算全解在 $n=0$ 处的值:
$$ y[0]=C+\frac{1}{1+a_1} $$
从而
$$ C=-a_1 y[-1]+\frac{a_1}{1+a_1} $$
最终得到:
$$ y[n]=(-a_1)^{n+1} y[-1]+\frac{1-(-a_1)^{n+1}}{1+a_1},\; n\geq 0 $$

  注意到我们先将全解求出来后,才求出 $C$ 的值,我们也可以求出通解后直接求 $C$ 的值。

解:(解法二)上面已经求出其通解为:
$$ y_{zi} [n] = C(-a_1)^n $$
求齐次方程 $y[0]$ 的值:
$$ y[0]=-a_1 y[-1]=C\\ \Rightarrow y_{zi}[n]=(-a_1)^{n+1}y[-1] $$
由于在通解上已考虑了 $y[-1]$ 的值,在求特解时我们令 $y[-1]=0$,从而:
$$ y[0]=x[0]=1\\ y[1]=x[1]-a_1y[0]=1-a_1\\ y[2]=x[2]-a_1y[1]=1-a_1+(a_1)^2\\ \vdots\\ y_{zs}=\sum_{k=0}^n (-a_1)^k = \frac{1-(-a_1)^{n+1}}{1+a_1} $$
从而全解为:
$$ \begin{align} y[n]&=y_{zi}[n]+y_{zs}[n]\\ &=(-a_1)^{n+1}y[-1]+\frac{1-(-a_1)^{n+1}}{1+a_1},\;n\geq 0 \end{align} $$

  解法二中,将解分成了零输入响应 $y_{zi}[n]$ 与零状态响应 $y_{zs}[n]$。这种分解方法常用于语言等信号分析中,当分析某一帧时,把输出分成上一帧所产生的影响(零输入),与当前帧的影响(零状态)。

%solve difference equations ak y[n-k]=bk x[n-k]
y = filter(b,a,x);
% b = [b0, b1, ..., bM];
% a = [a0, a1, ..., aN];

%compute the impulse response
h = impz(b,a,n);

相位延迟与群延迟

若 LTI 系统输入一个正弦信号:$x[n]=A\cos(\omega_0 n+\phi)$,则输入必然也是一个同频率的正弦信号:

\[\begin{align} y[n]&=A |H(e^{j\omega})| \cos(\omega_0 n + \theta(\omega)+\phi)\\ &=A |H(e^{j\omega})| \cos\left(\omega_0 \left(n + \frac{\theta(\omega)}{\omega_0}\right)+\phi\right) \end{align}\]

我们将 $\tau_p(\omega_0)=-\frac{\theta(\omega)}{\omega_0}$ 称为 相位延迟,$\tau_g(\omega)=-\frac{\dif \theta(\omega)}{\dif \omega}$ 称为 群延迟

一种比较简单的物理意义是:对于窄带信号,相位延迟是载波信号的延迟,群延迟是包络的延迟。

我们将在讲 FIR 滤波器时进一步讨论这两种延迟。

习题

4.4 $y[n]=(x[n])^2$ 称为平方运算,问平方运算是线性的吗?是时变的吗?是因果的吗?

解:我们逐条验证。线性性
$$ 令:x[n]=\alpha x_1[n] + \beta x_2[n]\\ \begin{align} 则:y[n]&=(x[n])^2\\ &=(\alpha x_1[n] + \beta x_2[n])^2\\ &=\alpha^2 (x_1[n])^2 + 2\alpha\beta x_1[n]x_2[n] + \beta^2 (x_2[n])^2\\ &\neq \alpha (x_1[n])^2 + \beta (x_2[n])^2 = \alpha y_1[n] + \beta y_2[n] \end{align}\\ \therefore 不满足线性性 $$
时不变性
$$ 设 y_1[n]=(x_1[n])^2,y_2[n]=(x_2[n])^2,\\ 令 x_2[n]=x_1[n-n_0],\\ 则:y_2[n]=(x_1[n-n_0])^2=y_1[n-n_0]\\ \therefore 满足时不变性 $$
因果性:$y[n]$ 只与 $n$ 时刻的 $x$ 值有关,故满足因果性。


4.7 证明中值滤波器是时不变系统

证:设 $y_1[n] = \text{med}\\{ x_1[n-K],\cdots,x_1[n],\cdots,x_1[n+K]\\}$,令 $x[n]=x_1[n-n_0]$,则:
$$ \begin{align} y[n] &= \text{med}\{ x[(n-n_0)-K],\cdots,x[(n-n_0)],\cdots,x[(n-n_0)+K]\}\\ &=\text{med}\{ x[n-K-n_0],\cdots,x[n-n_0],\cdots,x[n+K-n_0]\}\\ &=y_1[n-n_0] \end{align} $$

4.31 求 $h_1[n],h_2[n],h_3[n]$ 组合成的系统的总冲激响应,其中,
$$ \begin{align} h_1[n]&=2\delta[n-2]+3\delta[n+1]\\ h_2[n]&=\delta[n-1]-2\delta[n+2]\\ h_3[n]&=5\delta[n-5]-7 \delta[n-3]+2\delta[n-1]+\delta[n]-3\delta[n+1] \end{align} $$

解:没啥技巧,就代公式:
$$ H(z) = \frac{H_1(z) H_2(z)}{1-H_1(z) H_2(z) H_3(z)}\\ =\frac{2 z^{-3}-1-6z^{3}}{1-10z^{-8}+14z^{-6}+5 z^{-5}-4z^{-4}-9z^{-3}+3 z^{-1}+2 z^{-1}+8-3z^{1}+12 z^{2} + 6 z^{3}-18z^{4}} $$ $$ h[n] = h_b[n] \circledast h_1[n] \circledast h_2[n] $$ $$ 其中,\\ h_1[n] \circledast h_2[n] = 2\delta[n-3]-\delta[n]-6\delta[n+3]\\ h_b[n] 是 \frac{1}{1-H_1(z) H_2(z) H_3(z)} 的逆变换 $$


4.67 某 IIR LTI系统的差分方程为:
$$ y[n]+a_1 y[n-1]+a_2 y[n-2]=b_0 x[n]+b_1x[n-1]+b_2[n-2] $$
求频率响应表达式。常数 $b_i,\;i=1,2,3$ 为何值时,对所有 $\omega$ 值幅度响应是一个常数?

解:对方程进行离散傅里叶变换:
$$ Y(e^{j\omega})+a_1 e^{-j\omega} Y(e^{j\omega})+a_2 e^{-j2\omega} Y(e^{j\omega})\\=b_0 X(e^{j\omega})+b_1e^{-j\omega} X(e^{j\omega})+b_2e^{-j2\omega} X(e^{j\omega}) $$
从而频率响应的表达式为:
$$ H(e^{j\omega}) = \frac{Y(e^{j\omega})}{X(e^{j\omega})} = \frac{b_0+b_1e^{-j\omega}+b_2e^{-j2\omega}}{1+a_1 e^{-j\omega}+a_2 e^{-j2\omega}} $$
幅度响应的表达式为:
$$ |H(e^{j\omega})|=H(e^{j\omega}) H^*(e^{j\omega})\\ =\frac{b_0^2 + b_1^2 +b_2^2 +(2b_0b_1+2b_1b_2) \cos \omega + 2b_0b_2 \cos 2\omega}{1 + a_1^2 +a_2^2 +(2a_1+2a_1a_2) \cos \omega + 2a_2 \cos 2\omega} $$
当 $b_0=b_1:a_1=b_2:a_2$ 时,对所有 $\omega$ 值幅度响应是常数 $b_0$
观察幅度响应的表达式,可发现 $b_0$ 与 $b_2$ 是对称的,故当 $b_2=b_1:a_1=b_0:a_2$ 时,对所有 $\omega$ 值幅度响应是常数 $b_2$
另外,当 $b_i=0$ 时,幅度响应恒为 0

这实际上叫做全通系统,它的幅度响应为常数,并且具有如下形式:
$$ \pm K \frac{d_M+d_\text{M-1}z^{-1}+\cdots+d_1 z^{-M+1}+z^{-M}}{1+d_z z^{-1}+\cdots+d_{M-1}z^{-M+1}+d_M z^{-M}} $$