exponenta event banner

dsp. VariableFractionalDelay

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

Описание

Примечание

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

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

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

Для задержки ввода на изменяющееся во времени дробное число периодов выборки:

  1. Создать dsp.VariableFractionalDelay и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

пример

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

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

Пример: dsp. VariiveFracedDelay («Максимальная задержка», 50);

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

  • 'Farrow' - Объект использует метод LaGrange для интерполяции значений.

Дополнительные сведения об этих методах см. в разделе Алгоритмы.

Половина длины фильтра интерполяции FIR, заданная как положительное целое число в диапазоне [1 65535].

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

Зависимости

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

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

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

Пример: 4

Пример: 10

Зависимости

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

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

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

Пример: 20

Пример: 5

Зависимости

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

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

Нормализованная входная полоса пропускания для ограничения интерполированных выходных выборок, заданная как действительный скаляр в диапазоне (0 1]. Значение 1 равна частоте Найквиста, или половине частоты дискретизации, Fs. Используйте это свойство, чтобы использовать преимущество частотного содержания входного сигнала с ограниченной полосой частот. Например, если входной сигнал не имеет частотного содержания выше 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-by-N-by-D, где D - значение свойства MaximumDelay.

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

Пример: 1

Пример: рандан (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

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

Зависимости

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

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

Зависимости

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

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

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

  • 'Zero'

  • 'Ceiling'

  • 'Convergent'

  • 'Floor'

  • 'Nearest'

  • 'Round'

  • 'Simplest'

Дополнительные сведения см. в разделе Режим округления.

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

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

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

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

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

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

  • 'Custom' - Тип данных коэффициентов задается в качестве пользовательского числового типа с помощью свойства CustomExingDataType.

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

Длина слова и дроби коэффициента, заданная как автоматически обозначенный числовой тип с длиной слова 32.

Пример: числовой тип ([], 16)

Зависимости

Это свойство применяется только в том случае, если для параметра IntercedDataType установлено значение 'Custom'.

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

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

  • 'Custom' -- Тип данных полиномиального значения продукта задается как пользовательский числовой тип с помощью свойства CustomProductPolynomureStartDataType.

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

Зависимости

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

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

Пример: числовой тип ([], 30,5)

Зависимости

Это свойство применяется только при установке для InterpolationMethod значения 'Farrow' и тип данных ProductPolynomiveGroupDataType для 'Custom'.

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

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

  • 'Custom' -- Тип данных многочлена сумматора задается как пользовательский числовой тип с помощью свойства CustomAccumentityPolynomureGroupDataType.

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

Зависимости

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

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

Пример: числовой тип ([], 30,5)

Зависимости

Это свойство применяется только при установке для InterpolationMethod значения 'Farrow' и AccompulatePolynomicalGroupDataType для 'Custom'.

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

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

  • 'Custom' -- Тип данных множительного полиномного значения задается как пользовательский числовой тип с помощью свойства CustomMultiplicandPolynomureGroupDataType.

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

Зависимости

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

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

Пример: числовой тип ([], 30,5)

Зависимости

Это свойство применяется только при установке для InterpolationMethod значения 'Farrow' и MultiplicandPolynomiveGroupDataType для 'Custom'.

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

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

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

Дополнительные сведения о типе выходных данных продукта см. в разделах Типы данных умножения и Фиксированная точка.

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

Пример: числовой тип ([], 30,5)

Зависимости

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

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

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

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

  • 'Custom' -- Тип данных накопителя задается как пользовательский числовой тип с помощью свойства CustomAccumerCalculateDataType.

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

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

Пример: числовой тип ([], 30,5)

Зависимости

Это свойство применяется только в том случае, если для параметра AccumulateDataType установлено значение 'Custom'.

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

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

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

  • 'Custom' - Выходной тип данных задается как пользовательский числовой тип с помощью свойства CustomOutputDataType.

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

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

Пример: числовой тип ([], 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-by-PN-по-ПP отводов на канал. Каждый столбец в выходных данных является отложенной версией входных данных. Значение задержки задается соответствующим элементом входного вектора задержки.
N-by-1 (один канал с размером кадра, равным N)N-по-ПN-по-ПP отводов на канал. Кроме того, задержка варьируется в каждом кадре от выборки к выборке.
N-на-L (L каналов с размером кадра, равным N)скалярN-по-LОдно значение задержки, применяемое ко всем входным каналам
N-на-L (L каналов с размером кадра, равным N)1-by-LN-по-LУникальное значение задержки для каждого входного канала
N-на-L (L каналов с размером кадра, равным N)N-by-1N-по-LЗначение задержки изменяется в пределах кадра от выборки к выборке. Одинаковый набор значений задержки для всех каналов.
N-на-L (L каналов с размером кадра, равным N)N-по-LN-по-LЗначение задержки изменяется в пределах кадра от выборки к выборке. Различные значения задержки для каждого входного канала.
N-на-L (L каналов с размером кадра, равным N)1-by-1-by-PN-по-L-по-ПL каналов. P отводов на канал. Одинаковая задержка для всех каналов.
N-на-L (L каналов с размером кадра, равным N)1-by-L-by-PN-по-L-по-ПL каналов. P отводов на канал. Задержка изменяется в разных каналах.
N-на-L (L каналов с размером кадра, равным N)N-by-1-by-PN-по-L-по-ПL каналов. P отводов на канал. Задержка варьируется в пределах кадра от образца к образцу. Одинаковый набор значений задержки для каждого канала.
N-на-L (L каналов с размером кадра, равным N)N-по-L-по-ПN-по-L-по-П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-by-PN-по-ПP отводов на канал. Каждый столбец в выходных данных является отложенной версией входных данных. Значение задержки задается соответствующим элементом входного вектора задержки.
N-by-1 (один канал с размером кадра, равным N)N-по-ПN-по-ПP отводов на канал. Кроме того, задержка варьируется в каждом кадре от выборки к выборке.
N-на-L (L каналов с размером кадра, равным N)скалярN-по-LОдно значение задержки, применяемое ко всем входным каналам
N-на-L (L каналов с размером кадра, равным N)1-by-LN-по-LУникальное значение задержки для каждого входного канала
N-на-L (L каналов с размером кадра, равным N)N-by-1N-по-LЗначение задержки изменяется в пределах кадра от выборки к выборке. Одинаковый набор значений задержки для всех каналов.
N-на-L (L каналов с размером кадра, равным N)N-по-LN-по-LЗначение задержки изменяется в пределах кадра от выборки к выборке. Различные значения задержки для каждого входного канала.
N-на-L (L каналов с размером кадра, равным N)1-by-1-by-PN-по-L-по-ПL каналов. P отводов на канал. Одинаковое касание для всех каналов.
N-на-L (L каналов с размером кадра, равным N)1-by-L-by-PN-по-L-по-ПL каналов. P отводов на канал. Отводы различаются по каналам.
N-на-L (L каналов с размером кадра, равным N)N-by-1-by-PN-по-L-по-ПL каналов. P отводов на канал. Задержка варьируется в пределах кадра от образца к образцу. Одинаковый набор значений задержки для каждого канала.
N-на-L (L каналов с размером кадра, равным N)N-по-L-по-ПN-по-L-по-П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
Поддержка комплексного номера: Да

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

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

release(obj)

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

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

Примеры

свернуть все

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

Примечание.При использовании 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')

Figure contains an axes. The axes contains 2 objects of type stem. These objects represent Original signal, Variable fractional delayed signal.

Примечание.При использовании 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 отсчетов соответственно. Объект использует метод интерполяции «Linear» для вычисления задержанного значения. Дополнительные сведения см. в разделе «Алгоритмы» в 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

Для вычисления нескольких отложенных версий двухмерного входного сигнала передайте вектор задержки в виде трехмерного массива. Третье измерение содержит отводы или задержки, применяемые к сигналу. Если Вы передаете измерение трети неединичного предмета (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-by-1-by-P или N-на-L-на-P) должен быть равен размеру кадра на входе (N-на-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] соответственно.

Алгоритмы

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

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

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

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

Ошибки, начинающиеся с R2018a

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

.
Представлен в R2012a