模擬和數碼訊號的橋梁 奈奎斯特取樣定理

2021-10-16 09:08:31 字數 2987 閱讀 5652

在我們周圍有著各種各樣的模擬訊號,比如,電流,電磁波,溫度,聲音等等。作為計算機系統來說,它只認識0和1,意味著它只能處理數字資訊,但是,它是如何處理我們周圍的這些模擬訊號的呢?要理解這個問題,我們需要理解在數字訊號處理領域中乙個非常重要的定理——取樣定理,它是模擬訊號數碼訊號之間的乙個基本橋梁,本文將和大家一起學習奈奎斯特-夏農取樣定理。

取樣定理2023年由美國電信工程師奈奎斯特首先提出來的,因此稱為奈奎斯特取樣定理。2023年由蘇聯工程師科捷利尼科夫首次用公式嚴格地表述這一定理,因此在蘇聯文獻中稱為科捷利尼科夫取樣定理。2023年資訊理論的創始人夏農對這一定理加以明確地說明並正式作為定理引用,因此在許多文獻中又稱為夏農取樣定理。

我們先來看下面乙個例子,對於乙個正弦訊號:

y =s

in(2

πt)y = sin(2\pi t)

y=sin(

2πt)

如果我們分別以0.5,0.25,0.1,0.01的間隔取點,然後再將每個點用直線連線起來。

從上面的圖中可以發現,時間間隔越小,記錄這個訊號的點數也多,訊號還原的就越精確。顯然,我們不可能無限多的點數去記錄這個訊號,如何才能準確的表達訊號,又能合理的使用計算機資源?

其實大佬們早就有研究,就是我們今天要學習的奈奎斯特-夏農取樣定理。

取樣頻率要大於訊號最高頻率的2倍,才能無失真的保留訊號的完整資訊。

即:

f

s>2f

maxfs > 2fmax

fs>2f

max這裡,我們將這個訊號頻率(這個臨界點)叫做奈奎斯特頻率。下面我們不妨先通過乙個實驗來理解這個定理,假如有下面這樣乙個訊號:

y =e

j2πf

ty = e^

y=ej2π

ft令f=5 hz, 再分別依次以5hz10hz20hz40hz100hz的取樣率進行取樣,觀察不同取樣率情況下時域和頻域的訊號還原情況,老規矩先上**。

import numpy as np

import matplotlib.pyplot as plt

def signalcreate(_fs, _n, _f0):

fs = _fs # 取樣率

n = _n # 資料點數

f0 = _f0

n = np.linspace(0, n-1, n)

t = n / fs

yt = np.exp(1j*2*np.pi*f0*t)

f = n * fs / n - fs/2

yf = np.fft.fftshift(np.fft.fft(yt))

return t, yt, f, yf

t, yt, f, yf = signalcreate(5, 128, 5)

plt.subplot(5, 2, 1)

plt.plot(t, yt)

plt.subplot(5, 2, 2)

plt.plot(f, np.abs(yf))

t, yt, f, yf = signalcreate(10, 128, 5)

plt.subplot(5, 2, 3)

plt.plot(t, yt)

plt.subplot(5, 2, 4)

plt.plot(f, np.abs(yf))

t, yt, f, yf = signalcreate(20, 128, 5)

plt.subplot(5, 2, 5)

plt.plot(t, yt)

plt.subplot(5, 2, 6)

plt.plot(f, np.abs(yf))

t, yt, f, yf = signalcreate(40, 128, 5)

plt.subplot(5, 2, 7)

plt.plot(t, yt)

plt.subplot(5, 2, 8)

plt.plot(f, np.abs(yf))

t, yt, f, yf = signalcreate(100, 128, 5)

plt.subplot(5, 2, 9)

plt.plot(t, yt)

plt.subplot(5, 2, 10)

plt.plot(f, np.abs(yf))

plt.show()

結果如下圖,左邊是時域右邊是頻域。當取樣頻率是5hz時,還原出來的訊號是乙個頻率為0的直流訊號,顯然,這裡當取樣頻率小於訊號頻率的兩倍時是無法準確還原原訊號的;當取樣頻率是10hz時,還原出來的訊號似乎也還是有些不對的地方,在頻域上很明顯訊號不能完整的顯示出來;當取樣頻率是20hz時,不管是時域還是頻域還原出來訊號都已經很接近原始訊號了;當然我們繼續增加取樣頻率,當取樣頻率是40hz和100hz時,還原出的訊號更加接近真實訊號了。

不過,我們對比取樣頻率40hz和100hz的頻域圖形可以發現,100hz的明顯要「胖」一些。這是因為頻率解析度變大了,取樣點數不變,取樣解析度隨著取樣頻域增加而增加,取樣解析度可以用下面的公式計算:

f =f

s/nf = fs / n

f=fs/n

顯然,取樣頻率如果太低就不能正確還原真實訊號;但是如果取樣頻率太高,會有較大的頻率解析度,同時又會有產生大量的資料。通常,在實際應用中取樣頻率會選擇比兩倍奈奎斯特頻率要大一些(比如3~5倍)。

另外,在取樣的過程中,對比取樣頻率和奈奎斯特頻率大小關係,我們還可以這樣來描述:

模擬訊號和數碼訊號的區別

對模擬訊號和數碼訊號的概念模糊不清,上網搜了一下,發現一種很好很形象的解釋。模擬訊號是將源訊號的一些特徵未經編碼直接通重載波的方式發出,是連續的 數碼訊號則是通過數學方法對原有訊號進行處理,編碼成二進位制訊號後,再通重載波的方式傳送編碼後的數字流,是離散的 設計乙個 遊戲 考慮要通過手電筒的燈光來實...

模擬訊號 模擬訊號和數碼訊號是什麼

資訊化時代已經不告而至,我們時時刻刻被各種各樣的訊號包圍,訊號的本質是表示訊息 資訊 的物理量,如常見的正弦電訊號中,如果是不同的幅度 不同的頻率,或不同相位則表示不同的訊息 資訊 以訊號為載體的資料可表示現實物理世界中的任何資訊,如文字元號 語音影象等,從其特定的表現形式來看,訊號可以分為 模擬訊...

數碼訊號與模擬訊號的區別

模擬訊號和數碼訊號 乙個是波形,乙個是數字 乙個是高低電平,乙個是01010 乙個是連貫的,乙個是斷開的 乙個是自然的,乙個是人工的。模擬訊號是將源訊號的一些特徵未經編碼直接通重載波的方式發出,是連續的 數碼訊號則是通過數學方法對原有訊號進行處理,編碼成二進位制訊號後,再通重載波的方式傳送編碼後的數...