网站首页 > 技术分享 >
在LTspice仿真中对数字滤波器进行建模(第一部分)
发布时间:2026-07-27 11:06:10 · 赵法彬
(作者:AnneM)在LTspice中进行电路仿真时,目标通常是深入了解电路的模拟行为并做出设计权衡。同时,电路的输出很可能会被数字化并进行后处理,因此将生成的数字元件纳入LTspice仿真往往更具挑战性。


在这篇博客文章中,我将介绍一些电路元件,以帮助您在LTspice中对数字滤波器进行建模。这样,您就可以探索对数字化信号施加滤波后的模拟电路的行为与性能。


介绍一种简单的数字滤波器:移动平均FIR滤波器

我们从最简单的低通滤波器示例,即移动平均滤波器开始讲起。维基百科关于FIR滤波器的文章展示了一个非常简单的使用三个抽头的移动平均示例。


 444db5f1ly1ifidtmwm35j20eq05zglp.jpg

图1:移动平均FIR滤波器的框图


《面向科学家和工程师的数字信号处理指南》第15章也是理解移动平均滤波器的有用参考资料。

在上述三抽头示例中,输出为输入信号连续三个采样点的平均值:

y[n]=x[n]/3+x[n-1]/3+x[n-2]/3

此算法还可进一步简化,以减少所需的乘法模块数量:

y[n]=(x[n]+x[n-1]+x[n-2])/3

实现起来十分简单。那么如何在LTspice中实现这一功能呢?


在LTspice中引入滤波器模块

要在LTspice中实现此滤波器,需要三种函数:单位延迟、加法和乘法。


单位延迟模块可通过任意电压源(LTspice元件库中的bv)配合delay()函数来实现。此模块需要设置采样频率。该参数应在原理图的顶层使用.PARAM指令进行设置。例如以下指令:

.param Fs=1000


可将采样频率设置为1ksps。单位延迟模块会将采样频率转换为采样周期(1ms),并利用该值使模块的输入信号产生相应的延迟。


 444db5f1ly1ifidtmhreuj20f406ot8x.jpg

图2:LTspice单位延迟模块原理图


加法模块和乘法模块的实现则更为简单,无需了解采样周期。两者均可直接通过压控电压源来实现。加法模块需要两个输入信号进行相加。乘法模块需要一个输入信号,并使用参数M来设定乘数。


 444db5f1ly1ifidtmanwjj20cw0a574k.jpg

图3:LTspice加法器模块原理图


 444db5f1ly1ifidtm53vkj20db07w74b.jpg

图4:LTspice乘法器模块原理图


在LTspice中实现移动平均FIR滤波器

将上述三个模块组合,即可在LTspice中创建一个简化的移动平均FIR滤波器。如需探索此示例,请打开附件.zip压缩包中的Moving Average FIR Filter.asc文件。为确保LTspice能够找到所有必需的文件,请在打开原理图前先解压该.zip文件。

Moving-Average-FIR-Filter.zip


上述示例中的滤波器模块已封装为层次化模块,双击相应模块即可打开其底层原理图。在该压缩包的各个模块文件夹中,均包含一个.asc文件和一个.asy文件。其中,.asc文件为底层原理图,.asy文件为对应的符号文件。


 444db5f1ly1ifidtm0nhwj20d109hgm3.jpg

图5:三抽头移动平均FIR LTspice原理图


在瞬态仿真中探索结果

从菜单栏选择“Simulate -> Run/Pause”(仿真 ->运行/暂停),以执行原理图中由.TRAN指令指定的瞬态仿真。图6展示了滤波器电路的输入节点、输出节点及内部延迟节点。点击原理图中的节点即可绘制波形,随后右键单击波形并选择“Add Plot Pane Below”(在下方添加绘图面板),以创建多个显示面板。


 444db5f1ly1ifidtlseucj20bo0ci3zb.jpg

图6:显示移动平均特性的瞬态仿真结果


由于LTspice本质上仍是模拟仿真器,必须确保输入信号能够准确表征数字信号。在本例中,已确保信号的变化速度不超过采样率。另一种方法则是使用采样保持电路对信号进行数字化处理。


在交流仿真中探索结果

在顶层原理图中,右键单击.AC指令并点击“OK”,即可激活该指令,此时,.TRAN指令将被注释掉(显示为蓝色)。

 444db5f1ly1ifidtln3itj20bz03wmx8.jpg

图7:.AC指令已启用,.TRAN指令已禁用


绘制输出波形可显示滤波器的幅频与相频响应。请注意,.AC指令中的截止频率被设置为奈奎斯特频率Fs/2。

 444db5f1ly1ifidtlfwmyj20b90c23yz.jpg

图8:FIR滤波器交流分析:幅度与相位随频率的变化


为使图形更接近维基百科文章示例中的图像,请右键单击纵轴并将刻度更改为线性坐标;然后右键单击横轴,取消勾选“Logarithmic”(对数)。

 444db5f1ly1ifidtlb1ebj20eb063dg4.jpg

图9:将幅度轴更改为线性刻度


 444db5f1ly1ifidtl5a5uj20el04zjri.jpg

图10:将频率轴更改为线性刻度


经此设置后,将生成一幅线性-线性坐标图,更加贴近维基百科示例中的幅频与相频曲线。

 444db5f1ly1ifidtl0n1tj20d70drt9i.jpg

图11:FIR频率响应的线性-线性坐标图


在交流仿真中观察混叠现象

最初将截止频率设置为奈奎斯特频率(Fs/2),是为了确保频率响应符合数字滤波器的预期表现;毕竟数字滤波器并不存在超出奈奎斯特频率的概念。


而在纯模拟仿真中加入数字滤波器的真正价值在于,能够观察到数字滤波器作用于连续信号时的实际表现;换言之,可以直观地观察到混叠效应。


下面通过将.AC指令的截止频率扩展至奈奎斯特频率的若干倍来进行深入探讨。图12展示了截止频率扩展至5倍奈奎斯特频率的仿真结果。

 444db5f1ly1ifidtktvsjj20cg0f475b.jpg

图12:显示混叠区域的频率响应线性-线性坐标图


这种兼容模拟仿真的数字滤波器模型,使您能够在信号链输出端仿真滤波与混叠的综合效果。我将在未来的博客文章中对此展开进一步探讨,敬请期待!


阅读LTspice数字滤波器系列全部博客文章。


*特别感谢Steve Potratz向我介绍了LTspice中的数字滤波器模型。

本站部分文章来自互联网,文章版权归原作者所有。如有疑问请联系手机:13910839249