推挽高频放大电路的失真问题

本文针对电子爱好者提出的推挽放大电路功率放大1MHz信号时出现失真、幅度衰减的问题进行实验。介绍了电路设计,进行了电路测试,分析了输出电压异常等情况。发现增加负载后输出电压变化异常,降低信号频率可改善。最后探讨电路失真原因,指出增加偏置电阻可改善失真。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电路为什么会失真?

AD\Test\2024\February\LCOSC8050.SchDoc

 

01 挽高频放大


一、前言

  前几天, 在B站上的留言中, 有电子爱好者询问了一个有趣的电路失真问题。  他在留言中给出了实验电路图,  展示了电路输出信号波形。 询问后面的推挽放大电路,  为何在功率放大 1MHz 信号的时候,  会出现信号失真, 幅度衰减。  这的确是一个很好的问题。  下面让我根据他的电路图, 测试一下他所遇到的问题。

GM1707612302_1920_1080.MPG|_-7

二、电路设计

  电路中震荡信号的峰峰值为 5V,  因此, 电路工作电压应该在 5V 到 12V 之间。 电路前级为电容三点式震荡电路,  后级通过两个互补的晶体管组成推挽信号功率放大。 由于该电路信号为 1MHz, 所以出现信号失真的原因会有很多, 包括器件的寄生电容、 负载不匹配等。

GM1707612691_1920_1080.MPG|_-4

  手工铺设测试电路板。 利用一分钟制板方法   得到测试电路板。  下面仅仅焊接推挽输出的电路,  前面震荡电路不焊接,  使用 DG1062 信号源来产生1MHz 的测试信号。

GM1707616007_1920_1080.MPG|_-5

▲ 图1.2.1 实验电路原理图

▲ 图1.2.1 实验电路原理图

▲ 图1.2.2 实验PCB电路板

▲ 图1.2.2 实验PCB电路板

三、电路测试

  给电路提供 9V 工作电压,  工作电流 95mA。  下面测量 一下工作电流与电压之间的关系。

GM1707616894_1920_1080.MPG|_-3
  这是通过DH1766回读得到的电路工作电流大小,  当工作电压超过1.2V之后, 电流开始上升,  随着电压的增加, 工作电流近似比例上升。  下面测试过程中, 取工作电压为 9V。
GM1707617309_1920_1080.MPG|_-4

▲ 图1.3.1 推挽电路工作电压与电流

▲ 图1.3.1 推挽电路工作电压与电流

vdim=[0.0000,0.1212,0.2424,0.3636,0.4848,0.6061,0.7273,0.8485,0.9697,1.0909,1.2121,1.3333,1.4545,1.5758,1.6970,1.8182,1.9394,2.0606,2.1818,2.3030,2.4242,2.5455,2.6667,2.7879,2.9091,3.0303,3.1515,3.2727,3.3939,3.5152,3.6364,3.7576,3.8788,4.0000,4.1212,4.2424,4.3636,4.4848,4.6061,4.7273,4.8485,4.9697,5.0909,5.2121,5.3333,5.4545,5.5758,5.6970,5.8182,5.9394,6.0606,6.1818,6.3030,6.4242,6.5455,6.6667,6.7879,6.9091,7.0303,7.1515,7.2727,7.3939,7.5152,7.6364,7.7576,7.8788,8.0000,8.1212,8.2424,8.3636,8.4848,8.6061,8.7273,8.8485,8.9697,9.0909,9.2121,9.3333,9.4545,9.5758,9.6970,9.8182,9.9394,10.0606,10.1818,10.3030,10.4242,10.5455,10.6667,10.7879,10.9091,11.0303,11.1515,11.2727,11.3939,11.5152,11.6364,11.7576,11.8788,12.0000]
idim=[0.0000,0.2800,0.8040,0.0000,0.0000,0.8150,0.2290,0.0000,0.0000,0.7180,1.8150,1.7730,4.6450,5.4910,6.2110,9.4280,9.4150,11.8760,14.3190,15.9320,15.9260,19.1690,20.7750,20.7760,23.9620,24.9030,25.5470,28.7130,28.7370,31.4570,33.4190,34.9910,35.0710,37.7930,39.6920,41.2710,42.8460,44.6480,45.9980,47.5210,47.8760,50.6630,52.1680,52.2260,55.3090,57.1910,58.3540,59.9150,60.5710,63.4420,64.4700,66.0050,66.9390,69.4860,70.4840,70.5550,73.4580,75.1950,74.9220,77.7520,79.0220,79.1610,81.8740,81.9170,84.5610,86.1670,87.1310,88.3910,89.6110,90.9310,91.9770,93.1080,94.0830,95.2520,96.3270,96.2770,98.3060,99.3330,99.2460,101.1230,101.7550,102.9450,103.7290,103.6380,105.0290,106.1570,106.8690,106.7560,108.2890,109.2470,108.9610,110.4110,111.3840,111.0810,112.5630,112.4490,113.8340,114.7210,115.3780,115.2830]
import sys, os
sys.path.append(r'd:\python\teasoft')
STDFILE = open(r'd:\python\std.txt', 'a', 1)
sysstderr = sys.stderr
sysstdout = sys.stdout
sys.stderr = STDFILE
sys.stdout = STDFILE

