以MATLAB为基础简单模拟基于负反馈的正弦波发生电路的波形发生过程

Posted 童话与梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以MATLAB为基础简单模拟基于负反馈的正弦波发生电路的波形发生过程相关的知识,希望对你有一定的参考价值。

一、正弦波产生原理

1、选频网络

选频网络采用的是文氏桥,一对阻容串联、一对阻容并联,二者再串联。

  • 当信号的频率较的时候,电容的容抗远远大于电阻的阻抗,此时:

     串联的阻容中,对外表现为是一个电容
     并联的阻容中,对外表现为是一个电阻
    

输出电压和反馈电压之间将会产生相位差

  • 当信号的频率较的时候,电容的容抗远远小于电阻的阻抗,此时:

     串联的阻容中,对外表现为是一个电阻
     并联的阻容中,对外表现为是一个电容
    

输出电压和反馈电压之间同样会产生相位差

只有当信号的频率等于选频网络的频率的时候,信号才可以无相移地通过选聘网络。
在这里插入图片描述

2、产生正弦波的过程

电路接通电源时,会产生丰富的信号(极其微弱),当其中某个频率的微小信号与选频网络的频率一致时,它经过选频网络就不会发生相移,而其他频率的信号经过选频网络都会发生不同程度的相移。

信号还会经过放大电路的放大环节,起振阶段的放大倍数应该略大于3。
在这里插入图片描述

3、模拟

利用MATLAB进行模拟。

假设电路产生了一个微小的电信号,它具有一定的幅值,它经过反馈网络(会有一个反馈系数)之后,在经过放大电路(因为模拟的是起振环节,所以应该略大于3,为了效果明显一点我取了A=4),放大电路输出再进入反馈网络,形成闭环。


模拟的波形如下:
微小信号的幅值为0.01V,

当其频率匹配时,模拟将达到2V的幅值
当其频率不匹配的时候,模拟的幅值仅为0.06V

在这里插入图片描述
实际的情况肯定比模拟的更复杂,微小信号可能更“微小”,反馈放大的次数也更多,信号的频率也更加丰富。

但是大致的趋势就是:一个频率的信号逐渐突出(针对起振环节)。

附代码

clc                                                 % 清除命令行
clear                                               % 清除变量
clf                                                 % 清除图像
TIME = 10*pi;                                       % 时间区间上限
t = 0:0.1:TIME;                                     % 时间区间

fai = 0;                                            % 初相位 
A = 4;                                              % 放大电路放大倍数(起振,所以大于3)
F = 1/3;                                            % 反馈系数
c=colormap(lines(10));                              % 改变曲线颜色的数组

        % 1、当信号刚好是选频网络的f0
Y = 0.01 * sin(2*t+fai);                            % 模拟电扰动中一个频率的微小信号
        % 循环计算输入输出
for i = 1:10                                        % 表示循环变量为i,i从1增加到10,步长为1
    yin = 0.01*sin(2*t+fai)*(A^(i-1))*(F^(i-1));    % 是单次输入也是反馈量
    yout = A * yin;                                 % 单次输出 = 放大倍数 x 输入
    Y = Y + yout;                                   % 输出叠加
    subplot(2,1,1);plot(t,yout,'color',c(i,:));     % 绘制单次输出的图像
    hold on                                         % 保持绘图界面不关闭,在一个图内绘制多条曲线
end
subplot(2,1,1);plot(t,Y,'r-.');                     % 绘制叠加之后的输出
xlim([0,TIME]);                                     % 限制横坐标的显示范围
title('1、当信号刚好是选频网络的f0、A = 4、F = 1/3'); % 图表标题
xlabel('t'),ylabel('y = sin(2t)') 

        % 2、当信号不是选频网络的f0
F = 1/6;                                            % 反馈系数,因为频率偏移故有所下降
Y = 0.01 * sin(4*t+fai);                            % 模拟电扰动中另一个频率的微小信号
        % 循环计算输入输出
for i = 1:10                                        % 表示循环变量为i,i从1增加到10,步长为-3
    fai = (i-1) * pi /4;                            % 相位经过选频网络发生的偏移
    yin = 0.01*sin(4*t+fai)*(A^(i-1))*(F^(i-1));    % 是单词输入也是反馈量
    yout = A * yin;                                 % 单次输出 = 放大倍数 x 输入
    Y = Y + yout;                                   % 输出叠加
    subplot(2,1,2);plot(t,yout,'color',c(i,:));     % 绘制单次输出的图像
    hold on                                         % 保持绘图界面不关闭,在一个图内绘制多条曲线
end
subplot(2,1,2);plot(t,Y,'r-.');                     % 绘制叠加之后的输出
xlim([0,TIME]);                                     % 限制横坐标的显示范围
title('2、当信号不是选频网络的f0、A = 4、F = 1/6');   % 图表标题
xlabel('t'),ylabel('y = sin(4t)') 

grid on;                                            % 打开坐标网格
shg                                                 % 使Figure窗口移动到最前

以上是关于以MATLAB为基础简单模拟基于负反馈的正弦波发生电路的波形发生过程的主要内容,如果未能解决你的问题,请参考以下文章

雷达波位编排基于matlab相控阵雷达的波位编排仿真含Matlab源码 2251期

正弦波转变为方波?

如何讲正弦波转化为方波?频率不变。

急!!!用运算放大器设计一个方波、正弦波、三角波的信号发生器

雷达通信基于matlab无人机FMCW毫米波高度计雷达仿真含Matlab源码 1261期

Matlab 计算采样频率以从纯正弦波中产生特定的声音