作者:望墨溢(西北工业大学 航海学院)
文章来源于科学大院公众号(ID:kexuedayuan)
——
儿时,每次盯着高速转动的汽车车轮时,我总会有一种“错觉”:前行的车轮,肯定是(向前)逆时针转动,可为什么我觉得它在(向后)顺时针转动?难道车轮像迈克尔·杰克逊一样,也玩“太空步”?
迈克尔·杰克逊著名的“太空步”,其中的后滑步给人一种明明在行走却向后退的魔幻般视觉。(图片来源:搜狗百科)
什么?你没有盯(童)过(年)?不要紧,现在,请非常专注地盯着下图中的任意一点:
(图片来源:猫扑网)
看,你是不是也有同样的“错觉”!
至于这个错觉的成因,我们要从憨豆先生唱歌说起~~
什么“流畅”音乐,其实都是离散数据
眼睛的错觉,其实是人眼的“采样频率“太低,导致读取高速变化的信息(数据)时,发生了失真,Distortion。
采样频率是什么?这就得从“数字化”的概念讲起。没错,就是“数字化电视”、“数字闭路电视”里的那个词,相识这么多年了,可你懂它么?
宏观世界是连续的(模拟信号,Analog Signal),即每一时刻都有对应的状态(数值),例如憨豆先生唱歌,只要他不唱鬼畜,那每个时刻就都有他的声音。然而,计算机无法处理模拟信号,只能处理一定单位的离散数据,例如,1Byte。
(图片来源:作者提供)
所以,我们需要每隔一定时间间隔,读取模拟信号的值,即为时间离散化;由于精度,Accuracy的存在,取值也无法连续:例如圆周率3.14159265……,若计算机只能处理2位小数,那圆周率=3.14(通常不进行四舍五入,而是直接舍去后面的数据),即为数值离散化。
(图片来源:作者绘制)
至此,经过了时间和数值的离散化,连续的模拟信号,就变成了计算机可读取、处理的数字信号,Digital Signal,这个过程叫做采样,Sampling,也被称为数字化,Digitization。
其中用来取值的时间间隔,叫做采样周期,Sampling Period,对应的频率(1/采样周期)就叫采样频率,Sampling Frequency。
不难理解,即使是憨豆先生唱歌,20M的HQ版本,也要比5M的流畅版本更“动听”。即采样频率越高(采样点越密),数字化的数据越能还原真实的模拟信号,但与此同时,数据量也就越大,计算机处理的“负担“也越重(播放过于高清的视频,可能会卡顿)。
那么问题来了:在不失真的前提下,我们希望处理的数据最少(采样周期最长),采样频率的下限怎么定?想象一下,肯定不能只用一个【大】字,就判断出憨豆先生是在唱“【大】王叫我来巡山”,还是“如果【大】海能够,带走我的哀愁”。
数据越多,越能知道唱的是啥歌
在1982年,美国电信工程师H.奈奎斯特提出:在模拟/数字信号的转换过程(ADC)中,采样频率必须大于信号中最高频率的2倍(采样定理,也叫奈奎斯特采样定理)。
例如,我们对最简单的单频正弦信号进行采样,当我们用信号周期的1/20(最高频率的20倍)进行采样,很容易还原出这个正弦信号。
(图片来源:作者绘制)
而当我们用信号周期的1/2(最高频率的2倍)进行采样时,若我们恰好采到波峰(最高点)和波谷(最低点),就可以得到此正弦信号的幅值((波峰-波谷)/2)以及周期((波谷时刻-波峰时刻)*2),也可以还原出原始信号。
(图片来源:作者绘制)
做一个不恰当的类比(憨豆先生都不介意,你介意什么):设憨豆先生唱歌的频率是“1字/1次,根据采样定理,若两个字采样一次(最高频率的2倍),结果为“如、大、能、带、我、哀,就,它,风,远”,就不难猜出:憨豆先生在唱张雨生的《大海》。
(图片来源:作者提供)
然而,信号最高频率的2倍往往不够,因为即使恰好采样到波峰和波谷,我们也是无法分辨原始信号究竟是正弦波信号/交流信号,Alternation Current,AC,还是三角波信号;另外,还有可能采样到零点处,让我们误以为原始信号是段常数信号/直流信号,Direct Current,DC……
(图片来源:作者绘制)
因此,在实际工程应用中,采样频率一般取信号最高频率的2.56-4倍,特殊情况下,甚至需要更高倍数。毕竟,数据多了不怕,可以降采样,Downsampling(每隔若干点,只取一点)。注意,降采样的约束条件,依旧是奈奎斯特采样定理。
(图片来源:作者绘制)
可如果数据少了,又该怎么让信息损失(失真)最小呢?最常见的处理方法是插值,Interpolation:根据某种算法,在已有数据中“创造”若干新数据,最简单的算法是用相邻两个数据的均值作为新数据。
(图片来源:作者绘制)
假如,憨豆先生又爱上了《小鲤鱼历险记》的主题曲,我们采样到的数据是“大,大,小/1,3,5,7/do,mi,so,xi”,在相邻两个数据间,用均值作为插值,则可以还原“大,大,中,小,小/1,2,3,4,5,6,7/do,rui,mi,fa,so,la,xi”。
(图片来源:作者提供)
可见,插值虽可以减小失真,但无法彻底消除信息的缺失。另外,现实中的插值算法种类繁多,不同的情况下应采用不同的算法。
前段时间,在日本,一位女星公开了一张自拍,有位死宅通过放大她眼睛里的映像,推断出了她的住址,后因骚扰该女星被捕。不难想象,在放大图片时,好的插值算法,可以更好地还原像素间的空缺,使细节更清晰。
(图片来源:作者提供)
唱do的同时又唱la,数据:我好难,还原不出来
若不满足奈奎斯特采样定理(采样频率过低),会发生一种在信号处理领域中,不容忽视的失真--混叠,Aliasing。简单来讲,就是数字信号怎么都无法还原出原始信号。混叠分为两类,一类为时域混叠,一类是频域混叠。
依旧对正弦信号进行采样,用过低的采样频率进行采样(这里为信号频率的4/3),会出现如下“误会“:
(图片来源:作者绘制)
可见,当不满足奈奎斯特采样定理时(采样频率