首页 > 应用 > 通信

使用WAV文件的LTSpice仿真

Stephen Colley 2019-08-08

作为瞬态仿真的一部分,LTSpice能够记录来自电压和电流节点的数据。数据记录在WAV文件中。这些数据可以通过电压和电流源读回,并用作其他LTSpice电路的输入,使用简单的回放电路查看或与常见的数据分析应用交换。本文以通用记录和回放电路为例,详细介绍了数据格式。YFY电子头条


YFY电子头条

记录模拟数据YFY电子头条

 YFY电子头条

LTSpice的一个有趣的功能是将瞬态模拟数据记录为WAV文件。在查看详细的LTSpice规范并了解这些规范如何与WAV文件格式的低级细节保持一致之前,我不明白这意味着什么。WAV文件不仅适用于音频。要知道的一件事是WAV文件没有被压缩。你输入一个数字,你得到相同的数字。显然,在音乐行业,它是高品质录音的终极选择。此外,数据被组织成你在音乐录音室中所期望的频道。但是,通道数量可能非常大。远远超出了音乐录制的要求。对我来说,这是通用的多通道数据记录器的良好格式。此表总结了LTSpiceHelp的规范。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

想象一下,实际的数据记录器具有超过60000个通道,32位模数转换以及每秒超过10亿个样本。我的测试发现,每秒最大样本量约为表中值的1/2,瞬态模拟运行10纳秒。另外,我无法验证超过24位的采样位数。所有这些都是通过在原理图中放置一个.WAVE指令来完成的。下面是一个例子。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

我故意不使用LTSpiceHelp中的示例。该示例适用于创建可作为音频播放的WAV文件。我们正朝着完全不同的方向前进。命令分解如下:Circuit_Data.wav输出文件;16采样位数。想想模数转换器的分辨率;10K 每秒模拟的样本数;V(ab)等要记录的原理图中的节点列表。在这种情况下,有四个。V(ab)是通道0。YFY电子头条

 YFY电子头条

通用WAV录像机YFY电子头条

 YFY电子头条

这是一个可以添加到电路中的通用记录器。原理图显示连接到记录器的用户电路。此示例有四个通道,但可以有1到65535个通道。我只试过八次。请注意,如果在单独的选项卡中打开可以更详细地看到这些图形。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

压控电压源(E100等)具有两种功能。首先,它们将用户电路中的节点名称与.WAVE指令中的节点名称隔离开来。用户电路节点连接到记录器输入,无需担心节点名称。其次,E源为输入提供缩放,因为.WAVE函数具有固定的满量程范围。修改“用户参数”列表中的.PARAM语句,以独立建立每个通道的满量程范围。另一个“用户参数”是每秒的样本数。我修改了.WAVE指令中的文件名。YFY电子头条

 YFY电子头条

回放WAV数据YFY电子头条

 YFY电子头条

这是相应的播放器,它读入要绘制或连接到其他电路的数据。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

电压源读取每个通道的数据。然后,通过压控电压源对记录器中缩放的电压进行校准。为每个通道指定的满量程用与记录器.PARAM语句匹配的.PARAM语句设置的。.TRAN指令正常工作,用于回放全部或部分数据。YFY电子头条

 YFY电子头条

记录和回放的示例图YFY电子头条

 YFY电子头条

左边的图是正在记录的模拟。该电路是一个电阻分压器,增加了一个电容,为信号边缘提供不同的形状。录音持续两秒钟。右边的图是播放器的输出。回放会跳过录制的第一秒并绘制最后一秒。与任何模数转换器一样,确保采样率足够高以防止混叠。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

为了产生这些电路和绘图,我打开了四个窗口。两个原理图窗口和两个绘图窗口。只需点击录音机上的Runner,然后点击播放器上的结束。YFY电子头条

 YFY电子头条

与数据分析应用程序的兼容性YFY电子头条

 YFY电子头条

数据格式非常通用,可以通过常见的数据分析程序读取。作为测试,为了简单起见,将电压源从脉冲串改为恒定+1 Vdc,运行记录器。Scilab使用wav read(文件名)函数将WAV文件读取到矩阵中。无需其他处理。矩阵的每一行是WAV信道,并且每组样本在时间上是一列。在此显示中,顶行是通道0的前六个样本,第二行是通道1的前六个样本等。YFY电子头条

 YFY电子头条

使用WAV文件的LTSpice仿真YFY电子头条

 YFY电子头条

请记住,录音设置为+/- 10 V的满量程范围。这意味着数据除以10以保持在.WAVE函数的-1 V至+1 V范围内;节点上的1 V记录为0.1 V,0.75 V记录为0.075 V等。播放器将此数据乘以10以恢复原始电压。相应的SciLab wavwrite(y,filename)函数产生了LTSpice兼容文件以及文件均正确播放。YFY电子头条

 YFY电子头条

MATLAB具有相同的功能,但我没有验证它们。有一个第三方函数可用于将LTSpice“raw”文件读入MATLAB,LTSPICE2MATLAB()。这将具有最终的振幅和时间分辨率。没有提到使用MATLAB2LTSPICE()  函数的另一种方式。YFY电子头条

 YFY电子头条

讨论YFY电子头条

 YFY电子头条

LTSpice录制和回放WAV文件似乎在几个方面很有用:WAV文件可以在LTSpice和通用数据分析程序之间交换。这允许两种类型的模拟器协同运行并且我们可以利用每种模拟器的优势;记录的数据可用作另一个LTSpice仿真的输入。例如,记录可以测试在开发期间重复使用的数据。此外,由一个项目执行的模拟输出可以用作另一个项目的输入,并且项目不必经常同步设计文件;仿真结果无需原电路即可回放。例如,可以演示电路的性能,但电路保密。此外,没有运行复杂LTSpice模拟技能的人可以看到和探索结果。LTSpice可用于查看绘图而无需太多培训或可以使用数据分析应用程序进行查看。例如,项目经理可以说“向我发送WAV文件”。YFY电子头条