四阶RC低通滤波器推导及matlab仿真

四阶RC低通滤波器推导及matlab仿真

  • RC电路原理推导
    • 四阶RC低通滤波电路
    • matlab仿真

RC电路原理推导

因为最近有做一些RC滤波电路的东西,算是将电路知识复习了下,也算是做一些整理,并且将推倒的结果在matlab上进行仿真实验,以验证其正确性,下面给出具体的过程

四阶RC低通滤波电路

四阶RC低通滤波电路如下图所示
四阶RC低通滤波器推导及matlab仿真_第1张图片
对应系统的传递函数的表达式如下 U i − U 1 R = U 1 − U 2 R + U 1 1 / S C \frac{U_{i}-U_{1}}{R}=\frac{U_{1}-U_{2}}{R}+\frac{U_{1}}{1/SC} RUiU1=RU1U2+1/SCU1
U 1 − U 2 R = U 2 − U 3 R + U 2 1 / S C \frac{U_{1}-U_{2}}{R}=\frac{U_{2}-U_{3}}{R}+\frac{U_{2}}{1/SC} RU1U2=RU2U3+1/SCU2
U 2 − U 3 R = U 3 − U o R + U 3 1 / S C \frac{U_{2}-U_{3}}{R}=\frac{U_{3}-U_{o}}{R}+\frac{U_{3}}{1/SC} RU2U3=RU3Uo+1/SCU3
U 3 − U o R = U o 1 / S C \frac{U_{3}-U_{o}}{R}=\frac{U_{o}}{1/SC} RU3Uo=1/SCUo
由上面四个等式就可以求得 U o {U_{o}} Uo U i {U_{i}} Ui之间的关系,也即可以求得传递函数 U o U i \frac{U_{o}}{U_{i}} UiUo
整理上式可得
U o U i = 1 ( S C R ) 4 + 7 ( S C R ) 3 + 15 ( S C R ) 2 + 10 S C R + 1 \frac{U_{o}}{U_{i}}=\frac{1}{(S C R)^{4}+7(S C R)^{3}+15(S C R)^{2}+10 S C R+1} UiUo=(SCR)4+7(SCR)3+15(SCR)2+10SCR+11
对其进行离散化处理 S = 1 − z − 1 T S=\frac{1-z^{-1}}{T} S=T1z1
可得 Y n = A 1 Y n − 1 + A 2 Y n − 2 + A 3 Y n − 3 + A 4 Y n − 4 + B X n Y_{n}=A_{1} Y_{n-1}+A_{2} Y_{n-2}+A_{3} Y_{n-3}+A_{4} Y_{n-4}+B X_{n} Yn=A1Yn1+A2Yn2+A3Yn3+A4Yn4+BXn其中
A 1 = 4 ( C R ) 4 + 21 ( C R ) 3 + 30 ( C R T ) 2 + 10 C R T 3 ( C R ) 4 + 7 ( C R ) 3 T + 15 ( C R T ) 2 + 10 C R T 3 + T 4 A_{1}=\frac{4(C R)^{4}+2 1(C R)^{3}+30(C R T)^{2}+10 C R T^{3}}{(C R)^{4}+7(C R)^{3}T+15(C R T)^{2}+10 C R T^{3}+T^{4}} A1=(CR)4+7(CR)3T+15(CRT)2+10CRT3+T44(CR)4+21(CR)3+30(CRT)2+10CRT3 A 2 = − 6 ( C R ) 4 − 21 ( C R ) 3 − 15 ( C R T ) 2 ( C R ) 4 + 7 ( C R ) 3 T + 15 ( C R T ) 2 + 10 C R T 3 + T 4 A_{2}=\frac{-6(C R)^{4}-21(C R)^{3}-15(C R T)^{2}}{(C R)^{4}+7(C R)^{3}T+15(C R T)^{2}+10 C R T^{3}+T^{4}} A2=(CR)4+7(CR)3T+15(CRT)2+10CRT3+T46(CR)421(CR)315(CRT)2 A 3 = 4 ( C R ) 4 + 7 ( C R ) 3 T ( C R ) 4 + 7 ( C R ) 3 T + 15 ( C R T ) 2 + 10 C R T 3 + T 4 A_{3}=\frac{4(C R)^{4}+7(CR)^{3} T}{(C R)^{4}+7(C R)^{3}T+15(C R T)^{2}+10 C R T^{3}+T^{4}} A3=(CR)4+7(CR)3T+15(CRT)2+10CRT3+T44(CR)4+7(CR)3T A 4 = − ( C R ) 4 ( C R ) 4 + 7 ( C R ) 3 T + 15 ( C R T ) 2 + 10 C R T 3 + T 4 A_{4}=\frac{-(CR)^{4}}{(C R)^{4}+7 (CR) ^{3} T+15(C R T)^{2}+10 C R T^{3}+T^{4}} A4=(CR)4+7(CR)3T+15(CRT)2+10CRT3+T4(CR)4 B = T 4 ( C R ) 4 + 7 ( C R ) 3 T + 15 ( C R T ) 2 + 10 C R T 3 + T 4 B=\frac{T^{4}}{(C R)^{4}+7(C R)^{3} T+15(C R T)^{2}+10 C R T^{3}+T^{4}} B=(CR)4+7(CR)3T+15(CRT)2+10CRT3+T4T4

matlab仿真

为了验证下结果,我们在matlab上做些仿真分析实验,实验代码如下

clear,clc
 t = 0:0.001:10;
Data =  0.5*sin(2*pi*t) +0.2*sin(2*pi*89*t);
plot( Data );
title('original data');

Tao=0.0002;
T=0.0001;
T_2=T*T;
T_3=T*T_2;
T_4=T_2*T_2;
Tao_2=Tao*Tao;
Tao_3=Tao_2*Tao;
Tao_4=Tao_2*Tao_2;

LowPass_4=Tao_4+7*Tao_3*T+15*Tao_2*T_2+10*Tao*T_3+T_4;
a_n_1=4*Tao_4+21*Tao_3*T+30*T_2*Tao_2+10*Tao*T_3;
a_n_2=-6*Tao_4-21*Tao_3*T-15*T_2*Tao_2;
a_n_3=4*Tao_4+7*Tao_3*T;
a_n_4=-Tao_4;

T = 0.001;%微分时间
R = 100000;%电路电阻
C = 0.1;%滤波电容

Data2 = zeros( size( Data ) );
Data2( 1 ) = Data( 1 );
Data2( 2 ) = Data( 2 );
Data2( 3 ) = Data( 3 );
Data2( 4 ) = Data( 4 );
[ H V ] = size( Data );
for i =5:V
  Data2( i )=(a_n_1/LowPass_4)*Data2( i - 1)+(a_n_2/LowPass_4)*Data2( i - 2)+(a_n_3/LowPass_4)*Data2( i - 3)+(a_n_4/LowPass_4)*Data2( i - 4)+(T_4/LowPass_4)* Data( i ); 
end
figure
plot(Data2);

按照思路,这里输入一个高频+低频的输入信号Data理论上我们应该可以将高频的过滤掉,只留下低频的,实验结果如下
四阶RC低通滤波器推导及matlab仿真_第2张图片这里我们看到,实验结果与我们预期一致!验证了算法的有效性。
这里有之前做的一阶,二阶RC滤波的资料
[1]:https://blog.csdn.net/zhuhui4893/article/details/96476291

你可能感兴趣的:(四阶RC,滤波,matlab,rc)