【導(dǎo)讀】繼續(xù)我們在LTspice中使用FIR濾波器模型的旅程,本篇博客將深入探討.AC和.NOISE測量,并使用另一種FIR模型來演示相關(guān)測量方法,以驗證兩種不同的建模技術(shù)是否等效。在之前的博客文章中,我介紹了幾個可在LTspice中對簡單FIR濾波器進行建模的模塊。4月份的文章則探討了將數(shù)字濾波器模型與模擬電路元件相結(jié)合的方法,并演示了如何通過.AC和.NOISE分析進行初步觀察。
LTspice中更靈活的FIR實現(xiàn)方案
回顧一下,最初的FIR實現(xiàn)方案是對連續(xù)采樣點的平均計算:

其中M為樣本數(shù)。若展開三個樣本的平均求和公式,可得:

《面向科學(xué)家和工程師的數(shù)字信號處理指南》第15章(第283頁)展示了另一種使用遞歸的數(shù)學(xué)實現(xiàn)方法。對該公式進行轉(zhuǎn)化,可得出以下表達(dá)式:

其中,M仍代表參與平均的樣本數(shù)。當(dāng)前輸出樣本(y[n])等于前一個輸出樣本(y[n-1])加上當(dāng)前輸入樣本(x[n]),再減去上一個被移出隊列的輸入樣本(x[n-M])。
要實現(xiàn)遞歸型FIR濾波器,需要兩個新的模型模塊:一個延遲N個周期的模塊和一個三輸入加法器模塊。這兩個模塊是對2月份博客中所介紹模塊的輕微變體,能夠幫助我們在簡潔的原理圖中構(gòu)建所需功能。

圖1:LTspice中FIR濾波器模型的兩種實現(xiàn)方案
在探討遞歸實現(xiàn)方案的優(yōu)勢之前,首先需要證明該實現(xiàn)方案與第一種方案具有等效性。
比較各濾波器的交流響應(yīng)
如需探索此示例,請打開附件.zip壓縮包中的FIR Filter Implementations.asc文件。為確保LTspice能夠找到所有必需的文件,請在打開原理圖前先解壓該.zip文件。
FIR-Filters-Part-3.zip
從菜單欄選擇“Simulate -> Run/Pause”(仿真 -> 運行/暫停),以執(zhí)行原理圖中由.AC指令指定的交流仿真。圖2展示了兩個濾波器的輸入波形(上方繪圖面板)和輸出波形(下方繪圖面板)的重疊對比。

圖2:各FIR濾波器模型輸入端與輸出端的頻率響應(yīng)
通過該圖可以快速觀察到,這兩種濾波器的交流響應(yīng)完全一致。然而,疊加顯示.NOISE仿真結(jié)果的操作并不那么直觀;這里有一個實用技巧。
使用.STEP指令在多個節(jié)點觀察噪聲結(jié)果
按住Shift鍵并點擊處于激活狀態(tài)的.AC指令,將其注釋掉。隨后右鍵單擊.STEP指令以打開文本編輯器(圖3)。

圖3:包含多條指令的文本塊:從注釋轉(zhuǎn)換為活動指令
此文本塊包含多條指令,可作為一組統(tǒng)一進行注釋或取消注釋操作。點擊“SPICE Directive”(SPICE指令)單選按鈕,將此文本從注釋轉(zhuǎn)換為一組活動的指令,然后點擊“OK”。接著運行仿真。
現(xiàn)在需要采用一些巧妙的設(shè)置來查看結(jié)果。按下“A”鍵添加曲線軌跡,并選擇v(onoise)。波形繪制完成后,右鍵單擊波形窗口,依次選擇“Notes & Annotations -> Annotate Steps”(筆記與注釋 -> 標(biāo)注步進),并將步進圖例放置在波形窗口中(圖4)。有關(guān)使用.STEP指令的基礎(chǔ)概念,請參閱關(guān)于在.NOISE仿真中使用.STEP和.MEAS指令的相關(guān)博客文章。

圖4:在.NOISE仿真中逐步遍歷多個輸出節(jié)點
再次右鍵單擊圖形,選擇“View -> Select Steps”(視圖 -> 選擇步進)。利用彈出的對話框來控制需要繪制的噪聲結(jié)果。

圖5:選擇需要繪制的.STEP結(jié)果
在本例中,使用.STEP指令在噪聲仿真中依次遍歷各個輸出節(jié)點:
.step param n list 0 1 2 3
.param noise_outnode=select(n, 'INA', 'OUTA', 'INB', 'OUTB')
在第一步(n=0)中,檢查的是INA節(jié)點的噪聲:即由R1產(chǎn)生,并經(jīng)R1和C1組成的濾波器整形后的噪聲。在第二步(n=1)中,檢查的是OUTA節(jié)點的噪聲;此時噪聲進一步受到了數(shù)字濾波器的整形處理。
使用.MEAS指令實現(xiàn)自動化測量
右鍵單擊.MEAS指令以打開文本編輯器(圖6)。點擊“SPICE Directive”(SPICE指令)單選按鈕,將此文本從注釋轉(zhuǎn)換為一組活動的指令,然后點擊“OK”。接著運行仿真。

圖6:.MEAS指令用于測量每次.STEP仿真的積分噪聲
點擊原理圖以確保其為當(dāng)前活動窗口,然后依次選擇“View -> SPICE Output Log”(視圖 -> SPICE輸出日志)(圖7)。在此處可以看到INA(n=0)、OUTA(n=1)、INB(n=2)和OUTB(n=3)各節(jié)點的積分噪聲數(shù)值。

圖7:包含積分噪聲測量結(jié)果的SPICE輸出日志
我使用了三種方法來驗證這兩種濾波器的行為是否完全一致:1) 檢查.AC波形,2) 檢查.NOISE波形,3) 對.NOISE仿真結(jié)果進行自動化的.MEAS測量。
使用遞歸實現(xiàn)方案有什么優(yōu)勢?只需修改少量參數(shù),即可輕松將平均樣本數(shù)從3更改為50:

圖8:對50個樣本進行平均處理的遞歸FIR濾波器
結(jié)論
這些模型模塊顯然無法涵蓋數(shù)字濾波器的所有細(xì)節(jié)特征。但它們勝在簡單高效,可用于理解組合模擬電路與數(shù)字后處理環(huán)節(jié)的整體信號及噪聲響應(yīng)。
在這個由三部分組成的系列文章中,我們從基礎(chǔ)的FIR構(gòu)建模塊出發(fā),一路探索了巧妙的LTspice測量技術(shù),幫助您自信地驗證混合信號設(shè)計。至此,您已掌握了在LTspice中對數(shù)字信號處理進行建模的工具,能夠?qū)⑵渑c模擬電路無縫集成,并通過交流分析、噪聲仿真和自動化測量嚴(yán)格驗證您的實現(xiàn)方案。



