【模电】0007 有源滤波器2(二阶有源滤低通波器)

article/2025/10/21 11:05:08

滤波器的阶数越高,则可以得到越陡峭的频率响应,使得在通带内尽量不衰减信号,而在阻带内尽可能多地衰减信号。

上一节我们讲的一阶有源滤波器,在对数坐标系上,其阻带内的衰减是20dB/十倍频程;如果想要更好的衰减效果,需要用更高阶的滤波器。

1)二阶有源低通滤波器

一种最简单的二阶滤波器如下图:

其实质是两个一阶RC滤波器串联之后,用运放跟随输出,这种滤波器在阻带内的衰减是40dB/十倍频程。

因为是两个RC电路串联,这个电路的传递函数可以简单使用两个RC滤波器的传递函数相乘得到:

H\left ( s \right ) = \frac{1}{1+sR_{1}C_{1}}\cdot \frac{1}{1+sR_{2}C_{2}}

一般情况下,可以取R1=R2,C1=C2,这样便于计算。

当同时需要放大时,可以把运放接成同相位放大的形式,如下图:

 最后一级的同相比例放大电路,可以使得输出放大 (R3+R4)/R4 倍。

2)另一种二阶有源低通滤波器

另一种工程中更常见的二阶低通滤波器如下图:

 它与1)中的电路不同点在于,第一级的RC的C接到的不是地,而是输出。

我们先计算一下本图中的传递函数,仍然选择R1=R2,C1=C2,并设同相比例放大的倍数

 \frac{R_{3}+R_{4}}{R_{4}} = A_{VF}

首先,后一级是个简单的RC滤波器,有:V_{P}\left ( s \right ) = V_{A}\left ( s \right ) \cdot \frac{1}{1+sRC}

 由于有虚断效应,Vo = Vp·Avf,

以A点列电流方程,有:\frac{V_{I}\left ( s \right )-V_{A}\left ( s \right ) }{R} = \left [V_{A}\left ( s \right )-V_{O}\left ( s \right ) \right ]sC+\frac{V_{A}\left ( s \right )-V_{P}\left ( s \right ) }{R}

联立几个式子,可以得到:

H\left ( s \right ) = \frac{V_{O}\left ( s\right )}{V_{I}\left ( s\right )} = \frac{A_{VF}}{1+\left ( 3-A_{VF} \right )sRC+\left ( sRC \right )^{2}}
 

可以看到,如果不放大,则结果和1)中电路的传递函数是一样的,但是如果运放有放大倍数,则传递函数不同,大致的图形可以从图中看出区别,1)中电路的增益是单调下降的,而2)在通带和阻带交界出有增益的上升。这个特性使得电路2)有更加分明的通带和阻带分界点。

同时,如果 Avf 大于等于3,则电路不能稳定工作,会自激震荡。即这个电路不能有太大的放大倍数。

 令\omega _{c} = \frac{1}{RC}Q = \frac{1}{3-A_{VF}},则有:

H\left ( s \right ) = \frac{A_{VF}\cdot\omega _{c}^{2} }{s^{2}+\frac{\omega _{c}}{Q}s+\omega _{c}^{2}}

ωc为特征角频率,Q为等效品质因数。

3)滤波器设计参数选择

一般情况下,设计滤波器时,先确定电容值,再由特征频率\omega _{c} = \frac{1}{RC}来计算电阻值。

改变放大倍数(即调整Q值),可以发现过渡带的增益凸起有明显增加,所以如果想要通带内的变化比较平缓,需要调整倍数到合适的Q值。

欢迎关注我的公众号:


http://chatgpt.dhexx.cn/article/BhgrSUsS.shtml

相关文章

什么是二阶滤波器?有什么优点?

原文来自公众号:工程师看海 滤波器是常见的信号调理电路,其中低通滤波器最为普遍,我们常听说一阶滤波器、二阶滤波器,二者有什么差别呢? 低通滤波器有3个重要参数:通带、阻带和过度带,理想的滤…

【滤波器】5. 三种类型二阶低通滤波器

滤波器的品质因数 Q,也称为滤波器的截止特性系数。其值决定于 f f 0 ff_0 ff0​ 附近的频率特性。按照 f f 0 ff_0 ff0​ 附近频率特性的特点,可将滤波器分为 巴特沃斯 ( Butterworth)、切比雪夫(Chebyshev) 和 贝塞尔(Bessel) 三种类型。下图是这三种…

二阶低通有源滤波器设计与仿真测试

前言 传感器输出的测量信号中,除了有用的信息外,往往还包含许多噪声以及其他与被测量无关的信号,从而影响测量精度。这冲噪声般随机性很强,难于从时域中直分离出来,但限于其产生的物理机理、噪声功率是有限的&#xf…

带农历万年历C语言程序,c语言万年历程序代码

本篇文章介绍了使用c语言实现万年历程序的代码,希望对学习c语言的朋友有帮助! c语言万年历程序代码 C语言实现万年历程序的代码如下:#include int year(int y) { if ((y%40) && (y%100!0) || y%4000) return 366; else return 365; …

Java万年历程序

【程序说明】该程序实现了输出任意一年的日历,并输出该年中任意一天是该年的第几周。 【规定】①闰年366天,2月29天;平年365天,2月28天。 ②周日为某月的第一天,周六为该月的最后一天。 ③某年的1月1号为该年的第一天…

Java 实现万年历

