一个连续变化的量要进入数字系统,第一件事就是采样。比如麦克风前的声压、温度传感器的读数、振动台的位移,这些都随时间连续变化。计算机能存下来的,只是按时刻取到的一串数字。采样,就是在连续时间轴上选一些时刻,把这些时刻的信号值取出来。
一天的温度曲线 T(t) 随 t(小时)连续变化。气象站每 3 小时记一次,它保存的只是曲线上几个固定时刻的值。在连续曲线上定时取值,这就是采样。
图A.1-1:温度曲线与采样点
图中的圆点就是被留下来的温度值。前几个点可以写成
T[0]=T(0),T[1]=T(3),T[2]=T(6),…
圆括号里的量仍是连续时间,方括号里的量是样本序号。样本序号只表示样本在这串记录中的位置。
因为这里每 3 小时取一次点,上面的关系可以压缩成
T[n]=T(3n),n=0,1,2,…
其实就是把”每隔 3 小时取一个值”写成了统一形式。
信号处理中通常把连续信号记为 x(t)。采样以后得到的离散序列写成
x[n]=x(nTs),n=0,1,2,…
这里 Ts 是采样周期,表示相邻两个采样时刻之间隔多久;fs 是采样频率,表示单位时间采多少次。
fs=Ts1
举个例子。若 x(t)=2t+1,采样周期 Ts=0.1 s,那么第 3 个样本来自 t=3Ts=0.3 s,所以
x[3]=x(0.3)=2×0.3+1=1.6
同一个例子整理成表,
| 样本序号 | 连续时刻 | 样本值 |
|---|
| 0 | 0 | x[0]=x(0)=1 |
| 1 | 0.1 s | x[1]=x(0.1)=1.2 |
| 2 | 0.2 s | x[2]=x(0.2)=1.4 |
| 3 | 0.3 s | x[3]=x(0.3)=1.6 |
下图把样本序号、连续时刻和样本的对应关系摆出来。从上往下看,第 n 个样本来自连续时间轴上的 t=nTs 时刻。
图A.1-2:样本序号与采样时刻
所以 x[3] 表示第 3 个采样点,对应的连续时刻是 3Ts。下图把同样的对应关系放到一个一般信号上。蓝线是连续信号,圆点是被留下来的样本。
图A.1-3:连续信号的采样
采样周期越小,时间轴上的点越密;采样周期越大,点越稀。拿 1 Hz 正弦波看一下就清楚了。1 Hz 表示 1 秒完成一个周期。若每 0.25 秒采一次,一个周期内有 4 个采样点;若每 0.5 秒采一次,一个周期内只有 2 个采样点。
图A.1-4:采样间隔对比
先看一个周期里留下了几个点。点越稀,就越难从样本判断两点之间发生了什么。
数字系统实际处理的是 x[n],也就是一串样本值。分析频谱时还要用到另一个写法,把这些样本放回连续时间轴,用一根根理想脉冲标出采样时刻和样本值。
这两个对象要分开看,
| 对象 | 位置 | 作用 |
|---|
| x(t) | 连续时间轴 | 原来的连续信号 |
| x[n] | 离散序号轴 | 数字系统实际处理的样本序列 |
| xs(t) | 连续时间轴 | 分析采样对频谱的影响 |
x[n] 是数字系统手里的序列;xs(t) 是后面做频域分析时用的理想模型。
用来标出采样时刻的记号是 δ(t−a)。把它当作放在 t=a 处的一根理想标记就行了。许多个这样的时刻标记按 Ts 排开,就得到采样脉冲列。
图A.1-5:采样时刻脉冲列
单个脉冲与信号相乘时,
x(t)δ(t−a)=x(a)δ(t−a)
脉冲的位置仍在 a,权重变成该时刻的样本值。
图A.1-6:单个脉冲采样
仍用 x(t)=2t+1、Ts=0.1 s 的例子,第 3 根脉冲放在 0.3 s,相乘后位置仍是 0.3 s,权重变成 x(0.3)=1.6。位置不变,权重改变。
如果不写理想脉冲,只看”第 3 个采样时刻留下了哪个值”,可以把这个动作写成
y(t)={1.6,0,t=0.3 st=0.3 s
这只是帮助理解的写法:它仍然放在连续时间轴上,t 可以取任意连续时刻,但非零的位置只有 0.3 s 这一点。离散序列 x[3]=1.6 只记录”第 3 个样本的值”,而这个连续时间写法还把样本放回了 t=0.3 s 的位置。
先只写三个采样时刻 0,Ts,2Ts。对应的脉冲列是
δ(t)+δ(t−Ts)+δ(t−2Ts)
让它与 x(t) 相乘,得到
x(0)δ(t)+x(Ts)δ(t−Ts)+x(2Ts)δ(t−2Ts)
这三项说明了理想采样模型的结构,位置来自采样时刻,权重来自对应的样本值。
| 项 | 位置 | 权重 |
|---|
| x(0)δ(t) | 0 | x(0) |
| x(Ts)δ(t−Ts) | Ts | x(Ts) |
| x(2Ts)δ(t−2Ts) | 2Ts | x(2Ts) |
下图画的就是这种加权脉冲列。
图A.1-7:加权脉冲列
把所有采样时刻都写进去,采样脉冲列常记为
p(t)=n=−∞∑∞δ(t−nTs)
实际数据总是从某个时刻开始,也只有有限长度。这里写成从 −∞ 到 +∞,是为了后面做频域分析时式子简洁。
于是理想采样可以写成
xs(t)=x(t)p(t)
展开后就是
xs(t)=n=−∞∑∞x(nTs)δ(t−nTs)
下图把连续信号、采样脉冲列和采样结果放在同一张图里。
图A.1-8:理想采样模型
采样中有两层关系。数字系统实际处理的是序列 x[n]=x(nTs);分析频谱时使用的是理想模型 xs(t)。前者是数据,后者是工具。
本节配了一个练习文件,可以跑一跑、改改参数,亲手看看采样率变化对时间分辨率的影响。配套资源打包在专栏入口处。