📜  脉冲电路-双稳态多谐振荡器(1)

📅  最后修改于: 2023-12-03 14:57:06.213000             🧑  作者: Mango

脉冲电路-双稳态多谐振荡器

双稳态多谐振荡器是一种基础电路,可以产生稳定的多种频率输出波形,广泛应用于数字、模拟信号处理等领域。本文将介绍该电路的原理、实现方法和代码示例。

原理

双稳态多谐振荡器由一个放大器、两个滤波器和一个开关组成。当放大器输出高电平时,开关关闭,滤波器1输出高电平,滤波器2输出低电平,电容充电;当放大器输出低电平时,开关打开,滤波器2输出高电平,滤波器1输出低电平,电容放电。这样交替重复,电容电压呈现出双稳态特性,可以在不同的频率下产生稳定的矩形波。

实现方法

双稳态多谐振荡器可以用多种器件实现,如二极管、差分放大器、操作放大器等。其中,使用操作放大器实现的方法比较简单,可以通过调整器件值实现不同频率的输出波形。

下面是一个基于操作放大器的双稳态多谐振荡器电路图:

其中,R1-R3为限流电阻,C1-C2为滤波电容,R4-R5为负反馈电阻,U1为操作放大器,D1-D4为瞬时限流二极管。

代码示例

使用Python语言编写的一个双稳态多谐振荡器程序。

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

t = np.linspace(0, 1, 1000, endpoint=False)
f1, f2, f3 = 5, 10, 20
w1, w2, w3 = 2*np.pi*f1, 2*np.pi*f2, 2*np.pi*f3

v_out = []
v_cap = [0]
v_ref = 1.25

for i in t:
    if v_cap[-1] > v_ref:
        v_out.append(5)
    else:
        v_out.append(0)
    v_cap.append(v_cap[-1] + (v_out[-1] - v_cap[-1])/(1/(w2*C1)+1/(w1*C2)+1/R1+1/R4))
    v_cap[-1] = max(0, v_cap[-1] - (v_cap[-1]/(1/(w2*C1)+1/(w1*C2)+1/R1+1/R4)))

plt.figure()
plt.plot(t, v_out[:-1])
plt.xlabel('Time')
plt.ylabel('Output Voltage')
plt.title('Bistable Multivibrator')
plt.show()

其中,通过调整f1、f2、f3可以实现不同频率的输出波形。代码块采用markdown代码块标识:

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt

t = np.linspace(0, 1, 1000, endpoint=False)
f1, f2, f3 = 5, 10, 20
w1, w2, w3 = 2*np.pi*f1, 2*np.pi*f2, 2*np.pi*f3

v_out = []
v_cap = [0]
v_ref = 1.25

for i in t:
    if v_cap[-1] > v_ref:
        v_out.append(5)
    else:
        v_out.append(0)
    v_cap.append(v_cap[-1] + (v_out[-1] - v_cap[-1])/(1/(w2*C1)+1/(w1*C2)+1/R1+1/R4))
    v_cap[-1] = max(0, v_cap[-1] - (v_cap[-1]/(1/(w2*C1)+1/(w1*C2)+1/R1+1/R4)))

plt.figure()
plt.plot(t, v_out[:-1])
plt.xlabel('Time')
plt.ylabel('Output Voltage')
plt.title('Bistable Multivibrator')
plt.show()