首页 » SEO优化 » php转码代码技巧_若何将一个传递函数变成代码

php转码代码技巧_若何将一个传递函数变成代码

访客 2024-12-03 0

扫一扫用手机浏览

文章目录 [+]

做旗子暗记处理,离不开强大的matlab,以是这里做的解释以matlab和C措辞作为例子。
如果要转换成别的措辞,差别不大。

整体转换的顺序为:S域通报函数--->通过matlab转换为Z域通报函数---->转换为C代码。

php转码代码技巧_若何将一个传递函数变成代码 php转码代码技巧_若何将一个传递函数变成代码 SEO优化

首先,拿到一个S域的通报函数,其表达办法类似于如下图片所示:

php转码代码技巧_若何将一个传递函数变成代码 php转码代码技巧_若何将一个传递函数变成代码 SEO优化
(图片来自网络侵删)

连续通报函数

那么如何将这个通报函数转换为Z域通报函数(数字化)呢?用matlab的c2d函数。

c2d最常用的参数形式为:

sysd = c2d(sys,Ts,method)

个中sys表示连续系统通报函数,Ts表示采样韶光,method表示转换的方法。

method可以选5种:

‘zoh’,表示零阶保持器,这也是默认的方法。
‘foh’,表示三角近似法(修正的零阶保持器)。
‘impulse’,表示脉冲相应不变法。
‘tustin’,表示双线性变换法。
‘matched’,表示零极点匹配法。

那么sys又是怎么得到的呢?

掌握系统中的通报函数G(s)常日描述为:

通报函数表达式

在matlab中,用tf函数来得到:

sys = tf(num,den)

num=[b0 b1 b2 .... bm] 是分子,den=[a0 a1 a2 .... an]是分母。

好了,回到最初的例子,将其表达式转换为matlab模型:

H=tf([1 1],[1 4 5])

matlab结果

然后将其变为数字系统的通报函数,采样韶光为1ms:

HD=c2d(H,0.001,‘zoh’)

得到的离散数字域通报函数

其他几种变换方法,大家可以自己试一下,看当作果有何不同。

好了,得到了Z域通报函数,接下去便是要把通报函数变为可实行的C代码,代码中x表示输入,y表示输出。
把分子和分母都除以z^2可得:

DSP形式的通报函数

按照这个公式带入

用C措辞的数组x[3],y[3],分别来存储输入和输出的值,x[0]=x(n),x[1]=x(n-1)..以此类推,上面的公式可以表示为:

y[0]=x[0]0+x[1]0.0009985-x[2]0.0009975+y[1]1.996-y[2]0.996;

x[2]=x[1];

x[1]=x[0];

y[2]=y[1];

y[1]=y[0];

代码中,y[0]就表示当前运算周期的输出,x[0]表示当前周期的输入。

到此,一个S域通报函数就被我们给搬到了C代码中。

标签:

相关文章

PHP求单技巧_PHP之单例模式

概述:担保一个类仅有一个实例,并供应一个访问它的全局访问点利用条件:1 布局函数须要标记为private(访问掌握:防止外部代码利...

SEO优化 2024-12-05 阅读0 评论0

获取php文件技巧_PHP获取目录下文件

1、获取目录下文件,不包括子目录//获取某目录下所有文件、目录名(不包括子目录下文件、目录名) $handler = opendi...

SEO优化 2024-12-05 阅读0 评论0

创新驱动,设计作业网站引领教育新风向

随着互联网技术的飞速发展,教育行业也迎来了前所未有的变革。在这个背景下,设计作业网站应运而生,为教育行业注入了新的活力。本文将从设...

SEO优化 2024-12-05 阅读0 评论0