You are on page 1of 25

数字信号处理

Digital Signal Processing (DSP)

⽜晓茹
第⼀章 离散时间信号与系统

• 离散时间信号
• 采样
• 离散时间系统
离散时间系统
定义

离散时间信号 离散时间信号
x[k] y[k]

输⼊或激励 输出或响应
y[n] = T [x[n]]
离散时间系统
输⼊-输出描述

{ }

例:计算如下系统对输⼊信号x[n] = ⋯0,0, − 1, − 2, − 3, 1 ,2,3⋯ 的响应

1. 时滞系统 y[n] = x[n − 2]


2. 超前系统 y[n] = x[n + 3]
1
3. 滑动平均滤波器 y[n] = (x(n + 1) + x(n) + x(n − 1))
3
4. 最⼤值滤波器 y[n] = max {x[n − 2], x[n], x[n + 1]}
n


5. 累加器 y[n] = x[k] = x[n] + x[n − 1] + x[n − 2] + ⋯⋯
k=−∞
离散时间系统
输⼊-输出描述

{ }

例:计算如下系统对输⼊信号x[n] = ⋯0,0, − 1, − 2, − 3, 1 ,2,3,0,0⋯ 的响应

{ }

1. 时滞系统 y[n] = x[n − 2] y[n] = ⋯0,0, − 1, −2, − 3,1,2,3,0,0⋯

{ }

2. 超前系统 y[n] = x[n + 3] y[n] = ⋯0,0, − 1, − 2, − 3,1,2, 3 ,0,0⋯

{ }
1 1 4 ↓ 5
3. 滑动平均滤波器 y[n] = (x(n + 1) + x(n) + x(n − 1)) y[n] = ⋯0, − , − 1, − 2, − , 0 ,2, ,1,0⋯
3 3 3 3

{ }

4. 最⼤值滤波器 y[n] = max {x[n − 2], x[n], x[n + 1]} y[n] = ⋯0,0,0,0,1, 2 ,3,3,2,3,0⋯

{ }
n ↓

5. 累加器 y[n] = x[k] = x[n] + x[n − 1] + x[n − 2] + ⋯⋯ y[n] = ⋯0,0, − 1, − 3, − 6, −5, − 3,0,0,0⋯
k=−∞
离散时间系统
分类

① 线性与⾮线性

② 时变与⾮时变

③ 因果与⾮因果

④ 稳定与不稳定
离散时间系统
分类-线性与⾮线性系统

线性系统:具有线性特性(可加性和缩放特性)的系统。

T {ax1[k] + bx2[k]} = aT {x1[k]} + bT {x2[k]}


⾮线性系统:不具备线性特性的系统。

例:判断以下系统是⾮线性还是线性的。
2
1. y[n] = x [n]
2
2. y[n] = x[n ]
3. y[n] = ax[n] + b
离散时间系统
分类-线性与⾮线性系统

例:判断以下系统是⾮线性还是线性的。
2
1. y[n] = x [n] ⾮线性
2
2. y[n] = x[n ] 线性

3. y[n] = ax[n] + b ⾮线性


离散时间系统
分类-时变与时不变系统

时不变系统:输⼊序列的移位或延迟将引起输出序列相应的移位或延迟。

若x[k] → y[k],则x[k − n] → y[k − n]。


时变系统:不具备上述特性的系统。

例:判断以下系统是时变的还是时不变的。

1. 压缩器 y[n] = x[Mn] ,M是⼀个正整数


2. 折叠器 y[n] = x[−n]
离散时间系统
分类-时变与时不变系统

例:判断以下系统是时变的还是时不变的。

1. 压缩器 y[n] = x[Mn] ,M是⼀个正整数 时不变x→时变✓

2. 折叠器 y[n] = x[−n] 时变

Proof of 1.
令 x1[n] = x[n − d],可得 y1[n]
= x1[Mn] = x[Mn − d]。
另⼀⽅⾯来看, y[n − d] = x[M(n − d)] = x[Mn − Md]。
通过⽐较y1[n] 和y[n − d],发现两者并不相等,所以系统不是时不变系统,是时变系统
离散时间系统
分类-因果与⾮因果系统

因果系统:系统的输出响应不超前于系统的输⼊信号。

y[n] = F [x[n], x[n − 1], x[n − 2], ⋯]。


⾮因果系统:不具备上述特性的系统。这类系统在物理上不可实现。

例:以下系统是因果系统吗?

1. 微分器 y[n] = x[n] − x[n − 1]


2
2. y[n] = x[n ]
3. y[n] = x[−n]
离散时间系统
分类-稳定与不稳定系统

稳定系统:系统对任意的有界输⼊( | x[n] | ≤ Mx < ∞, ∀n)产⽣有界的输出


( | y[n] | ≤ My < ∞, ∀n),则被称为BIBO稳定系统。

不稳定BIBO系统:系统输⼊有界时,输出可能⽆解。

例:判断以下系统是BIBO稳定的吗?
n


