本博文是《深入浅出通信原理》的学习笔记,仅供个人学习参考使用
一、理想的采样
我们在数电的学习当中都知道:模拟信号转数字信号需要经过“采样”,“保持”,”量化“,"编码”四个步骤,下面结合框图一起来看看:
其中,我们的上图中的抽样信号
fs(t),就是由模拟信号
f(t)与抽样脉冲
p(t)相乘得到的:
fs(t)=f(t)p(t)
对于上图,首先我们要说的是这个抽样脉冲
p(t):它是单位冲激函数以周期为
Ts(
Ts是采样周期)叠加形成的,我们写一下它的表达式:
p(t)=n=−∞∑+∞δ(t−nTs)
当然,研究一个信号,要分别从时域和频域入手,因此,下面我们看看
p(t)的频域。对它做傅里叶变换,由于我们在上一篇blog中已经计算了周期信号的傅里叶变换,因此:
F[p(t)]=2Πk=−∞∑+∞ckδ(ω−kω0)
其中,
ck有:
ck=Ts1∫−2Ts+2Tsp(t)e−jkω0tdt
而注意,我们别忘了,当在区间
[−2Ts,+2Ts]内,
p(t)=δ(t)!因此,
ck又可以表示成:
ck=Ts1∫−2Ts+2Tsδ(t)e−jkω0tdt=Ts1
那么,我们就知道了采样脉冲
p(t)的傅里叶变换了:
F[p(t)]=2Πk=−∞∑+∞ckδ(ω−kω0)=Ts2Πk=−∞∑+∞δ(ω−kω0)
根据傅里叶变换的结果,采样脉冲的频谱密度就是一系列幅度为
Ts2Π的单位冲激函数的叠加!
1.1 从频域角度分析理想采样
这里直接贴上《深入浅出通信原理》里面的一张大图,清晰明了:
那么我们可以知道,对信号进行理想采样相当于给原模拟信号的频谱做周期性延拓!
二、实际工作中的采样
实际工作中,我们是通过AD转换器进行采样的,常见的是并联比较型A/D转换器:
下面是并联型AD转换器的原理图,如果大家想搞明白所有内部细节,详见我的这篇blog:
【数字电子技术 Digital Electronic Technology 10】—— 数-模和模-数转换
它把参考电平
VREF分成了8份,每一份都对应着一个电平区间,然后看我们某一个时刻采样到的模拟信号的电压值是在哪一个区间范围,就给它对应的量化。具体关系如下表所示:
然后这里就有问题了:因为我们刚刚的并联型AD转换器使用的是上升沿触发的D触发器,因此,实际的采样会有一个CLK同步时钟信号,当一个CLK上升沿到来时,进行一个采样,看这个时刻模拟信号
f(t)的电压值在我们上表的哪一个范围,给它一个数字量,然后,这个数字量会保持CLK的一个周期
我们以下面的图更好地理解一下上面所说的话:
看,实际采样和我们一开始讨论的理想采样确实不一样,具体表现在:**实际采样使用了一个时钟脉冲CLK,而并没有使用冲激函数。另外,实际采样的输出并不是
fs(t)=f(t)p(t)这样的一系列冲击串,而是
f(t)在t =
nTs的值(而且会持续
Ts)**上面这种实际采样方式,我们称之为"平顶采样”
主要是因为在实际工作做,理想的抽样脉冲是不可能实现的!
三、理想采样与实际采样的关系
既然实际抽样和理想采样的实现方法不一样,那么它们之间到底有什么关系呢?
如上图所示:实际采样完全可以用这个框图模型等价分析!
为什么呢?其实我们看啊,从上面实际采样的图我们发现:直到第三个图,实际采样的步骤都还是完完全全的理想采样的结果,只是最后每一个采样值都会持续
Ts
而我们这个框图里面,脉冲成型的步骤就实现了让每一个
nTs处的采样值都能够维持
Ts的时间
因此,分析这个脉冲成型框里面的秘密就显得尤为重要!
我们先来看看经过理想采样之后的输出值,也就是输入“脉冲成型”系统的值:
fs(t)=f(nTs)n=−∞∑+∞δ(t−nTs)=n=−∞∑+∞f(nTs)δ(t−nTs)
下图展示了某一个
nTs时刻模拟信号的采样值经过
h(t)之后的输出。
还记得我们在之前的blog里面提到的吗?我们可以使用单位冲激响应来描述一个系统。而这里的“脉冲成型滤波器”,就是一个系统,我们用
h(t)来描述它!
那么,不知道大家还记不记得:单位冲激响应的定义?它是单位冲激序列输入系统之后得到的输出
也就是说:单位冲击序列
∑t=−∞+∞δ(t)输入进一个以
h(t)为单位冲激响应的系统,输出就是
h(t)
然后,我们再观察输入“脉冲成型滤波器”系统的输入:
fs(t):
fs(t)=f(nTs)n=−∞∑+∞δ(t−nTs)=n=−∞∑+∞f(nTs)δ(t−nTs)
它恰好是许多单位冲击序列的加权和!
f(nTs)就是不同单位冲击序列的权值!
那么,
fs(t)经过单位冲击响应是
h(t)的系统,输出就是:
y(t)=n=−∞∑+∞fs(nTs)h(t−nTs)=fs(t)∗h(t)
3.1 从频域角度看实际采样
在正式开始频域分析之前,我们先简单回顾一下时域的情况:
y(t)=n=−∞∑+∞fs(nTs)h(t−nTs)=fs(t)∗h(t)
还记得时域卷积定理吗?两个信号的时域卷积,那么就等价于它们的频域就相乘
即,时域上:
y(t)=x(t)∗h(t)
频域上:
F[y(t)]=F[x(t)]F[h(t)]
而
F[h(t)],就是脉冲成型滤波器的频率响应!
下面是脉冲成型滤波器的单位冲激响应:
它其实可以看成是以纵轴为对称轴,周期为
Ts的矩形脉冲延时
2Ts得来的:
而大家看到这个以纵轴为对称轴,周期为
Ts的矩形脉冲,是不是感觉特别亲切,它就是我们在之前的blog里面分析过的矩形信号。它的傅里叶变化是:
F[x(t)]=Tssinc(Tsf)
那么,根据时间延迟的傅里叶变换,我们就可以知道:
F[x(t−2Ts)]=Tssinc(Tsf)e−jω2Ts=Tssinc(Tsf)e−jΠfTs
因此,我们就求出了脉冲成型滤波器的频率响应啦:
F[h(t)]=Tssinc(Tsf)e−jΠfTs
我们知道:信号的频率响应应该包括幅频响应和相频响应
其幅频响应就是:
∣F[h(t)]∣=Ts∣sinc(Tsf)∣
四、奈奎斯特采样定理
下面是奈奎斯特采样定理:为了从抽样信号里面无失真地恢复原信号,要求采样频率
fs必须要大于2倍原信号的最高频率
fmax,即:
fs>2fmax
当
fs>2fmax的情况我就不画出来了,主要是想看看当
fs=fmax的情况:
现在有一个f = 5Hz的余弦波,我们以
fs=10Hz的频率采样,下面来看看两种情况:
我们发现,如果是如果恰好是右边那幅图的情况,那么想要无失真地恢复原信号是不可能的了
因此,我们的采样频率
fs必须大于
2fmax
4.1 频率混叠现象
我们如果有一个频率为
f=5Hz的信号,如果以
fs=8Hz的采样频率,那么采样点分布如下图:
到底能不能正确地恢复出原来的模拟信号呢?至少现在看起来,y = cos(2* pi * 5*t)是经过这些采样点的,但是你知道吗:y = cos(2 * pi * 3 * t)也完全经过这些采样点!!
上图中的绿色曲线就是频率为3Hz的余弦波,那么,我们以
fs=8Hz的频率采样,恢复出来的应该是3Hz的余弦波而不是原来5Hz的余弦波。
因此,在以小于2倍
fmax频率下采样出现的这种现象就叫做频率混叠
另外,我们还有一个结论:
以采样频率
fs对
kfs±f的信号进行采样,采样的结果是无法区分的!也就是说,采样点都是在一个位置,但是恢复出原波形的话,
kfs±f这些频率里面哪一种都有可能。
【证明】:
原信号频率为:
fc,采样频率为:
fs,因此,采样的时间间隔就是
Ts=fs1
对于我们的模拟信号:
y=cos(2pifct),第n次采样的值是:
cos(2pifcfsn)
而如果信号频率是:
kfs±fc,那么第n次采样的值就是:
cos[2pi(kfs±fc)fsn]=cos(2pikfs±2pifcfsn)=cos(2pifcfsn)
频率混叠的现象推广到复信号
在复信号下,也是一样的,以
fs的采样频率对模拟信号采样,分辨不出原信号的频率是
fc还是
kfs+fc
【证明】:复信号是:
ej2Πfct=cos(2Πfct)+jsin(2Πft)
在第n个采样时刻所采样的值是:
cos(2Πfcfsn)+jsin(2Πfcfsn)
如果复信号的频率是:
kfs+fc,那么第n个采样时刻所采样的值是:
cos[2Π(kfs+fc)fsn]+jsin[2Π(kfs+fc)fsn]=cos(2Πfcfsn)+jsin(2Πfcfsn)
上面从公式上证明了,下面我们以图像的形式直观地来看看:
我们以
fc=5Hz,采样频率
fs先是8Hz来看看对复指数信号的采样情况:
既然模拟信号是
fc=5Hz,即旋转向量(复指数信号我们都可以看成是旋转向量,
f>0表示逆时针旋转,
f<0表示顺时针旋转)一秒钟转5圈。而我们的采样时间间隔是:
Ts1=81,因此,在一个采样时间间隔内,旋转向量会转过
85圈
因此,每一个时刻的采样点就很容易可以标记出来:
下面,我们看看当模拟信号的频率变成:
kfs+fc的情况,采样点是不是还是一样的:
当k = -1时,
fc=−fs+fc=−3Hz,旋转向量顺时针旋转。
一秒钟旋转3圈,因此在一个采样时间间隔下,旋转向量旋转:
83圈:
我们发现,采样点在对应时刻的位置是完全一样的,对应其他k的情况也是一样。
4.2 折叠频率
在学习折叠频率之前,我们先回顾两件事情:
- 对原信号以采样频率
fs进行采样,在频域上相当于把原信号的频谱按以
fs为周期,进行周期延拓
- 以
fs的采样频率对信号进行采样,那么
fc和
kfs+fc会发生频率混叠(不管是不是满足奈奎斯特采样定理!)【当然原频率是
−fc的情况类似对应为:
kfs−fc】
那么,象征性地把频率为
fc,kfs+fc的点画在一幅图上:
黄色区域是属于区间
[−2fs,+2fs]的,我们可以知道,所有处在黄色区间外面的频率,最终都会和
f或者是
−f发生频率混叠,就是说所有在区间
[−2fs,+2fs]外的频率
kfs±f最终在恢复模拟信号的时候都会被认为是频率
f!
换句话说,任何处于区间外面的频率,都会被折叠到区间
[−2fs,+2fs]上。
因此,
2fs也叫做折叠频率
所以,我们就需要被采样的模拟信号的最大频率
fmax必须小于折叠频率
2fs,这样才不会发生频率混叠,即:
fmax<2fs
这也从另外一个角度证明了奈奎斯特采样定律的正确性!
所以,在正式采样之前,我们需要让模拟信号通过一个滤波器:抗混叠滤波器,来把所有大于
2fs的频率全部过滤掉【抗混叠滤波器是一个低通滤波器,截止频率为
2fs】
五、如何由采样信号恢复出模拟信号
上面聊完了采样的过程,下面我们来看看如何从采样信号恢复出模拟信号:
5.1 理想采样恢复模拟信号
首先,我们知道在时域上,理想采样得到的信号是:
fs(t)=f(t)p(t),而频域如下右图所示:
如何从
fs(t)恢复出原信号?答案是我们需要将
fs(t)通过一个低通滤波器!
我们先从频域角度分析,先来看看我们需要的低通滤波器的频率响应:
那么,我们恢复出的模拟信号(这里用
f(t)表示)的频谱密度为:
F(ω)=Fs(ω)G(ω)
也就是理想采样信号的频谱密度和低通滤波器的频谱密度相乘的结果!
F(ω)如下图所示:
再经过傅里叶逆变换就可以得到模拟信号了!
下面从时域上看看这个过程:根据傅里叶变换的对称性可知,矩形信号的傅里叶变换是sinc函数,sinc函数的傅里叶变换是矩形信号。因此,上面低通滤波器的频率响应的傅里叶变换就是sinc函数:
而频域相乘相当于时域卷积,因此,在时域上,我们把
fs(t)和这个
sinc函数卷积,就可以得到时域上的模拟信号了。
【那么,如何理解时域上的卷积呢?】这又要回到我们一开始卷积的特性上了:一个信号与单位冲激响应做卷积,结果还是它自己!即:
f(t)∗δ(t)=f(t);
f(t)∗δ(t−t0)=f(t−t0)
这是一方面,另一方面:时域上,低通滤波器的那个sinc函数代表什么?这个sinc函数就是低通滤波器的单位冲激响应。这又要回到我们一开始对单位冲激响应的定义了:一个单位冲激序列输入进一个系统,系统的输出就是单位冲激响应。,那么,这个sinc函数就是单位冲激输入进低通滤波器之后的输出!
结合上我们的第一个角度,我们就能够理解下面的图:
不同时刻,单位冲激响应的叠加,就构成了最终我们的模拟信号!
5.2 实际采样(平顶采样)恢复出模拟信号
上面所讲的是理想采样的情况,回顾一下实际采样的原理框图:
时域上:
fs(t)=f(t)p(t),接着:
y(t)=fs(t)∗h(t)
频域上:由时域卷积定理可知:
Y(ω)=Fs(ω)H(ω)(1)
【Y代表实际采样的输出】
而我们在上一节所了解到,恢复理想采样信号,是将
fs(t)做傅里叶正变换,再输入一个低通滤波器,最后经过傅里叶逆变换得到模拟信号。也就是说在频域上:
F(ω)=Fs(ω)G(ω)(2)
那么,对比(1),(2)式,我们就很容易发现,要从实际采样信号恢复模拟信号,我们需要让对实际采样输出信号通过一个频率响应为:
H(ω)1的滤波器,这样一来信号的频谱密度就变成了
Fs(ω),后面就是一样的:再让它经过低通滤波器,就可以得到模拟信号的频谱了。
下面贴上理想采样信号恢复和实际采样信号恢复的过程图:
【1】理想情况:
【2】实际情况:
注意:如果在接收端不用频率响应为
H(ω)1的滤波器对平顶抽样信号的频谱进行滤波,而是直接通过理想低通滤波器进行滤波,则恢复出来的模拟信号会出现失真,这种失真被称为“孔径失真”。