0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一起聊聊ADC過采樣

jf_78858299 ? 來源:摩爾學(xué)堂 ? 作者:摩爾學(xué)堂 ? 2023-05-11 15:29 ? 次閱讀

在大多數(shù)情況下,10位的分辨率就足夠了。但在某些情況下需要更高的精度。采用特殊的信號處理技術(shù)可以提高測量的分辨率。通過使用一種稱為“過采樣和抽取”的方法,可以實(shí)現(xiàn)更高的分辨率,而不使用外部ADC。此應(yīng)用程序說明說明了該方法,以及需要滿足哪些條件才能使該方法正常工作。

圖片

下面的例子和數(shù)字是為自由運(yùn)行模式下的單端輸入計算的。沒有使用ADC降噪模式。這種方法在其他模式中也是有效的,盡管下面例子中的數(shù)字會有所不同。ADC參考電壓和ADC分辨率定義ADC步長。ADC的參考電壓VREF可以選擇為內(nèi)部2.56V / 1.1V的參考電壓AVCC或AREF引腳的參考電壓。較低的VREE提供較高的電壓精度,但最小化了輸入信號的動態(tài)范圍。如果選擇2.56V VREE,則在轉(zhuǎn)換結(jié)果上給用戶-2.5mV的精度,被測的最高輸入電壓為2.56V?;蛘?,可以考慮使用ADC輸入通道與增益級。這將給用戶以ADCs動態(tài)范圍為代價,以更好的電壓精度測量模擬信號的可能性。如果用動態(tài)范圍來換取更好的電壓分辨率是不可接受的,可以選擇用信號的過采樣來換取更好的分辨率。但該方法受到ADC特性的限制:使用過采樣和抽取只會降低ADC的量化誤差,而不能補(bǔ)償ADC的積分非逼近性。

尼奎斯特定理指出,采樣信號的速度必須至少是信號帶寬的兩倍,才能精確地重構(gòu)波形;否則,高頻內(nèi)容將在感興趣的頻譜(通帶)內(nèi)的頻率混疊。根據(jù)奈奎斯特定理,所需的最小采樣頻率為奈奎斯特頻率。

圖片

其中fsianal為輸入信號中感興趣的最高頻率。fnvauist以上的采樣頻率稱為“過采樣”。然而,這個采樣頻率,只是一個理論上的絕對最小采樣頻率。在實(shí)踐中,用戶通常希望得到盡可能高的采樣頻率,以便在時域中得到被測信號的最佳表示??梢哉f在大多數(shù)情況下輸入信號已經(jīng)被過采樣了采樣頻率是CPU時鐘預(yù)調(diào)的結(jié)果;較低的預(yù)壓因子可得到較高的ADC時鐘頻率。在某一時刻,較高的ADC時鐘會隨著有效位元數(shù)(ENOB)的減少而降低轉(zhuǎn)換的精度。所有的ADC都有帶寬限制,mcu ADC也不例外。根據(jù)數(shù)據(jù)表,要得到一個10位分辨率的轉(zhuǎn)換結(jié)果,ADC時鐘頻率應(yīng)該是50kHz -200kHz。當(dāng)ADC時鐘為200kHz時,采樣頻率為15kSPS,限制了被采樣信號的上頻率為7.5kHz。根據(jù)數(shù)據(jù)表,ADC時鐘可以驅(qū)動頻率高達(dá)1Mhz,盡管這將降低ENOB

“過采樣和抽取”背后的理論是相當(dāng)復(fù)雜的,但使用這種方法是相當(dāng)容易的。這項(xiàng)技術(shù)需要更多的樣品。這些額外的采樣可以通過對信號進(jìn)行過采樣來實(shí)現(xiàn)。對于每增加一比特的分辨率n,信號必須被過采樣四次。對輸入信號采樣的頻率由下面公式給出。為了得到模擬輸入信號的最佳可能的表示,有必要將信號過采樣這么多,因?yàn)樵谄骄鶗r,更大數(shù)量的樣本會給輸入信號更好的表示。這將被認(rèn)為是本應(yīng)用說明的主要成分,并將通過下面的理論和例子進(jìn)一步解釋。

