作者:望墨溢(西北工業(yè)大學(xué) 航海學(xué)院)
文章來源于科學(xué)大院公眾號(ID:kexuedayuan)
——
兒時(shí),每次盯著高速轉(zhuǎn)動(dòng)的汽車車輪時(shí),我總會有一種“錯(cuò)覺”:前行的車輪,肯定是(向前)逆時(shí)針轉(zhuǎn)動(dòng),可為什么我覺得它在(向后)順時(shí)針轉(zhuǎn)動(dòng)?難道車輪像邁克爾·杰克遜一樣,也玩“太空步”?
邁克爾·杰克遜著名的“太空步”,其中的后滑步給人一種明明在行走卻向后退的魔幻般視覺。(圖片來源:搜狗百科)
什么?你沒有盯(童)過(年)?不要緊,現(xiàn)在,請非常專注地盯著下圖中的任意一點(diǎn):
(圖片來源:貓撲網(wǎng))
看,你是不是也有同樣的“錯(cuò)覺”!
至于這個(gè)錯(cuò)覺的成因,我們要從憨豆先生唱歌說起~~
什么“流暢”音樂,其實(shí)都是離散數(shù)據(jù)
眼睛的錯(cuò)覺,其實(shí)是人眼的“采樣頻率“太低,導(dǎo)致讀取高速變化的信息(數(shù)據(jù))時(shí),發(fā)生了失真,Distortion。
采樣頻率是什么?這就得從“數(shù)字化”的概念講起。沒錯(cuò),就是“數(shù)字化電視”、“數(shù)字閉路電視”里的那個(gè)詞,相識這么多年了,可你懂它么?
宏觀世界是連續(xù)的(模擬信號,Analog Signal),即每一時(shí)刻都有對應(yīng)的狀態(tài)(數(shù)值),例如憨豆先生唱歌,只要他不唱鬼畜,那每個(gè)時(shí)刻就都有他的聲音。然而,計(jì)算機(jī)無法處理模擬信號,只能處理一定單位的離散數(shù)據(jù),例如,1Byte。
(圖片來源:作者提供)
所以,我們需要每隔一定時(shí)間間隔,讀取模擬信號的值,即為時(shí)間離散化;由于精度,Accuracy的存在,取值也無法連續(xù):例如圓周率3.14159265……,若計(jì)算機(jī)只能處理2位小數(shù),那圓周率=3.14(通常不進(jìn)行四舍五入,而是直接舍去后面的數(shù)據(jù)),即為數(shù)值離散化。
(圖片來源:作者繪制)
至此,經(jīng)過了時(shí)間和數(shù)值的離散化,連續(xù)的模擬信號,就變成了計(jì)算機(jī)可讀取、處理的數(shù)字信號,Digital Signal,這個(gè)過程叫做采樣,Sampling,也被稱為數(shù)字化,Digitization。
其中用來取值的時(shí)間間隔,叫做采樣周期,Sampling Period,對應(yīng)的頻率(1/采樣周期)就叫采樣頻率,Sampling Frequency。
不難理解,即使是憨豆先生唱歌,20M的HQ版本,也要比5M的流暢版本更“動(dòng)聽”。即采樣頻率越高(采樣點(diǎn)越密),數(shù)字化的數(shù)據(jù)越能還原真實(shí)的模擬信號,但與此同時(shí),數(shù)據(jù)量也就越大,計(jì)算機(jī)處理的“負(fù)擔(dān)“也越重(播放過于高清的視頻,可能會卡頓)。
那么問題來了:在不失真的前提下,我們希望處理的數(shù)據(jù)最少(采樣周期最長),采樣頻率的下限怎么定?想象一下,肯定不能只用一個(gè)【大】字,就判斷出憨豆先生是在唱“【大】王叫我來巡山”,還是“如果【大】海能夠,帶走我的哀愁”。
數(shù)據(jù)越多,越能知道唱的是啥歌
在1982年,美國電信工程師H.奈奎斯特提出:在模擬/數(shù)字信號的轉(zhuǎn)換過程(ADC)中,采樣頻率必須大于信號中最高頻率的2倍(采樣定理,也叫奈奎斯特采樣定理)。
例如,我們對最簡單的單頻正弦信號進(jìn)行采樣,當(dāng)我們用信號周期的1/20(最高頻率的20倍)進(jìn)行采樣,很容易還原出這個(gè)正弦信號。
(圖片來源:作者繪制)
而當(dāng)我們用信號周期的1/2(最高頻率的2倍)進(jìn)行采樣時(shí),若我們恰好采到波峰(最高點(diǎn))和波谷(最低點(diǎn)),就可以得到此正弦信號的幅值((波峰-波谷)/2)以及周期((波谷時(shí)刻-波峰時(shí)刻)*2),也可以還原出原始信號。
(圖片來源:作者繪制)
做一個(gè)不恰當(dāng)?shù)念惐龋ê┒瓜壬疾唤橐?,你介意什么):設(shè)憨豆先生唱歌的頻率是“1字/1次,根據(jù)采樣定理,若兩個(gè)字采樣一次(最高頻率的2倍),結(jié)果為“如、大、能、帶、我、哀,就,它,風(fēng),遠(yuǎn)”,就不難猜出:憨豆先生在唱張雨生的《大海》。
(圖片來源:作者提供)
然而,信號最高頻率的2倍往往不夠,因?yàn)榧词骨『貌蓸拥讲ǚ搴筒ü龋覀円彩菬o法分辨原始信號究竟是正弦波信號/交流信號,Alternation Current,AC,還是三角波信號;另外,還有可能采樣到零點(diǎn)處,讓我們誤以為原始信號是段常數(shù)信號/直流信號,Direct Current,DC……
(圖片來源:作者繪制)
因此,在實(shí)際工程應(yīng)用中,采樣頻率一般取信號最高頻率的2.56-4倍,特殊情況下,甚至需要更高倍數(shù)。畢竟,數(shù)據(jù)多了不怕,可以降采樣,Downsampling(每隔若干點(diǎn),只取一點(diǎn))。注意,降采樣的約束條件,依舊是奈奎斯特采樣定理。
(圖片來源:作者繪制)
可如果數(shù)據(jù)少了,又該怎么讓信息損失(失真)最小呢?最常見的處理方法是插值,Interpolation:根據(jù)某種算法,在已有數(shù)據(jù)中“創(chuàng)造”若干新數(shù)據(jù),最簡單的算法是用相鄰兩個(gè)數(shù)據(jù)的均值作為新數(shù)據(jù)。
(圖片來源:作者繪制)
假如,憨豆先生又愛上了《小鯉魚歷險(xiǎn)記》的主題曲,我們采樣到的數(shù)據(jù)是“大,大,小/1,3,5,7/do,mi,so,xi”,在相鄰兩個(gè)數(shù)據(jù)間,用均值作為插值,則可以還原“大,大,中,小,小/1,2,3,4,5,6,7/do,rui,mi,fa,so,la,xi”。
(圖片來源:作者提供)
可見,插值雖可以減小失真,但無法徹底消除信息的缺失。另外,現(xiàn)實(shí)中的插值算法種類繁多,不同的情況下應(yīng)采用不同的算法。
前段時(shí)間,在日本,一位女星公開了一張自拍,有位死宅通過放大她眼睛里的映像,推斷出了她的住址,后因騷擾該女星被捕。不難想象,在放大圖片時(shí),好的插值算法,可以更好地還原像素間的空缺,使細(xì)節(jié)更清晰。
(圖片來源:作者提供)
唱do的同時(shí)又唱la,數(shù)據(jù):我好難,還原不出來
若不滿足奈奎斯特采樣定理(采樣頻率過低),會發(fā)生一種在信號處理領(lǐng)域中,不容忽視的失真--混疊,Aliasing。簡單來講,就是數(shù)字信號怎么都無法還原出原始信號?;殳B分為兩類,一類為時(shí)域混疊,一類是頻域混疊。
依舊對正弦信號進(jìn)行采樣,用過低的采樣頻率進(jìn)行采樣(這里為信號頻率的4/3),會出現(xiàn)如下“誤會“:
(圖片來源:作者繪制)
可見,當(dāng)不滿足奈奎斯特采樣定理時(shí)(采樣頻率