MATLAB 是一款功能強(qiáng)大的工具,可用于快速分析從模數(shù)轉(zhuǎn)換器 (ADC) 輸出捕獲的數(shù)據(jù)。本應(yīng)用筆記演示了如何使用MATLAB來(lái)避免邏輯分析儀存儲(chǔ)器深度的限制。描述并比較了三種代碼切換方法(基本、高級(jí)和反向)。給出了所有三種方法的結(jié)果。
介紹
檢定高速模數(shù)轉(zhuǎn)換器(ADC)需要捕獲和分析數(shù)字輸出代碼。邏輯分析儀存儲(chǔ)器深度的限制經(jīng)常妨礙捕獲足夠的數(shù)據(jù)點(diǎn)來(lái)創(chuàng)建高分辨率FFT或INL/DNL圖形的精確表示。規(guī)避此問(wèn)題的一種簡(jiǎn)單方法是使用 MATLAB 等數(shù)學(xué)工具連接多組數(shù)據(jù)(圖 1)。連接數(shù)據(jù)的一個(gè)缺點(diǎn)是較大的不連續(xù)性,這通常存在于兩個(gè)數(shù)據(jù)集之間的點(diǎn)。雖然不連續(xù)性對(duì) INL/DNL 圖幾乎沒(méi)有影響,但它會(huì)對(duì)高分辨率 FFT 造成嚴(yán)重破壞(圖 2)。
圖1.串聯(lián)數(shù)據(jù)揭示了兩個(gè)數(shù)據(jù)集之間的不連續(xù)性。
圖2.a) 捕獲并分析了單個(gè) 16384 點(diǎn)數(shù)據(jù)集;b) 捕獲、連接和分析了兩個(gè) 8192 點(diǎn)數(shù)據(jù)集??p合技術(shù)。
可以通過(guò)在每個(gè)數(shù)據(jù)集中搜索相同的點(diǎn)組(通常為三個(gè)或四個(gè))并在這些點(diǎn)處將兩個(gè)數(shù)據(jù)集“拼接”在一起來(lái)消除不連續(xù)性(圖 3)。完成此拼接的最簡(jiǎn)單方法是記錄第一個(gè)數(shù)據(jù)集中的最后四個(gè)點(diǎn),然后在第二個(gè)數(shù)據(jù)集中搜索一組相同的點(diǎn)。第二個(gè)數(shù)據(jù)集中的這個(gè)位置稱為“縫合點(diǎn)”。第二個(gè)數(shù)據(jù)集中此拼接點(diǎn)之前的任何數(shù)據(jù)都將被丟棄;第二個(gè)數(shù)據(jù)集的其余部分附加到第一個(gè)數(shù)據(jù)集。這種技術(shù)稱為基本代碼拼接,實(shí)現(xiàn)起來(lái)相當(dāng)簡(jiǎn)單,并且在 MATLAB 中執(zhí)行速度非??臁?/p>
圖3.基本代碼拼接會(huì)產(chǎn)生最終的“拼接”矩陣。
使用基本代碼拼接,有時(shí)需要丟棄多達(dá)一半的第二個(gè)數(shù)據(jù)集,以便找到與第一個(gè)數(shù)據(jù)集的最后四個(gè)點(diǎn)匹配的一組點(diǎn)?;蛘?,在第一個(gè)數(shù)據(jù)集的末尾丟棄一些樣本通常有助于找到更接近第二個(gè)數(shù)據(jù)集開(kāi)頭的拼接點(diǎn)(圖 4)。但是,尋找從第一個(gè)數(shù)據(jù)集的尾端和第二個(gè)數(shù)據(jù)集的前端丟棄樣本的匹配可能很難實(shí)現(xiàn)。此過(guò)程稱為高級(jí)代碼拼接。找到產(chǎn)生最大結(jié)果數(shù)據(jù)集的理想拼接點(diǎn)需要相當(dāng)深思熟慮和編程技能。但是,如果實(shí)施得當(dāng),高級(jí)代碼拼接通常會(huì)產(chǎn)生一個(gè)最終數(shù)據(jù)集,該數(shù)據(jù)集至少是兩個(gè)較小數(shù)據(jù)集之和的 90%。
圖4.高級(jí)代碼拼接尋找理想的拼接點(diǎn),從而產(chǎn)生最終的“拼接”矩陣。
將第二個(gè)數(shù)據(jù)集(矩陣B)拼接在第一個(gè)數(shù)據(jù)集(矩陣A)前面稱為反向代碼拼接,也可能產(chǎn)生更大的數(shù)據(jù)集(圖5)。然而,這種技術(shù)使處理時(shí)間加倍,因?yàn)楫?dāng)數(shù)據(jù)集 A 在數(shù)據(jù)集 B 之前,當(dāng)數(shù)據(jù)集 A 在數(shù)據(jù)集 B 之后時(shí),必須找到拼接點(diǎn)。此外,反向代碼拼接與其他拼接技術(shù)結(jié)合使用時(shí)通常產(chǎn)生最小的收益。因此,由于反向代碼拼接所需的處理時(shí)間大幅增加,在速度較慢的PC上,額外的代碼增益可能不合理。表 1 詳細(xì)介紹了三種代碼拼接方法之間的比較。
圖5.反向代碼拼接使處理時(shí)間加倍,通常代碼增益最小。
縫合技術(shù) | 最終數(shù)據(jù)集的大小 | 描述 | ||||
數(shù)據(jù)集編號(hào) |
# 代碼 (平均) |
兩個(gè)數(shù)據(jù)集 的百分比(平均值) |
||||
1 + 2 | 3 + 4 | 1 + 4 | ||||
連接? | 不適用 | 16384 | 100% | 會(huì)產(chǎn)生錯(cuò)誤的FFT;但是,可以從這些數(shù)據(jù)中提取INL/DNL。 | ||
基本 | 11060 | 8192? | 14384 | 11212 | 68.4% | FFT可用于計(jì)算品質(zhì)因數(shù)。 |
反向 | 11060 | 8192? | 14384 | 11212 | 68.4% | |
高深 | 13790 | 16046 | 16022 | 15286 | 93.3% | |
高級(jí) + 反向 |
15427 | 16176 | 16022 | 15875 | 96.9% | |
*使用上述技術(shù)將兩個(gè) 8K(8192 代碼)數(shù)據(jù)集拼接在一起。為了確保準(zhǔn)確性,使用四組8192點(diǎn)數(shù)據(jù)(標(biāo)記為1到4)重復(fù)測(cè)試三次。對(duì)每個(gè)測(cè)試的結(jié)果數(shù)據(jù)進(jìn)行平均,并顯示在測(cè)試數(shù)據(jù)的右側(cè)。 ?串聯(lián)始終產(chǎn)生 100% 的可用數(shù)據(jù)。 ?無(wú)法將數(shù)據(jù)集拼接在一起。 |
MATLAB 功能說(shuō)明
附加的 MATLAB 代碼(附錄 A 和 B 中的 StitchMatrices 和 FindStitchPoint)將上述主題組合成一個(gè)易于使用的函數(shù)。這些函數(shù)接受兩個(gè)數(shù)據(jù)集(MATLAB 中的單列矩陣)和多個(gè)啟用高級(jí)/反向代碼拼接功能的輸入參數(shù)。FindStitchPoint 例程標(biāo)識(shí)數(shù)據(jù)集 A 和 B 中的偏移量。StitchMatrices 例程丟棄數(shù)據(jù)集 A 和 B 并使用 FindStitchPoint 例程中的偏移量將數(shù)據(jù)集 A 和 B 組合在一起。此外,最終數(shù)據(jù)集中的針跡點(diǎn)記錄在PrevStitchBins矩陣中以進(jìn)行后處理。將多個(gè)數(shù)據(jù)集拼接在一起時(shí),PrevStitchBins會(huì)保留舊拼接點(diǎn)的位置。
結(jié)論
將兩組數(shù)據(jù)拼接在一起可以產(chǎn)生可接受的結(jié)果。圖 6 描述了使用上述拼接技術(shù)拼接在一起的三個(gè) 8192 點(diǎn)數(shù)據(jù)集(使用五個(gè)拼接點(diǎn))的 FFT 圖。得到的FFT與上面圖16384a所示的2點(diǎn)連續(xù)數(shù)據(jù)集幾乎相同。
圖6.將代碼拼接在一起可產(chǎn)生精確的FFT圖。
審核編輯:郭婷
-
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8724瀏覽量
147414 -
matlab
+關(guān)注
關(guān)注
185文章
2977瀏覽量
230644 -
adc
+關(guān)注
關(guān)注
98文章
6512瀏覽量
545014
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論