dsp.VariableFractionalDelay

Задержка входа на изменяющийся во времени дробный номер периодов расчета

Описание

Примечание

DirectFeedthrough свойство было удалено. Удалите все экземпляры этого свойства в вашем коде MATLAB®. Для получения дополнительной информации см. Вопросы совместимости.

dsp.VariableFractionalDelay Система object™ задерживает входной сигнал конкретным количеством дробных выборок вдоль каждого канала входа. Объект может также одновременно вычислить несколько задержанных версий (касания) того же сигнала. Для примера смотрите, что Задержка Сигнала Использует Мультикасание Дробная Задержка.

Объект интерполирует входной сигнал, чтобы получить новые выборки в интервалах выборки нецелого числа. Можно установить свойство InterpolationMethod на 'Linear', 'FIR', или 'Farrow'. Поддержка объектов изменяющиеся во времени значения задержки. Таким образом, значение задержки может меняться в системе координат от выборки до выборки. Можно также задать максимальное значение задержки при помощи свойства MaximumDelay. Задержите значения, больше, чем максимум отсекается к максимуму.

Задержать вход изменяющимся во времени дробным номером периодов расчета:

  1. Создайте dsp.VariableFractionalDelay объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

пример

vfd = dsp.VariableFractionalDelay создает переменный дробный Системный объект задержки, который задерживает дискретное время, введенное изменяющимся во времени дробным номером периодов расчета, как задано вторым входом.

vfd = dsp.VariableFractionalDelay(Name,Value) создает переменный дробный Системный объект задержки с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки.

Пример: dsp. VariableFractionalDelay ('MaximumDelay', 50);

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Метод интерполяции, заданной как одно из следующих. Используя этот метод, объект интерполирует сигнал получить новые выборки в интервалах выборки нецелого числа.

  • 'Linear' – Объект использует линейную интерполяцию.

  • 'FIR' – Объект реализует многофазный КИХ-фильтр интерполяции, чтобы интерполировать значения.

  • 'Farrow' – Объект использует Лагранжев метод, чтобы интерполировать значения.

Для получения дополнительной информации об этих методах см. Алгоритмы.

Поясной из КИХ-фильтра интерполяции, заданного как положительное целое число в области значений [1 65535].

Для периодических сигналов большее значение этого свойства, которое указывает на фильтр высшего порядка, дает к лучшей оценке задержанной выходной выборки. Значение свойства 4 - 6, который соответствует 7-му порядку к фильтру 11-го порядка, обычно соответствует.

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'FIR'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi

Длина КИХ-фильтра, реализованного с помощью структуры Фэрроу, заданной как целое число, больше, чем или равный 2. Если длина равняется 2, фильтр выполняет линейную интерполяцию. Значение длины фильтра определяет порядок полинома, используемого в лагранжевой интерполяции.

Пример 4

Пример: 10

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'Farrow'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Количество точек интерполяции на входную выборку, на которой вычисляется уникальный КИХ-фильтр интерполяции, задало как положительное целое число в области значений [2 65535].

Пример: 20

Пример 5

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'FIR'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Нормированная входная пропускная способность, в которой можно ограничить интерполированные выходные выборки, заданные как действительный скаляр в области значений (0 1]. Значение 1 равняется частоте Найквиста или половине частоты дискретизации, Fs. Используйте это свойство использовать в своих интересах bandlimited содержимое частоты входа. Например, если входной сигнал не имеет содержимого частоты выше Fs/4, можно задать значение 0.5.

Пример: 0.5

Пример: 0.8

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'FIR'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi

Начальные значения в памяти об объекте, заданном как скаляр или массив. Размерности этого свойства могут варьироваться в зависимости от того, хотите ли вы зафиксированные или изменяющиеся во времени начальные условия. Объект обрабатывает каждый из столбцов входа N как система координат, содержащая M последовательные выборки времени от независимого канала.

