python 电路仿真spice_提高开发效率和质量?用SPICE仿真音效

我在网上查找音效电路原理图时想到,如果能在出图前先用通用模拟电路仿真器(SPICE)进行模拟检验,可能会提高开发效率和质量。但由于任何电子模拟器都无法读取并输出音频文件,所以我用Pythons波形模块编写程序,实现读取波形文件并且输出一段时间--电压点的序列。Ngspice的文件源装置能够读取这一大串点序列,并输出和音频信号相匹配的电压波形,之后作为效果电路的输入。本文引用地址:http://www.eepw.com.cn/article/264466.htm

为了能听到输出音频,还需另外一个程序将输出跟踪转换成波形文件,这里我还是借助于这个Pythons波形模块来实现。

过载效果器250

过载效果器250是最简单的畸变效应之一,以吉他效果而广为人知。原理图如图所示。工作原理很简单,首先需要一个交流耦合电容和偏置电路,因为供电采用单向电压。

运算放大器被用作非反相放大器放大微弱的输入信号。R5电位计控制增益。输出位置有另外一个交流耦合电容器和两个削波信号二极管。信号幅值越大,二极管的削波和畸变就越明显。

测试音频信号是一段纯净的吉他声响,来源于用户Khoon命名的freesound.org组织,没有专利许可费用,从根本上说这个属于公用的。

首先是经过500千欧R5电阻输出较为缓和的畸变。考虑到运算放大器的放大效应,输入幅值的选择尤为重要。这段录音中输入幅值为10 毫伏。从波形上我们发现,削波作用相当明显,因此在播放前需要检查输出音量。

如下图所示,逐渐减小R5的阻值会提高增益和畸变:

音频编辑器显示的失真的频谱效应:

原始纯净吉他声信号频谱

刺耳畸变信号频谱

以上分别是原始纯净吉他声信号和刺耳畸变信号的频谱,区别不是很明显。一些低频信号被交流耦合电容器过滤,由于畸变新增了高频信号。能量增加超出了整个带宽,但这只是SPICE到wav格式声音文件转换过程中的过渡表象。为了避免削波,这里选择最大信号增益来获取最大样本值,从而改变信号音量。

实际电路与之相比略有不同,不过这种模拟本身仍然很能说明问题。

在所需时间上,仿真与实际存在差别。在44100赫兹的采样频率下,大约需要5秒来仿真1秒的音频文件。如需要长时间的仿真并记录数据,可以使用SPICE声明记录下输出波形。

模糊效应

模糊电路

第二部分为模糊电路,除了运算放大器部分被分立晶体管所取代外,其余与之前的失真电路非常相似。

输入电压幅值对这部分电路的输出影响也很明显。

下面是1毫伏输入幅值下的仿真结果:

10毫伏输入幅值仿真结果为:

由于相似的二极管削波结构,其仿真结果与畸变电路相差不大。

二极管削波器

二极管削波器的波形比预想的要平滑得多。当然这也取决于信号电压和二极管参数。

用一对1N4148进行削波之后的1V 400Hz信号仿真

二极管削波之后的正弦波频谱

但即便如此,这个相对平滑的削波信号也包含许多高频谐波。

源码

源码参见这里:

README

SPICE audio tools

This repository has two programs for importing wav file to SPICE and

exporting the output as a wav file.

1. wavtospice.py

- This tool converts a wav file with a list of values, which can be read

using ngspices file source. If wav file has multiple channels only the values

of the first channel are returned.

- Usage: python wavtospice.py

- Ngspice must have been compiled with xspice support. File source can be used

like follows:

a1 %v([in]) filesrc

.model filesrc filesource (file="values" amploffset=[0] amplscale=[1]

+ timeoffset=0 timescale=1

+ timerelative=false amplstep=false)

See ngspice manual for possible options.

2. spicetowav.py

- This tool converts ngspice output to wav file. Compatibility with other

simulators is untested.

- Simulation must be setup to print the output values.

Run the ngspice in batch mode using the command line flag -b and direct

output to a file.

- Usage: python spicetowav.py [clipping voltage].

Clipping voltage is optional and if it's unspecified wav is written