通过Java的基本语法来实现我们的万年历 请看代码 public class CalDate{public static void main(String[] args){Scanner sc new Scanner(System.in);System.out.println("请输入年:");int year sc.nextInt();System.out.println("请…

C++万年历程序

C万年历 文章目录 C万年历一、运行结果二、源代码 一、运行结果 二、源代码 #include<iostream> #include<stdio.h> #include<string.h> #include<iomanip> using namespace std;class Calendar{ public :Calendar(){TotalDays 0;MonthDays 0;};voi…

编写万年历程序时的一些意外收获

前些天在CSDN每日一练上做到了万年历程序的一道题&#xff0c;觉得很有意思&#xff0c;于是便尝试自己写写看&#xff0c;结果遇到了“公元1年1月1日是星期几”这个问题。拿着手机翻华为日历翻了半天&#xff0c;找到了这一天是星期六&#xff1a; 然而我发现&#xff0c;根据…

C语言编写小程序——万年历

一、杂谈 大一学了C之后一直困惑&#xff0c;C到底怎么用&#xff1f;它不像HTML那么直观&#xff0c;也没有SQL那么常用&#xff0c;更没有Java那么功能强大&#xff0c;那他为何还存在&#xff0c;并依然火热呢&#xff1f; 答案很简单&#xff1a;编程语言是一家&#xff0c…

前端:运用js制作一个万年历程序

前端&#xff1a;运用js制作一个万年历程序 1.HTML代码 首先&#xff0c;依旧是一个套路&#xff0c;先写HTML代码&#xff0c;就好比如建一座楼先建地基和楼的结构一样。 外部这个class属性值为time的div标签是为了让整个内容处于居中地位。 class属性值为head1的div标签是…

用Java写一个万年历程序

从控制台输入指定年份&#xff08;在1900年至2099年之内&#xff09;和月份&#xff0c;输出当月的日历。要求效果如下图所示 思路分析如下&#xff1a; 假设输出2020年5月份的日历。那么要求得1900年1月1日到2020年5月1日前一天的天数总和 再求总天数余7的值&#xff0c;结果…

C++编写万年历,公元后日历程序,考虑了1582年前后以及该年的特殊情况。

目录 一&#xff0c;万年历的基本要求前言&#xff1a;万年历的创建思路1.公元天数与日期1.日期输入问题2.闰年与平年的数目 3.日历的输出问题1.日数转化为星期2.日历月份开头 二&#xff0c;万年历正确性的额外补丁1.1582年闰年定义的变更解决2.1582年消失的十天 三&#xff0…

C语言 万年历 三种版本

C语言 万年历 万年历 一、第1版&#xff1a; 制作一个万年历&#xff08;阳历版&#xff09;。程序从键盘读入年份和月份&#xff0c;然后输出该年该月的月历。 【实现提示】&#xff1a; 本问题的关键是确定所求月份的第一天是星期几。如我们想确定2009年12月1日是星期几&a…

编制万年历的历程

初入编程之道的学子大都试编过万年历。万年历有二种&#xff1a;一为只有西历的月历&#xff0c;另一为有农历对照的月历或日历。编写万年历程序可以练练手&#xff0c;加深对编程语言的理解。记得我初入此道是在1994年&#xff0c;我那时刚买了486电脑&#xff0c;也刚开始有视…

显示万年历的程序(汇编语言实现,附源代码)

运行环境&#xff1a;Masm for Windows 集成实验环境 2015 一、课题内容和要求 课题内容&#xff1a; 用汇编语言编写一个有简单界面显示的日历&#xff0c;要求输入年月日后&#xff0c;将该月的完整日历显示出来&#xff0c;包括星期几&#xff0c;且每月的星期六&#xff…

c语言编写万年历程序

这个程序最核心的地方在于计算当前日期是周几&#xff0c;然后才好显示万年历&#xff0c;因为输入只知道月&#xff0c;所以默认是1号。 通过这个日期我们就可以计算总天数&#xff0c;通过总天数进行%7运算&#xff0c;就能得到周几。 通过这个周几&#xff0c;在结合这个月有…

C语言实现万年历程序

C语言实现万年历程序 #include <stdio.h>int year(int y) {if ((y%40) && (y%100!0) || y%4000)return 366;elsereturn 365; }int main() {int y;int i,j,sum0; int begin,week;int days[12]{31,28,31,30,31,30,31,31,30,31,30,31};scanf("%d",&y)…

C语言实现万年历(附代码) 小白完成的第一个C语言程序,希望大家多多关注,点赞

C语言实现万年历 前言&#xff1a;本文章向大家介绍如何使用C语言代码实现万年历使用实例&#xff0c;讲解编写万年历的方法&#xff0c;教你轻松学会写出万年历。这个小程序算是我自己写的第一个比较完整的小程序&#xff0c;算是对大一上学期学习的C语言程序设计基础的一个总…

万年日历(C语言)

C Language 万年历程序----&#xff08;1840~2110&#xff09;年 ##声明&#xff1a;此程序并非本人全原创&#xff0c;已修改其中少数内容&#xff0c;仅供小白参考&#xff0c;大佬者若言论&#xff0c;来吧&#xff0c;用点力——后续本人将更新此万年历添加更有丰富的内容…

C语言万年历程序

刚复习了C语言&#xff0c;写一个万年历程序&#xff0c;比较初级&#xff0c;见笑了。 /*Name : calendar.cAuthor : 飞翔de猪油Version : v1.0Description : 万年历程序*/#include <stdio.h> #include <stdlib.h> #include <string.h> #in…