拉氏变换差分方程 c语言,一阶二阶电路滤波器的软件方式实现

MATLAB中进行软件滤波仿真本文引用地址:http://www.eepw.com.cn/article/201612/327994.htm

我身边有些朋友说现在在学校学习什么拉氏变换,Z变换,傅立叶变换没有用,传递函数没有用,差分方程没有用,只是纸上谈兵,我这里先就传递函数和拉氏变换和差分方程介绍几点不自量力的看法,我们学习拉氏变换主要是为了从脱离时域,因为时域分析有它的难度指数,我们从时域映射到S域,目的只有一个,那就是简化计算,正如我们在时域要计算卷积过来,卷积过去,我们把它映射到S域过后,就是乘积过来积乘过去,相对来说,乘积要比卷积的积分要温柔的多,然后我们在S域里面得到结论过后,再将其反映射回到时域,然后自然地在时域使用其所得的结论了。

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

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

522d4a40a4e06eb9f36d52aaa5b24201.png

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、原始数据的波形:eee8652bf1487c7948893dbc385530fa.png

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

74fc8fe1b4c01e0ce573fdc0cd6afd10.png

二、二阶惯性滤波器软件实现5b77fa5b2ef2dd8799a1c842a44b3e13.pngMATLAB代码如下:

%LRC滤波器软件实现

clear,clc

Data = load('usefuldata.txt');

plot( Data );

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');

以下是仿真结果:

1、原始数据的波形:8a91d72b15f604f767f83ba43393ce93.png

2、滤波过后的数据的波形:2833a257c85c96db884607765df3021d.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值