圖片

要使此方法正常工作,感興趣的信號組件不應(yīng)該在轉(zhuǎn)換期間發(fā)生變化。然而,成功增強(qiáng)分辨率的另一個標(biāo)準(zhǔn)是輸入信號在采樣時必須有所變化。這看起來可能有些矛盾,但在這種情況下,變體僅意味著少量LSB。這種變化應(yīng)該被看作是信號的噪聲成分。當(dāng)信號過采樣時,必須存在噪聲以滿足信號微小變化的要求。ADC的量化誤差至少為0.5LSB。因此,噪聲振幅必須超過0.5 LSB才能切換LSB。1-2 LSB的噪聲幅值更好,因?yàn)檫@將確保多個樣本最終不會得到相同的值。噪聲的標(biāo)準(zhǔn),當(dāng)使用抽取技術(shù):

在轉(zhuǎn)換期間,感興趣的信號組件不應(yīng)發(fā)生顯著變化。

信號中應(yīng)該存在一些噪聲。

噪聲的振幅應(yīng)至少為1 LSB。

通常在轉(zhuǎn)換過程中會出現(xiàn)一些噪聲。噪聲可以是熱噪聲,來自CPU核心的噪聲,I/ o端口的切換,電源的變化等。這種噪音在大多數(shù)情況下足以使這種方法工作。但在特定情況下,可能需要在輸入信號中添加一些人工噪聲。這種方法稱為抖動。下圖A顯示了測量電壓值介于兩個量化步驟之間的信號的問題。對四個樣本進(jìn)行平均是沒有用的,因?yàn)榻Y(jié)果將是相同的低值。它可能只有助于減弱信號的波動。圖B顯示,在輸入信號中加入一些人工噪聲,轉(zhuǎn)換結(jié)果的LSB會發(fā)生切換。增加四個這樣的樣本一半量化步驟,產(chǎn)生的結(jié)果給出了更好的輸入值表示,如圖C所示。adc的虛擬分辨率從10位增加到11位。這種方法稱為抽取,將在下面進(jìn)一步說明

圖片

使用這種方法的另一個原因是為了提高信噪比。提高有效位元數(shù)(ENOB)將使噪聲擴(kuò)散到更大的二進(jìn)制數(shù)上。噪聲對每個二進(jìn)制數(shù)字的影響減小。將采樣頻率加倍可以將帶內(nèi)噪聲降低3dB,并將測量的分辨率提高0.5位。

均值的傳統(tǒng)意義是將m個樣本相加,然后除以m,稱為正態(tài)均值。平均ADC測量的數(shù)據(jù)相當(dāng)于一個低通濾波器,具有衰減信號波動或噪聲,平坦輸入信號中的峰值的優(yōu)點(diǎn)。移動平均法經(jīng)常被用來做這個。這意味著取m個讀入值,將它們放入一個循環(huán)隊(duì)列中,然后對最近的m個讀入值進(jìn)行平均。這將會有一點(diǎn)時間延遲,因?yàn)槊總€樣本都是最后m個樣本的表示。這可以在窗口重疊或不重疊的情況下完成。下面顯示7 (Av1-Av7),獨(dú)立移動平均結(jié)果,不重疊。

圖片

