数字信号处理入门:数字信号及其基本运算

从数字信号、离散序列到基本运算与卷积和,系统整理数字信号处理入门阶段的核心概念与常用公式。

数字信号处理入门:数字信号及其基本运算

发布说明:本文按照课件内容重写为博客体例,删除原 PPT 页码、模板标题和页面式标题,改为适合阅读的章节标题。内容面向 0 基础读者,保留课件中的核心定义、公式、例题和运算方法。

写在前面:数字信号处理到底学什么

“数字信号处理”可以拆成三个词理解:信号、数字、处理。

信号是承载信息的对象。人的语音、手机录音、温度变化、压力变化、图像亮度、传感器测量值,都是信号。数字表示这些信号最终要用离散的数字序列来记录。处理则表示我们要对这些数字进行分析、变换、滤波、压缩、识别或重建。

因此,数字信号处理研究的核心问题是:如何把现实世界中的连续信息表示成数字序列,并用数学方法对它进行处理。

本文先建立两个基本观念:一是常见数字信号序列长什么样;二是数字信号序列可以做哪些基本运算。掌握这两点,后面的傅里叶变换、Z 变换、数字滤波器才有基础。

学习路线:先认识序列,再学习运算

本讲内容可以分为两条主线。

第一条主线是常用数字信号序列,包括单位抽样序列、单位阶跃序列、矩形序列、实指数序列、复指数序列、正弦序列和周期序列。这些序列相当于数字信号处理中的“基本词汇”。

第二条主线是数字信号序列的基本运算,包括移位、翻折、相加、相乘、累加、尺度变换和卷积和。这些运算相当于数字信号处理中的“基本语法”。

后续的系统分析,本质上就是用这些基本序列和基本运算描述输入、输出与系统之间的关系。

从“信号”开始理解

信号是传递信息的函数,可以表示成一个或几个独立变量的函数,例如:

f(x),f(t),f(x,y)f(x),\qquad f(t),\qquad f(x,y)

其中,tt 常用来表示时间,x,yx,y 常用来表示空间坐标。语音信号通常随时间变化,因此常写作 x(t)x(t);图像信号随二维空间位置变化,因此可以写作 f(x,y)f(x,y)

信号可以从不同角度分类。

按照载体,信号可以分为电信号、磁信号、声信号等。比如麦克风把声音变成电压变化,这个电压变化就是电信号。

按照变量个数,信号可以分为一维、二维和多维信号。语音是一维信号,图像是二维信号,视频可以看作二维图像随时间变化形成的三维信号。

按照周期性,信号可以分为周期信号和非周期信号。周期信号会按固定间隔重复,非周期信号则不会严格重复。

按照是否为确定函数,信号可以分为确定信号和随机信号。正弦信号可以由明确公式描述,属于确定信号;噪声具有不确定性,常作为随机信号处理。

按照能量或功率是否有限,信号还可以分为能量信号和功率信号。这一分类在信号分析中非常常见。

连续时间信号:现实世界常见的原始形态

在连续时间范围内定义,并且幅值连续变化的信号,称为模拟信号,也常称为连续时间信号,通常记作:

x(t)x(t)

这里的 tt 是连续时间变量,可以取任意实数。例如 t=0.1t=0.1t=0.15t=0.15t=2.367t=2.367 都是允许的。

现实世界中很多原始信号都接近连续信号。声音、温度、压力、电压、电流、图像亮度等,都可以在连续时间或连续空间中变化。用电压或电流去模拟这些物理量,就得到模拟信号。

连续时间信号示意

连续时间信号的图像通常是一条连续曲线。它强调的是“任意时刻都有取值”。

离散时间信号与数字信号:从曲线变成点列

当时间变量不再连续,而只在一个个离散时刻取值时,信号称为离散时间信号,通常写作:

x(n)x(n)

这里的 nn 是整数,表示第 nn 个采样点。也就是说,离散时间信号不是一条连续曲线,而是一串按整数编号排列的数据点:

,x(2),x(1),x(0),x(1),x(2),\cdots,x(-2),x(-1),x(0),x(1),x(2),\cdots