Для M-by-N входная матрица, U, можно установить InitialConditions свойство можно следующим образом:

  • Чтобы задать зафиксированные начальные условия, задайте InitialConditions как скалярное значение. Объект инициализирует каждую выборку каждого канала в памяти с помощью значения, которое вы задаете.

  • Размерности, которые вы задаете для изменяющихся во времени начальных условий, зависят от значения свойства InterpolationMethod.

    • Когда InterpolationMethod установлен в 'Linear', задайте InitialConditions как 1- N D, где D является значением свойства MaximumDelay.

    • Когда InterpolationMethod установлен в 'FIR' или 'Farrow', задайте InitialConditions как 1-by-N-by-(D +L) массив, где D является значением MaximumDelay свойство. Для КИХ-интерполяции L является значением FilterHalfLength свойство. Для Неоплодотворенной интерполяции L равняется floor из половины значения FilterLength свойство: floor(FilterLength/2).

Пример 1

Пример: randn (1 3 104)

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Максимальная задержка, которую объект может произвести для любой выборки, заданной как целое число в области значений [0 65535]. Объект отсекает входные значения задержки, больше, чем MaximumDelay к тому максимальному значению.

Пример: 100

Пример: 10

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Меры, принятые для маленького входа, задерживают значения, когда объект использует КИХ-метод интерполяции.

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'FIR'.

Меры, принятые для маленького входа, задерживают значения, когда объект использует неоплодотворенный метод интерполяции.

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство InterpolationMethod на 'Farrow'.

Свойства фиксированной точки

Режим Rounding для операций фиксированной точки, заданных как одно из следующего:

  • 'Zero'

  • 'Ceiling'

  • 'Convergent'

  • 'Floor'

  • 'Nearest'

  • 'Round'

  • 'Simplest'

Для получения дополнительной информации смотрите округление режима.

Действие переполнения для операций фиксированной точки, заданных как одно из следующего:

  • 'Wrap' – Объект переносит результат своих операций фиксированной точки.

  • 'Saturate' – Объект насыщает результат своих операций фиксированной точки.

Для получения дополнительной информации о действиях переполнения смотрите режим переполнения для операций фиксированной точки.

Тип данных коэффициентов в этом объекте, заданном как одно из следующего:

  • 'Same word length as input' – Объект задает содействующий размер слова, чтобы совпасть с тем из входа. Дробная длина вычисляется, чтобы получить самую лучшую точность.

  • 'Custom' – Содействующий тип данных задан как пользовательский числовой тип через свойство CustomCoefficientsDataType.

Для получения дополнительной информации о содействующем типе данных этот объект использование смотрите раздел Fixed Point.

Содействующее слово и дробные длины, заданные как числовой тип автосо знаком с размером слова 32.

Пример: numerictype ([], 16)

Зависимости

Это свойство применяется только, когда вы устанавливаете CoefficientsDataType на 'Custom'.

Тип данных значения полинома продукта, заданного как одно из следующего:

  • 'Same as first input' – Объект задает тип данных значения полинома продукта, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип данных значения полинома продукта задан как пользовательский числовой тип через свойство CustomProductPolynomialValueDataType.

Для получения дополнительной информации о типе данных значения полинома продукта этот объект использование смотрите раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете InterpolationMethod на 'Farrow'.

Word и дробные продолжительности значения полинома продукта, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете InterpolationMethod на 'Farrow' и ProductPolynomialValueDataType к 'Custom'.

Тип данных значения полинома аккумулятора, заданного как одно из следующего:

  • 'Same as first input' – Объект задает тип данных значения полинома аккумулятора, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип данных значения полинома аккумулятора задан как пользовательский числовой тип через свойство CustomAccumulatorPolynomialValueDataType.

Для получения дополнительной информации о типе данных значения полинома аккумулятора, который использует этот объект, смотрите раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете InterpolationMethod на 'Farrow'.

