從採樣點到聲音:sinc函數、低通濾波和卷積

從採樣點到聲音:sinc函數、低通濾波和卷積

來自專欄 音樂製作與音頻處理

前言

自從接觸到數字信號,特別是採樣定理之後,我就一直非常好奇一個問題:兩個相鄰的採樣點之間,要以什麼樣的形式,怎麼樣連接起來?

因為正弦波才是頻率最單一的波形,如果兩個採樣點直接用直線連接(變成了三角波),那麼又能產生更高頻率的信號了,顯然跟採樣定理是相悖的。

所以我就想,是不是有一種插值的方法,在兩個採樣點之間的插值形成的是一條正線曲線?

直到接觸到了sinc函數(又稱為抽樣函數,Sa函數,辛格函數),才豁然開朗。

小小的一個從採樣點還原波形的過程,就蘊含了這麼多知識。

AD/DA轉換

真實世界中的音頻信號被麥克風接收之後,傳送到了音效卡上的AD晶元上進行了模數轉換,將連續的振動離散化為一個一個離散的採樣點,以便於交給其他數字設備進一步處理。

將模擬信號轉換為數字信號的過程,在信號處理領域叫做採樣(Sampling)。我們可以形象地把這個過程理解為使用一連串寬度非常窄的脈衝和輸入信號相乘。而得到的結果則是一連串時間上不連續的脈衝。

而當我們需要從數字設備里將音頻播放出來,我們就需要進行一個相反的過程。數據被傳送到音效卡上,經過DA晶元進行數模轉換之後,輸出可以連接到揚聲器上的模擬電信號。這時候,就需要一個辦法,來將離散的點變得連續起來了。

從時域到頻域

在對信號進行處理的過程中,我們經常使用傅立葉變換。傅立葉變換將信號從時域轉到頻域,便於分析和處理。

當採樣脈衝的寬度越來越窄,採樣後的信號具有的頻譜寬度會越來越寬。在理論分析時,我們可以假設脈衝的寬度趨於0,也就是δ函數。這時候信號的頻譜在頻域上無限重複延展。

我們在還原信號的時候,只需要在頻譜上做一個低通濾波,把那些延展出來的頻率過濾掉,得到的就是原始的信號啦!

而根據傅立葉變換的性質,在頻域上乘積,等價於在時域上的卷積。而低通濾波器,可以近似看為一個矩形函數。矩形函數的傅立葉變換(或者逆變換),則是Sinc函數。

所以,低通濾波的操作,又相當於把採樣點和Sinc函數進行了卷積。採樣點和採樣點之間的曲線,也就自然而然地形成了。

直觀地感受卷積的過程

寫了段代碼來展示卷積操作的這個過程。

簡直太漂亮了好嗎!!!入迷了!!!

由於卷積跟信號的順序沒有關係,互換一下兩個函數,雖然看起來不那麼直觀,但是也是很炫酷的一個過程,嘻嘻

再來看看使用卷積生成其他函數

實際應用

矩形窗函數的傅立葉變換(及逆變換)得到的是一個頻寬無窮大(或者時長無窮大)的Sinc函數。

那麼使用這樣一個函數來進行卷積,需要花費的時間也必定是無窮大的。

而又使用卷積,需要進行大量的乘法計算,延遲大,實現起來也比較麻煩。所以一般都直接使用低通濾波來處理信號,方便又直觀。

試想上面的圖片,要得到卷積後的信號,需要把整個信號的所有的採樣點都過一遍。

所以實際應用中,也不可能實現完美的一刀切的低通濾波。

於是人們便捨棄一些精度來換取低延遲和高效率。比如人耳可聽見的最高頻率是20kHz,而音頻文件一般以44.1kHz作為採樣率。

了解更多音頻知識:

「不對稱波形」和全通濾波器

信號的抖動處理

立體聲就是左聲道+右聲道?不!M-S制式與鋁帶話筒


推薦閱讀:

撥片:手感,音色
周杰倫早年經歷有哪些?
周董的土味歌詞,才是吸引你的理由
馬友友要在中國組建一支樂團,現在等你來
這是世界上第一款雷電3音效卡?

TAG:數字信號處理 | 音頻處理 | 音樂 |