从 kroneckerDelta 函数的线性组合中提取系数
Extract coefficients from linear combination of kroneckerDelta functions
我想从 kroneckerDelta 函数的总和中提取系数。我已经计算了 z 变换,并通过进行逆 z 变换,结果是 kroneckerDelta 函数的线性组合。当我使用 sym2poly 时,我得到一个错误,它不是一个有效的函数。我有以下代码
clc;
clear all;
syms z
f=[2 4 6 4 2 0];
% f=h0;
c=length(f)
for i=1:c
z_t(i)=[f(i)*z^-(i-1)];
end
ztransfn=sum(z_t);
invztransfn= iztrans(ztransfn)
结果是
invztransfn =
4*kroneckerDelta(n - 1, 0) + 6*kroneckerDelta(n - 2, 0) + 4*kroneckerDelta(n - 3, 0) + 2*kroneckerDelta(n - 4, 0) + 2*kroneckerDelta(n, 0)
使用
sym2poly(invztransfn)
我明白了
Error using sym/sym2poly (line 31) Not a polynomial.
Error in ztransform (line 22) sym2poly(invztransfn)
使用coeffs
功能怎么样?
如果您在 Matlab 的命令 Window 中键入以下文本:
>> coeffs(invztransfn)
你会得到结果:
[ 2, 2, 4, 6, 4]
希望对您有所帮助。此致。
我想从 kroneckerDelta 函数的总和中提取系数。我已经计算了 z 变换,并通过进行逆 z 变换,结果是 kroneckerDelta 函数的线性组合。当我使用 sym2poly 时,我得到一个错误,它不是一个有效的函数。我有以下代码
clc;
clear all;
syms z
f=[2 4 6 4 2 0];
% f=h0;
c=length(f)
for i=1:c
z_t(i)=[f(i)*z^-(i-1)];
end
ztransfn=sum(z_t);
invztransfn= iztrans(ztransfn)
结果是
invztransfn =
4*kroneckerDelta(n - 1, 0) + 6*kroneckerDelta(n - 2, 0) + 4*kroneckerDelta(n - 3, 0) + 2*kroneckerDelta(n - 4, 0) + 2*kroneckerDelta(n, 0)
使用
sym2poly(invztransfn)
我明白了
Error using sym/sym2poly (line 31) Not a polynomial.
Error in ztransform (line 22) sym2poly(invztransfn)
使用coeffs
功能怎么样?
如果您在 Matlab 的命令 Window 中键入以下文本:
>> coeffs(invztransfn)
你会得到结果:
[ 2, 2, 4, 6, 4]
希望对您有所帮助。此致。