Кронекерова функция дельты
kroneckerDelta(m)kroneckerDelta(m,n)Для kroneckerDelta с числовыми входными параметрами используйте функцию eq вместо этого.
Установите символьную переменную m, равную символьной переменной n, и протестируйте их равенство с помощью kroneckerDelta.
syms m n m = n; kroneckerDelta(m,n)
ans = 1
kroneckerDelta возвращает 1, указывающий, что входные параметры равны.
Сравните символьные переменные p и q.
syms p q kroneckerDelta(p,q)
ans = kroneckerDelta(p - q, 0)
kroneckerDelta не может решить, возвращает ли p == q и вызов функции с неразрешимым входом. Обратите внимание на то, что kroneckerDelta(p, q) равен kroneckerDelta(p - q, 0).
Чтобы обеспечить логический результат для неразрешимых входных параметров, используйте isAlways. Функция isAlways выдает предупреждение и возвращает логический 0 (false) для неразрешимых входных параметров. Установите опцию Unknown на false подавлять предупреждение.
isAlways(kroneckerDelta(p, q), 'Unknown', 'false')
ans = logical 0
Установите символьную переменную m на 0 и протестируйте m на равенство с 0. Ошибки функции kroneckerDelta, потому что это не принимает числовые входные параметры типа double.
m = 0; kroneckerDelta(m)
Undefined function 'kroneckerDelta' for input arguments of type 'double'.
Используйте sym, чтобы преобразовать 0 в символьный объект прежде, чем присвоить его m. Это вызвано тем, что kroneckerDelta только принимает символьные входные параметры.
syms m m = sym(0); kroneckerDelta(m)
ans = 1
kroneckerDelta возвращает 1, указывающий, что m равен 0. Обратите внимание на то, что kroneckerDelta(m) равен kroneckerDelta(m, 0).
Сравните вектор чисел [1 2 3 4] с символьной переменной m. Установите m на 3.
V = 1:4 syms m m = sym(3) sol = kroneckerDelta(V,m)
V =
1 2 3 4
m =
3
sol =
[ 0, 0, 1, 0]kroneckerDelta действует на V, поэлементный, чтобы возвратить вектор, sol, который одного размера как V. Третьим элементом sol является 1, указывающий, что третий элемент V равняется m.
Сравните матрицы A и B.
Объявите матрицы A и B.
syms m A = [m m+1 m+2;m-2 m-1 m] B = [m m+3 m+2;m-1 m-1 m+1]
A = [ m, m + 1, m + 2] [ m - 2, m - 1, m] B = [ m, m + 3, m + 2] [ m - 1, m - 1, m + 1]
Сравните A и B с помощью kroneckerDelta.
sol = kroneckerDelta(A,B)
sol = [ 1, 0, 1] [ 0, 1, 0]
kroneckerDelta действует на A и B, поэлементный, чтобы возвратить матричный sol, который одного размера как A и B. Элементы sol, которые являются 1, указывают, что соответствующие элементы A и B равны. Элементы sol, которые являются 0, указывают, что соответствующие элементы A и B не равны.
kroneckerDelta появляется в выводе iztrans.
syms z n sol = iztrans(1/(z-1), z, n)
sol = 1 - kroneckerDelta(n, 0)
Используйте этот вывод в качестве входа к ztrans, чтобы возвратить начальное входное выражение.
ztrans(sol, n, z)
ans = z/(z - 1) - 1
Используйте filter, чтобы найти ответ фильтра, когда вход будет функцией Delta Кронекера. Преобразуйте k в символьный вектор с помощью sym, потому что kroneckerDelta только принимает символьные входные параметры, и преобразуйте его назад, чтобы удвоить использование double. Предоставьте произвольным коэффициентам фильтра a и b для простоты.
b = [0 1 1]; a = [1 -0.5 0.3]; k = -20:20; x = double(kroneckerDelta(sym(k))); y = filter(b,a,x); plot(k,y)
