RC低通滤波器Bode图分析(传递函数零极点)
RC低通滤波器

我们使得R=1K,C=1uF;电容C的阻抗为Xc;
传递函数
H ( s ) = u o u i = X C X C + R = 1 s C 1 s C + R = = 1 1 + s R C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+R} =\frac{\frac{1}{sC} }{\frac{1}{sC}+R} ==\frac{1 }{1+sRC}(其中s=j\omega ) H(s)=uiuo=XC+RXC=sC1+RsC1==1+sRC1(其中s=jω)
将传递函数进一步整理可得:
H = 1 − j ω R C 1 + ( ω R C ) 2 H=\frac{1-j\omega RC}{1+\left ( \omega RC \right ) ^{2} } H=1+(ωRC)21−jωRC
由上式可得出传递函数的实部和虚部:
r e a l = 1 1 + ( ω R C ) 2 i m a g e = − ω R C 1 + ( ω R C ) 2 \begin{matrix}real=\frac{1}{1+\left ( \omega RC \right ) ^{2} } \\image=\frac{-\omega RC}{1+\left ( \omega RC \right ) ^{2} } \end{matrix} real=1+(ωRC)21image=1+(ωRC)2−ωRC
进一步求出幅值和相位表达式:
幅值 = r e a l 2 + i m a g e 2 = 1 1 + ω R C 2 相位 = a r c t a n ( i m a g e r e a l ) = a r c t a n ( − ω R C ) ( 其中 ω = 2 π f ) \begin{matrix}幅值=\sqrt{real^{2}+image^{2} } =\sqrt{\frac{1}{1+ \omega RC^{2} } } \\相位=arctan\left (\frac{image}{real} \right ) =arctan\left (- \omega RC \right ) \\(其中 \omega =2\pi f) \end{matrix} 幅值=real2+image2=1+ωRC21相位=arctan(realimage)=arctan(−ωRC)(其中ω=2πf)
截止频率
f r = 1 2 π R C f_{r}=\frac{1}{2\pi RC} fr=2πRC1
有关截止频率的计算可以看之前的文章:https://editor.csdn.net/md/?articleId=139279203
零点与极点
由传递函数可求出零点与极点:
H ( s ) = u o u i = X C X C + R = 1 s C 1 s C + R = = 1 1 + s R C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+R} =\frac{\frac{1}{sC} }{\frac{1}{sC}+R} ==\frac{1 }{1+sRC}(其中s=j\omega ) H(s)=uiuo=XC+RXC=sC1+RsC1==1+sRC1(其中s=jω)
零点:令传递函数的分子为0可求出零点,得此RC滤波器无零点;
极点:令传递函数的分子为0可求出极点,得
s = − 1 R C (注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=-\frac{1 }{RC }(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=−RC1(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值)
Bode图绘制与分析
现在,我们使用matlab来画出这个RC滤波器的bode图,如下:

我们来进一步分析这个bode图:
- 在截止频率处f,=fr≈159.15Hz处,对应的幅值和相位计算如下: 幅值 = 1 1 + ( ω R C ) 2 = 1 1 + ( 2 π f r R C ) 2 = 2 2 (即 − 3 d B ) 相位 = a r c t a n ( − ω R C ) = a r c t a n ( − 2 π f r R C ) = a r c t a n ( − 1 ) = − 45 ° \begin{matrix} 幅值=\sqrt{\frac{1}{1+ (\omega RC)^{2} } } =\sqrt{\frac{1}{1+ (2\pi f_{r}RC)^{2} } } =\frac{\sqrt{2} }{2} (即-3dB) \\相位=arctan\left (- \omega RC \right ) =arctan\left (- 2\pi f_{r} RC \right )=arctan\left (-1 \right )=-45° \end{matrix} 幅值=1+(ωRC)21=1+(2πfrRC)21=22(即−3dB)相位=arctan(−ωRC)=arctan(−2πfrRC)=arctan(−1)=−45°
- 在截止频率左侧,当f<<fr时,对应的幅值和相位计算如下: 幅值 = 1 1 + ( ω R C ) 2 = 1 1 + ( 2 π f R C ) 2 ≈ 1 (即 0 d B ) 相位 = a r c t a n ( − ω R C ) = a r c t a n ( − 2 π f R C ) ≈ a r c t a n ( 0 ) = 0 ° \begin{matrix} 幅值=\sqrt{\frac{1}{1+( \omega RC)^{2} } } =\sqrt{\frac{1}{1+ (2\pi fRC)^{2} } } ≈1(即0dB) \\相位=arctan\left (- \omega RC \right ) =arctan\left (- 2\pi f RC \right ) ≈arctan\left (0 \right )=0° \end{matrix} 幅值=1+(ωRC)21=1+(2πfRC)21≈1(即0dB)相位=arctan(−ωRC)=arctan(−2πfRC)≈arctan(0)=0°
- 在截止频率右侧,当f>>fr时,对应的幅值和相位计算如下: 幅值 = 1 1 + ( ω R C ) 2 = 1 1 + ( 2 π f R C ) 2 (随着频率增大幅值减小,斜率为 − 20 d B / 10 d e c ,即频率每增加 10 倍,幅值衰减 20 d B ) 相位 = a r c t a n ( − ω R C ) = a r c t a n ( − 2 π f R C ) ≈ a r c t a n ( − ∞ ) = − 90 ° \begin{matrix} 幅值=\sqrt{\frac{1}{1+ (\omega RC)^{2} } } =\sqrt{\frac{1}{1+ (2\pi fRC)^{2} } } \\(随着频率增大幅值减小,斜率为-20dB/10dec,即频率每增加10倍,幅值衰减20dB) \\相位=arctan\left (- \omega RC \right ) =arctan\left (- 2\pi f RC \right ) ≈arctan\left (-∞ \right )=-90° \end{matrix} 幅值=1+(ωRC)21=1+(2πfRC)21(随着频率增大幅值减小,斜率为−20dB/10dec,即频率每增加10倍,幅值衰减20dB)相位=arctan(−ωRC)=arctan(−2πfRC)≈arctan(−∞)=−90°
- 对于RC低通滤波器来说,其极点对应的频率与截止频率数值上相等,bode图上也可以看出,均为159.19Hz;
每增加一个极点,可以使得bode图的幅值变化-20dB/dec,相位变化-90°;
bode图上: 极点前后幅值由0dB/dec变为-20dB/dec,变化-20dB/dec;极点前后相位由0°变化为-90°,变化-90°;
matlab代码
R=1000;
C=1*10^(-6);
H=tf([1],[(R*C) 1]);% 获取零极点
z = zero(H);
p = pole(H);opts = bodeoptions;
opts.FreqUnits = 'Hz'; % 设置频率单位为Hzbode(H, opts);
grid on% 获取当前坐标轴
h = findobj(gcf, 'Type', 'axes');% 设置增益图的横纵坐标显示值
set(h(1), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [1,1000000]);
set(h(1), 'XTick', [1,10,100,1000,10000,100000,1000000]); % 设置横坐标刻度
set(h(1), 'YLim', [-80, 0]); % 设置纵坐标范围
set(h(1), 'YTick',[-80,-70,-60,-50,-40,-30,-20,-10,0]); % 设置纵坐标刻度% 设置相位图的横纵坐标显示值
set(h(2), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [1,1000000]);
set(h(2), 'XTick', [1,10,100,1000,10000,100000,1000000]); % 设置横坐标刻度
%set(h(2), 'YLim', [-90, 0]); % 设置纵坐标范围
set(h(2), 'YTick', [-90, -75, -60,-45,-30,-15,0]); % 设置纵坐标刻度% 计算截止频率
%RC = 1 / abs(p); % 截止频率为极点的绝对值的倒数
cutoff_freq = 1 / (2 * pi * R*C); % 截止频率(Hz)% 在增益图上标示零点和极点
for i = 1:length(h)if i == 1 % 增益图% 标示零点for j = 1:length(z)if ~isinf(z(j)) % 排除无穷大hold on;% 将零点从弧度转换为赫兹freq_hz = real(z(j)) / (2 * pi);plot([freq_hz, freq_hz], [-90, 0], 'r--'); % 画虚线text(freq_hz, -90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注endend% 标示极点for j = 1:length(p)if ~isinf(p(j)) % 排除无穷大hold on;% 计算频率freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率% 处理负频率if freq_hz < 0freq_hz_positive = -freq_hz; % 转换为正频率elsefreq_hz_positive = freq_hz; % 保持正频率end% 标示正频率plot([freq_hz_positive, freq_hz_positive], [-100, 10], 'g--'); % 画虚线text(freq_hz_positive, -80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注endend% 标示截止频率%hold on;%plot([cutoff_freq, cutoff_freq], [-90, 0], ':'); % 画截止频率虚线%text(cutoff_freq, -70, sprintf('Cutoff: %.2f Hz', cutoff_freq), 'Color', 'b');elseif i == 2 % 相位图% 标示零点for j = 1:length(z)if ~isinf(z(j)) % 排除无穷大hold on;% 将零点从弧度转换为赫兹freq_hz = real(z(j)) / (2 * pi);plot([freq_hz, freq_hz], [-90, 0], 'r--'); % 画虚线text(freq_hz, -90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注endend% 标示极点for j = 1:length(p)if ~isinf(p(j)) % 排除无穷大hold on;% 计算频率freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率% 处理负频率if freq_hz < 0freq_hz_positive = -freq_hz; % 转换为正频率elsefreq_hz_positive = freq_hz; % 保持正频率end% 标示正频率plot([freq_hz_positive, freq_hz_positive], [-100, 10], 'g--'); % 画虚线text(freq_hz_positive, -80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注endend% 标示截止频率hold on;plot([cutoff_freq, cutoff_freq], [-90, 0], ':'); % 画截止频率虚线text(cutoff_freq, -70, sprintf('Cutoff: %.2f Hz', cutoff_freq), 'Color', 'b');end
end
相关文章:
RC低通滤波器Bode图分析(传递函数零极点)
RC低通滤波器 我们使得R1K,C1uF;电容C的阻抗为Xc; 传递函数 H ( s ) u o u i X C X C R 1 s C 1 s C R 1 1 s R C (其中 s j ω ) H(s)\frac{u_{o} }{u_{i} } \frac{X_{C} }{X_{C}R} \frac{\frac{1}{sC} }{\…...
基于深度学习的网络入侵检测
基于深度学习的网络入侵检测是一种利用深度学习技术对网络流量进行实时监测与分析的方法,旨在识别并防范网络攻击和恶意活动。随着网络环境日益复杂,传统的入侵检测系统(IDS)在面对不断变化的攻击模式时,往往难以保持高…...
《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》
一、前端页面:布局与功能 1. 页面结构 我们先来看前端页面的 HTML 结构,它主要由以下几个部分组成: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewp…...
Rust 力扣 - 59. 螺旋矩阵 II
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 使用一个全局变量current记录当前遍历到的元素的值 我们只需要一圈一圈的从外向内遍历矩阵,每一圈遍历顺序为上边、右边、下边、左边,每遍历完一个元素后current 我们需要注意的是如果上…...
2.4w字 —TS入门教程
目录 1. 什么是TS 2. TS基本使用 3 TS基础语法 3.1 基础类型约束 3.11 string,number,boolean, null和undefined 3.12 any 3.13 unknown 3.14 void 3.15 数组 3.16 对象 3.2 函数的约束 3.21 普通写法 3.22 函数表达式 3.22 可选…...
java: 未结束的字符文字 报错及解决:将编码全部改为UTF-8或者GBK
报错: 解决: 将编码都改成UTF-8或者GBK:...
Android平台RTSP转RTMP推送之采集麦克风音频转发
技术背景 RTSP转RTMP推送,好多开发者第一想到的是采用ffmpeg命令行的形式,如果对ffmpeg比较熟,而且产品不要额外的定制和更高阶的要求,未尝不可,如果对产品稳定性、时延、断网重连等有更高的技术诉求,比较…...
认证鉴权框架之—sa-token
一、概述 Satoken 是一个 Java 实现的权限认证框架,它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程,使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 (1)、创建token …...
Spring源码(十一):Spring MVC之DispatchServlet
本篇重点在于分析Spring MVC与Servlet标准的整合,下节将详细讨论Spring MVC的启动/加载流程、处理请求的具体流程。 一、介绍 Spring框架提供了构建Web应用程序的全功能MVC模块。通过策略接口 ,Spring框架是高度可配置的,而且支持多种视图技…...
gitbash简单操作
https://blog.csdn.net/qq_42363495/article/details/104878170 工作区(空间)--暂存区--本地仓库--远程仓库 方法一:创建一个新的分支master,且远程库里没有该分支 只要将.gitignore文件放在文件夹下就可以,.gitignore是文本文档形式的文件…...
pnpm install安装element-plus的版本跟package.json指定的版本不一样
pnpm安装的版本不同于package.json中指定的版本可能是由于以下几种情况导致的: 依赖项冲突:当项目依赖的不同模块或库之间存在版本冲突时,pnpm可能会安装与package.json中指定的版本不同的版本。这可能是因为其他依赖项指定了不同的版本&…...
Java线程池的核心内容详解
文章内容已经收录在《面试进阶之路》,从原理出发,直击面试难点,实现更高维度的降维打击! 目录 文章目录 目录Java线程池的核心内容详解线程池的优势什么场景下要用到线程池呢?线程池中重要的参数【掌握】新加入一个任…...
学习笔记——三小时玩转JQuery
也可以使用在线版,不过在线版需要有网络,网不好的情况下加载也不好 取值的时候也是只会取到有样式的纯文本,不会取到标签,会取到标签效果 prepend和append这两个方法用的比较多,before和affter用的比较少 想要把代码写…...
word试题转excel(最简单的办法,无格式要求)
分享早下班的终极秘诀~ 今天本来是个愉快的周五,心里想着周末的聚会和各种安排,然而突然一个加急任务砸了过来——要求在下周一提交一份精细整理的Excel表格! 打开Word文件一看,成堆的试题内容需要整理到Excel里。看着满屏的题目…...
基于web的中小学成绩管理系统的设计与实现
目录 第一章 研究背景与意义 1.1 研究背景 1.2 研究意义 1.3 研究目的 第二章 关于系统的设计 2.1系统总体架构设计 2.2功能模块设计 2.3数据存储与管理 第三章 系统功能介绍 3.1成绩录入及发布 3.2班级管理和学生管理 3.3成绩分析结果展示 3.4用户反馈与改进 …...
Conmi的正确答案——在Kibana中进入Elasticsearch的索引管理页面
Elasticsearch版本:7.17.25 Kibana版本:7.17.25 注:索引即类似mysql的表。 0、进入首页 1、未创建任何“索引模式”时: 1.1、点击左边的三横菜单; 1.2、点击“Discover”,进入“发现”页面; 2…...
【JavaEE】【多线程】进阶知识
目录 一、常见的锁策略1.1 悲观锁 vs 乐观锁1.2 重量级锁 vs 轻量级锁1.3 挂起等待锁 vs 自旋锁1.4 普通互斥锁 vs 读写锁1.5 可重入锁 vs 不可重入锁1.6 不公平锁 vs 公平锁 二、synchronized特性2.1 synchronized的锁策略2.2 synchronized加锁过程2.3 其它优化措施 三、CAS3.…...
LeetCode100之三数之和(15)--Java
1.问题描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意 答案中不可以包含重复的三元组 示例1 输入&…...
并发编程三大特性--可见性和有序性
可见性: 什么是可见性: 可见性是指在数据在收到一个线程的修改时,其他的线程也可以得知并获取修改后的值的属性。这是并发编程的三大特性之一。 为了提高cpu的利用率,cpu在获取数据时,不是直接在主内存读取数据&…...
Android 使用ninja加速编译的方法
ninja的简介 随着Android版本的更迭,makefile体系逐渐增多,导致make单编模块的时间越来越长,每次都需要半个小时甚至更长时间,其原因为每次make都会重新加载所有mk文件,再生成ninja编译,此完整过程十分耗时…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
