那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過ADC的過采樣提高測量分辨率的方法

嵌入式情報局 ? 來源:CSDN ? 2023-07-03 09:49 ? 次閱讀

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

e2cb18ea-18dc-11ee-962d-dac502259ad0.png

下面的例子和數字是為自由運行模式下的單端輸入計算的。沒有使用ADC降噪模式。這種方法在其他模式中也是有效的,盡管下面例子中的數字會有所不同。 ADC參考電壓和ADC分辨率定義ADC步長。ADC的參考電壓VREE可以選擇為內部2.56V / 1.1V的參考電壓AVCC或AREF引腳的參考電壓。較低的VREE提供較高的電壓精度,但最小化了輸入信號的動態范圍。

如果選擇2.56V VREE,則在轉換結果上給用戶-2.5mV的精度,被測的最高輸入電壓為2.56V。或者,可以考慮使用ADC輸入通道與增益級。這將給用戶以ADCs動態范圍為代價,以更好的電壓精度測量模擬信號的可能性。 如果用動態范圍來換取更好的電壓分辨率是不可接受的,可以選擇用信號的過采樣來換取更好的分辨率。但該方法受到ADC特性的限制:使用過采樣和抽取只會降低ADC的量化誤差,而不能補償ADC的積分非逼近性。

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

e2dc7cca-18dc-11ee-962d-dac502259ad0.png

其中 fsignal 為輸入信號中感興趣的最高頻率。fnyquist 以上的采樣頻率稱為“過采樣”。 然而,這個采樣頻率,只是一個理論上的絕對最小采樣頻率。在實踐中,用戶通常希望得到盡可能高的采樣頻率,以便在時域中得到被測信號的最佳表示。可以說在大多數情況下輸入信號已經被過采樣了采樣頻率是CPU時鐘預調的結果;較低的預壓因子可得到較高的ADC時鐘頻率。 在某一時刻,較高的ADC時鐘會隨著有效位元數(ENOB)的減少而降低轉換的精度。

所有的ADC都有帶寬限制,mcu ADC也不例外。 根據數據表,要得到一個10位分辨率的轉換結果,ADC時鐘頻率應該是50kHz -200kHz。當ADC時鐘為200kHz時,采樣頻率為~15kSPS,限制了被采樣信號的上頻率為~7.5kHz。根據數據表,ADC時鐘可以驅動頻率高達1Mhz,盡管這將降低ENOB。

“過采樣和抽取”背后的理論是相當復雜的,但使用這種方法是相當容易的。這項技術需要更多的樣本。這些額外的采樣可以通過對信號進行過采樣來實現。

對于每增加一比特的分辨率n,信號必須被過采樣四次。

對輸入信號采樣的頻率由下面公式給出。為了得到模擬輸入信號的最佳可能的表示,有必要將信號過采樣這么多。因為在平均時,更大數量的樣本會給輸入信號更好的表示。這將被認為是本應用說明的主要成分,并將通過下面的理論和例子進一步解釋。

e2eb188e-18dc-11ee-962d-dac502259ad0.png

要使此方法正常工作,感興趣的信號組件不應該在轉換期間發生變化。然而,成功增強分辨率的另一個標準是,輸入信號在采樣時必須有所變化。 這看起來可能有些矛盾,但在這種情況下,變體僅意味著少量LSB。這種變化應該被看作是信號的噪聲成分。

當信號過采樣時,必須存在噪聲以滿足信號微小變化的要求。ADC的量化誤差至少為0.5LSB。 因此,噪聲振幅必須超過0.5 LSB才能切換LSB。1-2 LSB的噪聲幅值更好,因為這將確保多個樣本最終不會得到相同的值。噪聲的標準,當使用抽取技術:

在轉換期間,感興趣的信號組件不應發生顯著變化。

信號中應該存在一些噪聲。

噪聲的振幅應至少為 1 LSB。

通常在轉換過程中會出現一些噪聲。噪聲可以是熱噪聲,來自CPU核心的噪聲、IO端口的切換、電源的變化等。這種噪音在大多數情況下足以使這種方法工作。 但在特定情況下,可能需要在輸入信號中添加一些人工噪聲。這種方法稱為抖動