如果时间和幅值都被离散化,就称为数字信号。离散时间信号强调时间离散;数字信号进一步强调幅值也用有限精度数字表示。

离散时间序列示意

例如,电脑中的音频文件不是连续曲线,而是一串采样值。每一个采样值都由二进制数字存储,这就是数字信号。

A/D 与 D/A:模拟世界和数字世界之间的桥

模拟信号可以通过 A/D 变换得到数字信号。A/D 是 Analog-to-Digital,即模数转换。它通常包括采样、量化和编码三个步骤。

数字信号也可以通过 D/A 变换重新变成模拟信号。D/A 是 Digital-to-Analog,即数模转换。

可以把二者关系写成:

x(t)A/Dx(n)x(t)\xrightarrow{A/D}x(n) x(n)D/Ax(t)x(n)\xrightarrow{D/A}x(t)

A/D 与 D/A 关系示意

一个生活例子是录音与播放。人说话产生模拟声音,麦克风把声音转成模拟电信号,声卡通过 A/D 把它转成数字音频文件;播放时,数字音频文件再经过 D/A 转换,驱动扬声器发声。

单位抽样序列:离散信号中的“一个点”

单位抽样序列又称单位冲激序列,记作:

δ(n)\delta(n)

其定义为:

δ(n)={1,n=00,n0\delta(n)= \begin{cases} 1, & n=0\\ 0, & n\ne0 \end{cases}

它只在 n=0n=0 处取值为 11,其他位置都为 00

如果把它平移到 n=mn=m 处,就得到:

δ(nm)={1,n=m0,nm\delta(n-m)= \begin{cases} 1, & n=m\\ 0, & n\ne m \end{cases}

单位抽样序列与延时单位抽样序列

单位抽样序列很重要,因为它是离散序列中的“单点构件”。任何复杂离散序列都可以拆成许多个不同位置、不同高度的单位抽样序列之和。

连续时间冲激信号:理想化的瞬时作用

连续时间中的单位冲激信号记作:

δ(t)\delta(t)

它不是普通意义下的函数,而是一种理想化模型。其核心性质是:

+δ(t)dt=1\int_{-\infty}^{+\infty}\delta(t)\,dt=1

并且:

δ(t)=0,t0\delta(t)=0,\qquad t\ne0

可以从三点理解连续冲激信号:除了 t=0t=0 之外处处为零;在 t=0t=0 处可以理解为无穷大;在包含冲激位置的任意区间内,面积为 11

延时冲激信号写作:

δ(tt0)\delta(t-t_0)

它只在 t=t0t=t_0 处发生冲激,并满足:

+δ(tt0)dt=1\int_{-\infty}^{+\infty}\delta(t-t_0)\,dt=1

现实中不存在真正无限窄、无限高的信号,但可以用很窄、很高且面积保持为 11 的脉冲来近似冲激信号。

冲激函数的基本性质

冲激函数最重要的性质是抽样性:

f(t)δ(t)=f(0)δ(t)f(t)\delta(t)=f(0)\delta(t) +f(t)δ(t)dt=f(0)\int_{-\infty}^{+\infty}f(t)\delta(t)\,dt=f(0)

它的含义是:冲激函数可以从连续函数中“挑出”某一点的值。

冲激函数还是偶函数:

δ(t)=δ(t)\delta(-t)=\delta(t)

比例性质为:

δ(at)=1aδ(t)\delta(at)=\frac{1}{|a|}\delta(t)

卷积性质为:

f(t)δ(t)=f(t)f(t)*\delta(t)=f(t)

这说明单位冲激信号在卷积中相当于“单位元”。一个信号和单位冲激卷积,结果还是原信号。

用单位抽样序列表示任意离散序列

任意离散序列 x(n)x(n) 都可以表示为:

x(n)=m=+x(m)δ(nm)x(n)=\sum_{m=-\infty}^{+\infty}x(m)\delta(n-m)

这个公式的含义是:把序列中每一个点单独拿出来,用一个平移后的单位抽样序列表示,再把所有点加起来,就恢复原序列。

例如某序列在 n=1,0,1,2,3n=-1,0,1,2,3 处的值分别为 1,2,1,2,1.51,2,1,-2,1.5,则它可以写成:

x(n)=δ(n+1)+2δ(n)+δ(n1)2δ(n2)+1.5δ(n3)x(n)=\delta(n+1)+2\delta(n)+\delta(n-1)-2\delta(n-2)+1.5\delta(n-3)

这里每一项都表示一个位置上的点。例如 2δ(n2)-2\delta(n-2) 表示在 n=2n=2 处有一个高度为 2-2 的样本点。

冲激响应:系统特性的“身份证”

系统在单位冲激信号作用下产生的零状态响应,称为单位冲激响应,简称冲激响应,通常记作:

h(t)h(t)

若系统记作 HH,则可以写成:

δ(t)Hh(t)\delta(t)\rightarrow H\rightarrow h(t)

零状态响应表示系统初始状态为零,只考虑输入信号产生的响应。

冲激响应之所以重要,是因为它能反映系统自身特性。不同系统在同样的单位冲激输入下通常会产生不同响应。对于线性时不变系统,只要知道冲激响应,就可以通过卷积求出任意输入下的输出。

单位阶跃序列:从某一时刻开始一直存在

单位阶跃序列记作:

u(n)u(n)

定义为:

u(n)={1,n00,n<0u(n)= \begin{cases} 1, & n\ge0\\ 0, & n<0 \end{cases}

它表示序列从 n=0n=0 开始取值为 11,在 n<0n<0 时取值为 00

单位阶跃序列示意

单位阶跃序列与单位抽样序列之间有密切关系:

δ(n)=u(n)u(n1)\delta(n)=u(n)-u(n-1)

因为 u(n)u(n)n=0n=0 开始为 11,而 u(n1)u(n-1)n=1n=1 开始为 11,两者相减后只在 n=0n=0 处留下 11

反过来,单位阶跃序列可以看作从 n=0n=0 开始无穷多个单位抽样序列之和:

u(n)=m=0δ(nm)u(n)=\sum_{m=0}^{\infty}\delta(n-m)

即:

u(n)=δ(n)+δ(n1)+δ(n2)+u(n)=\delta(n)+\delta(n-1)+\delta(n-2)+\cdots

连续时间单位阶跃信号

连续时间单位阶跃信号记作:

u(t)u(t)

定义为:

u(t)={0,t<01,t>0u(t)= \begin{cases} 0, & t<0\\ 1, & t>0 \end{cases}

延时单位阶跃信号写作:

u(tt0)u(t-t_0)

定义为:

u(tt0)={0,t<t01,t>t0u(t-t_0)= \begin{cases} 0, & t<t_0\\ 1, & t>t_0 \end{cases}

它表示阶跃发生的位置从 t=0t=0 移到了 t=t0t=t_0。工程中,开关从关闭变为打开、系统突然加上恒定输入,都可以用阶跃信号描述。

矩形序列:有限长度的窗口

矩形序列记作:

RN(n)R_N(n)

定义为:

RN(n)={1,0nN10,其他R_N(n)= \begin{cases} 1, & 0\le n\le N-1\\ 0, & \text{其他} \end{cases}

它只在 00N1N-1 之间取值为 11,其他位置为 00

矩形序列示意

矩形序列可以用单位阶跃序列表示:

RN(n)=u(n)u(nN)R_N(n)=u(n)-u(n-N)

这个公式可以理解为“先打开,再关闭”。u(n)u(n)n=0n=0 打开,u(nN)u(n-N)n=Nn=N 打开,两者相减后,只保留 0nN10\le n\le N-1 这一段。

矩形序列也可以用单位抽样序列表示:

RN(n)=k=0N1δ(nk)R_N(n)=\sum_{k=0}^{N-1}\delta(n-k)

也就是:

RN(n)=δ(n)+δ(n1)+δ(n2)++δ[n(N1)]R_N(n)=\delta(n)+\delta(n-1)+\delta(n-2)+\cdots+\delta[n-(N-1)]

这说明矩形序列本质上是有限个单位抽样序列的叠加。

实指数序列:衰减与发散

实指数序列通常写作:

anu(n)a^n u(n)

其中 aa 是实数,u(n)u(n) 表示序列从 n=0n=0 开始存在。

当:

a<1|a|<1

序列随 nn 增大逐渐趋近于 00,称为收敛序列。

当:

a>1|a|>1

序列随 nn 增大不断变大,称为发散序列。

实指数序列示意

例如,当 a=12a=\frac12 时,序列为:

1,12,14,18,1,\frac12,\frac14,\frac18,\cdots

它是典型的衰减序列。若 a=2a=2,则序列为:

1,2,4,8,1,2,4,8,\cdots

它是典型的增长序列。系统自然响应中经常出现指数序列,稳定系统常对应衰减指数项,不稳定系统可能出现增长指数项。

复指数序列:指数与正弦的统一表达

复指数序列可写作:

x(n)=e(σ+jω0)nx(n)=e^{(\sigma+j\omega_0)n}

根据指数运算性质:

x(n)=eσnejω0nx(n)=e^{\sigma n}e^{j\omega_0 n}

再利用欧拉公式:

ejω0n=cos(ω0n)+jsin(ω0n)e^{j\omega_0 n}=\cos(\omega_0 n)+j\sin(\omega_0 n)

得到:

x(n)=eσn[cos(ω0n)+jsin(ω0n)]x(n)=e^{\sigma n}\left[\cos(\omega_0 n)+j\sin(\omega_0 n)\right]

这里,σ\sigma 控制幅值增长或衰减,ω0\omega_0 控制振荡频率。

如果 σ<0\sigma<0,幅值衰减;如果 σ>0\sigma>0,幅值增长;如果 σ=0\sigma=0,幅值不变,只保留纯振荡。

复指数序列是傅里叶分析、Z 变换和频率响应的基础。数字信号处理中很多复杂信号都可以分解为复指数信号的组合。

正弦型序列与数字频率

正弦型序列可以写作:

x(n)=Acos(nω0+φ)x(n)=A\cos(n\omega_0+\varphi)

其中,AA 是幅值,ω0\omega_0 是数字角频率,φ\varphi 是初相位。

如果正弦序列由模拟信号采样得到,例如模拟信号为:

xa(t)=sin(Ωt)x_a(t)=\sin(\Omega t)

采样周期为 TT,在 t=nTt=nT 处取样,则:

xa(t)t=nT=sin(ΩnT)x_a(t)|_{t=nT}=\sin(\Omega nT)

数字序列可写为:

x(n)=sin(ωn)x(n)=\sin(\omega n)

其中数字频率和模拟角频率满足:

ω=ΩT\omega=\Omega T

这个公式非常重要。它说明数字频率不仅由模拟频率 Ω\Omega 决定,也由采样周期 TT 决定。采样周期越大,同一模拟频率对应的数字频率越大;采样周期越小,对应的数字频率越小。

周期序列的判断标准

如果存在一个最小的正整数 NN,使得:

x(n)=x(n+N),<n<+x(n)=x(n+N),\qquad -\infty<n<+\infty

则称 x(n)x(n) 为周期序列,NN 为周期。

注意,离散时间序列的周期必须是正整数。因为 nn 只能取整数,不存在“半个采样点”的序号。

以序列

x(n)=sin(π4n)x(n)=\sin\left(\frac{\pi}{4}n\right)

为例。若令 nn 变为 n+8n+8,则:

x(n+8)=sin[π4(n+8)]=sin(π4n+2π)x(n+8)=\sin\left[\frac{\pi}{4}(n+8)\right] =\sin\left(\frac{\pi}{4}n+2\pi\right)

由于 sin(θ+2π)=sinθ\sin(\theta+2\pi)=\sin\theta,所以:

x(n+8)=x(n)x(n+8)=x(n)

因此该序列周期为 N=8N=8

离散正弦序列周期示意

一般正弦序列的周期性

设一般正弦序列为:

x(n)=Asin(ω0n+φ)x(n)=A\sin(\omega_0 n+\varphi)

若它是周期序列,则应满足:

x(n+N)=x(n)x(n+N)=x(n)

代入得到:

x(n+N)=Asin[ω0(n+N)+φ]x(n+N)=A\sin[\omega_0(n+N)+\varphi]

即:

x(n+N)=Asin(ω0n+ω0N+φ)x(n+N)=A\sin(\omega_0 n+\omega_0N+\varphi)

要使它等于原序列,需要:

ω0N=2πk\omega_0N=2\pi k

其中 kk 为整数。于是:

N=2πω0kN=\frac{2\pi}{\omega_0}k

由于 NN 必须是正整数,所以并不是所有离散正弦序列都是周期序列。

具体分三种情况。

2πω0\frac{2\pi}{\omega_0} 是整数,取 k=1k=1,则周期为:

N=2πω0N=\frac{2\pi}{\omega_0}

2πω0\frac{2\pi}{\omega_0} 不是整数,而是有理数,设:

2πω0=PQ\frac{2\pi}{\omega_0}=\frac{P}{Q}

其中 P,QP,Q 互素。取 k=Qk=Q,则:

N=PN=P

因此序列仍然是周期序列。

2πω0\frac{2\pi}{\omega_0} 是无理数,则没有任何整数 kk 能使 NN 成为正整数,所以该正弦序列不是周期序列。

周期求解例题

判断下列序列的周期。

第一,

sin(π8n)\sin\left(\frac{\pi}{8}n\right)

这里 ω0=π8\omega_0=\frac{\pi}{8},所以:

2πω0=2ππ/8=16\frac{2\pi}{\omega_0}=\frac{2\pi}{\pi/8}=16

周期为:

N=16N=16

第二,

sin(4π5n)\sin\left(\frac{4\pi}{5}n\right)

这里 ω0=4π5\omega_0=\frac{4\pi}{5},所以:

2πω0=2π4π/5=52\frac{2\pi}{\omega_0}=\frac{2\pi}{4\pi/5}=\frac52

写成 PQ\frac{P}{Q} 时,P=5,Q=2P=5,Q=2,所以周期为:

N=5N=5

第三,

cos(15n)\cos\left(\frac15 n\right)

这里 ω0=15\omega_0=\frac15,所以:

2πω0=10π\frac{2\pi}{\omega_0}=10\pi

因为 π\pi 是无理数,所以 10π10\pi 也是无理数,因此该序列不是周期序列。

第四,

sin(π8n)sin(4π5n)\sin\left(\frac{\pi}{8}n\right)-\sin\left(\frac{4\pi}{5}n\right)

第一项周期为 1616,第二项周期为 55。整体重复必须同时满足两项都重复,因此周期为二者最小公倍数:

N=lcm(16,5)=80N=\operatorname{lcm}(16,5)=80

序列运算的学习重点

认识常见序列之后,就要学习序列的基本运算。数字信号处理不只是看一个序列本身,还要研究它经过移动、翻转、叠加、相乘、累加、抽取、插值和卷积以后会发生什么变化。

这些运算是后续滤波器、系统响应、频域分析和 Z 变换的基础。

移位:左移和右移不要记反

mm 为正整数时:

x(nm)x(n-m)

表示序列 x(n)x(n) 右移 mm 位。

而:

x(n+m)x(n+m)

表示序列 x(n)x(n) 左移 mm 位。

初学者最容易在这里记反。可以用一句话记忆:括号里是 nmn-m,图像向右移;括号里是 n+mn+m,图像向左移。

原因是,若原来在 n=0n=0 的特征点出现在新序列的 n=mn=m 处,需要满足 nm=0n-m=0,所以 x(nm)x(n-m) 是右移。

考虑序列:

x(n)={12(12)n,n10,n<1x(n)= \begin{cases} \frac12\left(\frac12\right)^n, & n\ge -1\\ 0, & n<-1 \end{cases}

代入几个点可以得到:

x(1)=1,x(0)=12,x(1)=14,x(2)=18x(-1)=1,\qquad x(0)=\frac12,\qquad x(1)=\frac14,\qquad x(2)=\frac18

因此它从 n=1n=-1 开始,是一个向右衰减的序列。

现在求 x(n+1)x(n+1)。将原式中的 nn 替换为 n+1n+1,有:

x(n+1)={12(12)n+1,n+110,n+1<1x(n+1)= \begin{cases} \frac12\left(\frac12\right)^{n+1}, & n+1\ge -1\\ 0, & n+1<-1 \end{cases}

条件 n+11n+1\ge -1 等价于 n2n\ge -2,并且:

12(12)n+1=14(12)n\frac12\left(\frac12\right)^{n+1}=\frac14\left(\frac12\right)^n

所以:

x(n+1)={14(12)n,n20,n<2x(n+1)= \begin{cases} \frac14\left(\frac12\right)^n, & n\ge -2\\ 0, & n<-2 \end{cases}

这说明原序列向左移动了 11 位。

翻折:以 n=0 为镜像轴

如果有一个序列 x(n)x(n),那么:

x(n)x(-n)

表示将 x(n)x(n)n=0n=0 为对称轴翻折。

原来在 n=1n=1 的值会翻到 n=1n=-1;原来在 n=2n=2 的值会翻到 n=2n=-2;原来在 n=1n=-1 的值会翻到 n=1n=1

仍以前面的序列为例:

x(n)={12(12)n,n10,n<1x(n)= \begin{cases} \frac12\left(\frac12\right)^n, & n\ge -1\\ 0, & n<-1 \end{cases}

x(n)x(-n) 时,将 nn 替换为 n-n

x(n)={12(12)n,n10,n<1x(-n)= \begin{cases} \frac12\left(\frac12\right)^{-n}, & -n\ge -1\\ 0, & -n<-1 \end{cases}

n1-n\ge -1 得:

n1n\le 1

所以:

x(n)={12(12)n,n10,n>1x(-n)= \begin{cases} \frac12\left(\frac12\right)^{-n}, & n\le 1\\ 0, & n>1 \end{cases}

移位与翻折示意

翻折在卷积图解法中非常重要,因为卷积计算中要对一个序列进行反转和平移。

序列的和与乘积

两个序列的和,是指同一序号 nn 上的序列值逐项相加。若有 x1(n)x_1(n)x2(n)x_2(n),则:

y(n)=x1(n)+x2(n)y(n)=x_1(n)+x_2(n)

也就是说,对每一个 nn,都有:

y(n)=x1(n)+x2(n)y(n)=x_1(n)+x_2(n)

两个序列的乘积,是指同一序号 nn 上的序列值逐项相乘:

y(n)=x1(n)x2(n)y(n)=x_1(n)x_2(n)

例如,若 x1(2)=3x_1(2)=3x2(2)=4x_2(2)=4,那么乘积序列在 n=2n=2 处的值为:

y(2)=3×4=12y(2)=3\times4=12

序列相乘常用于加窗处理。所谓加窗,就是把原信号乘以一个窗口序列,从而只保留或强调某一段信号。

累加:到当前为止的总和

设某一序列为 x(n)x(n),它的累加序列 y(n)y(n) 定义为:

y(n)=k=nx(k)y(n)=\sum_{k=-\infty}^{n}x(k)

这个公式表示 y(n)y(n) 等于从负无穷到当前时刻 nn 为止所有 x(k)x(k) 的和。

可以把累加理解成“到当前为止一共积累了多少”。如果 x(n)x(n) 表示每天的收入,那么 y(n)y(n) 就表示到第 nn 天为止的总收入。

累加与单位阶跃序列密切相关。后面卷积性质会说明:

x(n)u(n)=m=nx(m)x(n)*u(n)=\sum_{m=-\infty}^{n}x(m)

也就是说,和单位阶跃序列卷积可以实现累加。

尺度变换:抽取与插值

尺度变换改变的是序列在时间轴上的疏密程度。

抽取可以表示为:

x(n)x(mn)x(n)\rightarrow x(mn)

其中 mm 是正整数。例如 m=2m=2 时,得到:

x(2n)x(2n)

它相当于两个点取一个点。因为新序列的 n=0,1,2,n=0,1,2,\cdots 对应原序列的 0,2,4,0,2,4,\cdots 点,原序列中一部分点被跳过了。

抽取在实际系统中常称为降采样。降采样可以减少数据量,但如果处理不当,可能造成频谱混叠,因此通常要先进行低通滤波。

插值可以表示为:

x(n)x(nm)x(n)\rightarrow x\left(\frac{n}{m}\right)

其中 mm 是正整数。例如 m=2m=2 时,得到:

x(n2)x\left(\frac{n}{2}\right)

它可以理解为在两个点之间插入新的点,使序列变得更密。

严格来说,x(n/2)x(n/2) 只有当 n/2n/2 是整数时才直接对应原序列的值;对于新增位置,需要通过某种插值规则补充数值。常见方法包括零插值、线性插值和滤波插值。

卷积和:数字信号处理中最重要的运算

两个离散序列 x(n)x(n)h(n)h(n) 的卷积定义为:

x(n)h(n)=m=+x(m)h(nm)x(n)*h(n)=\sum_{m=-\infty}^{+\infty}x(m)h(n-m)

卷积有两种常用计算方法。

第一种是图示法,也叫图解法。基本步骤为:换元、反转、平移、相乘、求和。

卷积图解法步骤

第二种是解析法,也就是直接按照定义式计算。

卷积的物理意义可以理解为:系统输出等于输入信号与系统冲激响应的综合叠加。若 x(n)x(n) 是输入,h(n)h(n) 是系统冲激响应,则输出为:

y(n)=x(n)h(n)y(n)=x(n)*h(n)

这就是线性时不变系统分析的核心公式。

卷积的图像理解:滑动、重叠、求和

卷积可以理解为“滑动重叠求和”。

当两个信号没有重叠时,逐点相乘结果全为 00,卷积值也为 00

当一个信号开始滑入另一个信号时,重叠区域逐渐变大,卷积值也可能逐渐增大。

当重叠区域最大时,卷积值通常达到较大值。

继续滑动后,重叠区域逐渐减小,卷积值也随之减小。

这种理解有助于解释滤波器为什么能够平滑信号、改变信号形状,或者产生延迟效果。

卷积的矩阵表示

卷积也可以用矩阵与向量相乘表示。若:

y(n)=x(n)h(n)y(n)=x(n)*h(n)

x(n)x(n) 长度为 nxn_xh(n)h(n) 长度为 nhn_h,则卷积结果长度为:

ny=nx+nh1n_y=n_x+n_h-1

矩阵法的思想是:把 h(n)h(n) 按卷积移位规律排成一个矩阵,再与 x(n)x(n) 构成的向量相乘,得到输出向量 y(n)y(n)

这说明卷积本质上是一种线性运算。计算机程序中实现卷积时,也常常利用这一思想。

卷积计算例题

设:

x(n)={n2,0n30,其他x(n)= \begin{cases} \frac{n}{2}, & 0\le n\le3\\ 0, & \text{其他} \end{cases} h(n)={3n,0n20,其他h(n)= \begin{cases} 3-n, & 0\le n\le2\\ 0, & \text{其他} \end{cases}

要求:

x(n)h(n)x(n)*h(n)

先列出非零值。

对于 x(n)x(n)

x(0)=0,x(1)=12,x(2)=1,x(3)=32x(0)=0,\quad x(1)=\frac12,\quad x(2)=1,\quad x(3)=\frac32

因此:

x={0,12,1,32}x=\left\{0,\frac12,1,\frac32\right\}

对于 h(n)h(n)

h(0)=3,h(1)=2,h(2)=1h(0)=3,\quad h(1)=2,\quad h(2)=1

因此:

h={3,2,1}h=\{3,2,1\}

卷积结果长度为:

4+31=64+3-1=6

结果为:

x(n)h(n)={0,32,4,7,4,32}x(n)*h(n)=\left\{0,\frac32,4,7,4,\frac32\right\}

卷积结果示意

按定义式一步一步求卷积

卷积定义为:

y(n)=m=+x(m)h(nm)y(n)=\sum_{m=-\infty}^{+\infty}x(m)h(n-m)

由于 x(n)x(n)h(n)h(n) 都是有限长序列,实际只需要计算非零项。

n=0n=0 时:

y(0)=x(0)h(0)=03=0y(0)=x(0)h(0)=0\cdot3=0

n=1n=1 时:

y(1)=x(0)h(1)+x(1)h(0)y(1)=x(0)h(1)+x(1)h(0) y(1)=02+123=32y(1)=0\cdot2+\frac12\cdot3=\frac32

n=2n=2 时:

y(2)=x(0)h(2)+x(1)h(1)+x(2)h(0)y(2)=x(0)h(2)+x(1)h(1)+x(2)h(0) y(2)=01+122+13=4y(2)=0\cdot1+\frac12\cdot2+1\cdot3=4

n=3n=3 时:

y(3)=x(1)h(2)+x(2)h(1)+x(3)h(0)y(3)=x(1)h(2)+x(2)h(1)+x(3)h(0) y(3)=121+12+323=7y(3)=\frac12\cdot1+1\cdot2+\frac32\cdot3=7

n=4n=4 时:

y(4)=x(2)h(2)+x(3)h(1)y(4)=x(2)h(2)+x(3)h(1) y(4)=11+322=4y(4)=1\cdot1+\frac32\cdot2=4

n=5n=5 时:

y(5)=x(3)h(2)=321=32y(5)=x(3)h(2)=\frac32\cdot1=\frac32

所以:

y(n)={0,32,4,7,4,32}y(n)=\left\{0,\frac32,4,7,4,\frac32\right\}

这与矩阵法结果一致。

卷积和的常用性质

卷积和具有代数运算性质,包括交换律、结合律和分配律。

交换律:

x(n)h(n)=h(n)x(n)x(n)*h(n)=h(n)*x(n)

结合律:

[x1(n)x2(n)]x3(n)=x1(n)[x2(n)x3(n)][x_1(n)*x_2(n)]*x_3(n)=x_1(n)*[x_2(n)*x_3(n)]

分配律:

x(n)[h1(n)+h2(n)]=x(n)h1(n)+x(n)h2(n)x(n)*[h_1(n)+h_2(n)]=x(n)*h_1(n)+x(n)*h_2(n)

卷积还有延迟性质。若:

x1(n)x2(n)=y(n)x_1(n)*x_2(n)=y(n)

则:

x1(nm1)x2(nm2)=y(nm1m2)x_1(n-m_1)*x_2(n-m_2)=y(n-m_1-m_2)

这说明两个序列分别延迟后,卷积结果的延迟量等于两个延迟量之和。

典型信号的卷积也很重要。首先:

x(n)δ(n)=x(n)x(n)*\delta(n)=x(n)

这说明单位抽样序列在卷积中是单位元。

其次:

x(n)u(n)=m=nx(m)x(n)*u(n)=\sum_{m=-\infty}^{n}x(m)

这说明与单位阶跃序列卷积相当于对原序列进行累加。

结语:入门阶段最该抓住什么

这一讲的核心可以压缩成三句话。

第一,数字信号通常用离散时间序列 x(n)x(n) 表示,它是一串按整数编号排列的数据点。

第二,单位抽样序列、单位阶跃序列、矩形序列、指数序列、复指数序列、正弦序列和周期序列,是数字信号处理中最常见的基础序列。

第三,移位、翻折、相加、相乘、累加、尺度变换和卷积,是后续分析系统和设计滤波器的基本工具,其中卷积是线性时不变系统分析的核心。

如果是 0 基础学习者,建议按照下面顺序复习:先区分 x(t)x(t)x(n)x(n),再掌握 δ(n)\delta(n)u(n)u(n)RN(n)R_N(n) 三个基础序列,接着练习移位和翻折,最后重点掌握卷积的定义法、图解法和例题计算。

只要把“离散序列是一串点”这个观念建立起来,数字信号处理的入门部分就会清晰很多。

Back to archive

Discussion

Comments

Post

Share questions, corrections, or extra notes about this post.