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
我有一个函数 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