下圖A顯示了測量電壓值介于兩個量化步驟之間的信號的問題。對四個樣本進行平均是沒有用的,因為結果將是相同的低值。它可能只有助于減弱信號的波動。圖B顯示,在輸入信號中加入一些人工噪聲,轉換結果的LSB會發生切換。增加四個這樣的樣本一半量化步驟,產生的結果給出了更好的輸入值表示,如圖C所示。ADC的虛擬分辨率從10位增加到11位。這種方法稱為抽取,將在下面進一步說明

e2fcb724-18dc-11ee-962d-dac502259ad0.png

使用這種方法的另一個原因是為了提高信噪比。提高有效位元數(ENOB)將使噪聲擴散到更大的二進制數上。噪聲對每個二進制數字的影響減小。將采樣頻率加倍可以將帶內噪聲降低3dB,并將測量的分辨率提高0.5位。 均值的傳統意義是將m個樣本相加,然后除以m,稱為正態均值。

平均ADC測量的數據相當于一個低通濾波器,具有衰減信號波動或噪聲,平坦輸入信號中的峰值的優點。移動平均法經常被用來做這個。 這意味著取m個讀入值,將它們放入一個循環隊列中,然后對最近的m個讀入值進行平均。這將會有一點時間延遲,因為每個樣本都是最后m個樣本的表示。這可以在窗口重疊或不重疊的情況下完成。下面顯示7 (Av1-Av7),獨立移動平均結果,不重疊。

e31296b6-18dc-11ee-962d-dac502259ad0.png

重要的是,要記住正常平均不會增加轉換的分辨率。

抽取,或插值,是平均方法,結合過采樣,以提高分辨率。 對信號進行過采樣和低通濾波器的數字信號處理通常稱為插值。在這個意義上,插值被用來產生新的樣本,作為一個“平均”更大數量的樣本。平均樣本數越高,低通濾波器的選擇性越強,插值效果越好。 通過對信號進行過采樣得到的額外樣本m被加起來,就像在日常取平均值中一樣,但結果不像在日常平均值中一樣除以m。

相反,結果是向右移動n,其中n是想要的額外的分辨率位,以縮放正確的答案。 向右移動二進制數一次等于二進制數除以2。從上面說到過的公式可以看出,將分辨率從10位增加到12位需要16個10位值的總和。16個10位值的和生成一個14位的結果,其中最后兩位不期望包含有價值的信息。為了回到12位,有必要衡量結果。由式下圖給出的標度因子sf是4個樣本的和要除以的因子,以適當地標度結果。n是所需的額外比特數。

e324f4d2-18dc-11ee-962d-dac502259ad0.png

通常一個信號包含一些噪聲,這種噪聲通常具有高斯噪聲的特征,通常稱為白噪聲或熱噪聲,被廣泛的頻譜識別,總能量在整個頻率范圍內平均分配。 在這些情況下,“過采樣和抽取”的方法將工作,如果噪聲的振幅足以切換ADC轉換的LSB在其他情況下,可能需要在輸入信號中加入人工噪聲信號,這種方法稱為抖動。

這種噪聲的波形應該是高斯噪聲,但周期波形也可以工作。這個噪聲信號的頻率取決于采樣頻率。經驗法則是:“添加m個樣本時,噪聲信號的周期不應超過m個樣本的周期”。 噪聲的振幅應至少為1 LSB。在給信號添加人工噪聲時,要記住噪聲的平均值為零;過采樣不足因此可能會造成偏移,如下圖所示

e3322f3a-18dc-11ee-962d-dac502259ad0.png

點畫線說明了鋸齒信號的平均值。圖A將引起一個負偏移。B將導致正偏移。在圖C采樣充分,避免偏移。為了制造人工噪聲信號,可以使用計數器。由于計數器和ADC使用相同的鎖源,這就提供了同步噪聲和采樣頻率以避免偏移的可能性。 都柏林的一位釀酒大師想要測量他的釀酒廠的溫度。一個緩慢變化的信號表示溫度測量,其環境溫度的標稱電壓為2.5 V。下圖顯示了該測溫裝置的特性。

e3415460-18dc-11ee-962d-dac502259ad0.png

主機不想將輸入信號的動態范圍最小化,選擇了一個5V的ADC參考電壓。在這種情況下,10位ADC不能提供足夠精確的轉換結果。因為結果的 LSB 表示一個-5mV的'step'。這是不可接受的,因為這會導致結果可能高達0.25℃的偏差。 釀造主希望結果有0.1℃的精度,這要求電壓分辨率低于2mV。如果測量用12位ADC表示,表示LSB的電壓“step”將下降到~1.22mV。主機需要做的是將10位ADC轉換為虛擬的12位ADO,輸入信號變化非常緩慢。因此,不需要很高的采樣頻率。

