RC高通滤波器Bode图分析(传递函数零极点)
RC高通滤波器
我们使得R=1K,C=1uF;电容C的阻抗为Xc;
传递函数
H ( s ) = u o u i = R X C + R = R 1 s C + R = s R C 1 + s R C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{R }{X_{C}+R} =\frac{R }{\frac{1}{sC}+R} =\frac{sRC}{1+sRC}(其中s=j\omega ) H(s)=uiuo=XC+RR=sC1+RR=1+sRCsRC(其中s=jω)
将传递函数进一步整理可得:
H = ( ω R C ) 2 + j ω R C 1 + ( ω R C ) 2 H=\frac{\left ( \omega RC \right ) ^{2} +j\omega RC}{1+\left ( \omega RC \right ) ^{2} } H=1+(ωRC)2(ωRC)2+jωRC
由上式可得出传递函数的实部和虚部:
r e a l = ( ω R C ) 2 1 + ( ω R C ) 2 i m a g e = ω R C 1 + ( ω R C ) 2 \begin{matrix}real=\frac{\left ( \omega RC \right ) ^{2} }{1+\left ( \omega RC \right ) ^{2} } \\image=\frac{\omega RC}{1+\left ( \omega RC \right ) ^{2} } \end{matrix} real=1+(ωRC)2(ωRC)2image=1+(ωRC)2ωRC
进一步求出幅值和相位表达式:
幅值 = r e a l 2 + i m a g e 2 = ( ω R C ) 2 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 ( 1 ω R C ) ( 其中 ω = 2 π f ) \begin{matrix}幅值=\sqrt{real^{2}+image^{2} } =\sqrt{\frac{\left ( \omega RC \right ) ^{2}}{1+( \omega RC)^{2} } } \\相位=arctan\left (\frac{image}{real} \right ) =arctan\left (\frac{1}{\omega RC} \right ) \\(其中 \omega =2\pi f) \end{matrix} 幅值=real2+image2=1+(ωRC)2(ωRC)2相位=arctan(realimage)=arctan(ωRC1)(其中ω=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 = R X C + R = R 1 s C + R = s R C 1 + s R C (其中 s = j ω ) H(s)=\frac{u_{o} }{u_{i} } =\frac{R }{X_{C}+R} =\frac{R }{\frac{1}{sC}+R} =\frac{sRC}{1+sRC}(其中s=j\omega ) H(s)=uiuo=XC+RR=sC1+RR=1+sRCsRC(其中s=jω)
零点:令传递函数的分子为0可求出零点,得:
s = 0 (注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=0(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=0(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值)
极点:令传递函数的分子为0可求出极点,得:
s = − 1 R C (注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=-\frac{1 }{RC }(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值) s=−RC1(注意单位问题,我们平常计算时需要计算出频率;如果计算出负值,需要取其绝对值)
Bode图绘制与分析
现在,我们使用matlab来画出这个RC滤波器的bode图,如下:
我们来进一步分析这个bode图:
- 在截止频率处f,=fr≈159.15Hz处,对应的幅值和相位计算如下: 幅值 = ( ω R C ) 2 1 + ( R C ) 2 = ( 2 π f r R C ) 2 1 + ( 2 π f r R C ) 2 = 2 2 (即 − 3 d B ) 相位 = a r c t a n ( 1 ω R C ) = a r c t a n ( 1 2 π f r R C ) = a r c t a n ( 1 ) = 45 ° \begin{matrix} 幅值=\sqrt{\frac{\left ( \omega RC \right ) ^{2}}{1+( RC)^{2} } } =\sqrt{\frac{(2\pi f_{r}RC)^{2}}{1+ (2\pi f_{r}RC)^{2} } } =\frac{\sqrt{2} }{2} (即-3dB) \\相位=arctan\left (\frac{1}{\omega RC} \right ) =arctan\left (\frac{1}{2\pi f_{r} RC} \right ) =arctan\left (1 \right )=45° \end{matrix} 幅值=1+(RC)2(ωRC)2=1+(2πfrRC)2(2πfrRC)2=22(即−3dB)相位=arctan(ωRC1)=arctan(2πfrRC1)=arctan(1)=45°
- 在截止频率左侧,当f<<fr时,对应的幅值和相位计算如下: 幅值 = ( ω R C ) 2 1 + ( ω R C ) 2 = ( 2 π f R C ) 2 1 + ( 2 π f R C ) 2 (随着频率减小幅值减小,斜率为 20 d B / 10 d e c ,即频率每减小 10 倍,幅值衰减 20 d B ) 相位 = a r c t a n ( 1 ω R C ) = a r c t a n ( 1 2 π f R C ) = a r c t a n ( ∞ ) = 90 ° \begin{matrix} 幅值=\sqrt{\frac{\left ( \omega RC \right ) ^{2}}{1+( \omega RC)^{2} } } =\sqrt{\frac{(2\pi fRC)^{2} }{1+ (2\pi fRC)^{2} } } \\(随着频率减小幅值减小,斜率为20dB/10dec,即频率每减小10倍,幅值衰减20dB) \\相位=arctan\left (\frac{1}{\omega RC} \right ) =arctan\left (\frac{1}{2\pi fRC} \right ) =arctan(∞ )=90° \end{matrix} 幅值=1+(ωRC)2(ωRC)2=1+(2πfRC)2(2πfRC)2(随着频率减小幅值减小,斜率为20dB/10dec,即频率每减小10倍,幅值衰减20dB)相位=arctan(ωRC1)=arctan(2πfRC1)=arctan(∞)=90°
- 在截止频率右侧,当f>>fr时,对应的幅值和相位计算如下: 幅值 = ( ω R C ) 2 1 + ( ω R C ) 2 = ( 2 π f R C ) 2 1 + ( 2 π f R C ) 2 ≈ 1 (即 0 d B ) 相位 = a r c t a n ( 1 ω R C ) = a r c t a n ( 1 2 π f R C ) = a r c t a n ( ∞ 0 ) = 0 ° \begin{matrix} 幅值=\sqrt{\frac{\left ( \omega RC \right ) ^{2}}{1+( \omega RC)^{2} } } =\sqrt{\frac{(2\pi fRC)^{2} }{1+ (2\pi fRC)^{2} } }≈1(即0dB) \\相位=arctan\left (\frac{1}{\omega RC} \right ) =arctan\left (\frac{1}{2\pi fRC} \right ) =arctan(∞0)=0° \end{matrix} 幅值=1+(ωRC)2(ωRC)2=1+(2πfRC)2(2πfRC)2≈1(即0dB)相位=arctan(ωRC1)=arctan(2πfRC1)=arctan(∞0)=0°
- 对于RC高通滤波器来说,其极点对应的频率与截止频率数值上相等,bode图上也可以看出,均为159.19Hz;
每增加一个极点,可以使得bode图的幅值变化-20dB/dec,相位变化-90°;
每增加一个零点,可以使得bode图的幅值变化20dB/dec,相位变化90°;
bode图上:
极点前后幅值由20dB/dec变为0dB/dec,变化-20dB/dec,左侧幅值变化-20dB/dec;极点前后相位由90°变化为0°,变化-90°;
零点右侧幅值为20dB/dec,变化20dB/dec;零点相位为90°,变化90°;
matlab代码
R=1000;
C=1*10^(-6);
H=tf([(R*C) 0],[(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', [0,1000000]);
set(h(1), 'XTick', [0,1,10,100,1000,10000,100000,1000000]); % 设置横坐标刻度
set(h(1), 'YLim', [-40, 0]); % 设置纵坐标范围
set(h(1), 'YTick',[-40,-30,-20,-10,0]); % 设置纵坐标刻度% 设置相位图的横纵坐标显示值
set(h(2), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [1,1000000]);
set(h(2), 'XTick', [0,1,10,100,1000,10000,100000,1000000]); % 设置横坐标刻度
%set(h(2), 'YLim', [0, 90]); % 设置纵坐标范围
set(h(2), 'YTick', [0,15,30,45,60,75,90]); % 设置纵坐标刻度% 计算截止频率
%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, 90], '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, 90], ':'); % 画截止频率虚线%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, 90], '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, 90], ':'); % 画截止频率虚线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 R X C R R 1 s C R s R C 1 s R C (其中 s j ω ) H(s)\frac{u_{o} }{u_{i} } \frac{R }{X_{C}R} \frac{R }{\frac{1}{sC}R} \fra…...

SpeechT5 模型
微软开源的 SpeechT5 语音模型,主要包括以下功能 语音转文字:用于自动语音识别(ASR)。文字转语音:用于合成音频(TTS)。语音转语音:用于不同声音之间的转换或进行语音增强。 T5 网络…...

网站用户行为分析:方法、工具与实践
摘要:随着互联网发展,网站竞争激烈,用户行为分析对网站建设与运营至关重要。本文综合介绍了基于服务器日志和客户端收集用户行为数据的方法,包括各自优缺点及相关工具;阐述了网站用户分析的五大常规方法;以…...

医疗医药企业新闻稿怎么写?健康行业品牌宣传背书的报纸期刊杂志媒体有哪些
【本篇由 言同数字全球媒体 原创】在撰写医疗、医学和制药相关稿件时,遵循一定的结构和内容规范至关重要。以下是一些写作建议以及适合发表健康类稿件的报纸、杂志及新闻媒体的推荐。 一、稿件写作结构 标题 原则:简洁、明了,能够准确传达主…...

2024-11-06 问AI: [AI面试题] 人工智能如何用于欺诈检测和网络安全?
文心一言 人工智能在欺诈检测和网络安全领域的应用日益广泛,其强大的数据处理和分析能力为这一领域带来了革命性的变化。以下详细介绍人工智能在欺诈检测和网络安全中的具体应用: 一、欺诈检测 身份认证和访问控制: 通过验证用户的身份信息…...

个人3DCoat设置分享
个人3DCoat设置分享 将当前选择的对象置于屏幕正中显示: /键 版本3DCoat 2023 3DCoat自定义快捷键: Quick Pick: Q Transform: T Primitives: Shift A Cut Off : K Res : Shift Clear Space : Delete 隐藏/显示对象: 点击Sculpt Tree中的眼睛按钮 显示隐…...

Spark 程序开发与提交:本地与集群模式全解析
Spark 的介绍与搭建:从理论到实践-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 目录 一、本地开发与远程提交测试 (一)问题背景 (二)解决方案 集群环境准…...

Linux编程:DMA增加UDP 数据传输吞吐量并降低延迟
文章目录 0. 引言1. 原理介绍1.1 DMA 与中断的协同机制1.2. DMA优化UDP 数据包发送 2. DMA 配置优化 0. 引言 UDP 网络传输常面临高 CPU 占用、传输延迟和丢包等挑战。本文将介绍 DMA 如何优化 UDP 数据包的发送,以提高吞吐量、减少延迟并降低 CPU 占用。 阅读本文…...

鸿蒙开启无线调试
DevEco Studio没找到通过WI-FI连接手机的可视化操作按钮,就去官网看了下hdc - TCP连接场景 操作也比较简单: 第1步:PC通过USB连接手机/平板; 第2步:在手机/平板的“开发者选项”中打开“无线调试”并记录下IP和端口…...

C. DS循环链表—约瑟夫环 (Ver. I - B)
题目描述 N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。 例如:N 3,K 2,S 1。2号先出列,然后是…...

【刷题】优选算法
优选算法 双指针 202. 快乐数 链接:. - 力扣(LeetCode) 【思路】 第一个实例是快乐数,因为会变为1且不断是1的循环 第二个实例不可能为1,因为会陷入一个没有1的循环 根据两个实例和鸽巢原理可以发现不断的平方和最…...

Python 在PDF中绘制形状(线条、矩形、椭圆形等)
在PDF中绘制图形可以增强文档的视觉效果。通过添加不同类型的形状,如实线、虚线、矩形、圆形等,可以使文档更加生动有趣,提高读者的阅读兴趣。这对于制作报告、演示文稿或是教材特别有用。本文将通过以下几个示例介绍如何使用Python 在PDF中绘…...

《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答 问:《今日制造与升级》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《今日制造与升级》级别? 答:国家级。主管单位:中国机械工业联合会 …...

loading为什么不更新
场景:封装好的弹框,按钮上加了个loading状态,根据传入的值弹框提交的模块内容不一样。loading更新过后,但是值没有变。 注)写法一loading不更新,写法二loading值更新。 一、写法一 写法一中的 acceptanc…...

Rust 力扣 - 1652. 拆炸弹
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口,然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…...

使用Golang实现开发中常用的【并发设计模式】
使用Golang实现开发中常用的【并发设计模式】 设计模式是解决常见问题的模板,可以帮助我们提升思维能力,编写更高效、可维护性更强的代码 屏障模式 未来模式 管道模式 协程池模式 发布订阅模式 下面是使用 Go 语言实现屏障模式、未来模式、管道模式…...

基于Zynq FPGA对雷龙SD NAND的性能测试评估
文章目录 一、SD NAND特征1.1 SD卡简介1.2 SD卡Block图 二、SD卡样片三、Zynq测试平台搭建3.1 测试流程3.2 SOC搭建 四、软件搭建五、测试结果六、总结 一、SD NAND特征 1.1 SD卡简介 雷龙的SD NAND系列有多种型号,本次测试使用的是CSNP4GCR01-AMW和CSNP32GCR01-A…...

4.WebSocket 配置与Nginx 的完美结合
序言 在现代 web 应用中,WebSocket 作为一种全双工通信协议,为实时数据传输提供了强大的支持。若要确保 WebSocket 在生产环境中的稳定性和性能,使用 Nginx 作为反向代理服务器是一个明智的选择。本篇文章将带你了解如何在 Nginx 中配置 Web…...

Docker:镜像构建 DockerFile
Docker:镜像构建 DockerFile 镜像构建docker build DockerfileFROMCOPYENVWORKDIRADDRUNCMDENTRYPOINTUSERARGVOLUME 镜像构建 在Docker官方提供的镜像中,大部分都是基础镜像,他们只提供某个简单的功能,如果想要一个功能更加丰富…...

浮动路由:实现出口线路的负载均衡冗余备份。
浮动路由 Tip:浮动路由指在多条默认路由基础上加入优先级参数,实现出口线路冗余备份。 ip routing-table //查看路由表命令 路由优先级参数:越小越优 本次实验测试两条默认路由,其中一条默认路由添加优先级参数,设置…...

二叉树的遍历和线索二叉树
二叉树遍历 二叉树结点的定义 typedef struct BiNode{Elemtype data;struct BiNode* lchild, *rchild; }BiNode, *BiTree; 先序 递归算法 void PreOrder1(BiTree T){if(T!NULL){visit(T);PreOrder(T->lchild);PreOrder(T->rchild);} } 非递归算法(栈实现…...

SpringBoot3 集成Junit4
目录 1. 确保项目中包含JUnit 4依赖添加JUnit 4依赖 2. 配置Spring Boot使用JUnit 4在测试类中使用RunWith注解 3. 编写测试代码4、总结 【扩展】RunWith(SpringRunner.class) 中SpringRunner的作用1. **加载 Spring 应用上下文(ApplicationContext)**2.…...

Scala的set的添加删减和查询
添加:最好用于不可变数组,因为它会产生新数组,而不是在原数组上进行修改。 在尾部添加元素 可变数组 删减:按元素值删除元素 - 查询:查询元素是否存在.contains package Test //Set //特点:元素是唯…...

基于微信小程序的移动学习平台的设计与实现+ssm(lw+演示+源码+运行)
摘 要 由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改…...

【spark面试题】RDD和DataFrame以及DataSet有什么异同
RDD(Resilient Distributed Dataset): 概念:可理解为分布式的列表。它的每个元素代表数据的一行,具有支持泛型这一显著特点。这种泛型支持让开发人员能够处理各种类型的数据,具有很强的灵活性。例如&#…...

[Python]关于Tensorflow+Keras+h5py+numpy一些骚操作备忘
起因:要在Anaconda使用Tensorflow和Keras框架 这里提前小结一下: 1,一定要注意Python、Tensorflow、Keras不同版本的对应关系。 2,交叉用conda install 和pip install安装依赖库可能容易出现问题,在Anaconda虚拟环境…...

深度学习:Transformer 详解
Transformer 详解 对于Transformer模型的详细解释,可以更深入地探讨其各个组成部分、工作原理、以及在自然语言处理任务中的应用方法。以下是对Transformer模型的一个更全面和详细的解释,包括其架构细节和关键技术: 1. 基本架构 Transform…...

jmeter 性能测试步骤是什么?
JMeter是一款流行的开源性能测试工具,用于测试各种服务器和网络应用的性能。在进行JMeter性能测试时,通常需要遵循以下步骤: 确定测试目标:首先,明确性能测试的目标。这可以是测试一个网站的负载能力、测试一个API的响…...

前端入门一之JS最基础、最基础语法
前言 JS是前端三件套之一,也是核心,本人将会更新JS基础、JS对象、DOM、BOM、ES6等知识点;这篇文章是本人大一学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。 文章目录 初体验输入输出语句变量和常量常量变量…...

解决Swp交换空间被占满问题
解决ubuntu交换空间被占满问题 step1: cat /proc/sys/vm/swappiness 60 step2: sudo sysctl vm.swappiness10 #临时修改 step3: sudo sh -c “echo “vm.swappiness10” >> /etc/sysctl.conf” step4: sysctl -p #生效...