新闻中心

EEPW首页 > 设计应用 > LTspice音频W AV文件:使用立体声和加密语音消息

LTspice音频W AV文件:使用立体声和加密语音消息

作者:Simon Bramble时间:2020-03-03来源:电子产品世界收藏

Simon Bramble  (ADI公司 高级现场应用工程师)

本文引用地址:http://www.eepw.com.cn/article/202003/410480.htm

摘  要:详细介绍如何使用WAV文件生成不太为人所知的语法(以及更高的通道计数)。 关键词:

0  引言 

能否通过WAV文件利用数据和 语音消息?答案是假如音乐是爱情的粮食,那么 就仿真吧。 本非常见问题解释如何使用LTspice®音频WAV文 件生成立体声语法(以及更高的通道计数)。 

LTspice可用于生成WAV文件作为电路仿真的输 出,也可用于导入WAV文件来激励电路仿真。大量文 档记载单声道WAV文件可用作LTspice中的输入,而 LTspice可用于生成WAV输出。本文详细说明如何使用 LTspice音频WAV文件生成不太为人所知的立体声语法 (以及更高的通道计数)。 

LTspice拥有许多超级功能,但它处理音频文件的 能力是令人印象较深刻的功能之一。虽然在计算机屏 幕上看到逼真的电路令人着迷,但是创建一个可以在 LTspice之外播放的声音文件则能够让工程师以另一种 感测方式来评估仿真。使用单声道LTspice音频WAV 文件的相关文档非常完备。本文对立体声(或更多通 道)展开讨论,并说明如何从LTspice音频WAV文件导 出立体声数据,以及如何将立体声数据导入LTspice音 频WAV文件。它还阐述了WAV文件的一些使用技巧和诀窍,使读者能够进一步利用WAV文件。 

1  生成立体声WAV文件 

首先,从单声道信号生成立体声波形文件。图1 显示的电路生成1 V、1 kHz正弦波,并将其分成2个 通道,从而在2个通道之间交替传输信号——在CH1和 CH2之间以2 s间隔切换1 kHz信号音(如图1)。

微信截图_20200306102624.png

命令.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命令将列出的第1个 通道数据另存为左音频通道,将列出的第2个通道数 据另存为右音频通道。在这种情况下,当通过媒体 播放器播放export.wav时,无论电路节点命令规则如 何,CH1都将被读取为左通道,CH2将被读取为右通道。请注意,默认情况下,CH1和CH2在.wav文件中 分别存储为通道0和通道1,这对于读取下面讨论的文件至关重要。 

导出的这个立体声音频文件可用于激励图2所示 的另一个电路,该电路使用export.wav中的两个通道,作为信号输入。

微信截图_20200306102842.png

电压源V1和V2照常放置,然后按住CTRL键并右 键单击每个电压源,显示元件属性编辑器(如图3所 示),来分配export.wav中的电压信号。

微信截图_20200306102914.png

图3 export.wav中的立体声信号用作图2电路的输入。这是V1的分配,值设置为从export.wav中拉出通道0 

如前所述,首次生成LTspice音频WAV文件时, 多达65 535个通道可数字化为1个WAV文件——只需 在.wave命令的末尾附加任意多个通道即可。记住, 默认情况下,LTspice将第1个通道命名为通道0,将下 一个通道命名为通道1,以此类推。在这种情况下, 由图1仿真生成的export.wav将电压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

2  音频分离 

理论上,通过媒体播放器播放export.wav应在完 全通过左扬声器(或耳机)播放1 kHz信号音2 s和通 过右扬声器播放2 s之间切换。尽管如此,仍然无法保 证立体声完全分离,这取决于播放过程中使用的媒体 播放器的质量。 

通过笔记本电脑播放export.wav显示,在示波 器上测量时约30%的左通道出现在右通道上,如图4 所示。

微信截图_20200306102938.png

在(2000年时代)手机上播放相同的文件会得到 一个更加分离的结果,显示没有可感知的串扰,但是 在最大音量下会有轻微的失真,如图5所示。

微信截图_20200306103012.png

在后来2018年时代的手机上重复这个实验,结果 显示没有可感知的串扰,但有1个完整的1 V峰值信号 和很小的失真,如图6所示。请注意,所绘示波器曲 线图的灵敏度为500 mV/div。

微信截图_20200306103029.png

在所有3个平台上使用相同的文件,结果显示 LTspice可以生成能够完全分离的WAV文件,但最终的 回放在很大程度上取决于播放器音频级的质量。

3  语音 

图7中的电路显示了语音加密的基本方法,即使用随机数序列加密音频信号,然后解密。

微信截图_20200306103050.png

文件voice.wav包含原始音频。Excel电子表格用 于生成变化周期为100 µs的随机数序列。结果复制到 名为random.txt的文本文件中。random.txt的摘录如图8 所示。

微信截图_20200306103110.png

该文件用于使用LTspice中的分段线性(PWL)电压 源生成随机变化的电压V(RAND)。 

使用行为电压源B1将V(RAND)添加到语音信 号中。然后将输出乘以V(RAND),并将结果发送到 encrypt.wav文件。收听encrypt.wav会发现:原始音频 几乎无法感知。 

图9显示了LTspice图窗口的原始语音、加密语音和解密语音信号。

微信截图_20200306103129.png

然后使用第2个行为电压源解密原始音频信号, 并将结果发送到decrypt.wav文件。

4  从差分电压源生成WAV文件 

.wave命令的语法不允许数字化差分电压。但是, 使用行为电压源(B1)可轻松解决此问题,如图10 所示。 

行为电压源(B1)输出电压等于V(OUT1) – V(OUT2),这可以按常用方式在.wave命令中使用,如 图所示。

微信截图_20200306103253.png

事实上,行为电压源函数中的变量可以包括电路 中的任何电压或电流,并且可以使用LTspice的任何数 学函数控制这些变量。然后,可以通过正常方式将最 终结果导出到LTspice音频WAV文件。 

LTspice是一个功能强大的仿真器,但其仿真结 果不必包含在LTspice内。使用.wave命令,LTspice可 以导入、操作和导出音频文件,以便在媒体播放器上 播放。

本文来源于科技期刊《电子产品世界》2020年第03期第18页,欢迎您写论文时引用,并注明出处。



评论


相关推荐

技术专区

关闭