本發明屬于電子技術領域,尤其涉及一種校正測量數據的方法及裝置。
背景技術:
模數轉換器(anologdigitalconverter,adc)是電路設計中常用的元器件,其作用是將連續的模擬量轉換為離散的數字信號,理想的adc設計電路的輸入值與理論輸出電壓值是一致的且呈線性變化,但由于元器件誤差、系統噪聲以及器件老化等原因,adc的實際輸出電壓值與理論輸出電壓值存在較大的誤差,且整個輸入與輸出范圍內呈非線性變化,因此在高精度模擬信號測量中,需對adc的輸出值做校正。
現有技術中,用于提高adc測量精度的方法主要有以下兩種方式:
第一種方式為模擬校正,即增加額外的電路去控制adc器件,模擬校正的方法需增加額外的硬件資源,從而增加了測試成本;
第二種方式為數字校正,即對adc采集后的數據用算法校正,適用于adc在整個輸入和輸出范圍內呈線性變化,然而當該范圍非線性時,校正運算出的結果也會因此出現較大的誤差,造成校正失敗。
技術實現要素:
本發明提供一種校正測量數據的方法及裝置,通過對adc輸出的數據進行多段線性數據范圍的劃分,并計算得到每段數據范圍對應的校正參數,之后根據校正參數校正adc輸出的數據,用以提高adc的測量精度。
本發明提供的一種校正測量數據的方法,包括:
當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據,將所述數字數據劃分為預置數量的多段數據范圍,并根據輸入所述模數轉換器的已知標準電壓,以及所述已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段所述數據范圍對應的校正系數;按照所述校正系數校正所述數字數據。
本發明提供的一種校正測量數據的裝置,包括:
使能模塊,用于當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據;劃分模塊,用于將所述數字數據劃分為預置數量的多段數據范圍;計算模塊,用于根據輸入所述模數轉換器的已知標準電壓,以及所述已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段所述數據范圍對應的校正系數;校正模塊,用于按照所述校正系數校正所述數字數據。
從上述本發明實施例可知,通過adc將模擬測量數據轉換為數字數據,將adc輸出的該數字數據進行多段線性數據范圍的劃分,將adc輸出非線性數據范圍微分為多段近似線性數據范圍,并計算得到每段數據范圍對應的校正參數,之后根據校正參數校正adc輸出的數據,以此校正adc輸出的非線性數據的誤差,提高adc輸出信號的精度,從而進一步提高adc的測量精度。在不增加設備成本的基礎上,解決了現有技術中對非線性數據的誤差校正效果差的問題。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付 出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例中校正測量數據的方法的應用場景示意圖;
圖2是本發明第一實施例提供的校正測量數據的方法的實現流程示意圖;
圖3是本發明第二實施例提供的校正測量數據的方法的實現流程示意圖;
圖4是本發明實施例中系數存儲單元存儲校正系數的示意圖;
圖5是本發明第三實施例提供的校正測量數據的裝置的結構示意圖;
圖6是本發明第四實施例提供的校正測量數據的裝置的結構示意圖。
具體實施方式
為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而非全部實施例。基于本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例提供的校正測量數據的方法,可應用于校正模數轉換器輸出的非線性數據相對于理論輸出數據的誤差,請參閱圖1,主控制器10和校正裝置20通過通用串行總線(usb,universalserialbus)方式、wifi方式,或者其他有線、無線的方式相連接,二者之間可進行數據交換。同樣的,校正裝置20與adc30相連接,可以進行數據交換。
其中,主控制器10,用于向校正裝置20發動啟動命令,以使校正裝置20開始工作,對adc30輸出的數據進行校正。
校正裝置20,用于當接收到主控制器10的啟動命令時,使能adc30將模擬測量數據轉換為數字數據,并將該數字數據進行濾波,以濾除該數字數據中的噪聲數據,具體可以是濾除其中的高頻噪聲數據,并將濾波后得到的數據劃分為預置數量的多段數據范圍,再根據輸入該模數轉換器的已知標準電壓,以 及該已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段該數據范圍對應的校正系數,進一步地,按照該校正系數校正濾波后得到的數據,并將校正后得到的數據傳回主控制器10,在主控制器10上顯示該校正后得到的數據。
具體地,校正裝置20可以進一步劃分為多個模塊,包括數據采集模塊,數據濾波模塊,地址產生模塊,預處理模塊,系數存儲模塊,計算單元模塊等等。
該數據采集模塊,可用于采集經adc30轉換的數據;該數據濾波模塊,可用于將該數據進行濾波;地址產生模塊,可用于根據濾波后得到的數據產生校正系數存儲地址;預處理模塊,可用于產生校正系數,并將其存入該系數存儲模塊;該系數存儲模塊,可用于存儲校正系數;該計算單元模塊,還用于獲取到校正系數以及濾波后得到的數據后,根據校正系數校正濾波后得到的數據。
adc30,用于接收校正裝置20的指令,將輸入adc30的模擬測試數據轉換為數字數據,也即,將模擬測試信號轉換為數字信號。
上述主控制10、校正裝置20以及adc30實現上述功能的具體實現過程,請參見下述各實施例的描述。
請參閱圖2,圖2為本發明第一實施例提供的校正測量數據的方法的實現流程示意圖,可應用于圖1所示的校正裝置20中,主要包括以下步驟:
201、當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據;
校正裝置接收來自主控制器的啟動命令,并根據該啟動命令觸發對adc輸出的數據進行校正。
當接收到主控制器的啟動命令時,使能adc將輸入該adc的模擬測量數據轉換為數字數據。本實施例中,adc位寬為n比特,使能adc轉換,將模擬測量數據轉換為數字數據后,按照系統預先規定的接口協議,從預先指定的adc接口將該數字數據讀回。若該adc接口為串行總線,例如為串行外圍設 備接口(spi,serialperipheralinterface)總線,則需將該數字數據進行串并轉換,最終得到n比特的數字數據。
202、將該數字數據劃分為預置數量的多段數據范圍,并根據輸入該模數轉換器的已知標準電壓以及與該已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段數據范圍的數據對應的校正系數;
將adc轉換后的數字數據細微地劃分為預置數量的多段數據范圍,使得劃分后的多段數據范圍為近似線性曲線。將數據劃分為多段線性數據,之后再進行分段對應校正,可以達到提高校正精度的目的。
根據輸入該adc的已知標準電壓,以及與該已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段數據范圍的數據對應的校正系數,校正系數分為兩組,因此,每段數據范圍的數據對應兩組校正系數。
204、按照校正系數校正該數字數據。
按照每段數據范圍的數據對應的校正系數,校正該轉換后的數字數據,并將校正后得到的數據傳回該主控制器,在主控制器上顯示校正后的數據,或者通過主控制器連接的顯示設備顯示校正后的數據。
本發明實施例中,通過adc將模擬測量數據轉換為數字數據,將adc輸出的該數字數據進行多段線性數據范圍的劃分,將adc輸出非線性數據范圍微分為多段近似線性數據范圍,并計算得到每段數據范圍對應的校正參數,之后根據校正參數校正adc輸出的數據,以此校正adc輸出的非線性數據的誤差,提高adc輸出信號的精度,繼而進一步提高adc的測量精度。在不增加設備成本的基礎上,解決了現有技術中對非線性數據的誤差校正效果差的問題。
請參閱圖3,圖3為本發明第二實施例提供的校正測量數據的方法的實現流程示意圖,可應用于圖1所示的校正裝置20中,包括以下步驟:
301、當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據;
302、將該數字數據進行濾波,以濾除該數字數據中的噪聲數據;
通常使用低通濾波器實現濾波。常用的低通濾波器包括:有限長單位沖激響應(fir,finiteimpulseresponse)濾波器和無限長脈沖響應(iir,infiniteimpulseresponse)濾波器。從性能上來說,iir濾波器可用較低的濾波器階數獲得較高的濾波效果,所用的存貯單元少,經濟而效率高,但是這個高效率是以相位的非線性為代價的。相反的,fir濾波器卻可以得到嚴格的線性相位,然而由于fir濾波器傳輸函數的極點固定在原點,所以只能用較高的階數達到高的濾波效果。此處的濾波器選擇可根據系統設計需求而定,例如,采集信號不關心相位關系(如直流信號)且系統資源比較緊張,可以選用iir濾波器,反之則可以選用fir濾波器。
本發明實施例優選fir濾波器,通過fir濾波器將數字數據進行濾波,以濾除數字數據中的高頻噪聲數據。通過濾波,進一步濾除可能影響到計算結果的無用數據,從而提高數據校正的精度。
303、將濾波后得到的數據劃分為2m段數據范圍;
濾波后得到的數據為非線性數據,將其劃分為2m段數據范圍后,使得劃分后的2m段數據范圍都近似為線性數據范圍。即,將非線性數據劃分為多段線性數據,之后再進行分段對應校正,以達到提高校正精度的目的。
304、從該模數轉換器的輸入端輸入已知標準電壓;
根據輸入adc的已知標準電壓vi以及與vi對應的理論輸出電壓值x和實際輸出電壓值y,得到與每段數據范圍的數據對應的校正系數。已知標準電壓vi是根據adc的最大輸入電壓設置的,該最大輸入電壓為已知值。
具體的,用vi表示該已知標準電壓,vi與該adc的最大輸入電壓vref有關,則已知標準電壓vi與adc的最大輸入電壓vref的關系為:
vi=vref/2m(2m-n)
其中,0≤n≤2m,n的初始值為2m;m>0。
當n的初始值為2m時,vi=0,n值逐漸遞減,當n=2m時,vi=vref。
305、按照該模數轉換器的理想性能參數,計算得到與該已知標準電壓對應的該模數轉換器的理論輸出電壓值,以及,讀取該模數轉換器輸出端輸出的與該已知標準電壓對應的實際輸出電壓值;
該adc的理想性能參數,是指adc將模擬數據轉換為數字數據后,該數字數據沒有誤差。
根據adc的理想性能參數和該已知標準電壓,計算得到與該已知標準電壓對應的理論輸出電壓值x。
讀取adc輸出端輸出的與該已知標準電壓對應的實際輸出電壓值y。
上述vi、vref、x、y之間的關系請參見下表:
306、根據理論輸出電壓值和實際輸出電壓值,按照預置算法分別計算出與每段數據范圍對應的校正系數;
根據計算得到的理論輸出電壓值x和讀取到的實際輸出電壓值y,按照預置算法分別計算出與每段數據范圍對應的校正系數,該校正系數包括第一校正系數a和第二校正系數b。
該預置算法的計算式如下:
其中,m>0。
濾波后得到的數據為非線性數據,將其細微地劃分為2m段數據范圍,使得劃分后的多段數據范圍為近似線性曲線。即,將非線性數據劃分為多段線性數據,之后再進行分段對應校正,以達到提高校正精度的目的。
需要說明的是,在校正裝置20中的預處理模塊可將計算出的校正系數存儲在系數存儲模塊中,存儲地址由地址產生模塊產生,存入該存儲地址后,計算單元模塊也從該存儲地址讀取校正系數。該存儲地址需在計算校正系數之前產生。
具體地,根據濾波后得到的數據的高m位,產生讀取校正系數的地址,并從該地址讀取校正系數。
其中,以n表示濾波后得到的數據的總位寬,總位寬可分為高位和地位,在高位中的高m位產生讀取校正系數的地址,從此地址中讀取校正系數,m表示該讀取校正系數的地址位寬,0<m<n,則該讀取校正系數的地址位寬與濾波后得到的數據總位寬的關系為:
address(m-1:0)=data(n-1:n-m)
優選地,n=16,m=4,則address(4-1:0)=data(16-1:16-4)。
請參閱圖4,系數存儲單元可分為第一系數存儲單元和第二系數存儲單元,該第一系數存儲單元,用于存儲該第一校正系數a,該第二系數存儲單元,用于存儲該第二校正系數b。第一校正系數a和第二校正系數b每組2m個校正系數,在系數存儲單元中的讀地址相同。計算單元模塊,可同時從該讀地址中讀取該第一校正系數和該第二校正系數。
307、按照該校正系數校正濾波后得到的數據。
將濾波后得到的數據與第一校正系數a相乘后與第二校正系數b相加,以校正該濾波后得到的數據。
濾波后得到的數據dl和校正后得到的數據dr的關系為:
dr=dl×a+b
將校正后得到的數據以主控制器可以識別的格式傳回該主控制器,在主控制器上顯示校正后得到的數據,或者通過主控制器連接的顯示設備顯示校正后得到的數據。
本發明實施例中,通過adc將模擬測量數據轉換為數字數據,將adc輸出的該數字數據進行濾波后劃分為2m段線性數據范圍,從而將adc輸出非線性數據范圍微分為多段近似線性數據范圍,并計算得到每段數據范圍對應的兩組校正參數,之后根據校正參數校正adc輸出的數據,以此較好地校正adc輸出的非線性數據的誤差,提高adc輸出信號的精度,繼而進一步提高adc的測量精度。在不增加設備成本的基礎上,解決了現有技術中對非線性數據的誤差校正效果差的問題。
參閱圖5,圖5是本發明第三實施例提供的校正測量數據的裝置的結構示意圖,為了便于說明,僅示出了與本發明實施例相關的部分。圖5示例的校正測量數據的裝置可以是前述圖2和圖3所示實施例提供的校正測量數據的方法的執行主體,如校正裝置20或其中的一個控制模塊。圖5示例的校正測量數據的裝置,包括:使能模塊501、劃分模塊502、計算模塊503以及校正模塊504。
以上各功能模塊詳細說明如下:
其中,使能模塊501,用于當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據。
劃分模塊502,用于將該數字數據劃分為預置數量的多段數據范圍。
計算模塊503,用于根據輸入該模數轉換器的已知標準電壓,以及該已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段該數據范圍對應的校正系數。
校正模塊504,用于按照該校正系數校正該數字數據。
本實施例未盡之細節,請參閱前述圖1至圖3所示實施例的描述,此處不再贅述。
需要說明的是,以上圖5示例的校正測量數據的裝置的實施方式中,各功能模塊的劃分僅是舉例說明,實際應用中可以根據需要,例如相應硬件的配置要求或者軟件的實現的便利考慮,而將上述功能分配由不同的功能模塊完成,即將校正測量數據的裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實際應用中,本實施例中的相應的功能模塊可以是由相應的硬件實現,也可以由相應的硬件執行相應的軟件完成。本說明書提供的各個實施例都可應用上述描述原則,以下不再贅述。
本發明實施例中,通過adc將模擬測量數據轉換為數字數據,將adc輸出的該數字數據進行多段線性數據范圍的劃分,將adc輸出非線性數據范圍微分為多段近似線性數據范圍,并計算得到每段數據范圍對應的校正參數,之后根據校正參數校正adc輸出的數據,以此校正adc輸出的非線性數據的誤差,提高adc輸出信號的精度,繼而進一步提高adc的測量精度。在不增加設備成本的基礎上,解決了現有技術中對非線性數據的誤差校正效果差的問題。
請參閱圖6,本發明第四實施例提供的校正測量數據的裝置的結構示意圖,圖6示例的校正測量數據的裝置可以是前述圖2和圖3所示實施例提供的校正測量數據的方法的執行主體,如校正裝置20或其中的一個控制模塊。該裝置主要包括:使能模塊601、濾波模塊602、劃分模塊603、計算模塊604、輸入模塊6041、第一計算子模塊6042、讀取模塊6043、第二計算子模塊6044、校正模塊605以及地址產生模塊606。以上各功能模塊詳細說明如下:
其中,使能模塊601,用于當接收到主控制器的啟動命令時,使能模數轉換器將模擬測量數據轉換為數字數據。
濾波模塊602,用于將該數字數據進行濾波,以濾除該數字數據中的噪聲數據。濾波模塊602,具體用于通過有限長單位沖激響應濾波器將該數字數據進行濾波,以濾除該數字數據中的高頻噪聲數據。
劃分模塊603,用于將濾波后得到的數據劃分為預置數量的多段數據范圍;
計算模塊604,用于根據輸入該模數轉換器的已知標準電壓,以及該已知標準電壓對應的理論輸出電壓值和實際輸出電壓值,得到與每段該數據范圍對應的校正系數。
校正模塊605,用于按照該校正系數校正濾波后得到的數據。
該裝置還可以進一步地包括發送模塊,用于將校正后得到的數據傳回該主控制器。
進一步地,劃分模塊603,還用于將濾波后得到的數據劃分為2m段數據范圍。
計算模塊604還可以進一步包括:
輸入模塊6041,用于從所述模數轉換器的輸入端輸入已知標準電壓;
第一計算子模塊6042,用于按照該模數轉換器的理想性能參數,計算得到與該已知標準電壓對應的該模數轉換器的理論輸出電壓值;
讀取模塊6043,用于讀取該模數轉換器輸出端輸出的與該已知標準電壓對應的實際輸出電壓值;
第二計算子模塊6044,用于根據該理論輸出電壓值和該實際輸出電壓值,按照預置算法分別計算出與每段數據范圍對應的校正系數;
進一步地,輸入模塊6041,具體用于從該模數轉換器的輸入端輸入已知標準電壓vi,該已知標準電壓vi與該模數轉換器最大輸入電壓vref的關系為:
vi=vref/2m(2m-n)
其中,0≤n≤2m,n的初始值為2m;m>0;
第二計算子模塊6044,具體用于根據該理論輸出電壓值x和該實際輸出電壓y,按照預置算法分別計算出與每段數據范圍對應的校正系數,該校正系數包括:第一校正系數a以及第二校正系數b;
其中,該預置算法的計算式為:
該裝置還進一步地包括:
地址產生模塊606,用于根據該濾波后得到的數據的高m位,產生讀取校正系數的地址;
其中,n表示該濾波后得到的數據總位寬,m表示該讀取校正系數的地址位寬,0<m<n,則該讀校正系數的地址位寬與該數據總位寬的關系為:
address(m-1:0)=data(n-1:n-m)
進一步地,校正模塊605,具體用于將該濾波后得到的數據與第一校正系數a相乘后與第二校正系數b相加,以校正該濾波后得到的數據。
本實施例未盡之細節,請參閱前述圖2至圖3所示實施例的描述,此處不再贅述。
本發明實施例中,通過adc將模擬測量數據轉換為數字數據,將adc輸出的該數字數據進行濾波后劃分為2m段線性數據范圍,從而將adc輸出非線性數據范圍微分為多段近似線性數據范圍,并計算得到每段數據范圍對應的兩組校正參數,之后根據校正參數校正adc輸出的數據,以此較好地校正adc輸出的非線性數據的誤差,提高adc輸出信號的精度,繼而進一步提高adc的測量精度。在不增加設備成本的基礎上,解決了現有技術中對非線性數據的誤差校正效果差的問題。
在本申請所提供的多個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信鏈接可以是通過一些接口,裝置或模塊的間接耦合或通信鏈接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為 模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網絡模塊上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。
所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定都是本發明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上為對本發明所提供的校正測量數據的方法及裝置的描述,對于本領域的技術人員,依據本發明實施例的思想,在具體實施方式及應用范圍上均會有改變之處,綜上,本說明書內容不應理解為對本發明的限制。