1. 累加器 y[n] = x[k] = x[n] + x[n − 1] + x[n − 2] + ⋯⋯
k=−∞
2
2. y[n] = x [n]
离散时间系统
分类-稳定系统

例:判断以下系统是BIBO稳定的吗?
n


1. 累加器 y[n] = x[k] = x[n] + x[n − 1] + x[n − 2] + ⋯⋯ 不是
k=−∞
2
2. y[n] = x [n] 是
离散时间系统
离散LTI系统的时域描述

离散LTI系统的输⼊输出关系可由线性常系数差分⽅程来描述
N M

∑ ∑
y[n] = − ak y[n − k] + bk x[n − k]。
k=1 k=0


例:累加器 y[n] = x[k] = y[n − 1] + x[n]
k=−∞
离散时间系统
离散LTI系统的时域描述

单位脉冲响应h[n]是离散LTI系统的时域描述。

h[n]是单位脉冲序列δ[k]激励系统所产⽣的零状态响应。

δ[n] h[n] = T [δ[n]]

初始状态为0
离散时间系统
离散LTI系统的时域描述


输⼊信号x[n]可以分解为基本信号{xk[n]}的加权和,使得x[n] = ck xk[n],{ck}是信号x[n]分解后的⼀组幅度(权
k
系数)。系统对输⼊的响应为

[∑ ]
y[n] = T [x[n]] = T ck xk[n]
k 。
线性
ckT [xk[n]]

=
k
x[k]δ[n − k],即xk[n] = δ(n − k),ck = x[k]。根据时不变性和h[k] = T [δ[k]],

时域分析时,x[n] =
k
T[δ[n − k]] = h[n − k]。最终,


y[n] = x[k]h[n − k]。
k
离散时间系统
x[n] h[n]
离散LTI系统的时域描述 h[n] x[n]

x[n] x[n]
h1[n] h2[n] h2[n] h1[n]
卷积的性质:
x[n] x[n]
恒等性:x[n] * δ[n] = x[n] h1[n] h2[n]
h[n] = h1[n] * h2[n]

x[n] * δ[n − k] = x[n − k] h1[n]


x[n] x[n]
交换律:x[n] * h[n] = h[n] * x[n]
h2[n] h[n] = h1[n] + h2[n]

结合律:(x[n] * h1[n]) * h2[n] = x[n] * (h1[n] * h2[n])


分配律:x[n] * (h1[n] + h2[n]) = x[n] * h1[n] + x[n] * h2[n]
离散时间系统
离散LTI系统的时域描述

离散LTI系统是因果的充要条件是

k < 0时,h[k] = 0。
离散时间系统
离散LTI系统的时域描述

离散LTI系统是BIBO稳定的充要条件是


h[k] = S < ∞。
k=−∞
离散时间系统
离散LTI系统的时域描述

M2
1

例:求滑动平均系统y[n] = x[n − k]的单位脉冲响应,并判断
M1 + M2 + 1 k=−M
1
其因果性和稳定性。
离散时间系统
离散LTI系统的响应分析


yzs[n] = x[k]h[n − k] = x[n] * h[n]
k=−∞
∞ 。


= h[k]x[n − k] = h[n] * x[n]
k=−∞
离散时间系统
离散LTI系统的响应分析

+
例:已知离散LIT系统的单位脉冲响应h[k] = u[n] − u[n − N],N ∈ ℤ ,输⼊是
n
x[n] = a u[n],求系统的零状态响应。

!!!
离散时间系统
序列卷积的应⽤
输⼊信号x[k] 输出信号y[k]

x+h→y 分析 正问题

y+h→x 控制 逆问题

x+y→h 设计 逆问题

灰盒问题:y + 部分h → x 或 y + 部分x → h

⿊盒问题:已知y,未知x和h
离散时间系统
序列卷积的应⽤

• 例:已知输出⾳频信号的y[k]是由输⼊⾳乐信号x[k]通过8点滑动平均系统得
的,利⽤解卷积求出最初的⾳乐信号x[k]。
离散时间系统
序列卷积的应⽤
• [x0, fs] = audioread(‘D:\BaiduNetdiskDownload\x0.mp3');
• time = (1:length(x0)) / fs;%计算播放时间
• gure;
• plot(time,x0,'r');%绘制y[k]波形
• h=[1/8;1/8;1/8;1/8;1/8;1/8;1/8;1/8];
• y1=conv(x0(:,1),h);%通过8点平均滑动系统
• time=(1:length(y1)) / fs;
• gure;
• plot(time,y1,'b');
• audiowrite('D:\BaiduNetdiskDownload\y1.mp3',y1,fs)
• x = deconv(y1, h);%解卷积
• %wavplay(x, fs);%播放x[k]
• time = (1:length(x)) / fs;%计算播放时间
• gure;
• plot(time, x,'r');%绘制x[k]波形
• audiowrite(‘D:\BaiduNetdiskDownload\x.mp3’,x,fs);%保存x[k]⾳频⽂件
fi
fi
fi

You might also like