重要的是要記住,正常平均不會增加轉(zhuǎn)換的分辨率。抽取,或插值,是平均方法,結(jié)合過采樣,以提高分辨率。對信號進(jìn)行過采樣和低通濾波器的數(shù)字信號處理通常稱為插值。在這個意義上,插值被用來產(chǎn)生新的樣本,作為一個“平均”更大數(shù)量的樣本。平均樣本數(shù)越高,低通濾波器的選擇性越強(qiáng),插值效果越好。通過對信號進(jìn)行過采樣得到的額外樣本m被加起來,就像在日常取平均值中一樣,但結(jié)果不像在日常平均值中一樣除以m。相反,結(jié)果是向右移動n,其中n是想要的額外的分辨率位,以縮放正確的答案。向右移動二進(jìn)制數(shù)一次等于二進(jìn)制數(shù)除以2。從上面說到過的公式可以看出,將分辨率從10位增加到12位需要16個10位值的總和。16個10位值的和生成一個14位的結(jié)果,其中最后兩位不期望包含有價值的信息。為了回到12位,有必要衡量結(jié)果。由式下圖給出的標(biāo)度因子sf是4個樣本的和要除以的因子,以適當(dāng)?shù)貥?biāo)度結(jié)果。n是所需的額外比特數(shù)。

圖片

通常一個信號包含一些噪聲,這種噪聲通常具有高斯噪聲的特征,通常稱為白噪聲或熱噪聲,被廣泛的頻譜識別,總能量在整個頻率范圍內(nèi)平均分配。在這些情況下,“過采樣和抽取”的方法將工作,如果噪聲的振幅足以切換ADC轉(zhuǎn)換的LSB在其他情況下,可能需要在輸入信號中加入人工噪聲信號,這種方法稱為抖動。這種噪聲的波形應(yīng)該是高斯噪聲,但周期波形也可以工作。這個噪聲信號的頻率取決于采樣頻率。經(jīng)驗(yàn)法則是:“添加m個樣本時,噪聲信號的周期不應(yīng)超過m個樣本的周期”。噪聲的振幅應(yīng)至少為1 LSB。在給信號添加人工噪聲時,要記住噪聲的平均值為零;過采樣不足因此可能會造成偏移,如下圖所示

圖片

點(diǎn)畫線說明了鋸齒信號的平均值。圖A將引起一個負(fù)偏移。B將導(dǎo)致正偏移。在圖C采樣充分,避免偏移。為了制造人工噪聲信號,可以使用計數(shù)器。由于計數(shù)器和ADC使用相同的鎖源,這就提供了同步噪聲和采樣頻率以避免偏移的可能性。

都柏林的一位釀酒大師想要測量他的釀酒廠的溫度。一個緩慢變化的信號表示溫度測量,其環(huán)境溫度的標(biāo)稱電壓為2.5 V。下圖顯示了該測溫裝置的特性。

圖片

主機(jī)不想將輸入信號的動態(tài)范圍最小化,選擇了一個5V的ADC參考電壓。在這種情況下,10位ADC不能提供足夠精確的轉(zhuǎn)換結(jié)果。因?yàn)榻Y(jié)果的LSB表示一個-5mV的'step'。這是不可接受的,因?yàn)檫@會導(dǎo)致結(jié)果可能高達(dá)0.25℃的偏差。釀造主希望結(jié)果有0.1℃的精度,這要求電壓分辨率低于2mV。如果測量用12位ADC表示,表示LSB的電壓“step”將下降到~1.22mV。主機(jī)需要做的是將10位ADC轉(zhuǎn)換為虛擬的12位ADO,輸入信號變化非常緩慢;因此,不需要很高的采樣頻率。根據(jù)數(shù)據(jù)表,ADC時鐘頻率應(yīng)在50kHz - 200kHz之間,以確保10位的有效分辨率。因此50kHz ADC時鐘頻率。然后采樣頻率變成-3800 SPS。在某一點(diǎn),代表測量溫度的直流值為2.4729V。下表給出了Vin=2.4729V和VREF= 5V時測量該值的不同分辨率選項(xiàng)。

圖片

一次轉(zhuǎn)換的結(jié)果是505,乍一看似乎是正確的。但是這個二進(jìn)制數(shù)也對應(yīng)于例如2。4683v。這使得用戶不確定,并導(dǎo)致溫度測量中的錯誤。在某些情況下,這可能是至關(guān)重要的。得出結(jié)論之前;信號通常包含足夠的噪聲,使抽取方法可行。

