R语言中函数的Z变换

Z-transform of a function in R language

我有一个函数 f(x) 可以给出时域结果。我想获得该函数的 z 变换,以便我可以比较两者。我知道这在 MATLAB 中很容易计算。但是,我想知道是否有一种方法可以通过包或从头开始编写代码在 R 中完成。之所以使用R是因为我已经在R中完成了大部分所需的工作和其他计算。(加上R是免费的)

我搜索并找到了一些使用 scale 的建议。但是,我认为这与数据有关,而不是功能。另外,我发现了一个包 GeneNet,它有一个叫做 z-transform 的函数。但是,它给出了一个数字向量。我想获得作为 z 函数的 z 变换。

根据定义 z 变换计算自:

为简单起见更新: 如果我们有 f(x)= x, where x= 0,1,2,3,4,....100. 我想获得给定函数 f(x) 的 z 变换。

基于上述 z 变换的定义并代入:

   x(z) = SUM from n=0 to n=100 of (Xn) *(Z ^-n) 

for n=0 => x(z)= (0) (Z^-0)

for n=1 => x(z)= 0 + (1) (z^-1)

for n=2 => x(z)= 0 + (1) (z^-1) + (2) (z^-2)

...

..

有什么建议吗?

您似乎遇到了两个问题:计算 f(x) = x XOR 16,然后计算结果的 z 变换。

这是一个(更新的)z 变换函数,它可以在定义的 x 上工作,可选地是任意 n 向量(默认假设 n 从 0 开始并上升 1 x 的每个值)。它现在 returns 一个可用于评估各种 z 值的函数:

ztransform = function(x, n = seq_along(x) - 1) {
    function(z) sum(x * z ^ -n)
}

my_z_trans = ztransform(x = 0:100, n = 0:100)
my_z_trans(z = 1)
# [1] 5050
my_z_trans(z = 2)
# [1] 2
my_z_trans(z = 3)
# [1] 0.75