以下應(yīng)用筆記展示了如何利用 MATLAB 的一些強(qiáng)大命令來(lái)提高存儲(chǔ)器受限高速數(shù)據(jù)采集系統(tǒng)的碼密度,以實(shí)現(xiàn)任何高速模數(shù)轉(zhuǎn)換器 (ADC) 的 INL 和 DNL 測(cè)試所需的大量代碼重復(fù)。
本簡(jiǎn)短的應(yīng)用筆記演示了在邏輯分析儀存儲(chǔ)器深度有限的情況下,如何使用 MATLAB?1 等數(shù)據(jù)處理軟件來(lái)增加代碼數(shù)量。任何使用配備 HP16517A 高速狀態(tài)卡(數(shù)據(jù)速率超過(guò) 135MHz)的邏輯分析儀 (LA) 主機(jī) HP16500C 捕獲超高速數(shù)據(jù)的工程師可能已經(jīng)遇到過(guò)這些內(nèi)存限制。
此HP系統(tǒng)的標(biāo)準(zhǔn)版本通常配備64k的最大內(nèi)存深度,單次測(cè)試運(yùn)行僅允許捕獲65536個(gè)數(shù)據(jù)點(diǎn)。64k 內(nèi)存捕獲的數(shù)據(jù)點(diǎn)根本不足以生成 INL/DNL 圖形的準(zhǔn)確表示。事實(shí)上,對(duì)于 INL 和 DNL 圖,邏輯分析儀通常應(yīng)捕獲 256k 到 4M 個(gè)數(shù)據(jù)點(diǎn),這些數(shù)據(jù)點(diǎn)通過(guò) MATLAB 或其他信號(hào)處理軟件進(jìn)行處理。
要使用上述數(shù)據(jù)采集系統(tǒng)的64k標(biāo)準(zhǔn)存儲(chǔ)深度并實(shí)現(xiàn)精確的INL/DNL表征,必須捕獲多個(gè)數(shù)據(jù)記錄并將其合并到一個(gè)文件中。例如,如果需要 256k 個(gè)數(shù)據(jù)點(diǎn),則必須捕獲四組 64k 數(shù)據(jù)點(diǎn)并將其組合在一起,然后才能使用應(yīng)用筆記 2085“直方圖測(cè)試確定 DNL 和 INL 誤差”中提供的 MATLAB 程序(或類(lèi)似源代碼)進(jìn)行處理。
要將多個(gè)數(shù)據(jù)記錄合并到一個(gè)足夠大的文件中以進(jìn)行 INL/DNL 處理,請(qǐng)執(zhí)行以下步驟。
使用高速狀態(tài)卡 (HP16517A) 捕獲 64k 數(shù)據(jù)點(diǎn)。
刪除代碼文件中所有不屬于代碼的特定于 LA 的行,然后保存該文件。
為文件的內(nèi)容分配一個(gè)新變量。
MATLAB 命令: a=load('inltest1');
使用高速狀態(tài)卡捕獲另一個(gè) 64k 數(shù)據(jù)記錄。
同樣,刪除代碼文件中不屬于代碼一部分的特定于 LA 的行,然后保存該文件。
為新數(shù)據(jù)文件的內(nèi)容分配另一個(gè)新變量。
MATLAB 命令: b=load('inltest2');
合并兩個(gè)數(shù)據(jù)記錄(A 和 B)并將它們分配給新變量。
MATLAB 命令: c=vertcat(a,b);
如果要測(cè)試組合數(shù)據(jù)記錄的大小,只需在 MATLAB 中鍵入 size(c),您應(yīng)該會(huì)收到 132k 的數(shù)據(jù)記錄。
將此新記錄另存為.TXT或 。DAT 文件,以便 MATLAB 可以處理數(shù)據(jù)以進(jìn)行 INL/DNL 計(jì)算。
MATLAB 命令: save inldata.txt c -ascii;
上述命令將文件另存為預(yù)定義目錄中的 ASCII 文件,并使其可用于 INL/DNL 測(cè)試?yán)獭?/p>
如果所有步驟都在一個(gè) MATLAB 會(huì)話中完成,則上述過(guò)程將起作用。也可以對(duì)以前合并的文件重復(fù)此操作。為此在這種情況下,只需加載存儲(chǔ)數(shù)據(jù)的文件,并為其分配一個(gè)新變量。
MATLAB 命令: d=load('inldata.txt');
完成此任務(wù)后,可以獲取一組新數(shù)據(jù)并將其添加到現(xiàn)有數(shù)據(jù)中。只需捕獲另一個(gè) 64k 數(shù)據(jù)記錄并將其內(nèi)容分配給另一個(gè)新的矩陣變量。
MATLAB 命令: e=load('inltest3');
將舊文本文件(現(xiàn)在分配給變量 d)與變量 e 中的新數(shù)據(jù)合并。
MATLAB 命令: f=vertcat(d,e);
按照步驟 9 將矩陣的新擴(kuò)展內(nèi)容保存到 ASCII 文件。
也可以通過(guò)在 MATLAB 中鍵入以下命令一次組合多個(gè)變量:
y=vertcat(a,b,c,d,e,f,g,h)。
有許多不同的方法、程序和設(shè)置配置可以使用現(xiàn)有設(shè)備和簡(jiǎn)單的軟件命令來(lái)完成這些測(cè)試。這里描述的過(guò)程只是使用 MATLAB 強(qiáng)大功能的一個(gè)示例。
要使用 INL/DNL 測(cè)試程序?qū)崿F(xiàn)閉環(huán),只需在 MATLAB 中調(diào)用 INL/DNL 測(cè)試?yán)碳纯伞_\(yùn)行它,并在詢(xún)問(wèn)時(shí)將連接的數(shù)據(jù)集加載到程序中。如果將合并數(shù)據(jù)保存在.TXT或 .DAT文件,不要忘記記錄矩陣文件的數(shù)據(jù)路徑。當(dāng)程序提示時(shí),您必須提供要加載到測(cè)試?yán)讨械拇_切路徑和文件名。該程序還會(huì)詢(xún)問(wèn)數(shù)據(jù)點(diǎn)的數(shù)量(級(jí)聯(lián)矩陣的大?。?、轉(zhuǎn)換器分辨率及其中間代碼。在運(yùn)行 INL/DNL 測(cè)試程序之前,請(qǐng)確保您有此信息可用。
審核編輯:郭婷
-
matlab
+關(guān)注
關(guān)注
189文章
3028瀏覽量
239151 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7753瀏覽量
172148 -
adc
+關(guān)注
關(guān)注
100文章
7941瀏覽量
556836
發(fā)布評(píng)論請(qǐng)先 登錄
AD的一些指標(biāo)——INL與DNL
數(shù)據(jù)文件合并
ADC的微分非線性(DNL)和積分非線性(INL)規(guī)范解析
已知INL和DNL,怎么計(jì)算ADC的轉(zhuǎn)換精度呢?
通過(guò)多個(gè)數(shù)據(jù)文件組合優(yōu)化INL/DNL分析
matlab數(shù)據(jù)文件處理小程序
通過(guò)多個(gè)數(shù)據(jù)文件組合優(yōu)化INL/DNL分析
通過(guò)多個(gè)數(shù)據(jù)文件組合優(yōu)化INL/DNL分析
AD5781:真18位電壓輸出DAC,±0.5 LSB INL, ±0.5 LSB DNL
18 位 DAC 實(shí)現(xiàn) ±1LSB INL 和 DNL
直方圖測(cè)試確定DNL和INL錯(cuò)誤
python如何輸入多個(gè)數(shù)據(jù)
磁編碼器芯片常見(jiàn)參數(shù)INL和DNL的區(qū)別
合并多個(gè)數(shù)據(jù)文件以?xún)?yōu)化INL/DNL處理
評(píng)論