為了增加1位的分辨率,從相同的“鄰域”添加了四個樣本。由于噪聲的影響,這些樣本的值之間存在一些LSB值的差異。添加四個樣品:508+ 507 + 505 + 505 = 2025。根據(jù)抽取原理,答案現(xiàn)在需要縮小到11位。它需要右移n次,n是額外的比特數(shù)。結(jié)果是1012。提高分辨率后,突然之間就有可能實(shí)現(xiàn)原始量化步驟之間的采樣。盡管如此,信號被過度采樣以進(jìn)一步提高分辨率,達(dá)到12位。添加16個10位的樣本并右移結(jié)果2次就可以做到這一點(diǎn)。結(jié)果是2025年。這個數(shù)字更可靠,因?yàn)槭褂靡粋€12位的結(jié)果,誤差范圍減少到1.22mV。這個例子表明,開始時信號是慢變的,每秒采樣3800 imes,電壓精度為5mV,現(xiàn)在每秒采樣240個,分辨率為12位,電壓精度為~1.22mV。

用戶可能仍然希望通過平均16個12位樣本(傳統(tǒng)方法)來平衡信號波動。方法是將16個樣本相加,然后除以16。最后,用戶有15個SPS,平均16個12位相鄰樣本。

正常平均將減少隨機(jī)噪聲的后果,“過采樣和抽取”將利用噪聲來提高分辨率。

為了證明該方法的有效性,下面的例子將表明,不必使用外部ADC來獲得更高的精度。信號發(fā)生器用于產(chǎn)生從OV到5V的線性斜坡信號。在“低噪音”環(huán)境中,信號發(fā)生器和控制器插在STK500板中,可能沒有足夠的噪音切換10位信號的最后幾個位。因此有必要在輸入信號中加入人為的“噪聲”,使LSB開關(guān)。成功使用了四種方法:

將信號發(fā)生器產(chǎn)生的噪聲直接加到輸入信號上。用單片機(jī)產(chǎn)生噪聲,使用PWM,并將其添加到輸入信號當(dāng)使用AVCC作為VREF時,添加由單片機(jī)生成的噪聲到AREF當(dāng)使用AREF作為VREF時,添加由mcu生成的噪聲到AREF。

圖片

當(dāng)VCC =5V時,濾波后的AREF引腳信號在計數(shù)器脈寬為0%時為2.5V,在計數(shù)器脈寬為100%時為5V。本例中pwm信號占空比為50%,基頻為~3900Hz。10kS電位器是用來調(diào)整這種紋波。該P(yáng)WM-信號要么作為參考電壓的ADC在AREF,或作為噪聲發(fā)生器連接到AREF引腳。設(shè)AVCC為ADC參考電壓。其思想是,在不干擾輸入信號的情況下,參考電壓的微小變化將產(chǎn)生與輸入信號的微小變化相同的效果。

下圖顯示了當(dāng)AREF為ADC參考電壓時輸入信號的12位離散表示,并且AREF加了一些LSB噪聲。上面的公式,每個12位結(jié)果由16個10位樣本組成。對ADC偏移量進(jìn)行調(diào)整,根據(jù)應(yīng)用說明,增益誤差也需要調(diào)整。以下圖片顯示了輸入信號的14位離散表示,以下圖片顯示了輸入信號的16位離散表示。測量信號含有噪聲時,或者當(dāng)參考電壓變化在這個例子中,重要的是要記住,頂部和底部值減少了相同的值作為噪聲信號的振幅,給予輕微的減少被測信號的動態(tài)范圍。在這種情況下,作為安全余量,偏移量被調(diào)整為100mV。

圖片

圖片

圖片

圖片

圖片

我們可以很容易地看到,通過使用過采樣和抽取方法,有可能大大提高分辨率。

