Simon Bramble
LTspice可用于生成WAV文件作为电路仿真的输出,以及导入WAV文件以激励电路仿真。有据可查的是,单声道WAV文件可以用作LTspice的输入,而LTspice可用于产生WAV输出。本文详细介绍了如何使用LTspice音频WAV文件来实现不太知名的立体声语法(以及更高的通道数)。
LTspice有许多超能力,但它对音频文件的处理是其更令人印象深刻的天赋之一。虽然看到电路在计算机屏幕上栩栩如生令人着迷,但创建可在LTspice之外播放的声音文件使工程师能够使用另一种感觉来评估仿真。使用单声道LTspice音频WAV文件是有据可查的。本文将讨论扩展到立体声(或更多通道),并展示如何通过WAV文件从LTspice导出立体声数据并将其导入LTspice。它还说明了 WAV 文件的一些提示和技巧,这些提示和技巧将使读者能够进一步利用 WAV 文件。
生成立体声 WAV 文件
让我们从单声道信号生成立体声波文件开始。图1显示了一个电路,该电路产生1 V、1 kHz正弦波并将其分成两个通道,在它们之间交替传输信号——1 kHz音调在CH2和CH1之间以2秒的间隔切换。
图1.在此仿真中,1 kHz正弦波在CH1和CH2之间以两秒的间隔切换。生成的双声道信号将导出到音频 WAV 文件。
命令 .wave “C:export.wav” 16 44.1k V(CH1) V(CH2) 以 16 位分辨率对每个通道进行数字化,以 44.1 kSPS 采样,并将生成的音频存储在 C:export.wav 中。在上面的命令中,采样率后列出的每个信号在WAV文件中成为其自己的通道。LTspice可以在单个LTspice音频WAV文件中存储多达65,535个通道,只需根据需要将信号附加到上述命令即可。
默认情况下,LTspice的.wave命令将列出的第一个通道保存为左侧音频通道,将第二个通道保存为右侧音频通道。在这种情况下,当导出时.wav通过媒体播放器播放时,CH1 将读取为左通道,CH2 将读取为右通道,而不管电路节点命名约定如何。请注意,默认情况下,CH1 和 CH2 分别存储为 chan 0 和 chan 1,存储在.wav文件中,这对于读取下面讨论的文件非常重要。
此导出的立体声音频文件可用于激励另一个电路,如图2所示,该电路使用导出的两个通道.wav作为信号输入。
图2.导出的两个立体声通道.wav用于激励两个独立的电路。
电压源V1和V2照常放置,然后按住CTRL键并右键单击每个电压源来分配来自输出.wav电压信号,显示组件属性编辑器,如图3所示。
图3.来自输出.wav的立体声信号用作图2电路的输入。下面是 V1 的分配,其值设置为从导出.wav中提取通道 0。
如上所述,当首次生成LTspice音频WAV文件时,多达65,535个通道可以数字化为一个WAV文件,只需将任意数量的通道附加到.wave命令的末尾即可。请记住,默认情况下,LTspice将第一个通道命名为通道0,下一个通道命名为通道1,依此类推。在这种情况下,导出.wav(由图1中的仿真生成)将电压V(CH1)存储为通道0,V(CH2)存储为通道1。要使用电压源播放这些通道,请在电压源的值行中指定.wav文件和通道。在这种情况下:
要指示 V1 重播图 1 的 V(CH1):wavefile=“C:export.wav” chan=0
要指示 V2 重播图 1 的 V(CH2):wavefile=“C:export.wav” chan=1
音频分离
从理论上讲,通过媒体播放器播放导出.wav应该在完全通过左扬声器(或耳机)播放 1 kHz 音调两秒钟和通过右扬声器播放两秒钟之间切换。然而,不能保证完全的立体声分离,这取决于播放过程中使用的媒体播放器的质量。
通过笔记本电脑播放导出时.wav,显示大约 30% 的左通道出现在右通道上,如图 4 所示。
图4.在笔记本电脑上播放时,左侧(黄色)通道显示右侧(蓝色)通道的大约 30% 馈通。
在移动电话听筒上播放相同的文件(大约在2000年)上,得到的结果更加分离,没有可察觉的串扰,但在最大音量下有轻微的失真,如图5所示。
图5.2000年的手机没有串扰,但在最大音量下失真。
在2018年以后的手机上重复实验,没有可察觉的串扰,峰值信号为1 V,失真非常小,如图6所示。请注意,示波器图是以500 mV/div的灵敏度拍摄的。
图6.后代手机在串扰、失真和振幅方面表现出明显更好的性能。
所有三个平台上都使用了相同的文件,表明LTspice正在生成完全分离的WAV文件,但最终的播放在很大程度上取决于播放器音频舞台的质量。
语音加密
图7中的电路显示了语音加密的基本方法,该方法使用随机数序列对音频信号进行加密,然后进行解密。
图7.使用随机电压源加密/解密音频文件。
文件语音.wav包含原始音频。Excel电子表格用于生成具有100 μs变化周期的随机数序列。结果将复制到名为 random.txt 的文本文件中。随机.txt的摘录如图 8 所示。
图8.使用 Excel 生成并保存在文本文件中的随机电压。
该文件用于使用LTspice中的分段线性(PWL)电压源生成随机变化的电压V(RAND)。
V(RAND)使用行为电压源B1添加到语音信号中。然后将输出乘以 V(RAND),并将结果发送到加密.wav文件。收听加密.wav显示原始音频几乎无法感知。
图9显示了LTspice绘图窗口中的原始语音、加密语音和解密语音信号。
图9.输出原始、加密和解密的语音信号。
然后使用第二个行为电压源解密原始音频信号,并将结果发送到文件解密.wav。
从差分电压源生成 WAV 文件
.wave命令的语法不允许差分电压的数字化。但是,使用行为电压源可以轻松克服这一点,如图10所示。
图 10.从差分电压创建 WAV 文件。
行为电压源输出的电压等于 V(OUT1) – V(OUT2),可以在 .wave 命令中以如下所示的常规方式使用。
实际上,行为电压源功能内的变量可以包括电路中的任何电压或电流,并且可以使用LTspice的任何数学函数来操纵这些变量。然后,最终结果可以以正常方式导出到LTspice音频WAV文件。
LTspice是一个功能强大的模拟器,但其结果不必包含在LTspice中。使用.wave命令,LTspice可以导入,操作和导出音频文件,以便在媒体播放器上播放。
审核编辑:gt
全部0条评论
快来发表一下你的评论吧 !