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

直方圖測試確定DNL和INL錯誤

python如何輸入多個數(shù)據(jù)
磁編碼器芯片常見參數(shù)INL和DNL的區(qū)別

評論