Word и дробные продолжительности значения полинома аккумулятора, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете InterpolationMethod на 'Farrow' и AccumulatorPolynomialValueDataType к 'Custom'.

Тип данных значения полинома множимого, заданного как одно из следующего:

  • 'Same as first input' – Объект задает тип данных значения полинома множимого, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип данных значения полинома множимого задан как пользовательский числовой тип через свойство CustomMultiplicandPolynomialValueDataType.

Для получения дополнительной информации о типе данных значения полинома множимого, который использует этот объект, смотрите раздел Fixed Point.

Зависимости

Это свойство применяется, когда вы устанавливаете InterpolationMethod на 'Farrow'.

Word и дробные продолжительности значения полинома множимого, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете InterpolationMethod на 'Farrow' и MultiplicandPolynomialValueDataType к 'Custom'.

Тип данных продукта выход в этом объекте, заданном как одно из следующего:

  • 'Same as first input' – Объект задает тип выходных данных продукта, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип выходных данных продукта задан как пользовательский числовой тип через свойство CustomProductDataType.

Для получения дополнительной информации о типе выходных данных продукта смотрите Типы данных Умножения и раздел Fixed Point.

Word и дробные длины типа данных продукта, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете ProductDataType на 'Custom'.

Тип данных операции накопления в этом объекте, заданном как одно из следующего:

  • 'Same as product' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из типа выходных данных продукта.

  • 'Same as first input' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип данных аккумулятора задан как пользовательский числовой тип через свойство CustomAccumulatorDataType.

Для получения дополнительной информации о типе данных аккумулятора этот объект использование смотрите Фиксированную точку.

Word и дробные длины типа данных аккумулятора, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете AccumulatorDataType на 'Custom'.

Тип данных объектного выхода, заданного как одно из следующего:

  • 'Same as accumulator' – Объект задает тип выходных данных, чтобы совпасть с тем из типа выходных данных аккумулятора.

  • 'Same as first input' – Объект задает тип выходных данных, чтобы совпасть с тем из ввода данных.

  • 'Custom' – Тип выходных данных задан как пользовательский числовой тип через свойство CustomOutputDataType.

Для получения дополнительной информации о выходных данных введите этот объект использование, смотрите раздел Fixed Point.

Word и дробные длины типа выходных данных, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 10.

Пример: numerictype ([], 30,5)

Зависимости

Это свойство применяется только, когда вы устанавливаете OutputDataType на 'Custom'.

Использование

Синтаксис

Описание

пример

vfdOut = vfd(input,d) задерживает вход к переменному дробному Системному объекту задержки d выборки. d должно быть меньше чем или равно значению, которое вы задаете в свойстве MaximumDelay объекта.

Задержите значения, больше, чем заданная максимальная задержка отсекается соответственно. Каждый столбец входа обработан как независимый канал.

Входные параметры

развернуть все

Ввод данных, заданный как вектор или матрица. Ввод данных должен иметь совпадающий тип данных как задержку входа.

Этот входной сигнал переменного размера поддержки объектов. Таким образом, можно изменить размер входного кадра (количество строк) даже после вызова алгоритма. Однако количество каналов должно остаться постоянным. Для примера смотрите Поддержку Сигнала Переменного Размера Входа и Задержите Сигналы.

Пример: [1 2 3 4; 5 1 4 2; 2 6 2 3; 1 2 3 2; 3 4 5 6; 1 2 3 1]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

Задержка входа, заданная как скаляр, вектор, матрица или N-D массив. Задержка может быть целым числом или дробным значением. Когда задержка входа является дробным значением, объект интерполирует сигнал получить новые выборки в интервалах выборки нецелого числа. Задержка входа должна иметь совпадающий тип данных как ввод данных.

