Свертка и умножение полиномов объектов fi
c = conv(a,b)
c = conv(a,b,'shape')
c = conv(a,b)
выводит свертку входных векторов a
и b
, по крайней мере один из которых должен быть объектом fi
.
c = conv(a,b,'shape')
возвращает часть свертки, как задано параметром shape
:
полный
Возвращает полную свертку. Эта опция является формой по умолчанию.
same
— Возвращает центральную часть свертки, которая одного размера как входной вектор a
.
valid
— Возвращает только те части свертки, которую функция вычисляет без дополненных нулем ребер. В этом случае длиной выходного вектора c
является max(length(a)-max(0,length(b)-1), 0)
.
Свойства fimath
, сопоставленные с входными параметрами, определяют свойства numerictype
объекта c
вывода fi
:
Если или a
или b
имеют локальный объект fimath
, conv
использует тот объект fimath
вычислить промежуточные количества и определить свойства numerictype
c
.
Если ни a
, ни b
не имеют присоединенный fimath, conv
использует значение по умолчанию fimath, чтобы вычислить промежуточные количества и определить свойства numerictype
c
.
Если любой вход является встроенным типом данных, conv
бросает его в объект fi
, использующий правила лучшей точности перед выполнением операции свертки.
Объект c
вывода fi
всегда использует значение по умолчанию fimath.
Обратитесь к странице с описанием MATLAB® conv
для получения дополнительной информации об алгоритме свертки.
Следующий пример иллюстрирует свертку последовательности с 22 выборками с КИХ-фильтром с 16 касаниями.
x
является последовательностью с 22 выборками значений со знаком с размером слова 16 битов и дробной длиной 15 битов.
h
является 16 КИХ-фильтрами касания.
u = (pi/4)*[1 1 1 -1 -1 -1 1 -1 -1 1 -1]; x = fi(kron(u,[1 1])); h = firls(15, [0 .1 .2 .5]*2, [1 1 0 0]);
Поскольку x
является объектом fi
, вы не должны бросать h
в объект fi
прежде, чем выполнить операцию свертки. Функция conv
делает настолько использующее масштабирование лучшей точности.
Наконец, используйте функцию conv
, чтобы применить операцию свертки к этим двум векторам:
y = conv(x,h);
Операция приводит к объекту fi
со знаком y
с размером слова 36 битов и дробной длиной 31 бита. Свойства fimath
по умолчанию, сопоставленные с входными параметрами, определяют numerictype
вывода. Вывод не имеет локального fimath
.