使用未说明的特性,您可以在LTSpice中创建模拟,以验证DSP算法的质量。
你知道你可以使用吗?LTspice做数字信号处理(DSP)?实际上,我应该说它可用于验证开发中的信号处理算法的操作是有用的。本文总结了如何使用LTSPICE模拟混合连续的操作和采样系统。
LTSPICE表现为连续时间系统的模拟器。在引擎盖下,模拟器根据活动选择模拟时间表。活动越多,时间间隔越小。同样,当它遇到相对较少的活动时,它会增加时间步长。每个时间步骤都标有当前的模拟时间,使其可以在右点点绘制。您可以通过右键单击LTSPICE绘图窗口和选择→标记数据点来查看此项。简而言之,LTSPICE表现得像历史模拟计算机。这是这种特性,使LTSPICE适用于模拟模拟电路。
[下载相关的LTspice文件(zip文件)]
LTSPICE包括一组专有的特殊功能/混合模式仿真设备,通常用于创建模拟模型。请参阅LTSPICE帮助特殊功能。样本设备是这个家庭的无证成员之一。在LTSPICE的背景下,样本元素不仅仅是模拟样本和保持放大器。如果您考虑过它,则示例组件是模数转换器(ADC),也表现为时钟寄存器。在LTSPICE中,一切都是数字化的,因此样品组件简单地冻结或将数字表示的“模拟”信号的数字表示在其输入端,将其传送到其输出。这正是ADC。因为样本元素存储数据,所以它表现为寄存器。
例如,假设您希望将复杂的模拟函数重新实现为DSP。像电路一样图1.
第一步是使用拉普拉斯变换来确定其传递函数。这取决于您从课堂上记得多少以及电路的复杂性,这可能很难或容易。对我来说,这是一个大问题,因为我在35年内没有使用拉普拉斯变换。我发现一个叫做漂亮的程序SapWin4可以直接从原理图中计算出拉普拉斯传递函数。
图2显示了SapWin的结果。
接下来,将s平面(连续时间系统)转换为z平面(采样时间系统)。为了做到这一点,我使用了Scilab,相当于Matlab的开源软件。
图3显示Scilab中使用的步骤 - 创建变量's'和'z';输入S平面传输功能;将双线性变换应用于采样系统(注意,44.1kHz的1 / Samplege =22.6757μs)。还包括一个印刷错误,说明每个击键在此过程中很重要。
有关双线性变换的更多信息,请参见:第33章从数字信号处理的科学家和工程师指南.
图3中的方程直接包含了二阶Biquad滤波器的五个必要系数。
现在我们去LTspice。下一步是使用一个电压控制电压源或一个行为电压源来检查拉普拉斯传递函数,该电压源配置了来自SapWin (图4)。
如果运行图4中的LTspice模拟文件“testBiquad RevA2.asc”,则可以看到结果。您可能会注意到,模拟滤波器的输出与连续时间电压源滤波器的输出之间存在一些延迟或延迟。我对此进行了研究,并在LTspice帮助中发现,拉普拉斯变换的实现涉及瞬时电压和历史电压与脉冲响应的卷积,这是通过对一组数据进行FFT得到的。这是一个复杂的方法,您可以在“任意行为电压和电流源”一节的“帮助”中自己阅读。
现在我们可以构造等效的数字滤波器。你可以在LTspice原理图中看到图5我创建了一个z-1组件。
通过打开其原理图和符号(在Z-1元件上单击鼠标右键),可以查看该元件的内部。Z-1由运行在两个独立时钟上的两个示例组件构建。样本组件将数据从输入瞬间传输到输出,无需模拟时间步长。这会导致任何后续样本组件错误地捕获新数据,而不是延迟的数据。它有一个等待时间问题。为了解决这个问题,我将捕获寄存器(第一个样本)的输出移动到一个传输寄存器,该寄存器的时钟设置为延迟或反转时钟。Z-1部件的电路如图5所示。
接下来,我们可以设置所需的样本延迟寄存器,并使用行为电压源创建输出。电压源用上面Scilab变换的存储系数对每个样本延迟寄存器加权。最后,我们添加了以采样速率运行的样品时钟。图6显示了过滤器。
此数字滤波器是在DSP / ARM处理器中构建的实际滤波器的精确表示,也是内置硬件。您可以通过运行模拟并绘制输出来看瞬态分析的实际结果表明数字滤波器输出非常与模拟滤波器的输出相似图7.
还有几点:
总之,称为Sample的LTspice特殊功能器件可以用作模数转换器或时钟寄存器。它存储输入端模拟电压的数字表示形式。在模拟中使用Sample组件是一个简单而有效的构建块,使LTspice能够检查采样系统或混合连续/采样系统的行为。
埃里克·库克是阿罗电子公司的现场应用工程师。
相关文章:
你好,
好文章。。顺便说一句,我们能对z变换做交流分析吗?。。
如果不是的话,我正在考虑使用该测量值,并使用瞬态分析扫频。
Lanz