Этот переменный размер поддержки объектов задерживает сигнал. Таким образом, можно измениться один или обе из размерностей сигнала задержки после вызова алгоритма. Однако объект должен убедиться, что получившееся количество выходных каналов остается постоянным. Для примера смотрите Поддержку Сигнала Переменного Размера Входа и Задержите Сигналы.

Таблица показывает эффект размерности задержки входа на вводе данных.

Ввод данныхЗадержка входаВывод Эффект задержки входа на вводе данных
N-by-1 (один канал с форматом кадра равняются N),скалярN-by-1Одно значение задержки применилось к входному каналу
N-by-1 (один канал с форматом кадра равняются N),N-by-1N-by-1Задержитесь значение варьируется в системе координат от выборки до выборки
N-by-1 (один канал с форматом кадра равняются N),1 PN-by-PP касается на канал. Каждый столбец в выходе является задержанной версией входа. Значение задержки задано соответствующим элементом в векторе задержки входа.
N-by-1 (один канал с форматом кадра равняются N),N-by-PN-by-PP касается на канал. Кроме того, задержка варьируется в каждой системе координат от выборки до выборки.
N-by-L (L образовывает канал с форматом кадра, равным N),скалярN-by-LОдно значение задержки применилось ко всем входным каналам
N-by-L (L образовывает канал с форматом кадра, равным N),1 LN-by-LУникальное значение задержки для каждого входного канала
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-1N-by-LЗадержитесь значение варьируется в системе координат от выборки до выборки. Тот же набор значений задержки для всех каналов.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-LN-by-LЗадержитесь значение варьируется в системе координат от выборки до выборки. Различные значения задержки для каждого входного канала.
N-by-L (L образовывает канал с форматом кадра, равным N),1 1 PN-by-L-by-PКаналы L. P касается на канал. Та же задержка всех каналов.
N-by-L (L образовывает канал с форматом кадра, равным N),1 L PN-by-L-by-PКаналы L. P касается на канал. Задержка варьируется через каналы.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-1-by-PN-by-L-by-PКаналы L. P касается на канал. Задержка варьируется в системе координат от выборки до выборки. Тот же набор значений задержки для каждого канала.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-L-by-PN-by-L-by-PКаналы L. P касается на канал. Задержка варьируется в системе координат от выборки до выборки. Различный набор значений задержки для каждого канала.

Пример: [2 3 4 5]

Пример: [2.5]

Пример: [5.6]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

Выходные аргументы

развернуть все

Задержанный выходной параметр, возвращенный как вектор или матрица. Размер, тип данных и сложность выхода совпадают с размером, типом данных и сложностью ввода данных.

Таблица показывает, как ввод данных и размерности задержки входа влияют на выходные размерности:

Ввод данныхЗадержка входаВывод Эффект задержки входа на вводе данных
N-by-1 (один канал с форматом кадра равняются N),скалярN-by-1Одно значение задержки применилось к входному каналу
N-by-1 (один канал с форматом кадра равняются N),N-by-1N-by-1Задержитесь значение варьируется в системе координат от выборки до выборки
N-by-1 (один канал с форматом кадра равняются N),1 PN-by-PP касается на канал. Каждый столбец в выходе является задержанной версией входа. Значение задержки задано соответствующим элементом в векторе задержки входа.
N-by-1 (один канал с форматом кадра равняются N),N-by-PN-by-PP касается на канал. Кроме того, задержка варьируется в каждой системе координат от выборки до выборки.
N-by-L (L образовывает канал с форматом кадра, равным N),скалярN-by-LОдно значение задержки применилось ко всем входным каналам
N-by-L (L образовывает канал с форматом кадра, равным N),1 LN-by-LУникальное значение задержки для каждого входного канала
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-1N-by-LЗадержитесь значение варьируется в системе координат от выборки до выборки. Тот же набор значений задержки для всех каналов.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-LN-by-LЗадержитесь значение варьируется в системе координат от выборки до выборки. Различные значения задержки для каждого входного канала.
N-by-L (L образовывает канал с форматом кадра, равным N),1 1 PN-by-L-by-PКаналы L. P касается на канал. То же касание для всех каналов.
N-by-L (L образовывает канал с форматом кадра, равным N),1 L PN-by-L-by-PКаналы L. P касается на канал. Касания варьируются через каналы.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-1-by-PN-by-L-by-PКаналы L. P касается на канал. Задержка варьируется в системе координат от выборки до выборки. Тот же набор значений задержки для каждого канала.
N-by-L (L образовывает канал с форматом кадра, равным N),N-by-L-by-PN-by-L-by-PКаналы L. P касается на канал. Задержка варьируется в системе координат от выборки до выборки. Различный набор значений задержки для каждого канала.

