資料介紹
相信ADC的應(yīng)用或多或少都會用到,在很多場合都有分辨率要求,要實現(xiàn)較高分辨率時,第一時間會想到采用一個較高位數(shù)的外置ADC去實現(xiàn)??墒歉叻直媛释庵肁DC往往價格都不便宜,這就帶來一對矛盾:高指標(biāo)與低成本。其實利用單片機片上的ADC利用過采樣技術(shù)就能很好的解決這樣一對矛盾體,本文來聊聊這個話題。
什么是過采樣?
在信號處理中,過采樣是指以明顯高于奈奎斯特速率的采樣頻率對信號進行采樣。從理論上講,如果以奈奎斯特速率或更高的速率進行采樣,則可以完美地重建帶寬受限的信號。奈奎斯特頻率定義為信號帶寬的兩倍。過采樣能夠提高分辨率和信噪比SNR,并且通過放寬抗混疊濾波器的性能要求,有助于避免混疊和相位失真。
在很多項目應(yīng)用中,需要測量信號的動態(tài)范圍較大,且需要參數(shù)的微小變化。例如,ADC需要測量很大的溫度范圍(比如工業(yè)中甚至要求從-200℃~500℃),但仍要求系統(tǒng)對小于1度的變化做出響應(yīng)。常見的單片機片上ADC位數(shù)為12位,如要實現(xiàn)高于12位分辨率要怎么做呢?我們知道奈奎斯特-香農(nóng)采樣定理可知:

其中:
為輸入待采樣信號最高頻率
為奈奎斯特頻率。
如果實際采樣頻率高于奈奎斯特頻率
,即為過采樣。那么低于奈奎斯特采樣頻率進行采樣就稱為欠采樣,如下圖:

或許你會問,常規(guī)的應(yīng)用都是過采樣,怎么也沒見分辨率提高了呀?如果僅僅過采樣,要實現(xiàn)更高分辨率顯然是不夠的,那么要怎么利用過采樣實現(xiàn)更高的分辨率呢?要知道所采用的ADC硬件核分辨率是固定的,難道還會變不成?
過采樣提高分辨率
如果對一模擬信號,采用過采樣,然后再進行一定的軟件后處理,理論上是可以得到更高分辨率的:

為增加有效位數(shù)(ENOB :effective number of bits),對信號進行過采樣,所需的過采樣率可以由下面公式確定(省略理論推導(dǎo),過于枯燥):

其中:
為過采樣頻率
產(chǎn)品所需實際采樣頻率- W為額外所需增加的分辨率位數(shù)
假設(shè)系統(tǒng)使用12位ADC每100 ms輸出一次采樣值也即(10 Hz)。為了將測量的分辨率提高到16位,我們按上述公式計算過采樣頻率:

因此,如果我們以
對信號進行過采樣,然后在所需的采樣周期內(nèi)收集足夠的樣本以對它們進行平均,現(xiàn)在可以將16位輸出數(shù)據(jù)用于16位測量。
具體怎么做呢?
- 首先將256個連續(xù)采樣累加
- 然后將總數(shù)除以16(或?qū)⒖倲?shù)右移4位)。該過程通常稱為抽取,也即將速率采樣。
- 在類似進行下一次16位樣本處理
注意:用于累積過采樣數(shù)據(jù)并執(zhí)行除法抽取數(shù)據(jù)類型必須具有足夠的字節(jié)寬度,以防止溢出和截斷錯誤。比如這里累積和可以采樣32位無符號整型。
由上面公式可得出一個重要結(jié)論:每提高W位分辨率,需要提高采樣率4W倍。
過采樣提高ADC的信噪比
ADC測量的SNR理論極限基于量化噪聲,這是基于在沒有過采樣和平滑濾波情況下模數(shù)轉(zhuǎn)換過程中固有的量化誤差所致。而量化誤差取決于ADC分辨率的位數(shù),其中N為ADC的位數(shù),Vref為參考電壓。

SNR理論情況下極限值的計算方式是數(shù)據(jù)轉(zhuǎn)換的有效位數(shù),如下所示:

