<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 通過(guò)多個(gè)數(shù)據(jù)文件組合優(yōu)化INL/DNL分析

          通過(guò)多個(gè)數(shù)據(jù)文件組合優(yōu)化INL/DNL分析

          ——
          作者: 時(shí)間:2005-12-19 來(lái)源: 收藏
          本文探討如何利用MATLAB強(qiáng)大的指令功能改進(jìn)高速數(shù)據(jù)采集系統(tǒng)中存儲(chǔ)器受限的代碼密度,提高程序代碼的循環(huán)量,以滿足高速模/數(shù)轉(zhuǎn)換器(ADC)的INL、DNL測(cè)試需求。

          本文簡(jiǎn)單介紹了MATLAB™1數(shù)據(jù)處理軟件,在邏輯分析儀存儲(chǔ)容量有限的情況下用于增強(qiáng)程序代碼量。大多數(shù)工程師在使用配有HP16517A高速狀態(tài)卡的大型邏輯分析儀(LA) HP16500C設(shè)備采集超高速數(shù)據(jù)(數(shù)據(jù)速率高于135MHz)時(shí),都會(huì)面臨存儲(chǔ)器受限的問(wèn)題。
          HP設(shè)備的標(biāo)準(zhǔn)配置中通常提供64k最大存儲(chǔ)器容量,每次測(cè)試只能存儲(chǔ)65536個(gè)數(shù)據(jù)點(diǎn)。為了準(zhǔn)確描述INL/DNL特性,64k存儲(chǔ)器所能捕獲的數(shù)據(jù)點(diǎn)還遠(yuǎn)遠(yuǎn)不能滿足需求。事實(shí)上,對(duì)于INL和DNL測(cè)試圖,邏輯分析儀需要采集256k到4M個(gè)數(shù)據(jù)點(diǎn),提供給MATLAB或其它信號(hào)處理軟件進(jìn)行分析。

          采用上述64k標(biāo)準(zhǔn)數(shù)據(jù)采集系統(tǒng)的存儲(chǔ)容量時(shí),為了精確描述INL/DNL特性,必須采集多組數(shù)據(jù)記錄并將其合并到一個(gè)文件中。例如,當(dāng)需要256k個(gè)數(shù)據(jù)點(diǎn)時(shí),則要采集四組64k的數(shù)據(jù),在采用應(yīng)用筆記:Histogram Testing Determines DNL and INL Errors介紹的MATLAB軟件(或同類軟件)進(jìn)行數(shù)據(jù)分析之前,需要將它們合并到一起。

          可通過(guò)以下步驟將多個(gè)數(shù)據(jù)記錄合并到一個(gè)足夠大的INL/DNL文件中,以便進(jìn)行INL/DNL數(shù)據(jù)處理: 

          用高速狀態(tài)卡(HP16517A)采集64k個(gè)數(shù)據(jù)點(diǎn)。 
          刪除所有程序文件中LA指定的、不屬于程序的代碼,并保存文件。 
          A為文件內(nèi)容指定一個(gè)新變量。
          MATLAB命令: a=load(’inltest1’); 
          用高速狀態(tài)卡采集另一組64k數(shù)據(jù)記錄。 
          再次刪除所有程序文件中LA指定的、不屬于程序的代碼,并保存文件。 
          為新的數(shù)據(jù)文件內(nèi)容指定另一個(gè)新變量。
          MATLAB命令: b=load(’inltest2’); 
          合并兩組數(shù)據(jù)記錄(A和B),并為它們指定一個(gè)新的變量。
          MATLAB命令: c=vertcat(a,b); 
          如果需要檢測(cè)合并后數(shù)據(jù)記錄的數(shù)量,可以在MATLAB中輸入size(c); ,隨后應(yīng)該得到132k的數(shù)據(jù)記錄。 
          將這組新的數(shù)據(jù)記錄保存為.TXT或.DAT文件,以便MATLAB計(jì)算INL/DNL時(shí)能夠處理這些數(shù)據(jù)。
          MATLAB命令: save inldata.txt c -ascii; 
          上述命令將文件保存為ASCII文件格式,存儲(chǔ)在預(yù)先定義的目錄下,INL/DNL測(cè)試程序可以根據(jù)需要獲得這些數(shù)據(jù)。 
          如果所有步驟在一次MATLAB會(huì)話中完成,則執(zhí)行上述處理。也可以循環(huán)執(zhí)行預(yù)先合并的文件。對(duì)于這種情況,只需加載存儲(chǔ)數(shù)據(jù)的文件,指定一個(gè)新的變量即可。
          MATLAB命令: d=load(’inldata.txt’); 
          一旦完成這項(xiàng)工作,可以提取一組新的數(shù)據(jù),將其添加到現(xiàn)有數(shù)據(jù)中。只需采集另一組64k數(shù)據(jù)記錄,為其內(nèi)容指定另一矩陣變量。
          MATLAB命令: e=load(’inltest3’); 
          合并舊的文本文件(當(dāng)前變量為d),指定新的數(shù)據(jù)變量為e。
          MATLAB命令: f=vertcat(d,e); 
          按照第9步將新的、擴(kuò)展后的數(shù)據(jù)矩陣保存到一個(gè)ASCII文件。 
          也可以利用MATLAB中的命令: y=vertcat(a,b,c,d,e,f,g,h)一次合并多個(gè)變量,總之,可以利用多種方法、程序和配置方式,采用現(xiàn)有設(shè)備和簡(jiǎn)單的軟件指令完成這些測(cè)試。這里提供的流程只是一個(gè)簡(jiǎn)單的MATLAB應(yīng)用范例。 
          為了構(gòu)建INL/DNL測(cè)試程序,只需簡(jiǎn)單調(diào)用MATLAB中的INL/DNL測(cè)試子程序。運(yùn)行該程序,并在有請(qǐng)求時(shí)將連續(xù)數(shù)據(jù)組加載到程序中。如果把合并后的數(shù)據(jù)保存到一個(gè).TXT或.DAT文件內(nèi),須注意記錄矩陣文件的數(shù)據(jù)路徑。出現(xiàn)程序提示時(shí),必須提供向測(cè)試子程序加載數(shù)據(jù)的準(zhǔn)確路徑和文件名。程序還要求提供數(shù)據(jù)點(diǎn)數(shù)(數(shù)據(jù)矩陣的尺寸)、轉(zhuǎn)換結(jié)果及其中間代碼。在運(yùn)行INL/DNL測(cè)試程序之前,須確認(rèn)你已擁有這些信息。

          參考文獻(xiàn): 
          INL/DNL Measurements for High-Speed Analog-to-Digital Converters (ADCs)
          Histogram Testing Determines DNL and INL Errors

          交換機(jī)相關(guān)文章:交換機(jī)工作原理


          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();