本节主要介绍了数字信号处理中的一些时域上的处理,包括序列信号的线性时不变系统、线性卷积、Z变换等
数字信号的理解
- 模拟信号:时域连续和幅度连续
- 数字信号:时域和幅度均离散
- 时域连续信号:时域连续、幅度连续或离散
- 时域离散信号:时域离散、幅度连续或离散
- 时域离散就意味着:
- $x[n]$中$n$一定要是整数
- 幅度离散并不要求幅度值一定是整数,只要是有限的状态值就可以了
序列的基本概念
1.任何序列都可以用单位样本序列$\delta (n)$来表示
$$
x(n)=\sum_{m=-\infty}^{\infty}x(m)\delta(n-m)
$$
2.正弦序列的周期性
正弦序列$sin(mn)$不一定是周期信号
若想要$sin(mn)$为周期信号,那么需满足
$$
sin(mn)=sinm(n+N)
$$则需满足:
$$
mN = 2\pi k
$$$$
N=\frac{2\pi k}{m}
$$而$N$需满足为整数,$k$也是整数,那么只有当$m$为$\pi$的倍数时,N才是整数,此时正弦序列$sin(mn)$才是周期信号
3.数字域频率
数字域频率为:
$$
w_0=\Omega_0T_s=\frac{\Omega_0}{f_s}=2\pi\frac{f_0}{f_s}=\frac{2\pi}{N}
$$$$
其中:\Omega_0为模拟角频率(rad/s),\quad w_0为数字角频率(rad)\
T_s为采样间隔(s),\quad f_s为采样频率(Hz),\quad f_0为模拟频率(Hz)\
N=T_0\times f_s,其中T_0为原始模拟信号的周期
$$推导过程:
- 连续时间正弦信号:$x_a(t)=cos(\Omega_0t+\phi)$
- 令$t=nT$,$T$为采样间隔
- 则$x_a(t)|_{t=nT}=cos(\Omega nT+\phi)=x_a(nT)$
- 将$x_a(nT)$简记为$x(n)$
- $\Omega_0 T$记为$w_0$
- 则离散时间正弦序列为:$x(n)=cos(w_0n+\phi)$
线性时不变系统
- 线性特性:
- $x(n)$做为一个整体只能是一次方,可以对$x(n)$乘以其它值;不能出现完全与$x(n)$无关的项;$x(n)$中的自变量$n$可以任意变换;
- 线性是针对$x(n)$来讨论的
- 时不变特性:
- n必须作为$x(n)$(不能对$x(n)$乘以带$n$的系数,比如$sin(wn)$)中的自变量,不能对$n$进行乘法运算,可进行加减常数运算
- 时不变是针对$n$来讨论的
- 线性时不变特性:
- $FIR$滤波:$y(n)=b_0x(n)+b_1x(n-1)+…b_rx(n-r)$的形式,其中$n-1,n-2..$也可为$n+1,n+2..$
- $IIR$滤波:$y(n)+a_1y(n-1)+…=b_0x(n)+b_1x(n-1)+…b_rx(n-r)$的形式(需要满足$y(n)=0,n<0$)
- 对于线性时不变系统因果稳定性的判定:
- 因果性:$h(n)=0,n<0$
- 稳定性:$\sum|h(n)|<\infty$
- 系统的作用不过是改变正弦信号的幅度和相位
线性卷积
首先,定义系统对输入是单位脉冲序列的响应为单位脉冲响应,即:
$$
输入\delta (n)\rightarrow 输出h(n)
$$其次,我们知道,任何一个序列信号都可以由单位脉冲序列表示,即:
$$
x(n)=\sum_{m=-\infty}^{\infty}x(m)\delta(n-m)
$$此外,对于一个线性系统:
$$
\because \delta(n)\rightarrow h(n)\
\therefore a\delta(n)\rightarrow ah(n)\
\therefore a\delta(n-n_0)\rightarrow ah(n-n_0)
$$那么$y(n)$就是$x(n)$经过线性系统的结果:
$$
\because x(n)=\cdots x(-1)\delta(n+1)+x(0)\delta(n)+x(1)\delta(n-1)+\cdots\
\therefore y(n)=\cdots x(-1)h(n+1)+x(0)h(n)+x(1)h(n-1)+\cdots
$$所以最终$y(n)$的结果是:
$$
y(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)
$$而我们称卷积为:
$$
y(n)=x(n)*h(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)
$$- 其中,$*$称为卷积运算
- 卷积满足交换律:$x(n)h(n)=h(n)x(n)$
所以系统输出$y(n)$就是输入$x(n)$与单位脉冲响应$h(n)$的卷积结果
1.卷积的意义
卷积是系统的工作方式:翻转、移位、相乘相加
举个例子:
若$h(n)=[1,2,3,4]$,即$h(n)=\delta(n)+2\delta(n-1)+3\delta(n-2)+4\delta(n-3)$
若$x(n)=[1,1,1,1]$
那么$y(n)=\sum_{m=-\infty}^{\infty}x(m)h(n-m)$,有:
$$
y(0)=\sum_{m=-\infty}^{\infty}x(m)h(-m)\
y(1)=\sum_{m=-\infty}^{\infty}x(m)h(1-m)\
y(2)=\sum_{m=-\infty}^{\infty}x(m)h(2-m)\
……
$$则可视化的运算如下:
$x(n)$ 1 1 1 1 $h(n)$ 4 3 2 1 $y(0)=1$ $h(1-n)$ 4 3 2 1 $y(1)=3$ $h(2-n)$ 4 3 2 1 $y(2)=6$ $h(3-n)$ 4 3 2 1 $y(3)=10$ $h(4-n)$ 4 3 2 1 $y(4)=9$ $h(5-n)$ 4 3 2 1 $y(5)=7$ $h(6-n)$ 4 3 2 1 $y(6)=4$
线性卷积的长度是$len[x(n)]+len[h(n)]-1$
2.MATLAB实现举例
特定的卷积核,对某些特定信号有的滤波作用
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22clc; %清屏
clear all; %清变量
fs=200; %采样频率为200Hz
hn=ones(1,4); %系统hn
t=0:1/fs:1; %时间序列
xn1=sin(2*pi*50*t); %50Hz正弦信号
xn2=sin(2*pi*5*t); %5Hz正弦信号
xn=xn1+xn2; %叠加信号
yn=conv(xn,hn); %卷积运算获得系统输出
%绘图
subplot(411);
plot(t,xn1);title('50Hz正弦信号');
subplot(412);
plot(t,xn2);title('5Hz正弦信号');
subplot(413);
plot(t,xn);title('输入信号');
subplot(414);
plot(t,yn(1:length(xn)));title('输出信号');结果如下:
观察到输出信号中50Hz的正弦信号被滤除了
其原因是采样频率200Hz是正弦信号50Hz的4倍,在一个周期内采样了4个点
而这四个点正好对应这四个位置
相当于是$0,1,0,-1,0,1,0,-1,…$这一串数接受$1,1,1,1$的检阅
- 只有在起始和末尾绿色部分才会有值
- 在中间红色部分滑动时是将滑窗中的4个数相加,和均为0
Z变换
1.Z变换的定义
双边Z变换:
$$
X(z)=\sum_{n=-\infty}^{\infty}x(n)Z^{-n}
$$单边Z变换:
$$
X(z)=\sum_{n=0}^{+\infty}x(n)Z^{-n}\quad or\quad \sum_{n=-\infty}^{0}x(n)Z^{-n}
$$左边序列、右边序列、因果序列:
左边序列:当$n<N$时有非零值,而在$n>N$时$x(n)$为0
右边序列:当$n\ge N$时有非零值,而在$n<N$时$x(n)$为0
- 若$N=0$,则称此序列为因果序列,即$x(n)=0,n<0$
对于因果序列,有以下关系:
$$
因果序列\rightarrow |Z|>a
$$
2.Z的收敛域
因为要求Z变换有解,所以需要满足:
$$
|\sum_{n=-\infty}^{\infty}x(n)Z^{-n}|<+\infty
$$等比数列求和公式:
$$
\frac{a_0-a_nq}{1-q}
$$- 若想要其有界,需满足等比因子$|q|<1$
而Z的表达式其实是:
$$
Z=re^{jw}
$$那么:
$$
\begin{aligned}
X(z) &=\sum_{n=-\infty}^{\infty}x(n)Z^{-n}\
&=\sum_{n=-\infty}^{\infty}x(n)r^{-n}e^{-jwn}
\end{aligned}
$$所以,求Z的收敛域主要看$r$
3.Z变换的常用性质
时移特性:
$$
x(n)\leftrightarrow X(z)\
x(n-n_0)\leftrightarrow X(z)Z^{-n_0}
$$卷积特性:
$$
x_1(n)*x_2(n)\leftrightarrow X_1(z)\cdot X_2(z)
$$对于因果稳定的系统:
- $H(Z)$的收敛域一定包括单位圆(稳定性)
- $H(Z)$的所有极点一定在单位圆内(因为因果系统是$|Z|>a$,而又要求稳定,即收敛域需包含单位圆,故极点需在单位圆内,这样能使得$|Z|>极点,极点<1$)