您当前的位置:五五电子网电子知识单元电路滤波-陷波电路一阶二阶电路滤波器的软件方式实现 正文
一阶二阶电路滤波器的软件方式实现

一阶二阶电路滤波器的软件方式实现

点击数:7163 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   滤波-陷波电路

    以下仅举两个例子,就一阶惯性惯性滤波器和二阶滤波器的算法实现做简要介绍,如下,我们很容易写出其传递函数,G(s)=.../...,在G(s)中,S项即为微分项,计算机中,微分即为差分,因为我们是因果系统,即使用后项差分代替微分,例如:sU(t)转化为U(K)-U(K-1),如此一来,代入传递函数简将传递函数化后,再将其写编成软件仿真。相对于我自己,觉得最快的方式就是MATLAB算法仿真,如下即为仿真结果,二阶滤波器仿真同理。在调整相应参数的时候,即可看成在硬件电路中调整R、C的参数一样。

    一、一阶惯性滤波器软件实现

     

     

    clear,clc

    Data = load('usefuldata.txt');

    plot( Data );

    title('original data');

    T = 5;%电路综合参数(融合了电容电阻和微分时间参数)

    Data2 = zeros( size( Data ) );

    Data2( 1 ) = Data( 1 );

    [ H V ] = size( Data );

    for i =2:V

    Data2( i ) = ( Data( i ) + T * Data2( i - 1) ) / ( T+1 );

    end

    figure

    plot(Data2);

    title('handLED data');

    以下是仿真结果:

    1、原始数据的波形:

     

    2、滤波过后的数据的波形:

     

     

    二、二阶惯性滤波器软件实现



www.55dianzi.com

    title('original data');

    T = 0.001;%微分时间

    R = 100000;%电路电阻

    C = 0.1;%滤波电容

    L = 0.02;%滤波电感

    Data2 = zeros( size( Data ) );

    Data2( 1 ) = Data( 1 );

    Data2( 2 ) = Data( 2 );

    [ H V ] = size( Data );

    for i =3:V

    Data2( i ) = ( Data( i ) + ( T * R * C + 2 * T * L * C )... %表明本行还没有结束

    * Data2( i - 1) - T * L * C * Data2( i - 2 ) ) / ( T * L * C + 1 + T * R * C );

    end

    figure

    plot(Data2);

    title('handLED data');

    以下是仿真结果:

    <!--[if !supportLists]-->1、<!--[endif]-->原始数据的波形:

     

    2、<!--[endif]-->滤波过后的数据的波形:

     

    以上程序中,只是用了MATLAB的仿真功能,没有调用MATLAB的滤波函数,所以完全可以将MATLAB程序翻译成C语言后嵌入下位机软件中使用。

    虽然上述两类滤波算法并没有FFT和小波分析进行滤波来的高大上,更没有后两者来的直接,但在一些简单数据处理中有它独特的优势。建议AD采样进来的数据进行简单滤波,因为一般应用都不会在AD上面做很精确的基准电压。




本文关键字:滤波器  软件  滤波-陷波电路单元电路 - 滤波-陷波电路

上一篇:USB信号产生电路

《一阶二阶电路滤波器的软件方式实现》相关文章>>>