根據數據表,ADC時鐘頻率應在50kHz - 200kHz之間,以確保10位的有效分辨率。因此50kHz ADC時鐘頻率。然后采樣頻率變成-3800 SPS。在某一點,代表測量溫度的直流值為2.4729V。下表給出了Vin=2.4729V和VREF= 5V時測量該值的不同分辨率選項。

e34d3730-18dc-11ee-962d-dac502259ad0.png

一次轉換的結果是505,乍一看似乎是正確的。但是這個二進制數也對應于2.4683v。這使得用戶不確定,并導致溫度測量中的錯誤。在某些情況下,這可能是至關重要的。得出結論之前;信號通常包含足夠的噪聲,使抽取方法可行。 為了增加1位的分辨率,從相同的“鄰域”添加了四個樣本。

由于噪聲的影響,這些樣本的值之間存在一些LSB值的差異。 添加四個樣品:508+ 507 + 505 + 505 = 2025。根據抽取原理,答案現在需要縮小到11位。它需要右移n次,n是額外的比特數。結果是1012。 提高分辨率后,突然之間就有可能實現原始量化步驟之間的采樣。盡管如此,信號被過度采樣以進一步提高分辨率,達到12位。添加16個10位的樣本并右移結果2次就可以做到這一點。

結果是2025年。這個數字更可靠,因為使用一個12位的結果,誤差范圍減少到~1.22mV。 這個例子表明,開始時信號是慢變的,每秒采樣3800 imes,電壓精度為~5mV,現在每秒采樣240個,分辨率為12位,電壓精度為~1.22mV。 用戶可能仍然希望通過平均16個12位樣本(傳統方法)來平衡信號波動。方法是將16個樣本相加,然后除以16。最后,用戶有15個SPS,平均16個12位相鄰樣本。 正常平均將減少隨機噪聲的后果,“過采樣和抽取”將利用噪聲來提高分辨率。

為了證明該方法的有效性,下面的例子將表明,不必使用外部ADC來獲得更高的精度。信號發生器用于產生從OV到5V的線性斜坡信號。在“低噪音”環境中,信號發生器和控制器插在STK500板中,可能沒有足夠的噪音切換10位信號的最后幾個位。因此有必要在輸入信號中加入人為的“噪聲”,使LSB開關。 將信號發生器產生的噪聲直接加到輸入信號上。用單片機產生噪聲,使用PWM,并將其添加到輸入信號當使用AVCC作為VREF時,添加由單片機生成的噪聲到AREF當使用AREF作為VREF時,添加由mcu生成的噪聲到AREF。

e36059dc-18dc-11ee-962d-dac502259ad0.png

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

e36bee28-18dc-11ee-962d-dac502259ad0.png

e3827c2e-18dc-11ee-962d-dac502259ad0.png

下圖顯示了當AREF為ADC參考電壓時輸入信號的12位離散表示,并且AREF加了一些LSB噪聲。上面的公式,每個12位結果由16個10位樣本組成。對ADC偏移量進行調整,根據應用說明,增益誤差也需要調整。

e3322f3a-18dc-11ee-962d-dac502259ad0.png

以下圖片顯示了輸入信號的14位離散表示

e39c9564-18dc-11ee-962d-dac502259ad0.png

以下圖片顯示了輸入信號的16位離散表示。

e3af47b8-18dc-11ee-962d-dac502259ad0.png

測量信號含有噪聲時,或者當參考電壓變化在這個例子中,重要的是要記住,頂部和底部值減少了相同的值作為噪聲信號的振幅,給予輕微的減少被測信號的動態范圍。在這種情況下,作為安全余量,偏移量被調整為100mV。 我們可以很容易地看到,通過使用過采樣和抽取方法,有可能大大提高分辨率。

當ADC采樣一個信號時,它對信號進行離散量化。這就引入了一些誤差,通常稱為量化誤差。 正常平均只會均勻信號波動,而抽取會增加分辨率。在一個4 時間過采樣信號,四個相鄰數據點的平均值產生nev數據點。信號過采樣的頻率可由公式上面說過的公式計算。 加上這些額外的樣本,然后將結果右移一個因子n。