Пример: [0 0 0 0; 0 0 0 0; 1 0 0 0; 5 2 0 0; 2 1 3 0; 1 6 4 4]

Пример: [0 0 0 0; 0 0 0 0; 0.5 1.0 1.5 2.0; 3 1.5 3.5 3.0; 3.5 3.5 3.0 2.5; 1.5 4.0 2.5 2.5]

Пример: [0 0 0 0; 0 0 0 0; 0 0 0 0; 0 0 0 0; 0 0 0 0; 0.4 0.8 1.2 1.6]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

infoХарактеристическая информация о допустимой области значений задержки
generatehdlСгенерируйте HDL-код для квантованного фильтра DSP (требует Filter Design HDL Coder),
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

Задержите сигнал различным дробным номером периодов расчета.

sr = dsp.SignalSource;
vfd = dsp.VariableFractionalDelay;
sink = dsp.SignalSink;

for ii = 1:10
    delayedsig = vfd(sr(), ii/10);
    sink(delayedsig);
end

sigd = sink.Buffer;

Выход sigd соответствует значениям задержанного сигнала, которые производятся в фиксировано-разовых интервалах. Чтобы построить моменты времени, в которые амплитуды выборок сигнала являются постоянными, обработайте сигналы как моменты выборки.

stem(sr.Signal, 1:10, 'b')
hold on;
stem(sigd.', 1:10, 'r');
legend('Original signal', ...
    'Variable fractional delayed signal', ...
    'Location','best')

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом шага. Например, obj (x) становится шагом (obj, x).

Задержите входной сигнал с помощью dsp.VariableFractionalDelay объект. Каждое значение задержки уникально и может варьироваться от выборки до выборки в системе координат и может варьироваться через каналы. Можно вычислить несколько задержанных версий того же входного сигнала одновременно путем передачи задержки входа с соответствующей размерностью.

Полагайте, что вход случайный сигнал с одним каналом и форматом кадра 10. Примените задержку 4,8 и 8,2 выборок одновременно.

vfd = dsp.VariableFractionalDelay
vfd = 
  dsp.VariableFractionalDelay with properties:

    InterpolationMethod: 'Linear'
      InitialConditions: 0
           MaximumDelay: 100

  Show all properties

in = randn(10,1)
in = 10×1

    0.5377
    1.8339
   -2.2588
    0.8622
    0.3188
   -1.3077
   -0.4336
    0.3426
    3.5784
    2.7694

delayVec = [4.8 8.2];
outcase1 = vfd(in,delayVec)
outcase1 = 10×2

         0         0
         0         0
         0         0
         0         0
    0.1075         0
    0.7969         0
    1.0153         0
   -1.6346         0
    0.7535    0.4301
   -0.0065    1.5746

Каждый канал в выходе задерживается 4,8 и 8,2 выборками, соответственно. Объект использует 'Линейный' метод интерполяции вычислить задержанное значение. Для получения дополнительной информации см. 'Алгоритмы' в dsp.VariableFractionalDelay object page.

Для того же вектора задержки, если вход имеет 2 канала, каждый элемент вектора задержки применяется на соответствующий канал во входе.

release(vfd);
in = randn(10,2)
in = 10×2

   -1.3499    0.6715
    3.0349   -1.2075
    0.7254    0.7172
   -0.0631    1.6302
    0.7147    0.4889
   -0.2050    1.0347
   -0.1241    0.7269
    1.4897   -0.3034
    1.4090    0.2939
    1.4172   -0.7873

outcase2 = vfd(in,delayVec)
outcase2 = 10×2

         0         0
         0         0
         0         0
         0         0
   -0.2700         0
   -0.4729         0
    2.5730         0
    0.5677         0
    0.0925    0.5372
    0.5308   -0.8317

Чтобы вычислить несколько задержанных версий двумерного входного сигнала, передайте вектор задержки как 3D массив. Третья размерность содержит касания или задержки, чтобы применяться на сигнал. Если вы передаете неодноэлементную размерность трети (1 1 P), где P представляет количество касаний, то же касание применяется через все каналы. Передайте задержки [4.8 8.2] в третьей размерности.

clear delayVec;
delayVec(1,1,1) = 4.8;
delayVec(1,1,2) = 8.2;
whos delayVec
  Name          Size             Bytes  Class     Attributes

  delayVec      1x1x2               16  double              

delayVec 1 1 2 массивами. Передайте двумерный вход dsp.VariableFractionalDelay объект с этим вектором задержки.

release(vfd);
outcase3 = vfd(in,delayVec)
outcase3 = 
outcase3(:,:,1) =

         0         0
         0         0
         0         0
         0         0
   -0.2700    0.1343
   -0.4729    0.2957
    2.5730   -0.8225
    0.5677    0.8998
    0.0925    1.4020
    0.5308    0.5981


outcase3(:,:,2) =

         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
         0         0
   -1.0799    0.5372
    2.1580   -0.8317

whos outcase3
  Name           Size             Bytes  Class     Attributes

  outcase3      10x2x2              320  double              

outcase3(:,:,1) представляет входной сигнал, задержанный 4,8 выборками. outcase3(:,:,2) представляет входной сигнал, задержанный 8,2 выборками. Та же задержка применяется через все каналы.

Кроме того, если вы передаете неодноэлементное второе измерение (1 L P), где L является количеством входных каналов, касания варьируются через каналы. Примените векторы задержки [2.3 3.5] и [4.4 5.6], чтобы вычислить две задержанных версии входного сигнала.

clear delayVec;
delayVec(1,1,1) = 2.3;
delayVec(1,2,1) = 3.5;
delayVec(1,1,2) = 4.4;
delayVec(1,2,2) = 5.6;
whos delayVec
  Name          Size             Bytes  Class     Attributes

  delayVec      1x2x2               32  double              
release(vfd);
outcase4 = vfd(in,delayVec)
outcase4 = 
outcase4(:,:,1) =

         0         0
         0         0
   -0.9449         0
    1.7195    0.3357
    1.4183   -0.2680
    0.1735   -0.2451
    0.4814    1.1737
    0.0709    1.0596
   -0.1484    0.7618
    1.0055    0.8808


outcase4(:,:,2) =

         0         0
         0         0
         0         0
         0         0
   -0.8099         0
    1.2810    0.2686
    1.6492   -0.0801
    0.2523   -0.4376
    0.4036    1.0824
    0.1629    1.1737

whos outcase4
  Name           Size             Bytes  Class     Attributes

  outcase4      10x2x2              320  double              

outcase4(:,:,1) содержит входной сигнал, задержанный вектором [2.3 3.5]. outcase4(:,:,2) содержит входной сигнал, задержанный вектором [4.4 5.6].

Чтобы варьироваться задержка в системе координат от выборки до выборки, первая размерность вектора задержки (N 1 P или N L P) должна равняться формату кадра входа (N-by-L). Передайте вектор задержки размера 10 1 2.

clear delayVec;
delayVec(:,1,1) = 3.1:0.1:4;
delayVec(:,1,2) = 0.1:0.1:1;
whos delayVec
  Name           Size             Bytes  Class     Attributes

  delayVec      10x1x2              160  double              
release(vfd);
outcase5 = vfd(in,delayVec)
outcase5 = 
outcase5(:,:,1) =

         0         0
         0         0
         0         0
   -0.8099    0.4029
    0.8425   -0.2680
    2.1111   -0.4376
    0.4889    0.9911
    0.0925    1.4020
    0.6228    0.5435
   -0.2050    1.0347


outcase5(:,:,2) =

   -1.2149    0.6043
    2.1580   -0.8317
    1.4183    0.1398
    0.2523    1.2650
    0.3258    1.0596
    0.3469    0.7072
   -0.1807    0.9424
    0.1986    0.5208
    1.4816   -0.2437
    1.4090    0.2939

Задержка варьируется через каждый элемент по каналу. Тот же набор значений задержки применяется через все каналы. delayVec(:,1,1) применяется к первому задержанному сигналу и delayVec(:,1,2) применяется к второму задержанному сигналу.

dsp.VariableFractionalDelay Системный объект поддерживает вход переменного размера, и задержите сигналы. Таким образом, можно изменить размерность входного сигнала и сигнала задержки даже после вызова алгоритма. Можно изменить размерности одной или обоих сигналы одновременно. Вместе, они должны убедиться, что количество выходных каналов (количество столбцов) остается постоянным.

Поддержка переменного размера входного сигнала

Количество выборок в каждой системе координат входного сигнала может измениться. Однако количество входных каналов должно остаться постоянным.

Создайте dsp.VariableFractionalDelay объект. Передайте входной сигнал размера [256 1] и задержка 1,4 к объектному алгоритму. В последующих вызовах алгоритма измените размер входного кадра в 128, 512, и 64, соответственно

vfd = dsp.VariableFractionalDelay;
vfd(randn(256,1),1.4);
vfd(randn(128,1),1.4);
vfd(randn(512,1),1.4);
vfd(randn(64,1),1.4);

Выходной формат кадра (количество строк) изменяется согласно размеру входного кадра. Количество выходных каналов в каждом из этих случаев равняется 1.

Чтобы изменить количество входных каналов, выпустите объект.

release(vfd);

Вызовите алгоритм с двухканальным входом и варьируйтесь размер входного кадра по последующим вызовам.

vfd(randn(256,2),1.4);
vfd(randn(128,2),1.4);

Поддержка переменного размера задерживает сигнал

В дополнение к входу может также варьироваться сигнал задержки. Таким образом, можно измениться один или обе из размерностей сигнала задержки после вызова алгоритма. Однако объект должен убедиться, что получившееся количество выходных каналов остается постоянным. Сигнал задержки может быть скаляром, вектором, матрицей или массивом N-D.

release(vfd);
vfd(randn(512,2),randn(512,2));
vfd(randn(128,2),[1.4 1.7]);
vfd(randn(256,2),randn(256,1));
vfd(randn(128,2),1.4);

В каждом из этих случаев количество выходных каналов равняется 2. Чтобы применить различные задержки на входной сигнал, выпустите объект.

release(vfd);
vfd(randn(256,1),randn(256,7));
vfd(randn(512,1),randn(512,7));
vfd(randn(100,1),randn(100,7));
vfd(randn(100,1),randn(1,7));

Выход в каждом из этих случаев [256 7], [512 7], [100 7], и [100 7], соответственно.

Алгоритмы

развернуть все

Когда вы задаете дробное значение задержки, алгоритм использует линейное, КИХ или метод интерполяции Фэрроу интерполировать значения сигналов в демонстрационных интервалах нецелого числа.

Вопросы совместимости

развернуть все

Ошибки, запускающиеся в R2018a

Расширенные возможности

Представленный в R2012a