当前位置: 首页 > news >正文

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=
将传递函数进一步整理可得:
H = 1 − j ω R C 1 + ( ω R C ) 2 H=\frac{1-j\omega RC}{1+\left ( \omega RC \right ) ^{2} } H=1+(ωRC)21RC
由上式可得出传递函数的实部和虚部:
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=
零点:令传递函数的分子为0可求出零点,得此RC滤波器无零点;
极点:令传递函数的分子为0可求出极点,得
s = − 1 R C (注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=-\frac{1 }{RC }(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=RC1(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值)

Bode图绘制与分析

现在,我们使用matlab来画出这个RC滤波器的bode图,如下:
在这里插入图片描述

我们来进一步分析这个bode图:

  1. 在截止频率处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+ωRC21 =1+2πfrRC21 =22 (即3dB相位=arctan(ωRC)=arctan(2πfrRC)=arctan(1)=45°
  2. 在截止频率左侧,当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+ωRC21 =1+2πfRC21 1(即0dB相位=arctan(ωRC)=arctan(2πfRC)arctan(0)=
  3. 在截止频率右侧,当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+ωRC21 =1+2πfRC21 (随着频率增大幅值减小,斜率为20dB/10dec,即频率每增加10倍,幅值衰减20dB相位=arctan(ωRC)=arctan(2πfRC)arctan()=90°
  4. 对于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&#xff0c;C1uF&#xff1b;电容C的阻抗为Xc&#xff1b; 传递函数 H ( s ) u o u i X C X C R 1 s C 1 s C R 1 1 s R C &#xff08;其中 s j ω &#xff09; H(s)\frac{u_{o} }{u_{i} } \frac{X_{C} }{X_{C}R} \frac{\frac{1}{sC} }{\…...

基于深度学习的网络入侵检测

基于深度学习的网络入侵检测是一种利用深度学习技术对网络流量进行实时监测与分析的方法&#xff0c;旨在识别并防范网络攻击和恶意活动。随着网络环境日益复杂&#xff0c;传统的入侵检测系统&#xff08;IDS&#xff09;在面对不断变化的攻击模式时&#xff0c;往往难以保持高…...

《构建一个具备从后端数据库获取数据并再前端显示的内容页面:前后端实现解析》

一、前端页面&#xff1a;布局与功能 1. 页面结构 我们先来看前端页面的 HTML 结构&#xff0c;它主要由以下几个部分组成&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewp…...

Rust 力扣 - 59. 螺旋矩阵 II

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 使用一个全局变量current记录当前遍历到的元素的值 我们只需要一圈一圈的从外向内遍历矩阵&#xff0c;每一圈遍历顺序为上边、右边、下边、左边&#xff0c;每遍历完一个元素后current 我们需要注意的是如果上…...

2.4w字 —TS入门教程

目录 1. 什么是TS 2. TS基本使用 3 TS基础语法 3.1 基础类型约束 3.11 string&#xff0c;number&#xff0c;boolean&#xff0c; 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

报错&#xff1a; 解决&#xff1a; 将编码都改成UTF-8或者GBK&#xff1a;...

Android平台RTSP转RTMP推送之采集麦克风音频转发

技术背景 RTSP转RTMP推送&#xff0c;好多开发者第一想到的是采用ffmpeg命令行的形式&#xff0c;如果对ffmpeg比较熟&#xff0c;而且产品不要额外的定制和更高阶的要求&#xff0c;未尝不可&#xff0c;如果对产品稳定性、时延、断网重连等有更高的技术诉求&#xff0c;比较…...

认证鉴权框架之—sa-token

一、概述 Satoken 是一个 Java 实现的权限认证框架&#xff0c;它主要用于 Web 应用程序的权限控制。Satoken 提供了丰富的功能来简化权限管理的过程&#xff0c;使得开发者可以更加专注于业务逻辑的开发。 二、逻辑流程 1、登录认证 &#xff08;1&#xff09;、创建token …...

Spring源码(十一):Spring MVC之DispatchServlet

本篇重点在于分析Spring MVC与Servlet标准的整合&#xff0c;下节将详细讨论Spring MVC的启动/加载流程、处理请求的具体流程。 一、介绍 Spring框架提供了构建Web应用程序的全功能MVC模块。通过策略接口 &#xff0c;Spring框架是高度可配置的&#xff0c;而且支持多种视图技…...

gitbash简单操作

https://blog.csdn.net/qq_42363495/article/details/104878170 工作区(空间)--暂存区--本地仓库--远程仓库 方法一&#xff1a;创建一个新的分支master&#xff0c;且远程库里没有该分支 只要将.gitignore文件放在文件夹下就可以&#xff0c;.gitignore是文本文档形式的文件…...

pnpm install安装element-plus的版本跟package.json指定的版本不一样

pnpm安装的版本不同于package.json中指定的版本可能是由于以下几种情况导致的&#xff1a; 依赖项冲突&#xff1a;当项目依赖的不同模块或库之间存在版本冲突时&#xff0c;pnpm可能会安装与package.json中指定的版本不同的版本。这可能是因为其他依赖项指定了不同的版本&…...

Java线程池的核心内容详解

文章内容已经收录在《面试进阶之路》&#xff0c;从原理出发&#xff0c;直击面试难点&#xff0c;实现更高维度的降维打击&#xff01; 目录 文章目录 目录Java线程池的核心内容详解线程池的优势什么场景下要用到线程池呢&#xff1f;线程池中重要的参数【掌握】新加入一个任…...

学习笔记——三小时玩转JQuery

也可以使用在线版&#xff0c;不过在线版需要有网络&#xff0c;网不好的情况下加载也不好 取值的时候也是只会取到有样式的纯文本&#xff0c;不会取到标签&#xff0c;会取到标签效果 prepend和append这两个方法用的比较多&#xff0c;before和affter用的比较少 想要把代码写…...

word试题转excel(最简单的办法,无格式要求)

分享早下班的终极秘诀~ 今天本来是个愉快的周五&#xff0c;心里想着周末的聚会和各种安排&#xff0c;然而突然一个加急任务砸了过来——要求在下周一提交一份精细整理的Excel表格&#xff01; 打开Word文件一看&#xff0c;成堆的试题内容需要整理到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版本&#xff1a;7.17.25 Kibana版本&#xff1a;7.17.25 注&#xff1a;索引即类似mysql的表。 0、进入首页 1、未创建任何“索引模式”时&#xff1a; 1.1、点击左边的三横菜单&#xff1b; 1.2、点击“Discover”&#xff0c;进入“发现”页面&#xff1b; 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 &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意 答案中不可以包含重复的三元组 示例1 输入&…...

并发编程三大特性--可见性和有序性

可见性&#xff1a; 什么是可见性&#xff1a; 可见性是指在数据在收到一个线程的修改时&#xff0c;其他的线程也可以得知并获取修改后的值的属性。这是并发编程的三大特性之一。 为了提高cpu的利用率&#xff0c;cpu在获取数据时&#xff0c;不是直接在主内存读取数据&…...

Android 使用ninja加速编译的方法

ninja的简介 随着Android版本的更迭&#xff0c;makefile体系逐渐增多&#xff0c;导致make单编模块的时间越来越长&#xff0c;每次都需要半个小时甚至更长时间&#xff0c;其原因为每次make都会重新加载所有mk文件&#xff0c;再生成ninja编译&#xff0c;此完整过程十分耗时…...

okbiye AI 写作新思路:毕业论文终稿一站式落地,不用熬夜硬熬

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 开篇引言 每到毕业季&#xff0c;毕业论文总会成为无数大学生最头疼的一道关卡。选题没方向、框架搭不起来、正文写不出深度、重复率居高不…...

谷歌搜索量在哪里查询?新手3分钟掌握的查词流程

外贸独立站日均访问量停留在个位数。文章更新了100多篇&#xff0c;带来真实询盘的网页往往只有两三个。把大量工作时间花在无人问津的短语上&#xff0c;写出来的几千字长文如同扔进海里的石头。谷歌每天处理全世界超过85亿次查询请求。你打算把一批1000个不锈钢保温杯卖到海外…...

Windows下用Python调用CDS API下载ERA5数据,报错Missing/incomplete configuration?手把手教你创建.cdsapirc配置文件

Windows下Python调用CDS API下载ERA5数据报错排查指南&#xff1a;从配置文件创建到隐藏文件陷阱全解析 当你在Windows系统上首次尝试使用Python调用CDS API下载ERA5气象数据时&#xff0c;可能会遇到一个令人困惑的报错&#xff1a;"Missing/incomplete configuration f…...

开源清理工具OpenClearn:透明可控的数字垃圾管理方案

1. 项目概述&#xff1a;一个开源的“清洁工”如何重塑你的数字生活如果你和我一样&#xff0c;是个在数字世界里摸爬滚打了十几年的老鸟&#xff0c;那你电脑里肯定也有一堆“数字垃圾”。这些垃圾不是指那些过时的文件&#xff0c;而是那些你明明已经删除了&#xff0c;但操作…...

OrangePi串口实战:从pyserial配置到USB-TTL数据抓取

1. 环境准备与硬件连接 第一次玩OrangePi串口通信时&#xff0c;我对着桌上那堆USB-TTL模块和杜邦线发呆了半小时。后来才发现&#xff0c;硬件连接其实比想象中简单。你需要准备三样东西&#xff1a;OrangePi开发板&#xff08;我用的是OrangePi 5&#xff09;、USB-TTL转换模…...

DLSS Swapper完全指南:3步轻松优化游戏性能的终极方案

DLSS Swapper完全指南&#xff1a;3步轻松优化游戏性能的终极方案 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家设计的智能工具&#xff0c;能够自动管理、下载和替换游戏中的DLSS、F…...

LabVIEW触发采集实战:从原理到多通道同步实现

1. 项目概述&#xff1a;为什么我们需要触发采集&#xff1f;在数据采集领域&#xff0c;尤其是自动化测试、设备监控和信号分析等场景&#xff0c;我们常常会遇到一个核心痛点&#xff1a;如何精准地捕捉到我们真正关心的那一段信号&#xff1f;想象一下&#xff0c;你正在监测…...

macOS开发者的端口管理利器:Porthole仪表盘的设计原理与实战指南

1. 项目概述&#xff1a;为什么我们需要一个端口管理仪表盘&#xff1f; 如果你是一名在 macOS 上工作的开发者&#xff0c;尤其是最近开始深度使用各类 AI 编程助手&#xff08;如 Cursor、Claude Code&#xff09;或者同时维护多个前后端项目&#xff0c;那么下面这个场景你…...

硬件原型开发实战:从面包板到洞洞板的完整迁移指南

1. 项目概述&#xff1a;从概念到实物的必经之路在电子设计的漫长旅程中&#xff0c;从一张画满符号的电路图&#xff0c;到一台能稳定运行、看得见摸得着的设备&#xff0c;中间横亘着一道看似简单、实则至关重要的鸿沟——原型制作。这道鸿沟&#xff0c;就是“面包板”和“洞…...

NOMA实战:从叠加编码到SIC解码的链路级仿真解析

1. NOMA技术基础与核心原理 NOMA&#xff08;非正交多址接入&#xff09;是5G通信中的一项关键技术&#xff0c;它彻底改变了传统正交多址技术&#xff08;如OFDMA&#xff09;的资源分配方式。我第一次接触NOMA时&#xff0c;最让我惊讶的是它竟然主动引入干扰来提升频谱效率—…...