Переменная дробная задержка
Задержка входного сигнала на изменяющееся во времени дробное число отсчетов.
Тип: VariableFractionalDelay
Путь в библиотеке:
|
Описание
Блок Переменная дробная задержка задерживает входной сигнал на заданное количество дробных отсчетов по каждому каналу входного сигнала. Блок также может одновременно вычислять несколько задержанных версий одного и того же сигнала.
Когда задержка имеет дробное значение, блок интерполирует входной сигнал, чтобы получить новые отсчеты с нецелыми интервалами дискретизации. Блок поддерживает изменяющиеся во времени значения задержки. То есть, значение задержки может меняться в пределах кадра от отсчета к отсчету.
Блок предполагает, что входные значения на порту Delay находятся между и . – это значение параметра Максимальная задержка (Dmax) в отсчётах. Если значение задержки больше , то оно заменяется на , равно 0.
При выборе допустимых значений Delay для режима интерполяции Фэрроу
необходимо учитывать дополнительные факторы. Подробности см. в разделе Метод интерполяции Фарроу.
Порты
Вход
#
In
—
входной сигнал
вектор
| матрица
Details
Входной сигнал, заданный в виде вектора или матрицы. Входной сигнал должен иметь тот же тип данных, что и сигнал задержки на входе Delay.
Типы данных |
|
Поддержка комплексных чисел |
Да |
#
Delay
—
сигнал задержки
скаляр
| вектор
| матрица
| N-мерный массив
Details
Сигнал задержки, заданный в виде скаляра, вектора, матрицы или -мерного массива. Задержка может быть целым или дробным числом. Блок интерполирует сигнал для получения новых отсчетов через нецелые интервалы дискретизации. Сигнал на входе Delay должен иметь тот же тип данных, что и сигнал на входе In.
В таблице ниже показано влияние размера входного сигнала задержки на входные данные, когда для параметра Обработка входных данных установлено значение Столбцы как каналы (кадровый режим)
.
Входной сигнал | Сигнал задержки | Выходной сигнал | Влияние сигнала задержки на выходной сигнал |
---|---|---|---|
на (один канал с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое к входному каналу. |
на (один канал с размером кадра, равным ) |
на |
на |
Для каждого отсчета сигнала применяется соответствующее значение задержки. |
на (один канал с размером кадра, равным ) |
на |
на |
Каждый столбец в выходных данных представляет собой входной сигнал с соответствующей задержкой. Величина задержки задается соответствующим элементом вектора задержки на входе. |
на (один канал с размером кадра, равным ) |
на |
на |
Кроме того, задержка варьируется в каждом кадре от отсчета к отсчету. |
на ( каналов с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое ко всем входным каналам. |
на ( каналов с размером кадра, равным ) |
на |
на |
Индивидуальное значение задержки для каждого входного канала. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Одинаковый набор значений задержки для всех каналов. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Различные значения задержки для каждого входного канала. |
В таблице ниже показано влияние размера входного сигнала задержки на входные данные, когда для параметра Обработка входных данных установлено значение Элементы как каналы (покоотсчётный режим)
.
Входной сигнал | Сигнал задержки | Выходной сигнал | Влияние сигнала задержки на выходной сигнал |
---|---|---|---|
на (один канал с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое к входному каналу. |
на (один канал с размером кадра, равным ) |
на |
на |
Для каждого отсчета сигнала применяется соответствующее значение задержки. |
на ( каналов с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое ко всем входным каналам. |
на ( каналов с размером кадра, равным ) |
на |
на |
Индивидуальное значение задержки для каждого входного канала. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Одинаковый набор значений задержки для всех каналов. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Различные значения задержки для каждого входного канала. |
Пример 1. |
|
Пример 2. |
|
Пример 3. |
|
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Выход
#
Out
—
задержанный выходной сигнал
вектор
| матрица
Details
Обработанный выходной сигнал, возвращаемый в виде вектора или матрицы. Тип и комплексность данных на выходе соответствуют типу и комплексности данных входному порту In.
В таблице ниже показано влияние размера входного сигнала задержки на входные данные, когда для параметра Обработка входных данных установлено значение Столбцы как каналы (кадровый режим)
.
Входной сигнал | Сигнал задержки | Выходной сигнал | Влияние сигнала задержки на выходной сигнал |
---|---|---|---|
на (один канал с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое к входному каналу. |
на (один канал с размером кадра, равным ) |
на |
на |
Для каждого отсчета сигнала применяется соответствующее значение задержки. |
на (один канал с размером кадра, равным ) |
на |
на |
Каждый столбец в выходных данных представляет собой входной сигнал с соответствующей задержкой. Величина задержки задается соответствующим элементом вектора задержки на входе. |
на (один канал с размером кадра, равным ) |
на |
на |
Кроме того, задержка варьируется в каждом кадре от отсчета к отсчету. |
на ( каналов с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое ко всем входным каналам. |
на ( каналов с размером кадра, равным ) |
на |
на |
Индивидуальное значение задержки для каждого входного канала. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Одинаковый набор значений задержки для всех каналов. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Различные значения задержки для каждого входного канала. |
В таблице ниже показано влияние размера входного сигнала задержки на входные данные, когда для параметра Обработка входных данных установлено значение Элементы как каналы (покоотсчётный режим)
.
Входной сигнал | Сигнал задержки | Выходной сигнал | Влияние сигнала задержки на выходной сигнал |
---|---|---|---|
на (один канал с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое к входному каналу. |
на (один канал с размером кадра, равным ) |
на |
на |
Для каждого отсчета сигнала применяется соответствующее значение задержки. |
на ( каналов с размером кадра, равным ) |
скаляр |
на |
Одно значение задержки, применяемое ко всем входным каналам. |
на ( каналов с размером кадра, равным ) |
на |
на |
Индивидуальное значение задержки для каждого входного канала. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Одинаковый набор значений задержки для всех каналов. |
на ( каналов с размером кадра, равным ) |
на |
на |
Значение задержки изменяется в пределах кадра от отсчета к отсчету. Различные значения задержки для каждого входного канала. |
Пример 1. |
|
Пример 2. |
|
Пример 3. |
|
Типы данных |
|
Поддержка комплексных чисел |
Да |
Параметры
Основные
#
Режим интерполяции —
метод интерполяции
Линейная
| Фэрроу
Details
Укажите метод интерполяции. Используя этот метод, блок интерполирует сигнал, чтобы получить новые отсчеты с нецелыми интервалами дискретизации. Варианты для выбора:
-
Линейная
– линейная интерполяция. В этом режиме блок сохраняет последних отсчетов, которые входной порт In получает для каждого канала, где – это значение параметра Максимальная задержка (Dmax) в отсчётах. -
Фэрроу
– метод Лагранжа. В этом режиме блок хранит самых последних отсчетов, полученных на порту In для каждого канала, здесь – это значение параметра Длина фильтра Фэрроу (N).
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Длина фильтра Фэрроу (N) —
длина фильтра Фарроу
Целое число типа Int64
Details
Длина КИХ-фильтра, реализованного с помощью структуры Фарроу. Если длина равна 2
, то фильтр выполняет линейную интерполяцию.
Зависимости
Чтобы использовать этот параметр, установите для параметра Режим интерполяции значение Фэрроу
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Максимальная задержка (Dmax) в отсчётах —
максимальная задержка
Целое число типа Int64
Details
Максимальная задержка, которую может произвести блок, . Значения задержки, превышающие этот максимум, обрезаются до .
Пример 1. |
|
Пример 2. |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Обработка входных данных —
метод обработки входных данных
Столбцы как каналы (кадровый режим)
| Элементы как каналы (покоотсчётный режим)
Details
Укажите, как блок должен обрабатывать входные данные. Вы можете установить для этого параметра значение:
-
Столбцы как каналы (кадровый режим)
(по умолчанию) – если выбрать этот метод, то блок обрабатывает каждый столбец входных данных как отдельный канал. Блок рассматривает каждый из столбцов входного сигнала как независимые каналы, содержащие последовательных отсчетов.Сигнал на входном порту Delay содержит значения с плавающей точкой, которые определяют количество отсчетов входного сигнала, к которым будет применяться задержка.
От размерности сигнала на порту Delay зависит метод обработки сигнала:
-
Если сигнал на порту Delay – скаляр, то он используется для равномерной задержки всех отсчетов в каждом канале.
-
Если сигнал на порту Delay – вектор-столбец длиной , то каждому отсчету входного сигнала соответствует свое значение задержки. В случае многоканального входа, один и тот же вектор задержек применяется к каждому каналу входного сигнала.
-
Если сигнал на порту Delay – строка длиной , то каждый элемент строки задержек соответствует своему каналу входного сигнала.
-
Если сигнал на порту Delay – матрица на , то она содержит различные задержки для каждого соответствующего элемента входного сигнала.
Например, если – это матрица размером на ,
[v(1) v(2) … v(Mi)]
, то к первому отсчету входного сигнала применяется задержкаv(1)
, ко второму –v(2)
и так далее. Блок применяет набор дробных задержек, содержащихся в , одинаково к каждому каналу многоканального входа. -
-
Элементы как каналы (покоотсчётный режим)
– если выбрать этот метод, то блок рассматривает каждый элемент входа как отдельный канал. Блок рассматривает каждый элемент -мерного массива входов, , как независимый канал. Входной сигнал на порту Delay, , должен быть либо -мерным массивом той же размерности, что и входной , либо скалярным значением, таким, что .Например, рассмотрим входную матрицу на . Блок рассматривает каждый из элементов матрицы как независимые каналы. Входом для порта Delay может быть матрица на значений с плавающей точкой в диапазоне , определяющая количество интервалов отсчетов для задержки каждого входного канала, или это может быть скалярное значение с плавающей точкой, , на которое нужно одинаково задержать все каналы.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Начальные условия —
начальные значения
Скаляр / массив вещественных и/или комплексных чисел
Details
Укажите значения, находящиеся в памяти блока в начале симуляции. От размеров этого параметра зависит, какими будут начальные значения на выходе блока – фиксированные или изменяющиеся во времени. Блок рассматривает каждый из входных столбцов как кадр, содержащий последовательных отсчетов из независимого канала.
Для входной матрицы на вы можете задать параметр следующим образом:
-
Скалярное значение, чтобы задать фиксированные начальные условия. Блок заполнит указанным значением каждый отсчет каждого канала в своей внутренней памяти.
-
Изменяющиеся во времени начальные условия, которые зависят от метода интерполяции. Чтобы задать разные изменяющиеся во времени начальные условия для каждого канала, задайте этот параметр следующим образом:
-
Задайте для параметра Начальные условия массив размером на на , где – значение параметра Максимальная задержка (Dmax) в отсчётах.
-
Пример 1. |
|
Пример 2. |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Отключить прямую передачу, увеличив минимальную возможную задержку на один —
отключение прямого прохода
Логический тип
Details
Установите этот флажок, чтобы отключить прямой проход, увеличив минимально возможное значение задержки.
Если установить для параметра Обработка входных данных значение Столбцы как каналы (кадровый режим)
, то блок увеличивает минимально возможное значение задержки на frame size - 1
. Аналогично, если установить для параметра Обработка входных данных значение Элементы как каналы (покоотсчётный режим)
, то блок увеличивает минимально возможное значение задержки на один отсчет.
Установка этого флажка позволяет использовать блок Переменная дробная задержка в цепях обратной связи.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Для малых значений задержки —
действия при малых значениях входной задержки
Ограничить до минимального значения, необходимого для центрированного ядра
| Использовать смещённое ядро
Details
Укажите поведение блока, когда значения входной задержки слишком малы для центрирования ядра, используя один из следующих вариантов:
-
Ограничить до минимального значения, необходимого для центрированного ядра
– блок увеличивает до наименьшего значения, необходимого для центрирования ядра. -
Использовать смещённое ядро
– блок сохраняет значения и вычисляет интерполированные значения с помощью фильтра Фарроу со смещенным ядром.
Зависимости
Чтобы использовать этот параметр, установите для параметра Режим интерполяции значение Фэрроу
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Алгоритмы
Значение сигнала задержки, заданное на порту Delay, служит индексом для памяти блока, , в которой хранятся, как минимум, последних отсчетов, полученных на порт In для каждого канала.
Например, целочисленная задержка 5
на скалярной входной последовательности извлекает и выводит пятый отсчет входного сигнала из памяти блока, . Блок вычисляет дробные задержки путем интерполяции между сохраненными отсчетами. Для интерполяции значений сигнала на нецелых интервалах дискретизации блок использует линейный метод.
Метод линейной интерполяции
Details
Для нецелых задержек в каждый период дискретизации метод линейной интерполяции использует два отсчета в памяти, ближайшие к указанной задержке, чтобы вычислить значение для отсчета в этот момент.
Для векторных входных данных выходной вектор, , вычисляется с помощью следующего соотношения:
где
-
– индекс текущего отсчета;
-
– дробная часть задержки;
-
– целочисленная часть задержки;
-
– дробная часть задержки;
-
– вектор входных данных;
-
– вектор выходных данных;
-
, – два отсчета в памяти, ближайшие к указанной задержке;
-
– расстояние, в отсчетах, между текущим индексом и ближайшей точкой в линии интерполяции.
Блок хранит последних отсчетов, полученных на вход для каждого канала, где – максимальная заданная задержка. представляет собой сохраненные отсчеты.
Метод интерполяции Фарроу
Details
В режиме интерполяции по методу Фарроу блок хранит самых последних отсчетов, полученных на входе для каждого канала, где – заданная длина фильтра Фарроу.
Алгоритм использует метод Лагранжа для интерполяции значений.
Чтобы увеличить минимально возможное значение задержки, установите флажок Отключить прямую передачу, увеличив минимальную возможную задержку на один. Установка этого флажка предотвращает возникновение алгебраических петель, когда вы используете блок внутри контура обратной связи.
Чтобы определить поведение, когда значение задержки на входе слишком мало для центрирования ядра (меньше ), используйте параметр Для малых значений задержки:
-
Ограничить до минимального значения, необходимого для центрированного ядра
– блок обрезает малые значения входной задержки до наименьшего значения, необходимого для центрирования ядра. Это увеличивает , но дает более точные значения интерполяции. -
Использовать смещённое ядро
– дробные задержки вычисляются с помощью фильтра Фарроу со смещенным от центра ядром. Этот режим не увеличивает , но результаты для значений входной задержки меньше менее точны, чем результаты, полученные при центрировании ядра.