from threading import Thread
import time, math, winsound, clipboard, random
from numpy import *

from tsmodule.tspdata   import *
from tsmodule.tspyt     import *
from tsmodule.tscmd     import *
from tsmodule.tsdopop   import *
from tsmodule.tsdraw    import *
import tsmodule.tsconfig
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(14,9*14/16))
plt.get_current_fig_manager().window.wm_geometry("+2600+800")
plt.rcParams.update({'font.size':16})

pltgif = PlotGIF()

  下面测量一下电路中各点的电压值, 会发现输出电压出现了异常, 并不是在电源电压的一半。 仔细辨认之后,  原来是下面这个偏执二极管焊反了。  将他调整过来, 再进行测试。

GM1707617944_1920_1080.MPG|_-5

  将二极管调整过来之后, 可以看到工作电流降低到 0.4mA,  输出的电压为 4.5V, 这是电源电压的一半左右。   前面测量电路的工作电压与电流的关系是错误的。  使用 DG1062 产生1MHz的信号,  接入电路,  使用示波器查看电路的输入输出信号。  上面是输入信号 峰峰值为 5V, 下面是电路的输出信号, 峰峰值略低。 同时还有一定的相位落后。 可以看到在输出开路的情况下, 输出波形还是非常完美的, 电压增益接近于 1。

GM1707618686_1920_1080.MPG|_-8

▲ 图1.3.2  电路的输入输出信号

▲ 图1.3.2 电路的输入输出信号

  下面给电路的输出增加一个电阻负载,  使用这款可编程的 电阻箱提供不同阻值的负载。  增加负载之后, 似乎电路相位延迟现象得到了少许的改善。  测量负载从 50Ω一直变化到 1000欧姆过程中, 输出电压的变化。  看到测量结果, 有些问题还是比较奇怪的。 也就是在负载电阻从 200 变化到 600Ω过程中, 输出电压居然不是单调的。 猜想有可能是因为线路存在着分布电感和电容造成的。 具体原因不详。

GM1707620396_1920_1080.MPG|_-5

▲ 图1.3.3 不同负载下输出电压

▲ 图1.3.3 不同负载下输出电压

▲ 图1.3.4  1kHz下输入和输出信号

▲ 图1.3.4 1kHz下输入和输出信号

  为了验证这个猜想, 将信号源的频率降低到 1kHz, 你会发现, 输出信号居然比输入信号相位提前了。  后来想清楚了,  这是因为耦合电容在输入电阻上提供的超前角度。  重新测量不同负载电阻下对应的输出电压, 这次好了。 随着电阻的增加, 输出电压单调上升。 验证了前面的猜测。  将电压除以负载电阻, 可以绘制出不同输出电流对应的输出电压。 在15mA 之前大体上呈现线性关系, 根据斜率可以大体估算出这个推挽输出电路对应的内阻为 3欧姆左右。  的确, 推挽电路可以进行功率放大。

GM1707621130_1920_1080.MPG|_-6

▲ 图1.3.5 1kHz下负载电阻与输出电压之间的关系

▲ 图1.3.5 1kHz下负载电阻与输出电压之间的关系

▲ 图1.3.6 输出电流与输出电压之间的关系

▲ 图1.3.6 输出电流与输出电压之间的关系

四、电路失真

  最后讨论一下电路失真的问题。 这是B站留言中, 同学提到的问题。  给电路增加一个 51欧姆的负载电阻。  可以看到输出信号的确存在着失真, 而且电压也小。 无论是高频信号, 还是低频信号, 这种失真都相似。 这说明电路输出电流能力不足 。  猜测,  这是因为输出电路偏置不足造成的。  两个二极管提供的偏置电压, 不足以让两个三极管得到充足的偏置电流。 在电路静态测量的时候, 电路静态工作电流仅仅只有 0.4mA。  可以在二极管上再串联一个电阻, 来提高电路的偏置电流。

GM1707621622_1920_1080.MPG|_-8

▲ 图1.4.1  50Ω负载下产生的失真

▲ 图1.4.1 50Ω负载下产生的失真

  对测试电路进行修改,  在两个二极管中间断开,  增加一个可调电阻,  查看对于电路的工作电流以及放大特性的影响。  使用QR10电阻箱方便调整偏置电阻。  下面进行初步测试。

GM1707622071_1920_1080.MPG|_-6
  这是在偏置电阻为 10欧姆的时候, 1MHz 信号输出情况, 上面有较大的失真。  将偏置电阻调整到 2500欧姆, 可以看到输出信号变小了, 但失真也小了。  降低信号的频率, 能够看到, 输出信号失真更小了。 这说明偏置电流对于输出信号的失真有一定的改善作用。