產生分辨率增加n位的結果。平均四個模數轉換器的結果得到一個新的模數轉換器的結果是相同的,如果模數轉換器采樣率為14,但也有平均量化噪聲的效果,提高信噪比。這將增加ENOB,減少量化誤差。 隨著更快的adc的可用性和低內存成本,過采樣的優點是經濟有效和可取的。

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

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

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

對累積的結果進行縮放,右移n次。

根據應用說明MCU補償錯誤。看一下程序 ,此處ADC為10bit

#pragma vector=ADC_vect
__interrupt void ADCinterrupt(void)
{
  accumulator += ADC;//adc合   double
  samples++;//采樣計數   short
}
在這里進行采樣和記錄采樣的次數,主要流程為
while(1)//Eternalloop
  {
    if(samples>4095)  //如果到了過采樣的臨界點
      {
        oversampled();  //進行相應的過采樣計算
      }
  }
  
void oversampled(void)
{
  __disable_interrupt();
  accumulator += 5150;   // 抵消誤差補償  這里可以用最小二乘法校正
  accumulator *= 0.9993;    // 增益誤差補償
  temp=(int)accumulator%64;   //做四舍五入
  accumulator/=64;   // 舍棄掉沒用 這里除掉的是2的6次方,增加幾位就是幾次方
  if(temp>=32)
    {
      accumulator += 1;                
    }
  Vin = (accumulator/65536)*4.910;   //計算實際電壓值
  samples     = 0;            
  accumulator = 0;            
  __enable_interrupt(); 
}

原文 :https://blog.csdn.net/qq_34991787/article/details/107325006/




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 轉換器
    +關注

    關注

    27

    文章

    8743

    瀏覽量

    148037
  • 低通濾波器
    +關注

    關注

    14

    文章

    485

    瀏覽量

    47534
  • 信號處理器
    +關注

    關注

    1

    文章

    254

    瀏覽量

    25349
  • 虛擬機
    +關注

    關注

    1

    文章

    937

    瀏覽量

    28426
  • ADC采樣
    +關注

    關注

    0

    文章

    134

    瀏覽量

    12903