with maximum amplitude such that clipping doesn't occur.

# Example

Following commands can be used to get output from lowpass filter example file

when run on Linux:

$ python wavtospice.py file.wav inputvalues

$ ngspice -b examples/lowpass.cir > spice_output

$ python spicetowav.py spice_output output.wav

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SPICE(Simulation Program with Integrated Circuit Emphasis)是一种广泛使用于电子工程领域的电路仿真软件,可用于模拟电路的功能和性能。SPICE电路仿真包括仿真电路、电路分析和显示仿真结果等功能,支持各种电路元件的模拟,如电阻、电容、电感、二极管、MOS管、BJT管等。 SPICE电路仿真的入门需要掌握电路分析的基础知识和SPICE软件的基本操作。首先,了解电路模型和元件的特性参数,然后在SPICE仿真平台中建立电路图,在相应元件中填入参数的值,进行仿真条件的设置,最后运行仿真并分析仿真结果。 提高SPICE电路仿真的能力需要深入理解SPICE软件的各种功能和应用场景,如使用SPICE模型优化电路,通过仿真结果进行电路设计和优化。此外,还要学会调整仿真参数以满足需求,如修改仿真条件、选择合适的仿真器件和电路元件。 总之,掌握SPICE电路仿真的入门和提高需要不断的实践和学习,通过不断积累经验和加强对SPICE软件的理解,可以运用SPICE电路仿真进行更加精确和高效的电路设计和仿真。 ### 回答2: SPICE (Simulation Program with Integrated Circuit Emphasis)是一款电路仿真软件,可以对各种电子电路进行仿真分析,是电子工程师必不可少的工具之一。下面将介绍SPICE电路仿真入门与提高。 1. 入门 首先需要选择一款SPICE软件,比如最常见的LTspice以及其他一些商业软件。安装之后,需要了解一些基本的电路元件,如电阻、电容、电感等,并学习如何在软件中搭建电路模型。接下来需要掌握一些基本的仿真操作,如设置仿真时间、修改参数、检查结果等。 2. 提高 掌握基本操作之后,可以开始提高仿真的精度和准确性。首先需要深入理解电路元件的物理分析模型,以及如何设置元件参数。此外,需要学习如何使用SPICE自带的参数优化工具,对电路进行参数调整,以达到最优效果。另外,还需要学习如何对不同类型的电路进行仿真,如滤波器、功率放大器、数字电路等。 总之,熟练掌握SPICE电路仿真软件需要逐步积累基础,并付出大量的实践和尝试。掌握一些基本操作后,要对各种电路元件和仿真方法进行更深入的探究,才能在实际工程中运用自如。 ### 回答3: SPICE是一种电路仿真软件,主要用于对电路进行分析、设计和优化。它能够对各种电路元件的行为进行模拟,同时还可以通过修改电路参数、元件类型等来优化电路性能。 SPICE电路仿真入门包括以下几个方面: 第一,学习使用SPICE的基本命令和语法,熟悉SPICE的输入文件格式,能够通过输入电路的拓扑结构、电路元件的特性参数等信息,构建电路模型,输出电路分析结果。 第二,了解电路元件的模型库,包括各种被动和主动元件的SPICE模型,例如电阻、电容、电感、二极管、晶体管等,掌握对电路模型进行修改和优化的方法。 第三,掌握电路分析技术,包括直流分析、交流分析、传输特性分析、噪声分析、温度分析等,能够进行电路性能评估和优化。 提高则需要进一步深入学习以下几个方面: 第一,学习高级的电路模型和仿真技术,例如IC模型库、混合信号仿真、射频仿真等,从而能够复杂电路设计和最佳化。 第二,深入了解电路功能模块,例如振荡器、放大器、滤波器等,能够通过SPICE仿真分析电路特性参数,优化电路性能。 第三,将SPICE仿真与PCB设计相结合,能够通过复杂电路的制作,快速测试和验证设计效果,降低开发周期和成本。 总之,SPICE电路仿真是电路设计和分析的工具之一,学习SPICE电路仿真入门和提高,对于通过仿真分析电路工作状态、优化电路性能或者快速验证电路设计的正确性是必不可少的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值