首页 > 其他分享 >RC低通滤波器Bode图分析(传递函数&零极点)

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

时间:2024-11-03 22:19:49浏览次数:6  
标签:hz frac 低通滤波器 arctan 幅值 RC freq 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)=ui​uo​​=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)21​image=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)=ui​uo​​=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图:

  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+(ωRC)21​ ​=1+(2πfr​RC)21​ ​=22 ​​(即−3dB)相位=arctan(−ωRC)=arctan(−2πfr​RC)=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+(ωRC)21​ ​=1+(2πfRC)21​ ​≈1(即0dB)相位=arctan(−ωRC)=arctan(−2πfRC)≈arctan(0)=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+(ωRC)21​ ​=1+(2πfRC)21​ ​(随着频率增大幅值减小,斜率为−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'; % 设置频率单位为Hz

bode(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'); % 添加文本标注
            end
        end
        
        % 标示极点
        for j = 1:length(p)
           if ~isinf(p(j)) % 排除无穷大
                hold on;
                % 计算频率
                freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
                % 处理负频率
                if freq_hz < 0
                
                    freq_hz_positive = -freq_hz; % 转换为正频率
                else
                    freq_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'); % 添加文本标注
            end
        end
        
        % 标示截止频率
        %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'); % 添加文本标注
            end
        end
        
        % 标示极点
        for j = 1:length(p)
           if ~isinf(p(j)) % 排除无穷大
                hold on;
                % 计算频率
                freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
                % 处理负频率
                if freq_hz < 0
                
                    freq_hz_positive = -freq_hz; % 转换为正频率
                else
                    freq_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'); % 添加文本标注
            end
        end
        
        % 标示截止频率
        hold on;
        plot([cutoff_freq, cutoff_freq], [-90, 0], ':'); % 画截止频率虚线
        text(cutoff_freq, -70, sprintf('Cutoff: %.2f Hz', cutoff_freq), 'Color', 'b');
    end
end

标签:hz,frac,低通滤波器,arctan,幅值,RC,freq,Bode
From: https://blog.csdn.net/weixin_44634860/article/details/143463843

相关文章

  • ArcGIS API for JavaScript 基础应用+实例展示+水波纹特效
    文章目录ArcGISAPIforJavaScriptweb端基础应用项目应用实例特效利用WebGL和Shader水波纹动效技术细节一、环境准备二、创建ArcGIS地图三、创建WebGL上下文并获取相关信息四、编写顶点着色器(VertexShader)代码五、编写片元着色器(FragmentShader)代码六、在JavaScript......
  • WPF ItemsSource referenced StaticResource
    //xaml<Window.Resources><local:SizeConverterx:Key="sizeConverter"/><local:BooksDatax:Key="booksData"/></Window.Resources><Grid><DataGridGrid.Row="1"......
  • 基于YOLOv8模型的高精度红外行人车辆目标检测(PyTorch+Pyside6+YOLOv8模型)
    摘要:基于YOLOv8模型的高精度红外行人车辆目标检测系统可用于日常生活中检测与定位红外行人车辆目标,利用深度学习算法可实现图片、视频、摄像头等方式的目标检测,另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检测算法训练数据集,使用Pysdie6库......
  • Educational Codeforces Round 171 (Rated for Div. 2) 题解
    A.PerpendicularSegments显然构造一个\(k\timesk\)的左下角是原点的正方形即可。voidslv(){ intx,y,k;Read(x,y,k); intmn=min(x,y); if(mn*mn*2>=k*k) Write(0,'',0,'',mn,'',mn,'\n'), Write(0,......
  • LLaVA-UHD: an LMM Perceiving Any Aspect Ratio and High-Resolution Images
    传统的大多模态模型(LargeMultimodalModel,LMM)关注于固定的尺寸和有限的分辨率。本文以GPT-4V和LLaVa-1.5为代表,揭示了视觉编码策略的根本性系统缺陷。本文指出大多模态模型可以有效地感知任何长宽比和高分辨率的图像。概述为了实现LMM模型在多种长宽比和高分辨率的图像感......
  • PyTorchStepByStep - Chapter 9: Sequence-to-Sequence
     points,directions=generate_sequences(n=256,seed=13)Andthenlet’svisualizethefirstfivesquares:classEncoder(nn.Module):def__init__(self,n_features,hidden_dim):super().__init__()self.n_features=n_features......