用python绘制RC低通滤波器bode图

这篇具有很好参考价值的文章主要介绍了用python绘制RC低通滤波器bode图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用python绘制RC低通滤波器bode图

Bode图

Bode图(国内有译作“伯德图”,也有译作“波特图”)是一种用于描述线性系统的频率响应的图形工具。频率响应是指系统对不同频率的输入信号的响应程度,通常用幅度和相位来表示。Bode图以对数坐标轴的形式显示系统的幅频特性和相频特性,通常使用dB和度作为单位。

Bode图通常由两个子图组成:幅频特性图和相频特性图。幅频特性图显示系统对输入信号的不同频率的响应,横轴为频率,纵轴为幅度,以dB为单位。相频特性图显示系统对输入信号不同频率的相位响应,横轴为频率,纵轴为相位,以度为单位。

在幅频特性图中,Bode图的曲线通常由两个部分组成:低频段和高频段。在低频段,幅度响应随着频率的增加而增加;在高频段,幅度响应随着频率的增加而减小。相位曲线的形状也会随着频率变化而变化。在低频段,相位曲线的斜率比较平缓,而在高频段,相位曲线的斜率比较陡峭。

Bode图可以用来分析系统的稳定性和性能特性。例如,如果系统的幅频特性曲线在截止频率处穿越0dB水平线,那么该系统可能会产生振荡,因为这意味着系统在该频率处的增益为1,可能引起反馈环路不稳定。另外,Bode图还可以用于设计控制系统,例如选择合适的控制器增益和频率补偿网络来满足性能要求。

Bode图是一种非常有用的工具,用于描述线性系统的频率响应特性。它可以帮助工程师更好地理解系统的行为,以便更好地设计和优化控制系统。

RC低通滤波器

用python绘制RC低通滤波器bode图

一阶RC滤波器就是电容和电容的串联,电阻和电容对输入信号进行分压,则电容两端电压为:

频域:
V C ( s ) = 1 / C s R + 1 / C s V i n ( s ) = 1 1 + R C s V i n ( s ) \begin{align} V_{C}(s) &= \frac {1/C_{s}} {R + 1/C_{s}} V_{in}(s) \notag \\ &= \frac {1} {1 + RC_{s}} V_{in}(s) \end{align} VC(s)=R+1/Cs1/CsVin(s)=1+RCs1Vin(s)

或时域:
V C ( t ) = V i n ( t ) ( 1 − e − t R C ) \begin{equation} V_{C}(t) = V_{in}(t) (1 - e^\frac {-t} {RC}) \end{equation} VC(t)=Vin(t)(1eRCt)

python绘制Bode图

# 导入所需的库:NumPy 用于数学运算,Matplotlib 用于绘图,Scipy 中的 signal 模块用于信号处理。
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal

# 定义 RC 低通滤波器的参数:电阻 R、电容 C 和截止频率 fc。
R = 1000.0   # 电阻值
C = 1e-6     # 电容值
fc = 1 / (2 * np.pi * R * C)  # 截止频率

# 使用 signal.TransferFunction() 函数创建一个一阶 RC 低通滤波器的传输函数 sys,其分子系数为 [1],分母系数为 [R*C, 1]。
sys = signal.TransferFunction([1], [R*C, 1])
w, mag, phase = signal.bode(sys)

# 创建一个包含两个子图的图形窗口,并返回子图对象 ax1 和 ax2。plt.subplots_adjust() 用于调整子图之间的间距。
fig, (ax1, ax2) = plt.subplots(2, 1)
plt.subplots_adjust(hspace=0.5)

# 在第一个子图中,使用 ax1.semilogx() 绘制幅频响应曲线。ax1.set_title() 和 ax1.set_ylabel() 用于设置子图的标题和 y 轴标签。ax1.axvline() 用于绘制红色虚线,表示截止频率 fc 所在的位置。ax1.text() 用于在截止频率处添加文本标注。
ax1.semilogx(w/(2 * np.pi), mag)
ax1.set_title('Bode Plot - Magnitude')
ax1.set_ylabel('Magnitude (dB)')
ax1.axvline(fc, color='r', linestyle='--')
ax1.text(fc, -40, '{:.2f} Hz'.format(fc), ha='center', va='top')

# 在第二个子图中,使用 ax2.semilogx() 绘制相频响应曲线。ax2.set_title()、ax2.set_xlabel() 和 ax2.set_ylabel() 用于设置子图的标题和轴标签。ax2.axvline() 用于绘制红色虚线,表示截止频率 fc 所在的位置。ax2.text() 用于在截止频率处添加文本标注。
ax2.semilogx(w/(2 * np.pi), phase)
ax2.set_title('Bode Plot - Phase')
ax2.set_xlabel('Frequency (Hz)')
ax2.set_ylabel('Phase (deg)')
ax2.axvline(fc, color='r', linestyle='--')
ax2.text(fc, -90, '{:.2f} Hz'.format(fc), ha='center', va='top')

# 显示图形窗口。
plt.show()

运行结果:

用python绘制RC低通滤波器bode图

修改一下电阻值,改为10000,再次运行:

用python绘制RC低通滤波器bode图

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。文章来源地址https://www.toymoban.com/news/detail-430325.html

到了这里,关于用python绘制RC低通滤波器bode图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像处理之理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器的matlab实现去噪

    一、前言 在一幅图像中, 低频部分对应图像变化缓慢的部分即图像大致外观和轮廓。高频部分对应图像变换剧烈的部分即图像细节(注意图像的噪声属于高频部分) 。 低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。即 低通滤波的效

    2023年04月09日
    浏览(36)
  • 使用C++设计滤波器(低通滤波器,高通滤波器,带通滤波器)

    以下是一个使用C++语言编写的基本低通滤波器的示例代码,它可以对输入信号进行滤波以降低高频成分: 在这个示例中,我们使用一个一阶滤波器来实现低通滤波器。该滤波器具有一个截止频率,所有高于该频率的信号成分都会被过滤掉。在构造函数中,我们根据采样率和截

    2024年02月11日
    浏览(27)
  • 图像处理之高通滤波器与低通滤波器

    目录 高频与低频区分: 高通滤波器: 1.傅里叶变换: 低通滤波器: 总结:         在了解图像滤波器之前,先谈一下如何区分图像的高频信息和低频信息,所谓高频就是该像素点与周围像素差异较大,常见于一副图像的边缘细节和噪声等;而低频就是该像素点与周围像素

    2023年04月09日
    浏览(37)
  • FPGA设计FIR滤波器低通滤波器,代码及视频

    名称:FIR滤波器低通滤波器 软件:Quartus 语言:Verilog/VHDL 本资源含有verilog及VHDL两种语言设计的工程,每个工程均可实现以下FIR滤波器的功能。 代码功能: 设计一个8阶FIR滤波器(低通滤波器),要求截止频率为20KHz,使用线性相位结构。 参数设计方法: 使用matlab软件设计滤

    2024年02月08日
    浏览(39)
  • 一阶低通滤波器

    X为输入,Y为滤波后得到的输出值;本次的输出结果主要取决于上次的滤波输出值,其中a是和滤波效果有关的一个参数,称为滤波系数;它决定新采样值在本次滤波结果中所占的权重;

    2024年01月22日
    浏览(35)
  • 有源低通滤波器设计

    本文主要记录本人最近项目使用的低通滤波器,对滤波器性能要求是,通频带内增益约11dB,对22HZ以上的频率尽可能滤除,特别是50HZ的工频信号,要求衰减到-50dB或更小,由于 巴特沃斯滤波器 的特点是通频带的频率响应曲线最平滑,所以选择了 巴特沃斯滤波器 。 下图为 5阶

    2024年02月12日
    浏览(25)
  • OpenCV(图像处理)-基于Oython-滤波器(低通、高通滤波器的使用方法)

    低通滤波 :低通滤波可以去除图像的噪音或平滑图像。 高通滤波 :可以帮助查找图像的边缘。 噪音 :即对一幅图像的产生负面效果,过暗或过亮的部分,一幅图像中,低于或高于某个像素点的值,都可以认为是噪音。 卷积核 :即用来滤波的矩阵,卷积核一般为奇数,如

    2024年02月09日
    浏览(42)
  • Matlab演示低通滤波器

    首先输入两个音频文件(可以自己录两段音频) fs是采样频率。 我们可以用n接收x1。再用n除以采样频率fs,即可得到x1消耗的秒数。 由于两个信号长度不同,所以接下来我们需要统一两个信号的长度 将较短的那个信号的空白部分用0填充。 信号等长之后直接将两个信号通入低

    2024年02月13日
    浏览(28)
  • MATLAB实现低通滤波器(附完整代码)

    1.MATLAB实现低通滤波器 以下是一个完整的示例,包括生成一个包含高频噪声的信号,然后使用一个低通滤波器对其进行滤波,最后绘制原始信号和滤波后的信号。 % 设置参数 Fs = 1000;  % 采样率 Fc = 100;   % 截止频率 N = 60;  % 滤波器的阶数 T = 1/Fs;  % 采样周期 L = 1000;  % 信号长

    2024年04月09日
    浏览(35)
  • 二阶低通有源滤波器设计与仿真测试

    传感器输出的测量信号中,除了有用的信息外,往往还包含许多噪声以及其他与被测量无关的信号,从而影响测量精度。这冲噪声般随机性很强,难于从时域中直分离出来,但限于其产生的物理机理、噪声功率是有限的,并按一定规律分布于频域中某个特定频带。因此,可以

    2024年02月03日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包