GM1707622296_1920_1080.MPG|_-3

  最后, 通过 QR10的编程, 测量推挽电路的静态工作电流与偏置电阻之间的关系。   偏置电阻从 10欧姆逐步变化到 2500欧姆,  利用工作电源 DH1766读取电路的工作电流。  从测量结果来看, 偏置电阻与工作电流之间是一个单调上升的关系。

GM1707622676_1920_1080.MPG|_-4

▲ 图1.4.2 偏置电阻与静态工作电流

▲ 图1.4.2 偏置电阻与静态工作电流

rdim=[10.0000,35.1515,60.3030,85.4545,110.6061,135.7576,160.9091,186.0606,211.2121,236.3636,261.5152,286.6667,311.8182,336.9697,362.1212,387.2727,412.4242,437.5758,462.7273,487.8788,513.0303,538.1818,563.3333,588.4848,613.6364,638.7879,663.9394,689.0909,714.2424,739.3939,764.5455,789.6970,814.8485,840.0000,865.1515,890.3030,915.4545,940.6061,965.7576,990.9091,1016.0606,1041.2121,1066.3636,1091.5152,1116.6667,1141.8182,1166.9697,1192.1212,1217.2727,1242.4242,1267.5758,1292.7273,1317.8788,1343.0303,1368.1818,1393.3333,1418.4848,1443.6364,1468.7879,1493.9394,1519.0909,1544.2424,1569.3939,1594.5455,1619.6970,1644.8485,1670.0000,1695.1515,1720.3030,1745.4545,1770.6061,1795.7576,1820.9091,1846.0606,1871.2121,1896.3636,1921.5152,1946.6667,1971.8182,1996.9697,2022.1212,2047.2727,2072.4242,2097.5758,2122.7273,2147.8788,2173.0303,2198.1818,2223.3333,2248.4848,2273.6364,2298.7879,2323.9394,2349.0909,2374.2424,2399.3939,2424.5455,2449.6970,2474.8485,2500.0000]
idim=[0.3330,0.3370,0.3660,0.3920,0.3880,0.4480,0.4790,0.4980,0.6270,0.6370,0.8110,0.9540,0.9520,1.3020,1.4510,1.5530,2.2030,2.6960,2.6110,3.6110,3.6380,4.9060,5.3910,5.6730,7.3380,7.4480,8.2850,10.2030,10.3140,12.4110,13.5270,13.5520,15.7310,15.9200,18.7000,19.1420,19.3250,20.7460,22.2940,22.6760,24.7690,25.1250,26.6410,27.8300,28.0170,29.0310,30.5880,30.8390,32.5350,32.7600,34.0610,34.9740,35.1200,35.9210,37.1340,37.8900,38.6370,38.8450,39.8110,40.5010,40.6080,41.4970,42.3850,42.9830,43.0900,43.7580,44.5360,45.0690,45.1550,45.8620,46.4340,46.9290,47.0060,47.6000,48.1820,48.6280,49.0490,49.2400,49.7500,50.1660,50.2180,50.6990,51.2030,51.5810,51.9390,52.0710,52.5380,52.8760,52.9090,53.2870,53.7340,53.8120,54.3800,54.4680,55.0010,55.2890,55.3240,55.8240,56.0540,56.1120]
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST4.PY                     -- by Dr. ZhuoQing 2024-02-11
#
# Note:
#============================================================

from headm import *
from tsmodule.tsvisa        import *
import serial
from _ast import Or
from serial.serialutil import SerialException


#------------------------------------------------------------
sport = serial.Serial()
sport.baudrate = 115200
sport.timeout = 0.05
try:
    sport.port = 'COM5'
except:
    printf('Set sport port COM5 error. ')

try:
    sport.open()
except serial.serialutil.SerialException:
    printf('Open sport port COM5 error.')
else:
    printf('Open sport port COM5 Ok.')
#------------------------------------------------------------


rdim = linspace(10, 2500, 100)
idim = []

for r in rdim:
    sport.write(b'AT+USER.SP=%5.1f\n'%r)
    time.sleep(.5)
    i = dh1766call1()[0]*1e3
    printff(r, i)
    idim.append(i)
    tspsave('curr', rdim=rdim, idim=idim)

r = 10
sport.write(b'AT+USER.SP=%5.1f\n'%r)

plt.plot(rdim, idim, lw=3)

plt.xlabel("R(omega)")
plt.ylabel("I(mA)")
plt.grid(True)
plt.tight_layout()
plt.show()





#------------------------------------------------------------
#        END OF FILE : TEST4.PY
#============================================================

 

  结 ※


  文讨论了同学留下的一个有趣的问题,  通过实验测试了一个推挽放大电路,  在空载下, 电路输出电压波形非常好。  但带动50欧姆电阻负载的时候, 输出电压 出现了比较大的失真, 通过增加偏置电阻, 可以改善输出信号的失真。  在高频信号放大电路中, 也可以通过增加输出滤波电路, 来减少输出信号的失真。

GM1707622965_1920_1080.MPG|_-6


● 相关图表链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值