|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
數(shù)據(jù)作假問題請(qǐng)教 |
| 作者:_21icbbs 欄目:單片機(jī) |
當(dāng)采集信號(hào)時(shí),例如采集溫度信號(hào)并把他顯示出來(lái),當(dāng)采用熱敏電阻串接一固定電阻分壓后送8位A/D,如果需要0.1度的分辨率,但對(duì)精度要求不是太高,然而8位A/D分辨率明顯不夠,在送顯示的時(shí)候就需要進(jìn)行小數(shù)位作假送顯示,如果采用隨機(jī)數(shù)顯示,最后一位總是在跳變,效果不好,是否有什么變法讓最后一位能穩(wěn)定顯示? 8位A/D | VCC--->分壓電阻--->熱敏電阻--->GND 附A/D轉(zhuǎn)換表格: 溫度值 熱敏電阻 分壓電阻 送A/D的電壓值 對(duì)應(yīng)的A/D數(shù)值 阻值 阻值 -40.0 198311 30000 4.343001432 221.493073 -39.0 187576 30000 4.310585726 219.839872 -38.0 177487 30000 4.277063141 218.1302202 -37.0 168000 30000 4.242424242 216.3636364 -36.0 159076 30000 4.206668218 214.5400791 -35.0 150680 30000 4.169802967 212.6599513 -34.0 142776 30000 4.131823864 210.7230171 -33.0 135333 30000 4.092740106 208.7297454 -32.0 128322 30000 4.052563762 206.6807519 -31.0 121725 30000 4.011369254 204.5798319 -30.0 115487 30000 3.968980046 202.4179824 -29.0 109614 30000 3.92560918 200.2060682 -28.0 104075 30000 3.881223196 197.942383 -27.0 98847 30000 3.835828541 195.6272556 -26.0 93913 30000 3.789473259 193.2631362 -25.0 89253 30000 3.742170008 190.8506704 -24.0 84852 30000 3.693971372 188.39254 -23.0 80693 30000 3.644900762 185.8899388 -22.0 76762 30000 3.595005714 183.3452914 -21.0 73045 30000 3.544325295 180.76059 -20.0 69530 30000 3.492916709 178.1387521 -19.0 66204 30000 3.440813272 175.4814769 -18.0 63056 30000 3.3880674 172.7914374 -17.0 60075 30000 3.334721066 170.0707744 -16.0 57253 30000 3.280861403 167.3239316 -15.0 54579 30000 3.226510127 164.5520165 -14.0 52046 30000 3.171757307 161.7596227 -13.0 49644 30000 3.116618954 158.9475667 -12.0 47367 30000 3.061188879 156.1206328 -11.0 45207 30000 3.005504807 153.2807451 -10.0 43158 30000 2.949643238 150.4318051 -9.0 41213 30000 2.893643015 147.5757937 -8.0 39367 30000 2.837588479 144.7170124 -7.0 37614 30000 2.781524536 141.8577514 -6.0 35948 30000 2.725480682 138.9995148 -5.0 34366 30000 2.669577106 136.1484324 -4.0 32862 30000 2.61382075 133.3048583 -3.0 31433 30000 2.558315563 130.4740937 -2.0 30073 30000 2.50303797 127.6549365 -1.0 28780 30000 2.448111603 124.8536917 0.0 27550 30000 2.393570808 122.0721112 1.0 26377 30000 2.339340511 119.3063661 2.0 25262 30000 2.285657414 116.5685281 3.0 24199 30000 2.232421262 113.8534844 4.0 23188 30000 2.179814996 111.1705648 5.0 22224 30000 2.127757353 108.515625 6.0 21306 30000 2.076365337 105.8946322 7.0 20431 30000 2.025638992 103.3075886 8.0 19564 30000 1.973609878 100.6541038 9.0 18807 30000 1.926670355 98.260188 |
| 2樓: | >>參與討論 |
| 作者: gwnpeter 于 2005/3/5 14:39:00 發(fā)布:
使用移動(dòng)窗口濾波法!!! 很常用的一種求動(dòng)態(tài)平均值的方法 |
|
| 3樓: | >>參與討論 |
| 作者: gwnpeter 于 2005/3/5 14:48:00 發(fā)布:
例子 float Count(unsigned CHAR ad) { static unsigned CHAR aa[10]; static unsigned CHAR point; unsigned int all = 0; unsigned CHAR i; aa[point++] = ad; //動(dòng)態(tài)窗口 if(point == 10) point = 0; for(i = 0; i < 10; i++) //求平均值 all += aa[i]; return(all / 10); } |
|
| 4樓: | >>參與討論 |
| 作者: xuhuadong 于 2005/3/5 14:52:00 發(fā)布:
我也遇到過,我是這樣解決的 8位ad,只能做到1度,軟件可以算到0.1度,對(duì)誰(shuí)都是假的,那也個(gè)算法都不行 我叫你作假的方法,完全可以騙過人眼, 1.顯示在0.3秒內(nèi)不變 2.變化小于1度時(shí),顯示不變。 這都是騙人,最好是用高精度ad芯片 |
|
| 5樓: | >>參與討論 |
| 作者: 李冬發(fā) 于 2005/3/5 15:28:00 發(fā)布:
不是在騙人,是真正能對(duì)低精度的ADC進(jìn)行擴(kuò)位,只是犧牲了速度 不是在騙人,是真正能對(duì)低精度的ADC進(jìn)行擴(kuò)位,只是犧牲了速度。 正統(tǒng)的做法是還要迭加上一個(gè)撓動(dòng)信號(hào),撓動(dòng)信號(hào)的幅值要大于1LSB。在采樣n個(gè)樣本,然后取平均值。如果在只有撓動(dòng)信號(hào)時(shí),平均值為零,那么就能很容易提高ADC的位數(shù)了。為了達(dá)到這樣的效果,n的取值、撓動(dòng)信號(hào)的頻率和采樣頻率等是有講究的。 |
|
| 6樓: | >>參與討論 |
| 作者: gwnpeter 于 2005/3/5 16:08:00 發(fā)布:
謝了,李兄 |
|
| 7樓: | >>參與討論 |
| 作者: _21icbbs 于 2005/3/8 15:38:00 發(fā)布:
擾動(dòng)信號(hào)怎么個(gè)加法? 請(qǐng)李先生就8位的A/D和上面的表格給我們講解一下到底如何做? 在下愚頓,請(qǐng)多多指教。 |
|
| 8樓: | >>參與討論 |
| 作者: lws 于 2005/3/8 18:01:00 發(fā)布:
看看過采樣技術(shù).可以通過提高采樣速度來(lái)提高位數(shù) 但這么做也是有條件的. |
|
| 9樓: | >>參與討論 |
| 作者: freede 于 2005/3/9 10:20:00 發(fā)布:
做個(gè)死區(qū)! 設(shè)置一個(gè)死區(qū)變量,在這個(gè)死區(qū)內(nèi)變化的數(shù)據(jù)不予考慮,仍保留上次采樣結(jié)果。 這樣就不會(huì)跳啦! |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |