過采樣技術原理介紹
假定環(huán)境條件:10位ADC最小分辨電壓1LSB為1mv
假定沒有噪聲引入的時候,ADC采樣上的電壓真實反映輸入的電壓,那么小于1mv的話,如ADC在0.5mv是數(shù)據(jù)輸出為0
我們現(xiàn)在用4倍過采樣來,提高1位的分辨率,
當我們引入較大幅值的白噪聲:1.2mv振幅(大于1LSB),并在白噪聲的不斷變化的情況下,多次采樣,那么我們得到的結果有
真實被測電壓白噪聲疊加電壓疊加后電壓ADC輸出ADC代表電壓
0.5mv1.2mv1.7mv11mv
0.5mv0.6mv1.1mv11mv
0.5mv-0.6mv-0.1mv00mv
0.5mv-1.2mv-0.7mv00mv
ADC的和為2mv,那么平均值為:2mv/4=0.5mv!!!0.5mv就是我們想要得到的
這里請留意,我們平時做濾波的時候,也是一樣的操作喔!那么為什么沒有提高分辨率?????
是因為,我們做滑動濾波的時候,把有用的小數(shù)部分扔掉了,因為超出了字長啊,那么0.5取整后就是0了,結果和沒有過采樣的時候一樣是0,
而過采樣的方法時候是需要保留小數(shù)部分的,所以用4個樣本的值,但最后除的不是4,而是2!那么就保留了部分小數(shù)部分,而提高了分辨率!
從另一角度來說,變相把ADC的結果放大了2倍(0.5*2=1mv),并用更長的字長表示新的ADC值,
這時候,1LSB(ADC輸出的位0)就不是表示1mv了,而是表示0.5mv,而(ADC輸出的位1)才是原來表示1mv的數(shù)據(jù)位,
下面來看看一下數(shù)據(jù)的變化:
ADC值相應位9876543210
0.5mv測量值00000000000mv(10位ADC的分辨率1mv,小于1mv無法分辨,所以輸出值為0)
疊加白噪聲的4次過采樣值的和00000000102mv
滑動平均濾波2mv/4次00000000000mv(平均數(shù),對改善分辨率沒作用)
過采樣插值2mv/2000000000012mv/2=0.5mv,將這個數(shù)作為11位ADC值,那么代表就是0.5mv
這里我們提高了1位的ADC分辨率
這樣說應該就很簡單明白了吧,其實多出來的位上的數(shù)據(jù),是通過統(tǒng)計輸入量的分布,計算出來的,
而不是硬件真正分辨率出來的,引入噪聲并大于1LSB,目的就是要使微小的輸入信號疊加到ADC能識別的程度(原ADC最小分辨率).
理論來說,如果ADC速度夠快,可以無限提高ADC的分辨率,這是概率和統(tǒng)計的結果
但是ADC的采樣速度限制,過采樣令到最后能被采樣的信號頻率越來越低,
就拿stm32的ADC來說,12ADC,過采樣帶來的提高和局限
分辨率采樣次數(shù)每秒采樣次數(shù)
12ADC11M
13ADC4250K
14ADC1662.5K
15ADC6415.6K
16ADC2563.9K
17DC1024976
18ADC4096244
19ADC1638461
20ADC6553615
要記住,這些采樣次數(shù),還未包括我們要做的滑動濾波,
評論