Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Signal Processing > correlation_convolution > convol

convol

Свёртка

Синтаксис

y = convol(h, x)
[y,e1] = convol(h, x, e0)

Аргументы

h

вектор, первая входная последовательность ("короткая");

x

вектор, вторая входная последовательность ("длинная");

e0

вектор, старый остаток для добавления перекрытия (не используется в первом вызове);

y

вектор, свёртка;

e1

новый остаток для добавления перекрытия (не используется в последнем вызове).

Описание

Вычисляет свёртку y= h*x двух дискретных последовательностей с помощю БПФ (fft). Свёртка определяется следующим образом:

y_k = sum_j( h_j * x_{k+1-j} )

Может быть использован метод добавления перекрытия.

ИСПОЛЬЗОВАНИЕ МЕТОДА ДОБАВЛЕНИЯ ПЕРЕКРЫТИЯ: Для x = [x1, x2,..., xNm1, xN] Первый вызов: [y1, e1] = convol(h, x1); Последующие вызовы: [yk, ek] = convol(h, xk, ekm1); Последний вызов: [yN] = convol(h, xN, eNm1); Наконец y = [y1, y2,..., yNm1, yN].

Алгоритм, основанный на определении свёртки, реализован для произведения полиномов: y = convol(h, x) эквивалентен y = coeff(poly(h,'z','c') * poly(x,'z','c')), но гораздо более эффективен, если x является "длинным" массивом.

Примеры

x = 1:3;
h1 = [1,0,0,0,0];
h2 = [0,1,0,0,0];
h3 = [0,0,1,0,0];
x1 = convol(h1, x)
x2 = convol(h2, x)
x3 = convol(h3, x)
convol(h1+h2+h3, x)
p1 = poly(x,'x','coeff')
p2 = poly(h1+h2+h3, 'x', 'coeff')
p1 * p2

Смотрите также

  • corr — корреляция, ковариация
  • fft — прямое или обратное Быстрое Преобразование Фурье вектора, матрицы или гиперматрицы
  • pspect — двусторонняя кросс-спектральная оценка между 2 дискретными во времени сигналами, исполmзуя метод усреднения периодограммы Уэлча.
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:39:55 CET 2022