本教程是轉(zhuǎn)換器連接教程的延續(xù)。1,2它將關(guān)注單個信號鏈元素的噪聲,并使用 Python/SciPy 3和 LTspice?對其進行建模。然后,它將通過 libm2k 和 Linux ?工業(yè)輸入輸出 (IIO) 框架使用 Python 驅(qū)動ADALM2000多功能 USB 測試儀器來驗證結(jié)果。所有源代碼和其他討論都可以在配套的主動學(xué)習(xí)實驗室練習(xí)中找到。
混合模式信號鏈無處不在。簡而言之,任何將現(xiàn)實世界的信號轉(zhuǎn)換為電表示,然后進行數(shù)字化的系統(tǒng)都可以歸類為混合模式信號鏈。在鏈上的每一點,信號都會以各種方式劣化,通常可以將其表征為某種形式的失真或附加噪聲。一旦進入數(shù)字域,數(shù)字化數(shù)據(jù)的處理也并不完美,但至少從所有實際目的來看,它不受許多影響模擬信號的因素的影響——元件容差、溫度漂移、來自相鄰信號的干擾、或電源電壓變化。
隨著行業(yè)不斷突破物理極限,有一點是確定的:儀器儀表的模擬和混合信號組件總是有改進的空間。如果市場上出現(xiàn)的模數(shù)轉(zhuǎn)換器 (ADC) 或數(shù)模轉(zhuǎn)換器 (DAC) 在速度、噪聲、功率、精度或價格方面提升了最先進的技術(shù)水平,制造商將很樂意應(yīng)用它現(xiàn)有的問題,然后要求更多的改進。然而,為了為您的應(yīng)用程序?qū)崿F(xiàn)最佳采集系統(tǒng),了解組件的限制并相應(yīng)地選擇它們是至關(guān)重要的。
通用混合模式信號鏈
圖 1 顯示了精密儀器應(yīng)用的典型通用信號鏈,具有物理輸入和數(shù)字輸出。有許多關(guān)于 ADC 的背景參考資料,4并且大多數(shù)讀者會感覺到 ADC 在某個時間點對輸入信號進行采樣(或測量某個觀察時間內(nèi)信號的平均值)并生成該信號的數(shù)字表示— 通常是一個二進制數(shù),其值介于 0 和 2 (N – 1)之間,其中 N 是輸出字中的位數(shù)。
圖 1. 在混合模式信號鏈中,溫度、光強度、pH、力或扭矩等一些物理現(xiàn)象被轉(zhuǎn)換為電氣參數(shù)(電阻、電流或直接轉(zhuǎn)換為電壓)。然后,該信號被放大、低通濾波,并由 ADC 數(shù)字化,其中可能包括內(nèi)部數(shù)字濾波。
ADC 噪聲源
雖然圖 1 中有幾個噪聲源,但經(jīng)常被忽略或過分強調(diào)的一個是 ADC 數(shù)字輸出中的位數(shù)。從歷史上看,ADC 的位數(shù)被認(rèn)為是最終的品質(zhì)因數(shù),其中假設(shè) 16 位轉(zhuǎn)換器比 14 位轉(zhuǎn)換器好 4 倍。5但在現(xiàn)代高分辨率轉(zhuǎn)換器的情況下,可以放心地忽略位數(shù)。注意信號鏈設(shè)計的一般原則:
“一級的輸入噪聲應(yīng)該比前一級的輸出噪聲低一些。”
與任何信號鏈一樣,ADC 中的一個噪聲源通常占主導(dǎo)地位。因此,如果將無噪聲信號應(yīng)用于 N 位 ADC:
- 導(dǎo)致單個輸出代碼或兩個相鄰輸出代碼,然后量化噪聲占主導(dǎo)地位。信噪比 (SNR) 可以不大于 (6.02 N + 1.76) dB。6
- 導(dǎo)致許多輸出代碼的高斯分布,然后熱噪聲源占主導(dǎo)地位。SNR 不大于:
在哪里:
V IN (pp) 是滿量程輸入信號。
σ 是以電壓為單位的輸出代碼的標(biāo)準(zhǔn)偏差。
非常高分辨率的轉(zhuǎn)換器,例如AD7124-8,稍后將用作示例,很少受到量化噪聲的限制;熱噪聲在所有增益/帶寬設(shè)置中占主導(dǎo)地位,短路輸入總是會產(chǎn)生相當(dāng)高斯分布的輸出代碼。圖 2 顯示了 AD7124-8 的接地輸入直方圖,24 位 Σ-Δ ADC,內(nèi)部可編程增益放大器 (PGA) 分別設(shè)置為 1 和 128。
圖 2. 在 PGA 增益為 1(左)時,AD7124 輸出噪聲中有 13 個代碼,標(biāo)準(zhǔn)偏差約為 2.5 個代碼。雖然量化是可見的,但熱噪聲更為顯著。在 PGA 增益為 128(右)時,表示了 187 個代碼,量化噪聲微不足道。截斷一個或兩個最低有效位(雙倍或四倍量化噪聲)不會導(dǎo)致信息丟失。
ADC 噪聲建模和測量
對熱噪聲受限 ADC 的噪聲進行建模非常簡單。如果噪聲“表現(xiàn)良好”(高斯,如圖 2 所示)并且在 ADC 的輸入范圍內(nèi)保持恒定,則可以使用 NumPy 的7隨機正態(tài)函數(shù)對 ADC 的時域噪聲進行建模,然后通過取標(biāo)準(zhǔn)偏差進行驗證,如圖 3 所示。
圖 3. 使用 NumPy 對高斯噪聲建模。
圖 4. ADALM2000 是一款多功能 USB 測試儀器,具有兩個通用模擬輸入和兩個輸出,采樣率分別為 100 MSPS 和 150 MSPS。它可以用作測量ADC噪聲帶寬和濾波器響應(yīng)的簡單信號源。運行支持 AD7124 設(shè)備驅(qū)動程序的內(nèi)核的 Raspberry Pi 4 充當(dāng) AD7124 和主機之間的簡單橋梁。
AD7124 設(shè)備驅(qū)動程序?qū)儆谛袠I(yè)標(biāo)準(zhǔn) IIO 框架,該框架具有完善的軟件 API(包括 Python 綁定)。應(yīng)用程序代碼可以在本地(在 Raspberry Pi 上)或通過網(wǎng)絡(luò)、串行或 USB 連接在遠(yuǎn)程機器上運行。此外,pyadi-iio 8抽象層負(fù)責(zé)與 IIO 設(shè)備接口所需的大部分樣板設(shè)置,大大簡化了軟件接口。圖 5 說明了如何打開與 AD7124-8 的連接、對其進行配置、捕獲數(shù)據(jù)塊,然后關(guān)閉連接。
圖 5. AD7124-8 基本數(shù)據(jù)采集。
與 AD7124-8 建立通信后,可以執(zhí)行極其簡單但非常有用的測試:直接測量輸入噪聲。簡單地將 ADC 的輸入短路并查看 ADC 代碼的最終分布是表征信號鏈設(shè)計的重要步驟。AD7124輸入模式設(shè)置為單極性,所以只有正值有效;圖 6 所示的測試電路確保輸入始終為正。
圖 6. 電阻分壓器用于在 AD7124-8 的輸入端產(chǎn)生 1.25 mV 偏置,克服 15 μV 的最大失調(diào)電壓并確保 ADC 讀數(shù)始終為正。
圖 7 顯示了兩個 1024 點測量。下面的(藍(lán)色)跡線是在最初通電后立即拍攝的。
圖 7. 兩個 AD7124-8 數(shù)據(jù)采集是在施加 1.25 mV 偏壓的情況下進行的。下面的跡線顯示了上電后電路升溫時的初始漂移。上部曲線顯示半小時預(yù)熱時間后讀數(shù)穩(wěn)定。
“漂移”可能是由于多種因素造成的——內(nèi)部參考升溫、外部電阻升溫(并因此漂移)或寄生熱電偶,其中稍微不同的金屬會在存在熱梯度的情況下產(chǎn)生電壓。預(yù)熱后測得的噪聲約為 565 nV rms——與數(shù)據(jù)表噪聲規(guī)范相當(dāng)。
將 ADC 噪聲表示為密度
如果所有元素都包括噪聲密度規(guī)格,模擬信號鏈設(shè)計的一般原則(一個階段的輸入噪聲應(yīng)該略低于前一級的輸出噪聲)是一個簡單的計算 - 就像大多數(shù)指定良好的傳感器和幾乎所有放大器做。
與放大器和傳感器不同,ADC 數(shù)據(jù)表通常不包括噪聲密度規(guī)范。將 ADC 的噪聲表示為密度,可以直接將其與模擬信號鏈中最后一個元件(可能是 ADC 驅(qū)動器級、增益級或傳感器本身)輸出端的噪聲進行比較。
ADC 的內(nèi)部噪聲必然會出現(xiàn)在 DC 和采樣率的一半之間。理想情況下,這種噪聲是平坦的,或者至少是可預(yù)測的形狀。事實上,由于 ADC 的總噪聲分布在已知帶寬上,因此可以將其轉(zhuǎn)換為可以直接與信號鏈中的其他元素進行比較的噪聲密度。精密轉(zhuǎn)換器通常具有直接給出的總噪聲,以伏特 rms 為單位:
其中 e RMS是總 rms 噪聲,根據(jù)接地輸入直方圖的標(biāo)準(zhǔn)偏差計算得出。
使用正弦信號測試和表征的高速轉(zhuǎn)換器通常具有 SNR 規(guī)范。如果提供,總 rms 噪聲可以計算為:
其中 ADCp-p 是 ADC 的峰峰值輸入范圍。
然后可以計算等效噪聲密度:
其中 f S是以樣本/秒為單位的 ADC 采樣率。
圖 7 中的總噪聲在預(yù)熱后為 565 nV,數(shù)據(jù)速率為 128 SPS。噪聲密度約為:
現(xiàn)在可以將 ADC 直接包含在信號鏈噪聲分析中,從而為優(yōu)化信號鏈增益提供指導(dǎo):
- 將增益增加到 ADC 前最后一級的噪聲密度略高于 ADC 的點,然后停止。無需再費心增加信號鏈增益——您只是放大了噪聲并減小了允許的輸入范圍。
這與“填充”ADC 輸入范圍的傳統(tǒng)觀念背道而馳。如果 ADC 的傳遞函數(shù)存在階躍或不連續(xù)性,則使用更多 ADC 的輸入范圍可能會有好處,但對于“表現(xiàn)良好”的 ADC(大多數(shù) sigma-delta ADC 和現(xiàn)代高分辨率逐次逼近寄存器 (SAR) ADC),通過噪聲進行優(yōu)化是首選方法。
測量 ADC 濾波器響應(yīng)
AD7124-8 是一款 sigma-delta ADC,其中調(diào)制器產(chǎn)生高采樣率但噪聲(低分辨率)的模擬輸入表示。然后,這些噪聲數(shù)據(jù)由內(nèi)部數(shù)字濾波器過濾,產(chǎn)生較低速率、較低噪聲的輸出。濾波器的類型因 ADC 而異,具體取決于預(yù)期的最終應(yīng)用。AD7124-8 是通用型的,面向精密應(yīng)用。因此,數(shù)字濾波器響應(yīng)和輸出數(shù)據(jù)速率是高度可配置的。雖然數(shù)據(jù)表中明確定義了濾波器響應(yīng),但有時可能需要測量濾波器對給定信號的影響。AD7124-8 濾波器響應(yīng)代碼塊(參見圖 9)通過將正弦波應(yīng)用于 ADC 輸入并分析輸出來測量濾波器響應(yīng)。這種方法可以很容易地適用于測量其他波形——小波和模擬的物理事件。ADALM2000 連接到 AD7124-8 電路,如圖 8 所示。
圖 8. ADALM2000 波形發(fā)生器用于生成一系列正弦波頻率,從而可以直接測量 AD7124-8 的濾波器響應(yīng)。雖然腳本將正弦波幅度和偏移設(shè)置為安全水平,但 1 kΩ 電阻器可在發(fā)生故障時保護 AD7124-8。(ADALM2000 輸出電壓范圍為 –5 V 至 +5 V,而 AD7124-8 的絕對最大限值為 –0.3 V 和 +3.6 V。)
AD7124-8 濾波器響應(yīng)代碼塊(參見圖 9)將設(shè)置 ADALM2000 的波形發(fā)生器以生成 10 Hz 的正弦波,捕獲 1024 個數(shù)據(jù)點,計算 rms 值,然后將結(jié)果附加到列表中。send_sinewave 和 capture_data 是實用函數(shù),它們分別向 ADALM2000 發(fā)送正弦波并從 AD7124 接收數(shù)據(jù)塊。2然后,它將逐步檢查高達(dá) 120 Hz 的頻率,然后繪制結(jié)果,如圖 10 所示。
圖 9. ADALM2000 的濾波器響應(yīng)塊程序。
圖 10. AD7124 濾波器在 64 SPS、sinc4 模式下的響應(yīng)測量顯示了濾波器的通帶、第一瓣和前兩個零點。
雖然測量高衰減值需要更安靜且失真更低的信號發(fā)生器,但在此設(shè)置中前幾個主要波瓣的響應(yīng)很明顯。
ADC 濾波器建模
測量 ADC 的濾波器響應(yīng)的能力是用于臺架驗證的實用工具。但是,為了完全模擬信號鏈,需要濾波器模型。許多轉(zhuǎn)換器(包括 AD7124-8)并未明確提供這一點,但可以根據(jù)數(shù)據(jù)表中提供的信息逆向設(shè)計一個可行的模型。
請注意,以下僅為 AD7124-8 濾波器的模型;它不是位精確的表示。有關(guān)所有保證參數(shù),請參閱AD7124-8 數(shù)據(jù)手冊。
AD7124 的濾波器都具有由各種 sinc 函數(shù)組合而成的頻率響應(yīng)(頻率響應(yīng)與 (sin{f}/f) N成正比)。這些過濾器相當(dāng)容易構(gòu)建,并且在已知空值時進行逆向工程。
圖 11 顯示了 AD7124-8 的 10 Hz 陷波濾波器。高階 sinc3 和 sinc4 濾波器的各種組合也可用。
圖 11. AD7124-8 10 Hz 陷波濾波器具有 sinc1 幅度響應(yīng);濾波器的脈沖響應(yīng)只是 100 ms 時間間隔內(nèi)樣本的未加權(quán)(矩形)平均值。
圖 12 所示的同時 50 Hz/60 Hz 抑制濾波器是一個重要的例子。該濾波器旨在強烈抑制來自交流電源線的噪聲,即 50 Hz(如歐洲)或 60 Hz(如美國)。
圖 12. AD7124-8 50 Hz/60 Hz 抑制濾波器響應(yīng)是 50 Hz sinc3 濾波器和 60 Hz sinc1 濾波器的組合。
高階 sinc 濾波器可以通過卷積 sinc1 濾波器生成。例如,卷積兩個 sinc1 濾波器(在時間上具有矩形脈沖響應(yīng))將產(chǎn)生三角形脈沖響應(yīng)和相應(yīng)的 sinc2 頻率響應(yīng)。AD7124 濾波器代碼塊(參見圖 13)生成一個在 50 Hz 處具有零點的 sinc3 濾波器,然后添加一個在 60 Hz 處具有零點的第四個濾波器。
圖 13. 50 Hz/60 Hz sinc 濾波器的 AD7124-8 代碼示例。
濾波器的最終脈沖(時域)形狀如圖 14 所示。濾波器系數(shù)(抽頭)值針對零頻率下的單位 (0 dB) 增益進行歸一化。
圖 14. 反復(fù)卷積矩形脈沖響應(yīng)產(chǎn)生三角形,然后是高斯式脈沖響應(yīng)。
最后,可以使用 NumPy 的 freqz 函數(shù)計算頻率響應(yīng),如圖 16 所示。響應(yīng)如圖 15 所示。
圖 15. 將 sinc3、50 Hz 陷波濾波器與 sinc1、60 Hz 濾波器進行卷積會產(chǎn)生一個復(fù)合響應(yīng),該響應(yīng)強烈抑制 50 Hz 和 60 Hz。
圖 16. 帶有 sinc 60 Hz 濾波器的 sinc3 50 Hz 陷波濾波器的 AD7124-8 代碼示例。
電阻是徒勞的:一個基本的傳感器限制
所有傳感器,無論多么完美,都有一些最大輸入值(以及相應(yīng)的最大輸出,可能是電壓、電流、電阻,甚至是刻度盤的位置)和有限的本底噪聲——輸出端“擺動”甚至存在如果輸入完全靜止。在某些時候,具有電輸出的傳感器將包括一個具有有限電阻(或更一般地,阻抗)的元件,由圖 17 中的 R SENSOR表示。這代表了一個無法改進的基本噪聲限制——該電阻將產(chǎn)生en(RMS) 伏噪聲,至少:
在哪里:
e N (RMS) 是總噪聲。
K 是玻爾茲曼常數(shù) (1.38 e-23 J/K)。
T 是電阻器的絕對溫度 (Kelvin)。
F2 和 F1 是感興趣頻帶的上限和下限。
將帶寬歸一化為 1 Hz 表示噪聲密度,以 V/√ Hz為單位。
圖 17. 傳感器通常包含一個內(nèi)部緩沖器,以簡化與下游電路的連接。雖然輸出阻抗較低(通常接近 0 Ω),但來自高阻抗傳感元件的噪聲與信號一起被緩沖。
將帶寬歸一化為 1 Hz 表示噪聲密度,以 V/√ Hz為單位。
傳感器的數(shù)據(jù)表可能會指定低輸出阻抗(通常接近 0 Ω),但這很可能是一個緩沖級——它可以簡化與下游電路的接口,但不能消除信號鏈早期阻抗引起的噪聲。
還有許多其他傳感器限制——機械的、化學(xué)的、光學(xué)的——每一個都有自己的理論限制,其影響可以在以后建模和補償。但噪音是一種無法做到的缺陷
實驗室噪聲源
經(jīng)過校準(zhǔn)的噪聲發(fā)生器充當(dāng)“世界上最差的傳感器”,它可以模擬傳感器的噪聲,而無需實際感測任何東西。這種發(fā)生器允許直接測量信號鏈對噪聲的響應(yīng)。圖 18 所示電路使用 1 MΩ 電阻器作為 127 nV/√ Hz(室溫下)噪聲源,具有“還可以”的精度和帶寬。雖然準(zhǔn)確度還可以,但這種方法具有以下優(yōu)點:
- 它基于第一原理,因此在某種意義上可以充當(dāng)未經(jīng)校準(zhǔn)的標(biāo)準(zhǔn)。
- 它是真正隨機的,沒有重復(fù)的模式。
OP482是一款?超低偏置電流放大器,具有相應(yīng)的低電流噪聲和足夠低的電壓噪聲,1 MΩ 輸入阻抗引起的噪聲占主導(dǎo)地位。配置增益為 2121,輸出噪聲為 269 μV/√ Hz。
圖 18. 1 MΩ 電阻器用作可預(yù)測的噪聲源,然后由低噪聲運算放大器放大到可用水平。
使用 Scopy GUI 的頻譜分析儀,使用 ADALM2000 USB 儀器驗證噪聲源,如圖 19 所示。9
圖 19. 基于電阻的實驗室噪聲發(fā)生器的輸出具有大約 10 kHz 的可用帶寬。
在所示的分析儀設(shè)置下,ADALM2000 本底噪聲為 40 μV/√ Hz,遠(yuǎn)低于噪聲源的 269 μV/√ Hz。
雖然 Scopy 對于單一的視覺測量很有用,但可以使用 SciPy 周期圖功能輕松復(fù)制該功能。原始數(shù)據(jù)是使用 libm2k 10和 Python 綁定從 ADALM2000 收集的,經(jīng)過最低限度的處理以去除 DC 內(nèi)容(否則會泄漏到低頻箱中)并縮放到 nV/ √Hz。這種方法如圖 20 所示,可以應(yīng)用于任何數(shù)據(jù)采集模塊,只要采樣率是固定的且已知的,并且數(shù)據(jù)可以格式化為電壓矢量。
圖 20. ADALM2000 的 Python 噪聲源測量代碼。
我們現(xiàn)在擁有一個已知的噪聲源和一種測量該源的方法,這兩者都可以用來驗證信號鏈。
在 LTspice 中對信號鏈進行建模
LTspice ??? 是一款免費提供的通用模擬電路仿真器,可應(yīng)用于信號鏈設(shè)計。它可以執(zhí)行瞬態(tài)分析、頻域分析(AC 掃描)和噪聲分析,其結(jié)果可以使用 Python 導(dǎo)出并合并到混合信號模型中。
圖 21 顯示了模擬噪聲發(fā)生器的噪聲仿真,與實驗結(jié)果非常吻合。使用與 OP482 具有相似特性的運算放大器進行仿真。?
圖 21. 實驗室噪聲源的 LTspice 仿真顯示與測量電路大致相同的可用帶寬。
圖 22 的電路噪聲對建模來說相當(dāng)簡單,因為它在某些帶寬(感興趣的信號所在的位置)內(nèi)是恒定的,在該帶寬之上它會以大約一階低通響應(yīng)滾降。這種技術(shù)派上用場的地方是對非平坦本底噪聲進行建模,這可能是由于高階模擬濾波,也可能是有源元件本身。典型的例子是 LTC2057 等自動調(diào)零放大器中經(jīng)常存在的噪聲山峰,如圖 23 所示。
圖 22. LTC2057 噪聲密度在低頻時是平坦的,峰值在 50 kHz(內(nèi)部振蕩器 100 kHz 頻率的一半)。
圖 23. LTspice 用于在 +10 的同相增益配置中模擬 LTC2057 的輸出噪聲。LTspice 提供了用于集成噪聲的簡單工具,但任何模擬結(jié)果都可以導(dǎo)出并導(dǎo)入 Python 以進行進一步分析。
在 Python 中導(dǎo)入 LTspice 噪聲數(shù)據(jù)以進行頻域分析是一個設(shè)置仿真命令的問題,以便仿真分析向量中的精確頻率。在這種情況下,噪聲仿真設(shè)置為最大頻率為 2.048 MHz,分辨率為 62.5 Hz,對應(yīng)于采樣率為 4.096 MSPS 的第一奈奎斯特區(qū)。圖 23 顯示了 LTC2057 在 10 的同相增益、仿真輸出和導(dǎo)出數(shù)據(jù)格式下的仿真。
為了確定給定噪聲頻帶對信號的影響(信噪比),噪聲在感興趣的帶寬上進行了平方根積分。在 LTspice 中,可以通過設(shè)置繪圖限制來集成繪圖參數(shù),然后控制單擊參數(shù)標(biāo)簽。整個 2.048 MHz 仿真的總噪聲為 32 μV rms。在 Python 中實現(xiàn)此操作的函數(shù)如圖 24 所示。
圖 24. 平方根實現(xiàn)的 Python 代碼。
讀入導(dǎo)出的噪聲數(shù)據(jù)并傳遞給integrate_psd 函數(shù),總噪聲為3.21951e-05,非常接近LTspice 的計算。
產(chǎn)生測試噪音
擴展純模擬噪聲發(fā)生器的功能,不僅能夠產(chǎn)生平坦而且任意的噪聲曲線非常有用——平坦的噪聲帶、粉紅噪聲或模擬某些放大器中的峰值的噪聲山峰。從圖 25 中的半頻譜代碼塊生成的時間序列以所需的噪聲頻譜密度(可以手動生成,或從 LTspice 仿真中獲取)和時間序列的采樣率開始,然后生成一個時間序列可以發(fā)送到 DAC 的電壓值。
圖 25. 生成任意噪聲曲線的 Python 代碼。
可以通過 libm2k 腳本控制一個 ADALM2000,然后使用第二個 ADALM2000 和 Scopy GUI 中的頻譜分析儀驗證噪聲分布來驗證此功能。ADALM2000 代碼片段的推送噪聲時間序列(參見圖 26)在 ADALM2000 W2 輸出上生成四個 1 mV/√ Hz噪聲頻段(在 W1 上帶有一個正弦波,用于雙重檢查功能)。
圖 26. 使用 ADALM2000 驗證任意噪聲。
圖 27 顯示了由一個 ADALM2000 產(chǎn)生的四個 1 mV/√ Hz噪聲頻段。輸入向量長 8192 個點,采樣率為 75 kSPS,帶寬為每點 9.1 Hz。每個頻段為 512 點,或 4687 Hz 寬。~20 kHz 以上的滾降是 DAC 的 sinc 滾降。如果 DAC 能夠提供更高的采樣率,則可以通過插值濾波器對時間序列數(shù)據(jù)進行上采樣和濾波。11
圖 27. Scopy 頻譜分析儀用于驗證任意噪聲發(fā)生器。噪聲帶之間的深陷波暴露了分析儀的本底噪聲,表明可以準(zhǔn)確地生成任意噪聲曲線。
該噪聲發(fā)生器可與純模擬發(fā)生器結(jié)合使用,以驗證信號鏈的抑制特性。
建模和驗證 ADC 噪聲帶寬
高于 f S /2 的外部噪聲源和雜散音將折回(混疊)到 DC 至 f S /2 區(qū)域,并且轉(zhuǎn)換器可能對遠(yuǎn)遠(yuǎn)超過 f S /2 的噪聲敏感。以LTC2378-20 為例,它具有 1 MSPS 的采樣率和 34 MHz 的 –3 dB 輸入帶寬。雖然在如此高的頻率下性能可能不是最好的,但該轉(zhuǎn)換器將數(shù)字化超過 68 個奈奎斯特噪聲區(qū)域并將它們折疊回您的信號之上。這說明了抗混疊濾波器對于寬帶 ADC 的重要性。用于精密應(yīng)用的轉(zhuǎn)換器通常是 sigma-delta(如 AD7124-8)或過采樣 SAR 架構(gòu),其中輸入帶寬受設(shè)計限制
考慮濾波器的等效噪聲帶寬 (ENBW) 通常很有用,包括 ADC 的內(nèi)置濾波器。ENBW 是平坦通帶“磚墻”濾波器的帶寬,它允許通過與非平坦濾波器相同數(shù)量的噪聲。一個常見的例子是一階 RC 濾波器的 ENBW,即:
其中 f C是濾波器的截止頻率。如果從“直流到日光”的寬帶噪聲同時應(yīng)用于 1 kHz 一階低通濾波器和 1.57 kHz 磚墻低通濾波器的輸入,則輸出端的總噪聲功率將為相同的。
圖 28 中的 ENBW 示例代碼塊接受濾波器幅度響應(yīng)并返回有效噪聲帶寬。計算單極點濾波器的幅度響應(yīng)并用于驗證 ENBW = f C × π/2 關(guān)系。
圖 28. 計算有效噪聲帶寬的 Python 代碼示例。
該函數(shù)可用于計算任意濾波器響應(yīng)的 ENBW,包括 AD7124 的內(nèi)部濾波器。AD7124 sinc4 濾波器的頻率響應(yīng),128 SPS 采樣率可以通過類似于前面 50 Hz/60 Hz 抑制濾波器示例的方法計算。arb_anbw 函數(shù)返回大約 31 Hz 的 ENBW。
ADALM2000 噪聲發(fā)生器可用于驗證該結(jié)果。將測試噪聲發(fā)生器設(shè)置為生成 1000 μV/ √Hz的頻帶應(yīng)導(dǎo)致總噪聲約為 5.69 mV rms,測量結(jié)果約為 5.1 mV rms 總噪聲。ADC 輸入信號的示波器捕獲繪制在 ADC 輸出數(shù)據(jù)旁邊,如圖 29 所示。注意測得的峰峰值噪聲為 426 mV,而 ADC 峰峰值噪聲約為 26 mV。雖然如此高的 10 使用 Python 分析混合模式信號鏈中的噪聲的簡單方法(希望)在實際的精密信號鏈中是不現(xiàn)實的,但本練習(xí)表明,可以依靠 ADC 的內(nèi)部濾波器充當(dāng)信號鏈中的主要帶寬限制和降噪元件。
圖 29. 1 mV/√ Hz噪聲帶被驅(qū)動到?? AD7124-8 輸入。噪音的質(zhì)量降低是顯而易見的;ADC 輸入處的 426 mV 峰間噪聲導(dǎo)致 ADC 輸出處的大約 25 mV 峰間噪聲。考慮到 ADC 濾波器的 1 mV/√ Hz噪聲密度和 31 Hz ENBW,5.1 mV rms 總輸出噪聲接近預(yù)測的 5.69 mV rms 。
結(jié)論
噪聲是任何信號鏈中的限制因素;一旦噪聲污染了信號,信息就會丟失。在構(gòu)建信號采集系統(tǒng)之前,必須了解應(yīng)用需求,相應(yīng)地選擇組件,并測試原型電路。本教程提供了一系列可在設(shè)計和測試過程中使用的精確建模和測量傳感器和信號鏈噪聲的方法。
本教程中詳細(xì)介紹的技術(shù)單獨來說并不是什么新鮮事。然而,為了實現(xiàn)一個合適的系統(tǒng),擁有一組基本的、易于實現(xiàn)的和低成本的技術(shù)來實現(xiàn)信號鏈建模和驗證是很有價值的。盡管制造商繼續(xù)提供性能更高的零件,但始終存在一定的限制,人們必須注意這一點。這些技術(shù)不僅可用于在構(gòu)建混合模式信號鏈之前驗證部件,還可用于識別現(xiàn)有信號鏈中的設(shè)計缺陷。
參考
1 ?“轉(zhuǎn)換器連接教程。” Analog Devices Wiki,2021 年 1 月。
2? ADI 教育工具庫。澤諾多,2021 年 7 月。
3? Pauli Virtanen、Ralf Gommers 等人。“SciPy 1.0:Python 中科學(xué)計算的基本算法。”《自然方法》,17(3),2020 年 2 月。
4?史蒂文·W·史密斯。科學(xué)家和工程師數(shù)字信號處理指南。加利福尼亞技術(shù)出版社,1999 年。
5?清滿。“ MT-229:量化噪聲:方程的擴展推導(dǎo),SNR = 6.02 N + 1.76。” ADI 公司,2012 年 8 月。
6?沃爾特·凱斯特。“ MT-001:從臭名昭著的公式中解開謎團,'SNR = 6.02N + 1.76dB',以及為什么你應(yīng)該關(guān)心。” 模擬設(shè)備公司,2009 年。
7 ?Charles R. Harris、K. Jarrod Millman 等人。“使用 NumPy 進行數(shù)組編程。” 自然,585,2020 年 9 月。
8 ?“ pyadi-iio:IIO 驅(qū)動程序的設(shè)備特定 Python 接口。” Analog Devices Wiki,2021 年 5 月。
9 ?“窺視。” Analog Devices Wiki,2021 年 2 月。
10 ?“什么是Libm2k?” Analog Devices Wiki,2021 年 10 月。
11?沃爾特·凱斯特。“ MT-017:過采樣插值 DAC。” 模擬設(shè)備公司,2009 年。
致謝
- Jesper Steensgaard,他從 LTC2378-20 開始啟用/推動了對信號鏈設(shè)計的思考范式轉(zhuǎn)變。
- Travis Collins,Pyadi-iio 的建筑師(在許多其他方面)。
- Adrian Suciu,軟件團隊經(jīng)理和 libm2k 貢獻者。
歸因
本文首次出現(xiàn)在 2021 年科學(xué)計算與 Python 會議的論文集中,標(biāo)題為“使用 Python 進行混合模式信號鏈的分析和驗證”。DOI:10.25080/majora-1b6fd038-001。
作者
馬克·托倫
Mark Thoren 是 ADI 公司的系統(tǒng)設(shè)計/架構(gòu)工程師。他擁有緬因大學(xué)的農(nóng)業(yè)/機械工程學(xué)士學(xué)位和電氣工程碩士學(xué)位。馬克試圖讓實驗室的工作臺儲備充足的設(shè)備,這些設(shè)備是在破碎狀態(tài)下獲得并恢復(fù)生機的。
克里斯蒂娜·奧圖
Cristina ?uteu 于 2019 年加入 ADI 公司的系統(tǒng)開發(fā)部門,擔(dān)任系統(tǒng)應(yīng)用工程師。在 ADI 工作期間,她為軟件改進做出了貢獻,在技術(shù)出版物和培訓(xùn)中擔(dān)任過不同的角色,并為 ADI 大學(xué)計劃提供教育材料,包括 ADALM2000 的視頻系列。Cristina 擁有羅馬尼亞克盧日-納波卡技術(shù)大學(xué)的電氣工程學(xué)士學(xué)位,以及與法國波爾多大學(xué)合作的克盧日-納波卡技術(shù)大學(xué)的信號和圖像處理碩士學(xué)位。
審核編輯:符乾江
評論
查看更多