当前位置: 首页 > 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;此完整过程十分耗时…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…...