dsp.VariableFractionalDelay

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

Описание

Примечание

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

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

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

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

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

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

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

Создание

Описание

пример

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

Длина конечной импульсной характеристики, реализованная с использованием структуры Farrow, заданная как целое число, больше или равное 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. Используйте это свойство, чтобы использовать ограниченное по диапазону содержимое частоты входного входа. Для примера, если входной сигнал не имеет содержимого частоты выше 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 свойство. Для конечной импульсной характеристики интерполяции L является значением FilterHalfLength свойство. Для интерполяции Farrow 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'.

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

Зависимости

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

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

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

  • 'Zero'

  • 'Ceiling'

  • 'Convergent'

  • 'Floor'

  • 'Nearest'

  • 'Round'

  • 'Simplest'

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

  • 'Custom' - Мультипликационный и полиномиальный тип значения данных задается как пользовательский числовой тип через свойство CustomMultiplicandPolynomialValueDataType.

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

Зависимости

Это свойство применяется только, когда вы задаете значение AccumulatorDataType '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 -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-by- 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- PL каналы. P отводы на канал. Та же задержка для всех каналов.
N -by - L (L каналы с форматом кадра, равным N)1-by- L -by- PN -by- L -by- PL каналы. P отводы на канал. Задержка изменяется в разных каналах.
N -by - L (L каналы с форматом кадра, равным N)N -by-1-by- PN -by- L -by- PL каналы. P отводы на канал. Задержка изменяется в системе координат от выборки к выборке. Одинаковый набор значений задержки для каждого канала.
N -by - L (L каналы с форматом кадра, равным N)N -by- L -by- PN -by- L -by- PL каналы. 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 -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-by- 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- PL каналы. P отводы на канал. Одно и то же касание для всех каналов.
N -by - L (L каналы с форматом кадра, равным N)1-by- L -by- PN -by- L -by- PL каналы. P отводы на канал. Тапы варьируются в разных каналах.
N -by - L (L каналы с форматом кадра, равным N)N -by-1-by- PN -by- L -by- PL каналы. P отводы на канал. Задержка изменяется в системе координат от выборки к выборке. Одинаковый набор значений задержки для каждого канала.
N -by - L (L каналы с форматом кадра, равным N)N -by- L -by- PN -by- L -by- PL каналы. 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')

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], соответственно.

Алгоритмы

расширить все

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

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

расширить все

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

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

.
Введенный в R2012a