這個公式?jīng)]必要去記,用到的時候參考計算一下即可。從公式中可看出,要提升一個模數(shù)轉(zhuǎn)換器的理論SNR的一種可行方案可以通過提升采樣位數(shù),但是需要注意的是這里的信噪比是度量模數(shù)轉(zhuǎn)換器本身的,就一個真實系統(tǒng)的信噪比還與整個信號鏈相關(guān)!
從上式中不難算出,12位ADC的理論SNR極限值為74dB,而通過過采樣提升4位分辨率后,其SNR理論極限提高至96 dB!
到底怎么實現(xiàn)呢?
這里以偽代碼的方式給出編程思路:
void init_adc(void)
{
/*配置ADC的采樣率為過采樣率連續(xù)中斷模式*/
}
void start_adc(void)
{
/*控制ADC啟動采樣*/
}
/*不同的開發(fā)平臺中斷函數(shù)寫法略有差異,比如51需要指定向量 */
/*OVERSAMPLE_FACTOR=4^RSHIFT_BITS 下面兩個宏一起修改 */
#define RSHIFT_BITS (4)
#define OVERSAMPLE_FACTOR (256)
static unsigned short adc_result=0U;
void adc_isr(void)
{
static unsigned short adc_index = OVERSAMPLE_FACTOR;
static unsigned int accumulator = 0U;
/*ADC_REG ADC轉(zhuǎn)換結(jié)果寄存器,不同平臺名稱不同*/
accumulator += ADC_REG;
adc_index--;
if( adc_index==0 )
{
/* 加和按因子抽取 */
adc_result = accumulator>>RSHIFT_BITS;
accumulator = 0;
adc_index = OVERSAMPLE_FACTOR;
}
}該方案有一個缺陷,就是每次ADC中斷都需要CPU參與,在過采樣率很高的情況下,上述方案消耗很多CPU資源,那么如果單片機內(nèi)存資源足夠的情況下可以考慮采用DMA模式,采集很多數(shù)據(jù)并將數(shù)據(jù)暫存下來,然后再做累加平均抽取。這是空間換時間的策略的體現(xiàn)。這個編代碼也很容易,只需要申請一片內(nèi)存區(qū),內(nèi)存區(qū)的大小可以定為256的倍數(shù),這是因為在提升4位分辨率情況下,一個16位的輸出樣本需要256個12位樣本。
總結(jié)一下
在成本受限的情況下,可以通過單片機片內(nèi)ADC過采樣以及累積抽取的技術(shù)來提升采樣分辨率,這種技術(shù)的特點:
- 可以使用過采樣和平均來提高測量分辨率,而無需增加昂貴的片外ADC。
- 過采樣和加和抽取將以提高CPU利用率和降低吞吐量為代價來提高SNR和測量分辨率。
- 過采樣和加和抽取可以改善白噪聲的信噪比。
本文轉(zhuǎn)載自:嵌入式客棧微信公眾號(作者: 逸珺)

免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
- 過采樣ADC12以獲得更高分辨率
- 太秀了!單片機內(nèi)置ADC實現(xiàn)高分辨率采樣?
- 太秀了!單片機內(nèi)置 ADC 實現(xiàn)高分辨率采樣?
- 太秀了!單片機內(nèi)置ADC實現(xiàn)高分辨率采樣?
- 單片機內(nèi)置ADC如何實現(xiàn)高分辨率采樣?
- 結(jié)合CLC和NCO實現(xiàn)高分辨率PWM 17次下載
- 高分辨率ADC的板布線分析 0次下載
- 高分辨率信號空調(diào)系統(tǒng)的淺析 22次下載
- 一種基于參考高分辨率圖像的視頻序列超分辨率復(fù)原算法 5次下載
- 垂直分辨率與使用高分辨率示波器測量微小信號的介紹 22次下載
- 基于FPGA的高分辨率圖像DCT域增強 4次下載
- 如何優(yōu)化高分辨率DAC的DC測量
- 超低頻高分辨率信號源的設(shè)計
- 超高分辨率圖像實時顯示系統(tǒng)設(shè)計
- 高速高分辨率數(shù)據(jù)采集系統(tǒng)
- 國產(chǎn)高分辨率AFE替換ADS1283/ADS1284應(yīng)用于高精度儀器 938次閱讀
- 高速、高分辨率、大面積成像應(yīng)用的理想選擇——Falcon4-CLHS工業(yè)相機 1.4k次閱讀
- 大視野與高分辨率難兼得,F(xiàn)A 鏡頭有何破局之法? 1.2k次閱讀
- 高分辨率音頻和傳統(tǒng)音頻區(qū)別 2.5k次閱讀
- 使用傅里葉疊層成像對運動物體進行高分辨率成像 2.1k次閱讀
- 關(guān)于峰峰值分辨率還是有效分辨率你了解了么? 1.7k次閱讀
- YOLOv8版本升級支持小目標(biāo)檢測與高分辨率圖像輸入 1.5w次閱讀
- 用于高分辨率1Msps ADC的μModule隔離解決方案 3.5k次閱讀
- 低噪聲、精密運算放大器驅(qū)動高分辨率SAR ADC 2.9k次閱讀
- 設(shè)計一個U形高分辨率網(wǎng)絡(luò)(U-HRNet) 3.1k次閱讀
- 如何通過過采樣的方式提高有效位分辨率 7.6k次閱讀
- 高分辨率ADC應(yīng)用中的閉環(huán)增益誤差和閉環(huán)帶寬限制的考慮 3.7k次閱讀
- digilent高分辨率便攜式數(shù)據(jù)記錄器介紹 2.7k次閱讀
- 使用TensorFlow生成的高分辨率抽象藝術(shù)圖片的實現(xiàn)解析 6.2k次閱讀
- 電壓基準(zhǔn)噪聲對于增量-累加ADC分辨率的影響 3.9k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 3PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 22次下載 | 免費
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論