當(dāng)ADC采樣一個信號時,它對信號進(jìn)行離散量化。這就引入了一些誤差,通常稱為量化誤差。正常平均只會均勻信號波動,而抽取會增加分辨率。在一個4。時間過采樣信號,四個相鄰數(shù)據(jù)點(diǎn)的平均值產(chǎn)生nev數(shù)據(jù)點(diǎn)。信號過采樣的頻率可由公式上面說過的公式計算。加上這些額外的樣本,然后將結(jié)果右移一個因子n。產(chǎn)生分辨率增加n位的結(jié)果。平均四個模數(shù)轉(zhuǎn)換器的結(jié)果得到一個新的模數(shù)轉(zhuǎn)換器的結(jié)果是相同的,如果模數(shù)轉(zhuǎn)換器采樣率為14,但也有平均量化噪聲的效果,提高信噪比。這將增加ENOB,減少量化誤差。隨著更快的adc的可用性和低內(nèi)存成本,過采樣的優(yōu)點(diǎn)是經(jīng)濟(jì)有效和可取的。

信號中必須存在一些噪聲,至少1 LSB。

如果噪聲幅度不夠大,就給信號加噪聲。

積累4個10位的樣本,其中n是在分辨率中需要的額外比特數(shù)。

對累積的結(jié)果進(jìn)行縮放,右移n次。

根據(jù)應(yīng)用說明MCU補(bǔ)償錯誤。

看一下程序 此處ADC為10bit

#pragma vector=ADC_vect

__interrupt void ADCinterrupt(void)

{

accumulator += ADC;//adc合 double

samples++;//采樣計數(shù) short

}

在這里進(jìn)行采樣和記錄采樣的次數(shù)

主要流程為

while(1) // Eternal loop

{

if(samples>4095)//如果到了過采樣的臨界點(diǎn)

  {

    oversampled();              //進(jìn)行相應(yīng)的過采樣計算

  }

}

void oversampled(void)

{

__disable_interrupt();

accumulator += 5150; // 抵消誤差補(bǔ)償 這里可以用最小二乘法校正

accumulator *= 0.9993; // 增益誤差補(bǔ)償

temp=(int)accumulator%64; //做四舍五入

accumulator/=64; // 舍棄掉沒用 這里除掉的是2的6次方,增加幾位就是幾次方

if(temp>=32)

{

  accumulator += 1;                

}

Vin = (accumulator/65536)*4.910; //計算實(shí)際電壓值

samples = 0;

accumulator = 0;

__enable_interrupt();

}

————————————————

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • adc
    adc
    +關(guān)注

    關(guān)注

    97

    文章

    6314

    瀏覽量

    542572
  • 信號處理
    +關(guān)注

    關(guān)注

    48

    文章

    977

    瀏覽量

    103011
  • 信號
    +關(guān)注

    關(guān)注

    11

    文章

    2752

    瀏覽量

    76230