收藏 人收藏

    評論

    相關推薦

    采樣4:提高ADC分辨率實例(終篇)

    正常,而實際卻沒有意義。 這篇文章涉及到簡單的整型數據和算術運算,希望能有所幫助,僅供參考。 舉栗子,理想的8 bit ADC,編碼范圍是0-255,在參考電壓是255mV的情況下,分辨率是1mV。 對一個理想的9.6mV直流電壓進行
    的頭像 發表于 04-14 09:14 ?1w次閱讀
    <b class='flag-5'>過</b><b class='flag-5'>采樣</b>4:<b class='flag-5'>提高</b><b class='flag-5'>ADC</b><b class='flag-5'>分辨率</b>實例(終篇)

    談談ADC采樣

    在大多數情況下,10位的分辨率就足夠了。但在某些情況下需要更高的精度。采用特殊的信號處理技術可以提高測量分辨率通過使用一種稱為“
    發表于 05-11 16:28 ?3706次閱讀
    談談<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>

    通過ADC采樣提高測量分辨率

    在大多數情況下,10位的分辨率就足夠了。但在某些情況下需要更高的精度。采用特殊的信號處理技術可以提高測量分辨率
    發表于 07-03 09:54 ?1922次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>ADC</b>的<b class='flag-5'>過</b><b class='flag-5'>采樣</b><b class='flag-5'>提高</b><b class='flag-5'>測量</b>的<b class='flag-5'>分辨率</b>

    ADC的噪聲、ENOB及有效分辨率

    地,有效分辨率=log2(VIN/VRMSNOISE)。不要將有效分辨率與ENOB相混淆。測量ENOB的最常用方法是對ADC的一個正弦波輸入
    發表于 11-26 16:48

    ADC分辨率可以通過采樣的方式提高嗎?

    ADC分辨率是16位,用過采樣的方式將分辨率提高到20位。ADC最大的
    發表于 11-30 10:33

    提高ADC分辨率并降低噪聲的方法

    問題。圖3:設計不佳的ADC和/或布局布線、接地、去耦不當的接地輸入端直方圖 提高ADC分辨率并降低噪聲?折合到輸入端噪聲的影響可以通過
    發表于 02-26 07:48

    示波器的垂直分辨率相關知識分享

    為了提高垂直精度,使測量結果更準確。 通過改變算法來提高分辨率數字示波器中ADC的位數越高,垂直分辨率
    發表于 12-16 11:38

    怎樣通過單片機ADC采樣來提升采樣分辨率

    什么是采樣呢?怎么利用過采樣實現更高的分辨率呢?怎樣通過單片機ADC
    發表于 02-28 09:12

    通過采樣提高SOC單片機片內A_D分辨率

    敘述了基于采樣技術,使用軟件方法提高單片機片內A/ D 分辨率的基本原理及實現方法。給出了一個
    發表于 03-20 14:07 ?18次下載

    利用過采樣技術提高ADC測量分辨率

    提出了用過采樣技術使在有用的測量頻帶內的信噪比得到改善, 從而提高ADC 測量分辨率。并利用M
    發表于 03-20 14:09 ?41次下載
    利用過<b class='flag-5'>采樣</b>技術<b class='flag-5'>提高</b><b class='flag-5'>ADC</b><b class='flag-5'>測量</b><b class='flag-5'>分辨率</b>

    如何通過采樣的方式提高有效位分辨率

    如何通過 采樣 的方式提高有效位分辨率。之后通過實驗向您展示Moku:Lab與Moku:Go是
    的頭像 發表于 01-21 14:20 ?6564次閱讀
    如何<b class='flag-5'>通過</b>過<b class='flag-5'>采樣</b>的方式<b class='flag-5'>提高</b>有效位<b class='flag-5'>分辨率</b>

    一起聊聊ADC采樣

    在大多數情況下,10位的分辨率就足夠了。但在某些情況下需要更高的精度。采用特殊的信號處理技術可以提高測量分辨率通過使用一種稱為“
    的頭像 發表于 05-11 15:29 ?6779次閱讀
    一起聊聊<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>

    STM32的12位ADC采樣實現16位分辨率

    采樣技術是一種以犧牲采樣速度來提高ADC分辨率的技術。部分STM32單片機是支持硬件
    的頭像 發表于 10-12 10:19 ?8640次閱讀
    STM32的12位<b class='flag-5'>ADC</b><b class='flag-5'>過</b><b class='flag-5'>采樣</b>實現16位<b class='flag-5'>分辨率</b>

    采樣ADC12以獲得更高分辨率

    電子發燒友網站提供《采樣ADC12以獲得更高分辨率.pdf》資料免費下載
    發表于 10-22 10:16 ?0次下載
    <b class='flag-5'>過</b><b class='flag-5'>采樣</b><b class='flag-5'>ADC</b>12以獲得更高<b class='flag-5'>分辨率</b>

    提高SAR ADC分辨率

    電子發燒友網站提供《提高SAR ADC分辨率.pdf》資料免費下載
    發表于 10-25 09:11 ?0次下載
    <b class='flag-5'>提高</b>SAR <b class='flag-5'>ADC</b>的<b class='flag-5'>分辨率</b>
    最好的百家乐官网好评平台都有哪些| 至尊百家乐官网奇热| 百家乐园棋牌| 海威百家乐官网赌博机| 现金网制作| 百家乐龙虎的投注法| 视频百家乐官网赢钱| 环球国际娱乐| 百家乐赌博规律| 好运来百家乐官网的玩法技巧和规则| 黔南| 宝马会娱乐城返水| 威尼斯人娱乐场送18| 百家乐波音平台导航网| 百家乐官网赌场筹码| 牙克石市| 新葡京网上娱乐| 大发888资讯网007| 金百家乐网站| A8百家乐游戏| 十三张百家乐官网的玩法技巧和规则 | 阳宅24山吉凶方位| 网上百家乐官网打牌| 海立方百家乐官网客户端| 枣庄市| 澳门美高梅娱乐| 大发888认识的见解| 优惠搏百家乐的玩法技巧和规则 | 百家乐官网的巧门| ea百家乐官网打水| 太阳城百家乐官网杀猪吗| 百家乐官网网络公式| 百家乐软件| 皇冠代理| 皇家赌场下载| e世博备用网址| 库尔勒市| 汨罗市| 真钱斗地主| 和平县| 网上百家乐官网哪里开户|