【導(dǎo)讀】在LTspice中進(jìn)行電路仿真時(shí),目標(biāo)通常是深入了解電路的模擬行為并做出設(shè)計(jì)權(quán)衡。同時(shí),電路的輸出很可能會(huì)被數(shù)字化并進(jìn)行后處理,因此將生成的數(shù)字元件納入LTspice仿真往往更具挑戰(zhàn)性。
在這篇博客文章中,我將介紹一些電路元件,以幫助您在LTspice中對(duì)數(shù)字濾波器進(jìn)行建模。這樣,您就可以探索對(duì)數(shù)字化信號(hào)施加濾波后的模擬電路的行為與性能。
介紹一種簡(jiǎn)單的數(shù)字濾波器:移動(dòng)平均FIR濾波器
我們從最簡(jiǎn)單的低通濾波器示例,即移動(dòng)平均濾波器開始講起。維基百科關(guān)于FIR濾波器的文章展示了一個(gè)非常簡(jiǎn)單的使用三個(gè)抽頭的移動(dòng)平均示例。

圖1:移動(dòng)平均FIR濾波器的框圖
《面向科學(xué)家和工程師的數(shù)字信號(hào)處理指南》第15章也是理解移動(dòng)平均濾波器的有用參考資料。
在上述三抽頭示例中,輸出為輸入信號(hào)連續(xù)三個(gè)采樣點(diǎn)的平均值:

此算法還可進(jìn)一步簡(jiǎn)化,以減少所需的乘法模塊數(shù)量:

實(shí)現(xiàn)起來十分簡(jiǎn)單。那么如何在LTspice中實(shí)現(xiàn)這一功能呢?
在LTspice中引入濾波器模塊
要在LTspice中實(shí)現(xiàn)此濾波器,需要三種函數(shù):?jiǎn)挝谎舆t、加法和乘法。
單位延遲模塊可通過任意電壓源(LTspice元件庫中的bv)配合delay()函數(shù)來實(shí)現(xiàn)。此模塊需要設(shè)置采樣頻率。該參數(shù)應(yīng)在原理圖的頂層使用.PARAM指令進(jìn)行設(shè)置。例如以下指令:
.param Fs=1000
可將采樣頻率設(shè)置為1ksps。單位延遲模塊會(huì)將采樣頻率轉(zhuǎn)換為采樣周期(1ms),并利用該值使模塊的輸入信號(hào)產(chǎn)生相應(yīng)的延遲。

圖2:LTspice單位延遲模塊原理圖
加法模塊和乘法模塊的實(shí)現(xiàn)則更為簡(jiǎn)單,無需了解采樣周期。兩者均可直接通過壓控電壓源來實(shí)現(xiàn)。加法模塊需要兩個(gè)輸入信號(hào)進(jìn)行相加。乘法模塊需要一個(gè)輸入信號(hào),并使用參數(shù)M來設(shè)定乘數(shù)。

圖3:LTspice加法器模塊原理圖

圖4:LTspice乘法器模塊原理圖
在LTspice中實(shí)現(xiàn)移動(dòng)平均FIR濾波器
將上述三個(gè)模塊組合,即可在LTspice中創(chuàng)建一個(gè)簡(jiǎn)化的移動(dòng)平均FIR濾波器。如需探索此示例,請(qǐng)打開附件.zip壓縮包中的Moving Average FIR Filter.asc文件。為確保LTspice能夠找到所有必需的文件,請(qǐng)?jiān)诖蜷_原理圖前先解壓該.zip文件。
Moving-Average-FIR-Filter.zip
上述示例中的濾波器模塊已封裝為層次化模塊,雙擊相應(yīng)模塊即可打開其底層原理圖。在該壓縮包的各個(gè)模塊文件夾中,均包含一個(gè).asc文件和一個(gè).asy文件。其中,.asc文件為底層原理圖,.asy文件為對(duì)應(yīng)的符號(hào)文件。

圖5:三抽頭移動(dòng)平均FIR LTspice原理圖
在瞬態(tài)仿真中探索結(jié)果
從菜單欄選擇“Simulate -> Run/Pause”(仿真 -> 運(yùn)行/暫停),以執(zhí)行原理圖中由.TRAN指令指定的瞬態(tài)仿真。圖6展示了濾波器電路的輸入節(jié)點(diǎn)、輸出節(jié)點(diǎn)及內(nèi)部延遲節(jié)點(diǎn)。點(diǎn)擊原理圖中的節(jié)點(diǎn)即可繪制波形,隨后右鍵單擊波形并選擇“Add Plot Pane Below”(在下方添加繪圖面板),以創(chuàng)建多個(gè)顯示面板。

圖6:顯示移動(dòng)平均特性的瞬態(tài)仿真結(jié)果
由于LTspice本質(zhì)上仍是模擬仿真器,必須確保輸入信號(hào)能夠準(zhǔn)確表征數(shù)字信號(hào)。在本例中,已確保信號(hào)的變化速度不超過采樣率。另一種方法則是使用采樣保持電路對(duì)信號(hào)進(jìn)行數(shù)字化處理。
在交流仿真中探索結(jié)果
在頂層原理圖中,右鍵單擊.AC指令并點(diǎn)擊“OK”,即可激活該指令,此時(shí),.TRAN指令將被注釋掉(顯示為藍(lán)色)。

圖7:.AC指令已啟用,.TRAN指令已禁用
繪制輸出波形可顯示濾波器的幅頻與相頻響應(yīng)。請(qǐng)注意,.AC指令中的截止頻率被設(shè)置為奈奎斯特頻率Fs/2。

圖8:FIR濾波器交流分析:幅度與相位隨頻率的變化
為使圖形更接近維基百科文章示例中的圖像,請(qǐng)右鍵單擊縱軸并將刻度更改為線性坐標(biāo);然后右鍵單擊橫軸,取消勾選“Logarithmic”(對(duì)數(shù))。

圖9:將幅度軸更改為線性刻度

圖10:將頻率軸更改為線性刻度
經(jīng)此設(shè)置后,將生成一幅線性-線性坐標(biāo)圖,更加貼近維基百科示例中的幅頻與相頻曲線。

圖11:FIR頻率響應(yīng)的線性-線性坐標(biāo)圖
在交流仿真中觀察混疊現(xiàn)象
最初將截止頻率設(shè)置為奈奎斯特頻率(Fs/2),是為了確保頻率響應(yīng)符合數(shù)字濾波器的預(yù)期表現(xiàn);畢竟數(shù)字濾波器并不存在超出奈奎斯特頻率的概念。
而在純模擬仿真中加入數(shù)字濾波器的真正價(jià)值在于,能夠觀察到數(shù)字濾波器作用于連續(xù)信號(hào)時(shí)的實(shí)際表現(xiàn);換言之,可以直觀地觀察到混疊效應(yīng)。
下面通過將.AC指令的截止頻率擴(kuò)展至奈奎斯特頻率的若干倍來進(jìn)行深入探討。圖12展示了截止頻率擴(kuò)展至5倍奈奎斯特頻率的仿真結(jié)果。

圖12:顯示混疊區(qū)域的頻率響應(yīng)線性-線性坐標(biāo)圖
這種兼容模擬仿真的數(shù)字濾波器模型,使您能夠在信號(hào)鏈輸出端仿真濾波與混疊的綜合效果。我將在未來的博客文章中對(duì)此展開進(jìn)一步探討,敬請(qǐng)期待!
*特別感謝Steve Potratz向我介紹了LTspice中的數(shù)字濾波器模型。