收藏 人收藏

    評論

    相關(guān)推薦

    談?wù)?b class='flag-5'>ADC采樣

    在大多數(shù)情況下,10位的分辨率就足夠了。但在某些情況下需要更高的精度。采用特殊的信號處理技術(shù)可以提高測量的分辨率。通過使用種稱為“采樣和抽取”的方法,可以實(shí)現(xiàn)更高的分辨率,而不使用外部AD
    發(fā)表于 05-11 16:28 ?2739次閱讀
    談?wù)?b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>

    是否有可能讓ADC內(nèi)核先對所有通道進(jìn)行采樣,然后再一起轉(zhuǎn)換結(jié)果?

    我有個關(guān)于 ADC 的問題,我們需要盡可能同時測量多個 ADC 通道,但我們的 ADC 內(nèi)核有限,是否有可能讓
    發(fā)表于 05-21 08:28

    一起學(xué)FPGA

    各位,個人學(xué)多沒意思,也效率低。有沒有想一起學(xué)學(xué)的,最好也是同城的沒事還可以出來聊聊,交個朋友。 歡迎各種菜鳥、大神。本人有點(diǎn)菜,呵呵。 QQ 245966960
    發(fā)表于 11-10 13:35

    有什么辦法可以讓DMA與ADC和TouchGFX一起運(yùn)行嗎?

    使用 DMA,但生成的代碼有點(diǎn)混亂。有什么想法可以讓 DMA 與 ADC 和 TouchGFX 一起運(yùn)行嗎?謝謝 !
    發(fā)表于 01-03 09:34

    Luminary的ADC采樣應(yīng)用筆記

    Luminary的ADC采樣應(yīng)用筆記 本文主要介紹種Luminary單片機(jī)高精度低成本AD轉(zhuǎn)換的實(shí)現(xiàn)方法,解決在某些要求高精度ADC領(lǐng)
    發(fā)表于 04-03 14:38 ?31次下載

    采樣技術(shù)原理介紹

    采樣技術(shù)原理介紹 假定環(huán)境條件: 10位ADC最小分辨電壓1LSB 為 1mv 假定沒有噪聲引入的時候, ADC
    發(fā)表于 05-04 19:23 ?1.3w次閱讀

    采樣ADC與PGA結(jié)合,提供127dB動態(tài)范圍

    采樣ADC與PGA結(jié)合,提供127 dB動態(tài)范圍
    發(fā)表于 01-07 14:59 ?0次下載

    Stellaris系列微控制器的ADC采樣技術(shù)

    Stellaris系列微控制器的ADC采樣技術(shù)。
    發(fā)表于 01-12 18:07 ?5次下載

    采用Δ-Σ和SAR ADC采樣模式提升ADC動態(tài)范圍

    類似于Δ-Σ型ADC采樣、高吞吐速率SAR ADC采樣還能改善抗混疊性能,并降低總噪聲。 很
    發(fā)表于 09-14 10:05 ?3749次閱讀
    采用Δ-Σ和SAR <b class='flag-5'>ADC</b>的<b class='flag-5'>過</b><b class='flag-5'>采樣</b>模式提升<b class='flag-5'>ADC</b>動態(tài)范圍

    STM32 ADC 采樣技術(shù)

    STM32 ADC 采樣技術(shù)
    發(fā)表于 12-08 16:21 ?43次下載
    STM32 <b class='flag-5'>ADC</b> <b class='flag-5'>過</b><b class='flag-5'>采樣</b>技術(shù)

    淺談ADC采樣提高信噪比

    般來說,我們可以提高ADC采樣位數(shù)來提高ADC的信噪比,但是往往意味著ADC的成本可能也會更高。有沒有不提高位數(shù),同樣優(yōu)化信噪比的方法呢?
    的頭像 發(fā)表于 03-07 08:56 ?6788次閱讀
    淺談<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>提高信噪比

    采樣:提高ADC信噪比巧妙方法

    般來說,我們可以提高ADC采樣位數(shù)來提高ADC的信噪比,但是往往意味著ADC的成本可能也會更高。有沒有不提高位數(shù),同樣優(yōu)化信噪比的方法呢?
    發(fā)表于 06-02 10:44 ?1493次閱讀
    <b class='flag-5'>過</b><b class='flag-5'>采樣</b>:提高<b class='flag-5'>ADC</b>信噪比巧妙方法

    tinyAVR 1系列的ADC采樣

    電子發(fā)燒友網(wǎng)站提供《tinyAVR 1系列的ADC采樣.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 10:06 ?1次下載
    tinyAVR 1系列的<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>

    STM32的12位ADC采樣實(shí)現(xiàn)16位分辨率

    采樣技術(shù)是種以犧牲采樣速度來提高ADC分辨率的技術(shù)。部分STM32單片機(jī)是支持硬件
    的頭像 發(fā)表于 10-12 10:19 ?7392次閱讀
    STM32的12位<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>實(shí)現(xiàn)16位分辨率

    ADC采樣

    電子發(fā)燒友網(wǎng)站提供《ADC采樣.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 09:39 ?0次下載
    <b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>